9
votes

I have a view which shows data on crystal reports where I have fields like tariff,rental,shares,gross and net.My problem is if someone changes the tariff in database it would show 2 rows of the same record with different tariff which is normal behavior from database point of view but I want to suppress the field of monthly rental to 0 if the same id has different tariff or the rental is repeated in new record.

ID  Tariff  Rental
1    20       390
1    15       390

I want the field of Rental on reports to be suppressed if duplicates based on id.Currently I have used this formula in crystal report to check previous field data and suppress if duplicate.

{DatabaseField}=Previous({DatabaseField})

It is working fine but if the id is not same and the rental is repeated then also it will suppress which I don't want.I want it to suppress only for same id.

4

4 Answers

22
votes

You have to write the formula into field suppress. (No need on suppress if duplicated)

On Rental Field {ID} = previous({ID}) and {rental} = previous({rental})

If ID and Rental are same then only the Report will suppress Rental.

I guess this will work for you.

3
votes
  1. In Crystal Reports, right-click on the Details section and select Section Expert.

    1. In the Section Expert dialog box, select the X + 2 button beside the Suppress command. The check box must remain unselected for this formula to work.
    2. In the Formula Editor dialog box, create a conditional formula containing the Next function to evaluate the records for duplicate values and to suppress the Details line

    example: {Table.Databasefield}=Previous({Table.Databasefield})

0
votes

I had to make a slight change to the formula in the solution by Janarthanan by adding parenthesis to make it work with Crystal XI.

I used:

{ID}=previous({ID}) and {rental}=previous({rental})

this formatting variation, which is presented in the edited question, helped me to solve a similar problem.

0
votes

Put this in suppress formula of field to hide.

if {myTable.ID} = previous({myTable.ID}) then true else false