BMS-HOSxP Community
HOSxP => Report Exchange => ข้อความที่เริ่มโดย: songwut ที่ กันยายน 19, 2012, 20:27:11 PM
-
สวัสดีครับ
อยากจะปรึกษาเรื่องการทำรายงานแบบแยกตามวันครับ เช่น รายการยอด xray แยกตามรายวัน "โดยกำหนดช่วงระยะเวลาได้" แต่ขอให้แยกออกมาเป็นรายวัน ตามระยะเวลาที่เราเลือก
โดยให้รูปแบบออกมาประมาณนี้ครับ
วันที่1 วันที่2 วันที่ 3 ..... วันที่ 31
รายการ 1 1 5 4 ..... 6
รายการ 2 5 4 8 ..... 9
รายการ 3 3 2 1 ..... 2
พอจะมีใครมีแนวทาง หรือตัวอย่างบ้างไม๊ครับ
ขอบคุณครับ
-
ทำแบบ crosstab ได้ครับ
-
ทำแบบ crosstab ได้ครับ
พยายามทำเหมือนกันครับ แต่ติดว่าเวลาเปลี่ยนชื่อฟิลด์เป็นภาษาไทยไม่ได้ครับ ทำยังไงครับ ตอนนี้ใช้วิธีอื่นอยู่ครับ
-
ทำแบบ crosstab ได้ครับ
พยายามทำเหมือนกันครับ แต่ติดว่าเวลาเปลี่ยนชื่อฟิลด์เป็นภาษาไทยไม่ได้ครับ ทำยังไงครับ ตอนนี้ใช้วิธีอื่นอยู่ครับ
เปลี่ยน font ใน crosstab design ได้เลยครับ
-
ลองทำดูแล้วครับ โดยใช้ cross tab
แต่ปรากฎว่า ข้อมูลออกมาซ้ำหลายหน้าเลย
คือ สมมุติว่า ข้อมูลจริงๆมีหน้า 1-2 แล้วพอหน้า 3 มันก็ เอาข้อมูลหน้า 1-2 มาใส่ต่อๆเป็นร้อยหน้าเลย เกิดจากอะไรเหรอครับ ?
แล้วคำสั่ง sql ตอนสร้างรายงานเพื่อใช้ cross tab นี่ต้องเขียนในหน้าแรกเท่านั้นเหรอครับ ?
ผมลองเขียนให้มัน change report ตรง cal>event>on create ข้อมูลกลับไม่ออกมาเลย
-
ลองทำดูแล้วครับ โดยใช้ cross tab
แต่ปรากฎว่า ข้อมูลออกมาซ้ำหลายหน้าเลย
คือ สมมุติว่า ข้อมูลจริงๆมีหน้า 1-2 แล้วพอหน้า 3 มันก็ เอาข้อมูลหน้า 1-2 มาใส่ต่อๆเป็นร้อยหน้าเลย เกิดจากอะไรเหรอครับ ?
แล้วคำสั่ง sql ตอนสร้างรายงานเพื่อใช้ cross tab นี่ต้องเขียนในหน้าแรกเท่านั้นเหรอครับ ?
ผมลองเขียนให้มัน change report ตรง cal>event>on create ข้อมูลกลับไม่ออกมาเลย
วาง crosstab ไว้ที่ detail band หรือเปล่า ลองย้ายไปไว้ที่ header band ครับ ส่วนคำสั่งจะใช้การเขียนจากหน้าแรก หรือ changereportsql ก็ได้ครับ
-
ได้แล้วครับ เอา crosstab วางไว้ผิดที่นี่เอง
แต่ลองทดสอบ changereport sql แล้ว หน้ารายงานมันไม่ออกเลยน่ะครับโชว์แค่หน้าขาวเปล่าๆไม่แน่ใจว่าผิดตรงไหน
GetDateRangeDialog(d1, d2);
ds1:=formatdatetime('yyyy-mm-dd',d1);
ds2:=formatdatetime('yyyy-mm-dd',d2);
ChangeReportSQL(' select * '+
' from xray_report xr '+
' left outer join xray_items xi on xi.xray_items_code = xr.xray_items_code '+
' where xr.report_date between '+ds1+' and '+ds2+' '+
' group by xr.xray_items_code '+
' order by xr.report_date ');
โค้ดก็ตามนี้เลย
ส่วนในหน้าของ crosstab ทำเหมือนตัวรายงานที่ใส่โค้ด sql หน้าแรกเลยครับ
-
ลองแก้เป็นแบบนี้ครับ
GetDateRangeDialog(d1, d2);
ds1:=formatdatetime('yyyy-mm-dd',d1);
ds2:=formatdatetime('yyyy-mm-dd',d2);
ChangeReportSQL(' select * '+
' from xray_report xr '+
' left outer join xray_items xi on xi.xray_items_code = xr.xray_items_code '+
' where xr.report_date between "'+ds1+'" and "'+ds2+'" '+
' group by xr.xray_items_code '+
' order by xr.report_date ');
-
ได้แล้วครับ ตกตัว " ไปนี่เอง
ขอบคุณมากครับ