Menggunakan kondisi 'jika' dalam parameter

Saya membuat laporan JasperReports Server menggunakan iReport. Saya punya tabel dengan 4 kolom. Pengguna perlu memilih melalui parameter yang akan menjadi kolom pertama. Tergantung pada apa yang dia pilih, kolom lainnya akan diputuskan.

Misalnya. Jika pengguna memilih kolom 2 pada kontrol input, kolom 2 akan menjadi kolom paling kiri dan kolom 1 akan menggantikan kolom 2.

Apa cara terbaik untuk melakukannya? Bisakah saya menggunakan kondisi 'jika' dalam parameter?


person saurabh730    schedule 08.10.2013    source sumber
comment
Bisakah Anda memposting file jrxml Anda dengan satu syarat?   -  person user1791574    schedule 08.10.2013


Jawaban (3)


Pengaturan solusi cukup jarang terjadi. Bagaimanapun, Anda dapat mencapainya dengan menggunakan ekspresi dengan variabel.

Cukup klik kanan pada bidang dan klik "Edit Ekspresi"

PFirst is a reports parameter

Ekspresi bidangnya bisa seperti ini

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

person coding_idiot    schedule 08.10.2013

Tambahkan parameter lain (hapus centang gunakan sebagai prompt) dengan pernyataan if Anda dalam ekspresi nilai default. Saya berasumsi seluruh pernyataan sql dapat berada dalam parameter ini, tetapi diuji hanya dengan sebagian dari pernyataan sql. Dalam kueri laporan, masukkan parameter baru ini sebagai $P!{paramname}. Seharusnya berhasil.

person user2859131    schedule 08.10.2013

Anda dapat mencoba ini: -

Jika kondisi untuk teks diajukan pada kolom pertama, p_column adalah parameter dengan nilai default "col1"

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

Jika kondisi untuk teks kedua diajukan pada kolom kedua: -

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