Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations MikeeOK on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

If, else if, else statement problem

Status
Not open for further replies.

vpd

Programmer
May 15, 2007
3
CA
Hi All,

I am a new Crystal user and I am trying to write a if, else if, else statement in Crystal Syntax.

The following is my statement.

stringVar vPaymentAddress := '';

if ({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'NAT') OR
({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'NAP') OR
({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'NCA') OR
({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'SCA') OR
({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'CHN') then

vPaymentAddress := 'P.O. BOX 515552, Los Angeles, CA 90051-5812'

else if ({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'BTT') OR
({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'BTN') OR
({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'BTS') then

vPaymentAddress := 'P.O. BOX 51555530, Los Angeles, CA 90051-5830'

else if ({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'NCO') OR
({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'CCO') OR
({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'HCO') then

if not(isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD1}))
then
if {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD1} <> ' '
then
vPaymentAddress := vPaymentAddress + {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD1}+chr(13)+chr(10)

if not(isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD2}))
then
if {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD2} <> ' '
then
vPaymentAddress := vPaymentAddress + {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD2}+chr(13)+chr(10)

if not(isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_CITY}))
then
if {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_CITY} <> ' '
then
vPaymentAddress := vPaymentAddress + {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_CITY}+chr(13)+chr(10)

if not(isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_STATE}))
then
if {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_STATE} <> ' '
then
vPaymentAddress := vPaymentAddress + {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_STATE} + ' '

if not(isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ZIP}))
then
if {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ZIP} <> ' '
then
vPaymentAddress := vPaymentAddress + {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ZIP}+chr(13)+chr(10)

if not(isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_COUNTRY}))
then
if {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_COUNTRY} <> ' '
then
vPaymentAddress := vPaymentAddress + {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_COUNTRY}+chr(13)+chr(10)

else
vPaymentAddress := 'P.O. BOX 5155552, Los Angeles, CA 90051-5812';

When I try to save it, I get the error 'The remaining text does not appear to be not part of the formula' and the text I have set to bold gets highligted.

How do I correct this error?

What is it that I am doing wrong? Any suggestions are greatly appreciated.

Thank you,
VPD
 
You need an "else" after each chr(10).

-LB
 
Hi lbass,

Thanks for the reply.
I put
else
vPaymentAddress

under each chr(10).

But I still get the same error with highlighted text starting just below the first else statement.

I think I should mention one more thing.

if ({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'NCO') OR
({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'CCO') OR
({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} = 'HCO') then
I need the program to run through each line below that to get the whole address. i.e. (addr1, addr2, city, state, zip. etc..)

Any more ideas?

Thanks again.


 
Oh. There is a better way to do this.

if isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD1}) or
trim({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD1} = "" or
isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_CITY}) or
trim({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_CITY}) = "" or
isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_STATE})or
trim({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_STATE}) = "" then
'P.O. BOX 5155552, Los Angeles, CA 90051-5812' else

if {CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} in ['NAT','NAP','NCA','SCA','CHN'] then
'P.O. BOX 515552, Los Angeles, CA 90051-5812' else

if {CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} in ['BTT','BTN','BTS'] then
'P.O. BOX 51555530, Los Angeles, CA 90051-5830' else

if not({CUSTOMER_ORDER_DELIV_NOTE_REP\.ORDER_ID} in ['NCO','CCO','HCO']) then
'P.O. BOX 5155552, Los Angeles, CA 90051-5812' else

(
(
{CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD1}+chr(13)+chr(10)
) +
(
if not isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD2}) and
trim({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD2}) <> "" then {CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ADD2}+chr(13)+chr(10)
) +
(
if not isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_CITY}) and trim({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_CITY}) <> "" then
{CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_CITY}+chr(13)+chr(10)
) +
(
if not isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_STATE}) and trim({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_STATE}) <> "" then
{CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_STATE} + " "
) +
(
if not isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ZIP}) and trim({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ZIP}) <> ""
then
{CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_ZIP}+chr(13)+chr(10)
) +
(
if not isnull({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_COUNTRY}) and
trim({CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_COUNTRY}) <> "" then
{CUSTOMER_ORDER_DELIV_NOTE_REP\.COMPANY_DOC_COUNTRY}
)
)

Not exactly sure of the logic, but I think is close to what you need.

-LB
 
Hi LB,

Thanks a lot for your suggestion. It worked beautifully.

VPD
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top