if statement with multiple and

C

Charles

i need to put this long if statement in and it has multiple ands, is there a
way to do this?

IF {R_HistoryStatement.SubCode} > 0 AND {R_HistoryStatement.TransactionCode}
= 75 THEN {R_HistoryStatement.FeeDesc} + ' Assess'
ELSE IF {R_HistoryStatement.SubCode} > 0 AND
{R_HistoryStatement.TransactionCode} = 76 THEN {R_HistoryStatement.FeeDesc} +
' Waive'
ELSE IF {R_HistoryStatement.SubCode} > 0 AND
{R_HistoryStatement.TransactionCode} = 77 THEN {R_HistoryStatement.FeeDesc} +
' Assess'
ELSE IF {R_HistoryStatement.SubCode} > 0 AND
{R_HistoryStatement.TransactionCode} = 78 THEN {R_HistoryStatement.FeeDesc} +
' Waive'
ELSE IF {R_HistoryStatement.SubCode} > 0 AND
{R_HistoryStatement.TransactionCode} = 320 THEN {R_HistoryStatement.FeeDesc}
+ ' Payment'
ELSE IF {R_HistoryStatement.SubCode} > 0 AND
{R_HistoryStatement.TransactionCode} = 330 THEN {R_HistoryStatement.FeeDesc}
+ ' Payment'
ELSE IF {R_HistoryStatement.SubCode} > 0 AND
{R_HistoryStatement.TransactionCode} = 340 THEN {R_HistoryStatement.FeeDesc}
+ ' Payment'
ELSE IF {R_HistoryStatement.SubCode} > 0 AND
{R_HistoryStatement.TransactionCode} = 720 THEN {R_HistoryStatement.FeeDesc}
+ ' Disburse'
ELSE IF {R_HistoryStatement.SubCode} > 0 AND
{R_HistoryStatement.TransactionCode} = 730 THEN {R_HistoryStatement.FeeDesc}
+ ' Disburse'
Else if {R_HistoryStatement.TransactionCode} = 511 AND
{R_HistoryStatement.SubCode} > 0
Then {R_HistoryStatement.ETDesc} + ' Bill 1'
Else if {R_HistoryStatement.TransactionCode} = 512 AND
{R_HistoryStatement.SubCode} > 0
Then {R_HistoryStatement.ETDesc} + ' Bill 2'
Else if {R_HistoryStatement.TransactionCode} = 513 AND
{R_HistoryStatement.SubCode} > 0
Then {R_HistoryStatement.ETDesc} + ' Bill 3'
Else if {R_HistoryStatement.TransactionCode} = 514 AND
{R_HistoryStatement.SubCode} > 0
Then {R_HistoryStatement.ETDesc} + ' Bill 4'
Else if {R_HistoryStatement.TransactionCode} = 530 AND
{R_HistoryStatement.SubCode} > 0
Then {R_HistoryStatement.ETDesc} + ' Disb'
Else if {R_HistoryStatement.TransactionCode} = 531 AND
{R_HistoryStatement.SubCode} > 0
Then {R_HistoryStatement.ETDesc} + ' Addl Prem'

ELSE {R_HistoryStatement.Description}
 
P

Peter Jamieson

I would probably go for something like:

{ SET X 0 }{ IF { R_HistoryStatement.SubCode } > 0
"{ IF { R_HistoryStatement.TransactionCode } = 75 "{ SET X 1 }{
R_HistoryStatement.FeeDesc } Assess" ""
}{ IF { R_HistoryStatement.TransactionCode } = 76 ""{ SET X 1 }{
R_HistoryStatement.FeeDesc } Waive" ""
}{ IF { R_HistoryStatement.TransactionCode } = 77 ""{ SET X 1 }{
R_HistoryStatement.FeeDesc } Assess" ""
}{ IF { R_HistoryStatement.TransactionCode } = 78 ""{ SET X 1 }{
R_HistoryStatement.FeeDesc } Waive" ""
}{ IF { R_HistoryStatement.TransactionCode } = 320 ""{ SET X 1 }{
R_HistoryStatement.FeeDesc } Payment" ""
}{ IF { R_HistoryStatement.TransactionCode } = 330 ""{ SET X 1 }{
R_HistoryStatement.FeeDesc } Payment" ""
}{ IF { R_HistoryStatement.TransactionCode } = 340 ""{ SET X 1 }{
R_HistoryStatement.FeeDesc } Payment" ""
}{ IF { R_HistoryStatement.TransactionCode } = 720 ""{ SET X 1 }{
R_HistoryStatement.FeeDesc } Disburse" ""
}{ IF { R_HistoryStatement.TransactionCode } = 730 ""{ SET X 1 }{
R_HistoryStatement.FeeDesc } Disburse" ""
}{ IF { R_HistoryStatement.TransactionCode } = 511 ""{ SET X 1 }{
R_HistoryStatement.ETDesc } Bill 1" ""
}{ IF { R_HistoryStatement.TransactionCode } = 512 ""{ SET X 1 }{
R_HistoryStatement.ETDesc } Bill 2" ""
}{ IF { R_HistoryStatement.TransactionCode } = 513 ""{ SET X 1 }{
R_HistoryStatement.ETDesc } Bill 3" ""
}{ IF { R_HistoryStatement.TransactionCode } = 514 ""{ SET X 1 }{
R_HistoryStatement.ETDesc } Bill 4" ""
}{ IF { R_HistoryStatement.TransactionCode } = 530 ""{ SET X 1 }{
R_HistoryStatement.ETDesc } Assess" ""
}{ IF { R_HistoryStatement.TransactionCode } = 530 ""{ SET X 1 }{
R_HistoryStatement.ETDesc } Assess" ""
}{ IF { R_HistoryStatement.TransactionCode } = 530 ""{ SET X 1 }{
R_HistoryStatement.ETDesc } Assess" ""
}{ IF { R_HistoryStatement.TransactionCode } = 530 ""{ SET X 1 }{
R_HistoryStatement.ETDesc } Disb" ""
}{ IF { R_HistoryStatement.TransactionCode } = 531 ""{ SET X 1 }{
R_HistoryStatement.ETDesc } Addl Prem" ""
}" }{ IF { REF X } = 0 "{R_HistoryStatement.Description}" "" }

