Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1227
  • Last Modified:

Crystal Report Shared Variable Value Lagging Behind SubReport Value

I've created a Crystal Report to display the sum of labor hours taken from two separate, and disconnected data tables.  The report is meant to compare the total labor hours from each of the tables, and identify discrepancies.  The report information is grouped first by person, then by payroll date.  In a main report, I've created the person and payroll date groupings, and a column which displays the sum of labor hours from one of the mentioned tables in the payroll date group's footer.  In a second column, I've inserted a subreport which provides the labor hours summary from the second data table.  This report works fine, but I'd like to condition the color of the payroll date field to change when there are discrepancies between the two labor hour column values.

To provide for a conditional check, I've created a shared numeric value in both the main report, and the subreport.  In the subreport, I have a formula which sets the shared variable's value to that of the labor hours sum in the same group footer of the labor hours sum.  In the payroll date of the main report, I check the shared variable's value to that of the labor hours sum in the main report, to conditionally set the payroll date's font color.

The problem is that the shared variable's value seems to lag behind the actual labor hours sum returned by the subreport, and is present during the conditional check for the following record.  I've included a screenshot of the report's result.

Any help in understanding when the shared variable's value is being set would be much appreciated.
laborHedvsLaborDtl.jpg
0
C_Patrick
Asked:
C_Patrick
  • 2
1 Solution
 
James0628Commented:
The basic problem is that, at best, there is no way to guarantee that a subreport will be executed before a formula in the same section is evaluated.  AFAIK, it could go either way, but it's possible that the subreport will always be executed after the formulas are evaluated.

 Either way, the answer is the same - Execute the subreport in an earlier section of the main report, before you need the value from the shared variable.  If all that you're showing from that subreport is that total value, then simply create a new section above that one (eg. if the subreport is in a group footer, create another group footer section above that one), put the subreport in the new section and use the shared variable where the subreport was.

 Don't suppress the new section (with the subreport in it).  If you do, the subreport will not be executed.  Instead:
 Change the subreport so that it produces no output (eg. suppress all of the sections in the subreport).
 Go to the subreport format and on the Subreport tab, check the "suppress blank subreport" option.
 Go to the Section Expert for the section with the subreport in it and check the "suppress when blank" option.

 James
0
 
C_PatrickAuthor Commented:
Your proposed solution works, James.

Thanks for your time in providing a detailed explaination of the problem, and its solution!

C. Patrick
0
 
James0628Commented:
You're welcome.  Glad I could help.

 James
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now