ลองเอาไปใช้แล้วเกิดปัญหา 2 อย่างคือ
1. รายงานแสดงหน้าว่างเปล่า ไม่มีข้อมูลใด ๆ (อันนี้ทดสอบกับ HOSxP PCU ที่เทศบาล แต่ไม่ทราบว่า version อะไร)
2. เกิด Error บางอย่างที่แสดงตัวเลขเต็มไปหมด (SQL Error ....)ไม่สามารถแสดงข้อมูลในหน้า report ได้เลย (HOSxP 3.53.1.x)
จึงดู code ของ อ.armds พบว่ามีการส่งค่า parameter ตัวหนึ่ง (ที่ผมไม่รู้จัก) @village_id ก็เลยลองเปลี่ยนจาก village_id เป็น person_id โดยดูจาก SQL Trace ใน HOSxP พบว่ามีการส่งค่าเป็น person_id เข้ามาที่ report PCU-Person-search-1 ก็คิดว่าน่าจะใช้ได้ แต่ปรากฏว่าก็ยัง Error คล้าย ๆ เดิม
ผมจึงลองสร้าง Report ขึ้นใหม่ โดยใช้ person_id เป็น parameter แต่ไม่ได้ใส่ @person_id ใน where clause คือใส่ where person_id in (1) ตรง ๆ ไปเลย.........(1) เป็น parameter ที่จริงอาจใช้ (1,3,4,5,7,9)...ตัวเลขใน in clause เป็น person_id จากตาราง person ปรากฏว่าใช้งานได้ดีครับ สามารถพิมพ์ออกมาได้ แต่พอไปเลือกหมู่บ้านที่มีคนเยอะ ๆ ตามเงื่อนไข ก็แสดง error คล้าย ๆ ในข้อ 2 จึงเข้าในว่า in clause นั้น น่าจะเก็บได้แค่ 256 ค่า คือลองกับข้อมูลที่เลือกมาน้อย ๆ แล้วสามารถใช้งานได้ แต่ถ้าข้อมูลมาก ๆ จะ Error ผมยังหาตัวเลขยืนยันไม่ได้ว่า 256 parameter จริงหรือไม่ (ดูที่ PCU-Person-Search-1.cds ที่แนมบา..อันนี้ run ในหน้าบัญชี 1 ได้เลย)
สุดท้ายเลยต้องทำเป็น CUSTOM report (CUSTOM-PCU-Person-Search-1.cds) ซึ่งสามารถเลือกข้อมูลได้ตามต้องการ
ลองไปใช้กันดูนะครับ
ปัญหาของมันก็คือ
เวลาเราเลือกหมู่บ้าน มันจะส่งค่า person_id ทั้งหมู่บ้านไปให้ report
แต่ปัญหาคือ ตัวแปล ที่ใช้ รับข้อมูลได้จำกัด
ถ้ามันมีมากๆๆ
มันจะ error ครับ
วิธีแก้ปัญหาคือ
ใช้ scipt pascal ที่ report แบบ ดึงข้อมูลมาก่อน แล้วจึงไปนำเสนอภายหลัง
มันจะ error แบบนี้
'1212,121,21,,,21,21,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
แล้วมันเกิน 256 ตัวครับ