which I /think/ is logically equivalent to yours, seems reasonably clear to
me and avoids deep nesting.

All the {} need to be the special field braces you can insert using ctrl-F9.
You need to use the appropriate field types for your
"R_HistoryStatement.TransactionCode" etc., e.g. { REF RHSTC }, { MERGEFIELD
RHSTC } or whatever.

Peter Jamieson
 
M

macropod

Hi Charles,

Here's another two ways:

(QUOTE({SET Value {=IF({SubCode}>0,1,0)*{TransactionCode}}}
{IF Value = 75 "{FeeDesc} + Assess"}
{IF Value = 76 "{FeeDesc} + Waive"}
{IF Value = 77 "{FeeDesc} + Assess"}
{IF Value = 78 "{FeeDesc} + Waive"}
{IF Value = 320 "{FeeDesc} + Payment"}
{IF Value = 330 "{FeeDesc} + Payment"}
{IF Value = 340 "{FeeDesc} + Payment"}
{IF Value = 720 "{FeeDesc} + Disburse"}
{IF Value = 730 "{FeeDesc} + Disburse"}
{IF Value = 511 "{ETDesc } + Bill 1"}
{IF Value = 512 "{ETDesc } + Bill 2"}
{IF Value = 513 "{ETDesc } + Bill 3"}
{IF Value = 514 "{ETDesc } + Bill 4"}
{IF Value = 530 "{FeeDesc} + Disb"}
{IF Value = 531 "{FeeDesc} + Addl Prem"}
{IF{=(Value=75)+(Value=76)+(Value=77)+(Value=78)+(Value=320)+(Value=330)+(Va
lue=340)+(Value=720)+(Value=730)+(Value=511)+(Value=512)+(Value=513)+(Value=
514)+(Value=530)+(Value=531)} = 0 {Description}}

{QUOTE{SET Value {=IF({SubCode}>0,1,0)*{TransactionCode}}}
{IF Value = 75 "{FeeDesc} + Assess"
{IF Value = 76 "{FeeDesc} + Waive"
{IF Value = 77 "{FeeDesc} + Assess"
{IF Value = 78 "{FeeDesc} + Waive"
{IF Value = 320 "{FeeDesc} + Payment"
{IF Value = 330 "{FeeDesc} + Payment"
{IF Value = 340 "{FeeDesc} + Payment"
{IF Value = 720 "{FeeDesc} + Disburse"
{IF Value = 730 "{FeeDesc} + Disburse"
{IF Value = 511 "{ETDesc } + Bill 1"
{IF Value = 512 "{ETDesc } + Bill 2"
{IF Value = 513 "{ETDesc } + Bill 3"
{IF Value = 514 "{ETDesc } + Bill 4"
{IF Value = 530 "{FeeDesc} + Disb"
{IF Value = 531 "{FeeDesc} + Addl Prem" {Description}}}}}}}}}}}}}}}}}

If the code is for a mailmerge, you'll need to add 'MAILMERGE ' before
'SubCode', 'TransactionCode', 'FeeDesc', 'ETDesc', and 'Description'. Also,
AFAIK you can't have mailmerge fields named like
'R_HistoryStatement.SubCode', which is why I've only used the second part in
each case.

You'll note that I've laid out the field codes for the 'IF Value = ' tests
with line breaks to improve readability you can use the code with or without
this but, for the second solution, you'd need to have a space character
instead.

NOTE: The field braces, which appear as '{' and '}' can't be typed in -
they're created in pairs via Ctrl-F9.


Cheers
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top