cancel
Showing results for 
Search instead for 
Did you mean: 

IF Else If Statement

Former Member
0 Kudos

HOw do you string two if statements together. Here is what I am looking at and getting a road block

whileprintingrecords;

if {TPHASE.DF_DATE}= #1/31/2006 12:00AM# or

{TPHASE.DF_DATE}= #2/28/2007 12:00AM# or

{TPHASE.DF_DATE}= #3/31/2007 12:00AM# or

{TPHASE.DF_DATE}= #4/30/2007 12:00AM# or

{TPHASE.DF_DATE}= #5/31/2007 12:00AM# or

{TPHASE.DF_DATE}= #6/30/2007 12:00AM# or

{TPHASE.DF_DATE}= #7/31/2007 12:00AM# or

{TPHASE.DF_DATE}= #8/31/2007 12:00AM# or

{TPHASE.DF_DATE}= #9/30/2007 12:00AM# or

{TPHASE.DF_DATE}= #10/31/2007 12:00AM# or

{TPHASE.DF_DATE}= #11/30/2007 12:00AM# or

{TPHASE.DF_DATE}= #12/31/2007 12:00AM# then

numbervar escalation;

escalation:= escalation+({#ActiveProjDet}/1.035);

else

If {TPHASE.DF_DATE}= #1/31/2008 12:00AM# or

{TPHASE.DF_DATE}= #2/28/2008 12:00AM# or

{TPHASE.DF_DATE}= #3/31/2008 12:00AM# or

{TPHASE.DF_DATE}= #4/30/2008 12:00AM# or

{TPHASE.DF_DATE}= #5/31/2008 12:00AM# or

{TPHASE.DF_DATE}= #6/30/2008 12:00AM# or

{TPHASE.DF_DATE}= #7/31/2008 12:00AM# or

{TPHASE.DF_DATE}= #8/31/2008 12:00AM# or

{TPHASE.DF_DATE}= #9/30/2008 12:00AM# or

{TPHASE.DF_DATE}= #10/31/2008 12:00AM# or

{TPHASE.DF_DATE}= #11/30/2008 12:00AM# or

{TPHASE.DF_DATE}= #12/31/2008 12:00AM# then

numbervar escalation;

escalation:= escalation+({#ActiveProjDet}/1.071);

How do I properly string together if statements

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Try it this way:


numbervar escalation;
if {TPHASE.DF_DATE}= #1/31/2006 12:00AM# or
{TPHASE.DF_DATE}= #2/28/2007 12:00AM# or
{TPHASE.DF_DATE}= #3/31/2007 12:00AM# or
{TPHASE.DF_DATE}= #4/30/2007 12:00AM# or
{TPHASE.DF_DATE}= #5/31/2007 12:00AM# or
{TPHASE.DF_DATE}= #6/30/2007 12:00AM# or
{TPHASE.DF_DATE}= #7/31/2007 12:00AM# or
{TPHASE.DF_DATE}= #8/31/2007 12:00AM# or
{TPHASE.DF_DATE}= #9/30/2007 12:00AM# or
{TPHASE.DF_DATE}= #10/31/2007 12:00AM# or
{TPHASE.DF_DATE}= #11/30/2007 12:00AM# or
{TPHASE.DF_DATE}= #12/31/2007 12:00AM# then
escalation:= escalation+({#ActiveProjDet}/1.035)
else
If {TPHASE.DF_DATE}= #1/31/2008 12:00AM# or
{TPHASE.DF_DATE}= #2/28/2008 12:00AM# or
{TPHASE.DF_DATE}= #3/31/2008 12:00AM# or
{TPHASE.DF_DATE}= #4/30/2008 12:00AM# or
{TPHASE.DF_DATE}= #5/31/2008 12:00AM# or
{TPHASE.DF_DATE}= #6/30/2008 12:00AM# or
{TPHASE.DF_DATE}= #7/31/2008 12:00AM# or
{TPHASE.DF_DATE}= #8/31/2008 12:00AM# or
{TPHASE.DF_DATE}= #9/30/2008 12:00AM# or
{TPHASE.DF_DATE}= #10/31/2008 12:00AM# or
{TPHASE.DF_DATE}= #11/30/2008 12:00AM# or
{TPHASE.DF_DATE}= #12/31/2008 12:00AM# then
escalation:= escalation+({#ActiveProjDet}/1.071);

Answers (3)

Answers (3)

Former Member
0 Kudos

Thank you all!!

Former Member
0 Kudos

hi John,

If I am not mistaken, the issue with your formula is the semi colons inside the if statement. I do believe that when Crystal hits one, it assumes the if is over, as the if itself is a single statement which should be finished with a semi.

To solve the problem in the formula as is, define your variable outside of the logical structure, and simply assign its value inside the if with no semis. It should work then.

Based on the formula, I'm guessing you're an old school programmer, and you're used to declaring variables on the fly. In my experience, it's easier to do it all at once.

Former Member
0 Kudos

Hey John,

Why not just say:


numbervar escalation;
If Year({TPHASE.DF_DATE}) =< 2007 Then
       escalation:= escalation+({#ActiveProjDet}/1.035)
else
       escalation:= escalation+({#ActiveProjDet}/1.071)

The Panda