TOP NEWS

Isocare Knowledge Management การพัฒนาและการประยุกต์ใช้ระบบการจัดการความรู้ของฝ่ายพัฒนาซอฟท์แวร์ บริษัท ไอโซแคร์ ซิสเตมส์ จำกัด

วันจันทร์ที่ 8 เมษายน พ.ศ. 2562

GCOOP : การส่งค่าหลายค่า ireport ใช้ใน WHERE IN query

GCOOP : การส่งค่าหลายค่า ireport ใช้ใน WHERE IN query


ข้อมูลทดสอบ
table : mbmembmaster
field : member_no
  1. สร้าง parameter 2 ตัว
2. กำหนดค่า parameter แต่ละตัวดั้งนี้
  • as_memberno คือ ตัวที่จะรับค่า เป็น string จากหน้าจอ
  • list_memberno คือ จะทำให้ค่าที่รับมาอยู่ใน array แต่ละช่องโดนการ split
*** ต้องเลือก parameter class เป็น java.util.List เพราะทำหน้าที่เก็บ array
*** Use as a prompt ต้องเอาเครื่องหมายเช็คถูกออก จะทำให้ไม่ต้องใส่ค่าเวลา preview ข้อมูล ***


3. Query ข้อมูล
  • select * from mbmembmaster where $X{IN , member_no , list_memberno }
เป็นการค้นหาแบบ IN และ member_no คือ field ที่ต้องการหา
*** โดยปกติเวลาดึง list_memberno มาจะเป็น $P{list_memberno} ให้ลบ $P{} ออก เป็นคำว่า
list_memberno  อย่างเดียว ***
*** หมายเหตุ การค้นหาแบบ $X{IN , column , parameter[] } เหมือนเป็น function
พิเศษสำหรับ jasper report เท่านั้น จึงทำให้เกิด error ยาวๆข้างล่างดังรูป
แต่ในที่นี้ไม่ต้องสนใจให้ข้ามไปเลย *** (25/05/2017 ยังหาวิธีแก้ error นี้ไม่ได้)


4.preview ข้อมูล

จากการทำตามตัวอย่างข้างบน หลังจาก preview ข้อมูล จะมีแค่ช่อง as_memberno ให้ใส่
ข้อมูลที่จะใส่ ต้องไม่มี ‘ หรือ “ เช่น ‘00213976’,’00211654’ หรือ “00213976”,”00211654”
ข้อมูลที่ส่งมาต้องเป็นตัวอักษรหรือชุดคำเท่านั้นตามด้วย , เพื่อที่จะเอาไปเก็บไว้ใน
list_memberno แบบ array ได้

0 ความคิดเห็น: