Function DateFormat สำหรับ Crystal Report 2008
ในการ เขียน report ต้องมีอยู่แล้ว ว่าต้องการ set format วันที่ให้เป็นไปตามต้องการ
โดยไม่ต้องไม่ยุ่งกับ regional setting
แน่นอนต้องเขียนขึ้นมาใช้เอง เพราะว่า function ใน crystal report มัน ไม่ได้เขียนมาเพื่อคนไทย
ดังนั้น อยากได้แบบไหนก็ต้องเขียนเอง
ตัวอย่าง ที่ผมจะนำมาให้ดู ก็เป็น function date format
รับ parameter 3 ตัว คือ
1. วันที่ (วันที่ ที่ต้องการแปลง)
2. รูปแบบ (รูปแบบที่ต้องการ)
3. ตัวคั่น (ตัวคั่น ระหว่าง วัน เดือน ปี)
มาดู Code กันเลยครับ
Function (datevar d, StringVar style,StringVar separator );
(
// Crystal Report Custom function
// Date String
// By Narong Sungkhamalai
SELECT (style)
//American Long
CASE "al" : (Select (Month(d))
Case 1 : "January"
Case 2 : "February"
Case 3 : "March"
Case 4 : "April"
Case 5 : "May"
Case 6 : "June"
Case 7 : "July"
Case 8 : "August"
Case 9 : "September"
Case 10 : "October"
Case 11 : "November"
Case 12 : "December" ;)+ " " +
CStr(Day(d),0)+ ", " +
Cstr(Year(d),"0000")
//American Mediam
CASE "am" :(Select (Month(d))
Case 1 : "Jan"
Case 2 : "Feb"
Case 3 : "Mar"
Case 4 : "Apr"
Case 5 : "May"
Case 6 : "Jun"
Case 7 : "Jul"
Case 8 : "Aug"
Case 9 : "Sep"
Case 10 : "Oct"
Case 11 : "Nov"
Case 12 : "Dec"; )+ " " +
CStr(Day(d),0)+ ", " +
Cstr(Year(d),"0000")
//American Short
CASE "as" :(Select (Month(d))
Case 1 : "Jan"
Case 2 : "Feb"
Case 3 : "Mar"
Case 4 : "Apr"
Case 5 : "May"
Case 6 : "Jun"
Case 7 : "Jul"
Case 8 : "Aug"
Case 9 : "Sep"
Case 10 : "Oct"
Case 11 : "Nov"
Case 12 : "Dec"; )+ " " +
CStr(Day(d),0)+ ", " +
RIGHT(Cstr(Year(d),"0000"),2)
//American Extra Short
Case "as" : Cstr(Month(d),0)+ " " +
CStr(Day(d),0)+ ", " +
RIGHT(CStr(Year(d),"0000"),2)
//English long
Case "el" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "January"
Case 2 : "February"
Case 3 : "March"
Case 4 : "April"
Case 5 : "May"
Case 6 : "June"
Case 7 : "July"
Case 8 : "August"
Case 9 : "September"
Case 10 : "October"
Case 11 : "November"
Case 12 : "December" ;)+ separator +
CStr(Year(d),"0000")
//English Mediam
Case "em" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "Jan"
Case 2 : "Feb"
Case 3 : "Mar"
Case 4 : "Apr"
Case 5 : "May"
Case 6 : "Jun"
Case 7 : "Jul"
Case 8 : "Aug"
Case 9 : "Sep"
Case 10 : "Oct"
Case 11 : "Nov"
Case 12 : "Dec"; )+ separator +
CStr(Year(d),"0000")
//English short
Case "es" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "Jan"
Case 2 : "Feb"
Case 3 : "Mar"
Case 4 : "Apr"
Case 5 : "May"
Case 6 : "Jun"
Case 7 : "Jul"
Case 8 : "Aug"
Case 9 : "Sep"
Case 10 : "Oct"
Case 11 : "Nov"
Case 12 : "Dec"; )+ separator +
RIGHT(CStr(Year(d),"0000"),2)
//Thai long
Case "tl" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "มกราคม"
Case 2 : "กุมภาพันธ์"
Case 3 : "มีนาคม"
Case 4 : "เมษายน"
Case 5 : "พฤษภาคม"
Case 6 : "มิถุนายน"
Case 7 : "กรกฎาคม"
Case 8 : "สิงหาคม"
Case 9 : "กันยายน"
Case 10 : "ตุลาคม"
Case 11 : "พฤศจิกายน"
Case 12 : "ธันวาคม" ;)+ separator +
CStr(Year(d)+543,"0000")
//Thai mediem
Case "tm" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "ม.ค."
Case 2 : "ก.พ."
Case 3 : "มี.ค."
Case 4 : "เม.ย."
Case 5 : "พ.ค."
Case 6 : "มิ.ย."
Case 7 : "ก.ค."
Case 8 : "ส.ค."
Case 9 : "ก.ย."
Case 10 : "ต.ค."
Case 11 : "พ.ย."
Case 12 : "ธ.ค." ;)+ separator +
CStr(Year(d)+543,"0000")
//Thai short
Case "ts" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "ม.ค."
Case 2 : "ก.พ."
Case 3 : "มี.ค."
Case 4 : "เม.ย."
Case 5 : "พ.ค."
Case 6 : "มิ.ย."
Case 7 : "ก.ค."
Case 8 : "ส.ค."
Case 9 : "ก.ย."
Case 10 : "ต.ค."
Case 11 : "พ.ย."
Case 12 : "ธ.ค." ;)+ separator +
RIGHT(CStr(Year(d)+543,"0000"),2)
;
)
เวลาเรียกใช้ก็
DateFormat(Date1,"tl"," ") //สำหรับ วันที่แบบ Thai Long
ก็คงเป็นประโยชน์ บ้าง นะครับ
โดยไม่ต้องไม่ยุ่งกับ regional setting
แน่นอนต้องเขียนขึ้นมาใช้เอง เพราะว่า function ใน crystal report มัน ไม่ได้เขียนมาเพื่อคนไทย
ดังนั้น อยากได้แบบไหนก็ต้องเขียนเอง
ตัวอย่าง ที่ผมจะนำมาให้ดู ก็เป็น function date format
รับ parameter 3 ตัว คือ
1. วันที่ (วันที่ ที่ต้องการแปลง)
2. รูปแบบ (รูปแบบที่ต้องการ)
3. ตัวคั่น (ตัวคั่น ระหว่าง วัน เดือน ปี)
มาดู Code กันเลยครับ
Function (datevar d, StringVar style,StringVar separator );
(
// Crystal Report Custom function
// Date String
// By Narong Sungkhamalai
SELECT (style)
//American Long
CASE "al" : (Select (Month(d))
Case 1 : "January"
Case 2 : "February"
Case 3 : "March"
Case 4 : "April"
Case 5 : "May"
Case 6 : "June"
Case 7 : "July"
Case 8 : "August"
Case 9 : "September"
Case 10 : "October"
Case 11 : "November"
Case 12 : "December" ;)+ " " +
CStr(Day(d),0)+ ", " +
Cstr(Year(d),"0000")
//American Mediam
CASE "am" :(Select (Month(d))
Case 1 : "Jan"
Case 2 : "Feb"
Case 3 : "Mar"
Case 4 : "Apr"
Case 5 : "May"
Case 6 : "Jun"
Case 7 : "Jul"
Case 8 : "Aug"
Case 9 : "Sep"
Case 10 : "Oct"
Case 11 : "Nov"
Case 12 : "Dec"; )+ " " +
CStr(Day(d),0)+ ", " +
Cstr(Year(d),"0000")
//American Short
CASE "as" :(Select (Month(d))
Case 1 : "Jan"
Case 2 : "Feb"
Case 3 : "Mar"
Case 4 : "Apr"
Case 5 : "May"
Case 6 : "Jun"
Case 7 : "Jul"
Case 8 : "Aug"
Case 9 : "Sep"
Case 10 : "Oct"
Case 11 : "Nov"
Case 12 : "Dec"; )+ " " +
CStr(Day(d),0)+ ", " +
RIGHT(Cstr(Year(d),"0000"),2)
//American Extra Short
Case "as" : Cstr(Month(d),0)+ " " +
CStr(Day(d),0)+ ", " +
RIGHT(CStr(Year(d),"0000"),2)
//English long
Case "el" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "January"
Case 2 : "February"
Case 3 : "March"
Case 4 : "April"
Case 5 : "May"
Case 6 : "June"
Case 7 : "July"
Case 8 : "August"
Case 9 : "September"
Case 10 : "October"
Case 11 : "November"
Case 12 : "December" ;)+ separator +
CStr(Year(d),"0000")
//English Mediam
Case "em" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "Jan"
Case 2 : "Feb"
Case 3 : "Mar"
Case 4 : "Apr"
Case 5 : "May"
Case 6 : "Jun"
Case 7 : "Jul"
Case 8 : "Aug"
Case 9 : "Sep"
Case 10 : "Oct"
Case 11 : "Nov"
Case 12 : "Dec"; )+ separator +
CStr(Year(d),"0000")
//English short
Case "es" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "Jan"
Case 2 : "Feb"
Case 3 : "Mar"
Case 4 : "Apr"
Case 5 : "May"
Case 6 : "Jun"
Case 7 : "Jul"
Case 8 : "Aug"
Case 9 : "Sep"
Case 10 : "Oct"
Case 11 : "Nov"
Case 12 : "Dec"; )+ separator +
RIGHT(CStr(Year(d),"0000"),2)
//Thai long
Case "tl" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "มกราคม"
Case 2 : "กุมภาพันธ์"
Case 3 : "มีนาคม"
Case 4 : "เมษายน"
Case 5 : "พฤษภาคม"
Case 6 : "มิถุนายน"
Case 7 : "กรกฎาคม"
Case 8 : "สิงหาคม"
Case 9 : "กันยายน"
Case 10 : "ตุลาคม"
Case 11 : "พฤศจิกายน"
Case 12 : "ธันวาคม" ;)+ separator +
CStr(Year(d)+543,"0000")
//Thai mediem
Case "tm" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "ม.ค."
Case 2 : "ก.พ."
Case 3 : "มี.ค."
Case 4 : "เม.ย."
Case 5 : "พ.ค."
Case 6 : "มิ.ย."
Case 7 : "ก.ค."
Case 8 : "ส.ค."
Case 9 : "ก.ย."
Case 10 : "ต.ค."
Case 11 : "พ.ย."
Case 12 : "ธ.ค." ;)+ separator +
CStr(Year(d)+543,"0000")
//Thai short
Case "ts" : CStr(Day(d),0)+ separator +
(Select (Month(d))
Case 1 : "ม.ค."
Case 2 : "ก.พ."
Case 3 : "มี.ค."
Case 4 : "เม.ย."
Case 5 : "พ.ค."
Case 6 : "มิ.ย."
Case 7 : "ก.ค."
Case 8 : "ส.ค."
Case 9 : "ก.ย."
Case 10 : "ต.ค."
Case 11 : "พ.ย."
Case 12 : "ธ.ค." ;)+ separator +
RIGHT(CStr(Year(d)+543,"0000"),2)
;
)
เวลาเรียกใช้ก็
DateFormat(Date1,"tl"," ") //สำหรับ วันที่แบบ Thai Long
ก็คงเป็นประโยชน์ บ้าง นะครับ
ความคิดเห็น
แสดงความคิดเห็น