บทที่ 8 / 8

การพิมพ์และจบรายงาน

การส่งข้อมูลไปยังรายงาน และจบกระบวนการ

8 / 8
1

การส่งข้อมูลไปยังรายงาน

หลังจากประมวลผลข้อมูลแต่ละ record เสร็จ จะส่งไปยังรายงานด้วย brp.ready()

การส่งข้อมูลไปรายงานและเติมบรรทัดว่าง
    | ส่งข้อมูลไปยังรายงาน
    if coa.type = 1 then
        brp.ready(rpt)        | รายงาน Local (THA)
    else
        brp.ready(rpt2)       | รายงาน Export
    endif
    
    ...
    
    | เติมบรรทัดว่างให้ครบหน้า
    rpt.show.dt = 2
    if row.count < detail.per.page then
        for i = row.count to detail.per.page
            if coa.type = 1 then
                brp.ready(rpt)
            else
                brp.ready(rpt2)
            endif
        endfor
    endif
คำอธิบาย

หลักการทำงาน:

  1. brp.ready(rpt) — ส่งข้อมูล 1 แถวไปยังรายงาน BRP
  2. หลังจบรายละเอียดทั้งหมด — เติมบรรทัดว่างให้ครบ 20 บรรทัดต่อหน้า เพื่อให้รายงานสวยงาม
  3. rpt.show.dt = 2 — บอกรายงานว่าเป็น "โหมดเติมบรรทัดว่าง"
2

การปิดรายงาน

เมื่อประมวลผลข้อมูลทุก record เสร็จ ปิดรายงานด้วย brp.close()

การปิดรายงาน
    selecteos
        if rpt > 0 then
            brp.close(rpt)
        endif
        
        if rpt2 > 0 then
            brp.close(rpt2)
        endif
    endselect
คำอธิบาย

คำสั่งสำคัญ:

  • selecteosEnd of Select — ทำงานหลังจากวนลูป SELECT จบหมดแล้ว
  • brp.close() — ปิดรายงานและส่งไปยังเครื่องพิมพ์/ไฟล์
  • ตรวจ rpt > 0 เพื่อให้แน่ใจว่ารายงานถูกเปิดก่อนจึงปิด
สรุป Flow ทั้งหมดของรายงาน

brp.open()brp.ready() (วนส่งทุก record) → brp.close()