Using Crystal Reports “Next” and “Previous” Functions

Today  I am going to write about  the “Next” and  “Previous” Functions available with Crystal Reports.  As their names describe the intent of these functions is to provide you a value of your selected field for either  the Next or the Previous record as shown in your report.


For example if I wanted to determine the number of days it has been since a History record has been written against an Account in SalesLogix,  I could use these two functions along with the DateDiff function  to organize our data.  Let me give you an idea of how!


First, create a SalesLogix report with the History table.  Make sure to create two groups, group 1 is for the Account Name – sorted ascending, group 2 is by History Complete Date – sorted ascending by second.  The group level fields are used in the report.  Use your Section Expert to have group1 overlay group2.  Set the fields in the two groups so they would line up into columns if they were next to each other.  Also,  I  suggest suppressing all group footers and the detail section in your report.


Now create a formula field called “Next” and add the following formula:


IF {HISTORY.ACCOUNTNAME} = Next ({HISTORY.ACCOUNTNAME}) then CSTR(Next ({HISTORY.COMPLETEDDATE})) else “”


This formula states if the current records Account Name does not equal the next records Account name then do not show the next records Complete date.   If you do not include the account comparison in the formula then “Next” will display a value for the next record even if it is not from the same account. 


Add this field anywhere in History Group 2.  If you put this field by the complete date you will see that the field displays the date of the next records complete date.  The last record under the group for the Account will be blank.  What I want is this last History record that was added for this Account and none of the others so I will use this blank field to my advantage.  My group 2 suppression formula looks something like this.


{@Next}<>””


This should bring you down to just one record per account.  Since none of the data showing has a “Next” value so remove that field from the report.


Let’s go ahead and create another field called “Previous” using the following formula:


IF {HISTORY.ACCOUNTNAME} = Previous ({HISTORY.ACCOUNTNAME}) then CSTR(CDATE(Previous ({HISTORY.COMPLETEDDATE}))) else “”


This field is very similar to the “Next”.  Add this field to the report and you will see that you now have the date of the previous History record.  If the value is blank then there is not a previous record in the system


So you now know the Complete date of  the last History record along with the Complete Date of  record prior to the last History record, but how long has it been since the last History record?  Create one final formula field called “Days Since” using this formula:


DateDiff (“d”,{HISTORY.COMPLETEDDATE},CurrentDate)


Add this to your group 2 and you will have all the information you need to see what Accounts are in need of some attention.


 


Thanks


Geo


 


 


 

Submit a Comment

Your email address will not be published. Required fields are marked *

Subscribe To Our Newsletter

Join our mailing list to receive the latest Infor CRM (Saleslogix) news and product updates!

You have Successfully Subscribed!