Search code examples
if-statementgroovyjasper-reports

How do I format the following if/else in Jasper?


I am trying to format the following if/else in Jasper and having trouble. This is what I have but my syntax is wrong can someone help?

$F{PAYMENT_METHOD_DATA}  == {"deposit_name":"PayNearMe","is_important":true,"logo":"https:\/\/nj-cdn-casino.ballyinteractive.com\/cms\/V3\/Deposit-Methods\/icon-Paynearme.png"} ? "PayNearMe" :
$F{PAYMENT_METHOD_DATA} ==  {"deposit_name":"ACH (Optimal)","withdrawal_name":"ACH (Optimal)","display_order":"101","is_important":true} ? "ACH" :
$F{PAYMENT_METHOD_DATA} ==  {"deposit_name":"wire transfer","withdrawal_name":"wire transfer","display_order":"42","is_important":true} ? "Wire Transfer" :   
$F{PAYMENT_METHOD_DATA} ==  {"deposit_name":"Personal check","withdrawal_name":"Personal check","display_order":"6","is_important":true} ? "Personal Check" :
$F{PAYMENT_METHOD_DATA} ==  {"deposit_name":"Cashier''s check","withdrawal_name":"Cashier''s check","display_order":"7","is_important":true} ? "Cashiers Check": "Cash"

Solution

  • Ternary operator should be like

    condition ? execute true code : execute false code
    

    jasper condition should be like,

    $F{PAYMENT_METHOD_DATA}  == "deposit_name"?"PayNearMe":"PayMe"
    

    if you want to check multiple conditions, then you should write like,

    $F{PAYMENT_METHOD_DATA}  == "deposit_name"?($F{PAYMENT_METHOD_DATA}  == "deposit_name_other"?"PayNearMeYes":"PayMeYes"):"PayMe"