Link to home
Start Free TrialLog in
Avatar of bhavesh55
bhavesh55

asked on

"IF Statement" in Crystal report...

I want to write query like this:

If {Site.Group} = "Bldg" then
     Site.name = Site.name
Else
     Site.name = ""
End if
     
Where "site" is tablename and "Group","name"  is field of that table.It contains 3 different kind of values.If its value is "Bldg" than only it retrieves data from "site.name" field.Otherwise it doesn't show anything in report.That's it.

Let me know step by step how i put "site.name" field in my report ?

Thanks for your time in advance.

Thanks,
bhavesh55
Avatar of ndb
ndb

Instead of draging a databasefield in your report, you should make a Formula with the following:

If {Site.Group} = "Bldg" then
     Site.name
Else
     ""
End if
     
ASKER CERTIFIED SOLUTION
Avatar of marcosjimenez
marcosjimenez

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of bhavesh55

ASKER

marcosjimenez
From "insert" menu, i choose "Formula Field".Than "Field Explorer" pops up and using right click menu i select "New" and enter "txtSite" as you told me.

And wrote below mentioned text in Formula Editor:
If {Site.Group} <> "Bldg" then
    txtSite.name = ""
else
    txtSite.name = {site.name}


Error:
1)There is an error in this formula.Do you want to save it anyway ?

2)A number,currency,amount,boolean,date,time,date-time, or string is expected here.

Let me know how should i fix this ?
I am really in hurry.

Thanks,
bhavesh55
ndb,marcosjimenez & other experts
I am eagerly waiting for your reply.

Let me know as soon as you can.

Thanks,
bhavesh55
Avatar of Brendt Hess
For a crystal formula, you don't have assignments.  Try this:

If {Site.Group} = "Bldg" then
     {Site.name}
Else
    " "

Have you tried this formula?

If {Site.Group} = "Bldg" then
     {Site.name}
Else
     ""
End if

I use something like this in my own reports and it works.
I would like to give points to ndb and bhess1.

It shouldn't show me that option.

Let me know what should i do to give them points.

Well ... spliting the points of a question isn't possible.
The only thing you could do is requesting a deletion request on this question a ask two new questions with half the points on it.
bhess1
May i know the exact syntax for the "Else if" statement also.

Is this the right one ?

If {Site.Group} = "Bldg" then
     {Site.name}
Else if {Site.Group} = "Tenant" then
     {Site.name}
Else
    " "

When i try to run above one than it gives me error like:

"The remaining text does not appear to be part of the formula".

I am eagerly waiting for your reply.
Thanks,
bhavesh55



If {Site.Group} = "Bldg" then
     {Site.name}
Else
    if {Site.Group} = "Tenant" then
        {Site.name}
    Else
        " "

ndb has it right.

Also, you can write this as one IF statement:

If {Site.Group} = "Bldg" OR {Site.Group} = "Tenant" then
     {Site.name}
Else
     " " 
IMO, the only reasonable way to give two people points is to post another question with 'For ndb' or 'For bhess1' as the title, and offer more points.  

IMO, deleting the question affects how EE works... the archive of historical answers is a valuable resource for others, and should be kept intact if possible.

You might offer a suggestion to EE that allowing split points on the answer to a question would be useful - allow us to check all of the pieces that we feel answered the question, and split the points evenly between the answerers.

Hmmm... I think I'll suggest that myself!