BMS-HOSxP Community

HOSxP => Report Exchange => ข้อความที่เริ่มโดย: songwut ที่ กันยายน 19, 2012, 20:27:11 PM

หัวข้อ: ปรึกษาเรื่องการสร้างรายงานแบบแยกตามรายวันครับ
เริ่มหัวข้อโดย: 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

พอจะมีใครมีแนวทาง หรือตัวอย่างบ้างไม๊ครับ
ขอบคุณครับ
หัวข้อ: Re: ปรึกษาเรื่องการสร้างรายงานแบบแยกตามรายวันครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ กันยายน 19, 2012, 20:39:58 PM
ทำแบบ crosstab ได้ครับ
หัวข้อ: Re: ปรึกษาเรื่องการสร้างรายงานแบบแยกตามรายวันครับ
เริ่มหัวข้อโดย: yokyai ที่ กันยายน 20, 2012, 07:54:57 AM
ทำแบบ crosstab ได้ครับ
พยายามทำเหมือนกันครับ แต่ติดว่าเวลาเปลี่ยนชื่อฟิลด์เป็นภาษาไทยไม่ได้ครับ ทำยังไงครับ ตอนนี้ใช้วิธีอื่นอยู่ครับ
หัวข้อ: Re: ปรึกษาเรื่องการสร้างรายงานแบบแยกตามรายวันครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ กันยายน 20, 2012, 08:19:26 AM
ทำแบบ crosstab ได้ครับ
พยายามทำเหมือนกันครับ แต่ติดว่าเวลาเปลี่ยนชื่อฟิลด์เป็นภาษาไทยไม่ได้ครับ ทำยังไงครับ ตอนนี้ใช้วิธีอื่นอยู่ครับ

เปลี่ยน font ใน crosstab design ได้เลยครับ
หัวข้อ: Re: ปรึกษาเรื่องการสร้างรายงานแบบแยกตามรายวันครับ
เริ่มหัวข้อโดย: songwut ที่ กันยายน 20, 2012, 17:47:44 PM
ลองทำดูแล้วครับ โดยใช้ cross tab

แต่ปรากฎว่า ข้อมูลออกมาซ้ำหลายหน้าเลย

คือ สมมุติว่า ข้อมูลจริงๆมีหน้า 1-2 แล้วพอหน้า 3 มันก็ เอาข้อมูลหน้า 1-2 มาใส่ต่อๆเป็นร้อยหน้าเลย เกิดจากอะไรเหรอครับ ?

แล้วคำสั่ง sql ตอนสร้างรายงานเพื่อใช้ cross tab นี่ต้องเขียนในหน้าแรกเท่านั้นเหรอครับ ?
ผมลองเขียนให้มัน change report ตรง cal>event>on create ข้อมูลกลับไม่ออกมาเลย
หัวข้อ: Re: ปรึกษาเรื่องการสร้างรายงานแบบแยกตามรายวันครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ กันยายน 20, 2012, 19:15:52 PM
ลองทำดูแล้วครับ โดยใช้ cross tab

แต่ปรากฎว่า ข้อมูลออกมาซ้ำหลายหน้าเลย

คือ สมมุติว่า ข้อมูลจริงๆมีหน้า 1-2 แล้วพอหน้า 3 มันก็ เอาข้อมูลหน้า 1-2 มาใส่ต่อๆเป็นร้อยหน้าเลย เกิดจากอะไรเหรอครับ ?

แล้วคำสั่ง sql ตอนสร้างรายงานเพื่อใช้ cross tab นี่ต้องเขียนในหน้าแรกเท่านั้นเหรอครับ ?
ผมลองเขียนให้มัน change report ตรง cal>event>on create ข้อมูลกลับไม่ออกมาเลย

วาง crosstab ไว้ที่ detail band หรือเปล่า ลองย้ายไปไว้ที่ header band ครับ ส่วนคำสั่งจะใช้การเขียนจากหน้าแรก หรือ changereportsql ก็ได้ครับ
หัวข้อ: Re: ปรึกษาเรื่องการสร้างรายงานแบบแยกตามรายวันครับ
เริ่มหัวข้อโดย: songwut ที่ กันยายน 20, 2012, 19:51:47 PM
ได้แล้วครับ เอา 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 หน้าแรกเลยครับ
หัวข้อ: Re: ปรึกษาเรื่องการสร้างรายงานแบบแยกตามรายวันครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ กันยายน 20, 2012, 19:56:34 PM
ลองแก้เป็นแบบนี้ครับ

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 ');
หัวข้อ: Re: ปรึกษาเรื่องการสร้างรายงานแบบแยกตามรายวันครับ
เริ่มหัวข้อโดย: songwut ที่ กันยายน 23, 2012, 14:46:04 PM
ได้แล้วครับ ตกตัว " ไปนี่เอง
ขอบคุณมากครับ