การใช้เงื่อนไข 'if' ในพารามิเตอร์

ฉันกำลังสร้างรายงาน JasperReports Server โดยใช้ iReport ฉันมีตารางที่มี 4 คอลัมน์ ผู้ใช้จำเป็นต้องเลือกผ่านพารามิเตอร์ซึ่งจะเป็นคอลัมน์แรก คอลัมน์อื่นๆ จะถูกตัดสินใจ ขึ้นอยู่กับสิ่งที่เขาเลือก

สำหรับเช่น หากผู้ใช้เลือกคอลัมน์ 2 ในตัวควบคุมอินพุต คอลัมน์ 2 จะกลายเป็นคอลัมน์ซ้ายสุด และคอลัมน์ 1 จะเข้ามาแทนที่คอลัมน์ 2

วิธีที่ดีที่สุดที่จะทำคืออะไร? ฉันสามารถใช้เงื่อนไข 'if' ในพารามิเตอร์ได้หรือไม่


person saurabh730    schedule 08.10.2013    source แหล่งที่มา
comment
คุณสามารถโพสต์ไฟล์ jrxml ของคุณด้วยเงื่อนไขเดียวได้หรือไม่?   -  person user1791574    schedule 08.10.2013


คำตอบ (3)


การจัดเตรียมวิธีแก้ปัญหาค่อนข้างหายาก อย่างไรก็ตาม คุณสามารถบรรลุผลดังกล่าวได้โดยใช้นิพจน์กับตัวแปร

เพียงคลิกขวาที่ฟิลด์แล้วคลิก "แก้ไขนิพจน์"

PFirst is a reports parameter

การแสดงออกของฟิลด์อาจเป็นดังนี้

$Pfirst.equals("fieldOne")?fieldOne:"" + $Pfirst.equals("fieldTwo")?fieldTwo:"" + $Pfirst.equals("fieldThree")?fieldThree:""

person coding_idiot    schedule 08.10.2013

เพิ่มพารามิเตอร์อื่น (ยกเลิกการเลือกใช้เป็นพรอมต์) ด้วยคำสั่ง if ของคุณในนิพจน์ค่าเริ่มต้น ฉันคิดว่าคำสั่ง sql ทั้งหมดสามารถอยู่ในพารามิเตอร์นี้ได้ แต่ทดสอบด้วยคำสั่ง sql เพียงบางส่วนเท่านั้น ในแบบสอบถามรายงาน ให้ใส่พารามิเตอร์ใหม่นี้เป็น $P!{paramname} ควรทำงาน.

person user2859131    schedule 08.10.2013

คุณสามารถลองสิ่งนี้: -

หากเงื่อนไขสำหรับข้อความที่ยื่นในคอลัมน์แรก p_column จะเป็นพารามิเตอร์ที่มีค่าเริ่มต้น "col1"

 $P{p_column}.equals("col1") ? $F{col1} : $F{col2}

หากเงื่อนไขสำหรับข้อความที่สองของคอลัมน์ที่สอง:-

$P{p_column}.equals( "col1" ) ? $F{col2} : $F{col1}
person Sharad    schedule 09.10.2013