Group Blog
 
 
กรกฏาคม 2550
1234567
891011121314
15161718192021
22232425262728
293031 
 
11 กรกฏาคม 2550
 
All Blogs
 
CR Report : Formula Function สำหรับ แสดงวันที่ภาษาไทย

ปกติแล้ว Crystral Report ในการ set format date นั้น สามารถเลือก format ปี เป็น ค.ศ. หรือพ.ศ. ได้ และ เดือนนั้น จะขึ้นกะ Regional ของเครื่ือง (หรือเปล่า ^^'')

ทีนี้สำหรับเครื่องที่แสดงผล date เป็น ปี ค.ศ. และ เดือนเป็นอังกฤษ (เซิร์ฟเวอร์ database T-T) หรืออะไรก็ตาม

พล่ามมาทำไมเนี่ย ว่าง่ายๆ ก็คือ เปนการเขียนฟังก์ชั่นใช้เอง ไม่ต้องแคร์เครื่อง



เปิด Crystral Report มาเลยครับ

1. เปิด Formula Editor สร้าง Function ขึ้นมาในส่วน Report Custom Fucntion ในรูปสร้าง toThaiDate



2. รายละเอียดใน Function


'เริ่มฟังก์ชั่น
Function (datetimeVar d)

'เช็คเงื่อนไข ถ้าปี เป็น ค.ศ. เปลี่ยนเป็น พ.ศ. (+543)
if(Year (d) <2500) then
d := DateTime (Year (d)+543,Month (d) ,Day (d) )
else
d;

'แปลง date to string ให้อยู่ใน format (อันนี้แล้วแต่ถนัด)
Local StringVar y;
y:= Totext(d,"dd MM yyyy");

' ทำการ replace เดือนที่เป็นหมายเลข 01-12 ด้วย คำที่ต้องการ
'(ในที่นี้จะใช้ การค้นหา " 01 " ด้วย " มกราคม " แทนการใช้ "01"
' เนื่องจาก จะไปเจอวันที่ "01" เข้า >< หากใช้ format เป็น dd/MM/yyyy
' ก็จะเป็น Replace (y,"/01/","/มกราคม/") แทนครับ
if(mid(y,4,2)="01") then
Replace (y," 01 "," มกราคม ")
else if(mid(y,4,2)="02") then
Replace (y," 02 "," กุมภาพันธ์ ")
else if(mid(y,4,2)="03") then
Replace (y," 03 "," มีนาคม ")
else if(mid(y,4,2)="04") then
Replace (y," 04 "," เมษายน ")
else if(mid(y,4,2)="05") then
Replace (y," 05 "," พฤษภาคม ")
else if(mid(y,4,2)="06") then
Replace (y," 06 "," มิถุนายน ")
else if(mid(y,4,2)="07") then
Replace (y," 07 "," กรกฎาคม ")
else if(mid(y,4,2)="08") then
Replace (y," 08 "," สิงหาคม ")
else if(mid(y,4,2)="09") then
Replace (y," 09 "," กันยายน ")
else if(mid(y,4,2)="10") then
Replace (y," 10 "," ตุลาคม ")
else if(mid(y,4,2)="11") then
Replace (y," 11 "," พฤศจิกายน ")
else if(mid(y,4,2)="12") then
Replace (y," 12 "," ธันวาคม ")
else
y

'ค่าที่ return ออกมาจะเป็นค่า y ที่ถูก replace


3.วิธีเรียกใน formula ก็ใส่ชื่อ function & parameter เลยครับ



จบแล้วครับ


หวังว่าคงจะได้นำไปใช้กัน หรือเป็นตัวอย่างในการเขียน custom function ใช้เองกันนะครับ




ปล. อุ้ยพิมพ์ กรกฎาคม เป็น กรกฏาคม อายจัง


Create Date : 11 กรกฎาคม 2550
Last Update : 2 กันยายน 2551 23:28:51 น. 9 comments
Counter : 3868 Pageviews.

 
ขอบคุณสำหรับ "สาระ" ดีๆ ครับ


โดย: chengake วันที่: 11 กรกฎาคม 2550 เวลา:17:24:54 น.  

 
มาเม้นค่ะ


โดย: นู๋ครีมจอมซ่า วันที่: 10 กันยายน 2550 เวลา:12:29:44 น.  

 
กำลังหา Code พอดีเลย เก่งมากๆเลยค่ะ ขอบคุณมากๆเลยค่ะ :)


โดย: ninee IP: 58.137.7.234 วันที่: 24 กรกฎาคม 2551 เวลา:9:35:55 น.  

 
ขอบใจอย่างสุดซึ้งเลย
หาวิธีมานานมากละ


โดย: KOH IP: 58.9.50.114 วันที่: 24 พฤษภาคม 2552 เวลา:21:34:12 น.  

 
หามาทั้งนานแล้ว..

สุดยอดยิ่งกว่าคำว่าสุดยอดครับ..

แล้วถ้าเรามี ฟิลด์ของเราอยู่แล้วละครับ.

เช่น เรามี
db= dbpub
table = public
field = pubdate

เราต้องการให้ pubdate เป็น พ.ศ. ละครับ ทำยังไงครับ?

แล้วถ้า pubdate จะแสดงตาม group ของ place ละครับ

ขอคำแนะนำ แต่เด็กจะจบใหม่ ที่ยังไร้ประสบการณ์นะครับ.


โดย: คุณคือสุดดวงใจเลยคร้าบ IP: 125.24.218.15 วันที่: 16 มิถุนายน 2552 เวลา:14:29:07 น.  

 
ขอบคุณมากๆๆๆๆ สำหรับความรู้ที่มีประโยชน์มากมาย


โดย: Modtanoy IP: 118.173.248.188 วันที่: 7 เมษายน 2553 เวลา:16:54:21 น.  

 
ขอบคุณครับ กำลังหัดเขียนอยู่เลย


โดย: moo IP: 124.121.45.91 วันที่: 9 ธันวาคม 2553 เวลา:17:09:21 น.  

 
Thanks, You're the best man. :D


โดย: sardkajai IP: 124.122.251.124 วันที่: 6 พฤศจิกายน 2554 เวลา:1:32:36 น.  

 
ใน CR Report มันไม่แสดงภาษาไทยอ่ะครับ ตัวเลขกับภาษาอังกฤษไม่มีปัญหาครับ แต่ถ้าเป็นภาษาไทยจะเป็น ?????? ช่วยด้วยครับ ต้องทำไงบ้าง ขอบคุณครับ


โดย: Tor IP: 110.77.234.31 วันที่: 23 มีนาคม 2555 เวลา:17:53:56 น.  

ชื่อ :
Comment :
  *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 
รหัสส่งข้อความ
กรุณายืนยันรหัสส่งข้อความ

หมายเลข 15
Location :
กรุงเทพฯ Thailand

[ดู Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed

ผู้ติดตามบล็อก : 1 คน [?]




Friends' blogs
[Add หมายเลข 15's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.