Archive for February, 2020



Charting based on a parameter value

Saturday 29 February 2020 @ 10:51 am

I have had several customers over the years who wanted to add a fixed line to a bar/line chart. This is typically some type of target or standard that they want to compare the actual data. If this value is in the report’s query results, then it is pretty straightforward. But what if the user wants to be prompted to enter the value to be used in the chart? Crystal won’t let you add the parameter directly to the chart. Even if you put the parameter value in a formula, Crystal might not allow that formula in the chart.

The reason is that parameters come before the data is read. This means that they are evaluated “BeforeReadingRecords” by default. Values that come before the data is being read are not eligible for grouping, sorting, totaling or charting. But if you put the parameter in a formula you can change the evaluation time of the formula to “WhileReadingRecords”. This will make it into a column of values. And even though they are all the same, they will be available in the chart expert as a value to be summarized. Something like this:

WhileReadingRecords;
{?YourParameter}

Then in your chart you can either summarize it by using a Maximum, or checking the “Do Not Summarize” check mark.

If you need to do this and have trouble then call me to schedule a short consult, or Email me your report and explain your requirement.




Using the ‘parent’ section in the Section Expert

Sunday 23 February 2020 @ 7:24 pm

If you have ever done a page break or a suppress condition in Crystal Reports, you have been in the Section Expert. This is where you can change any of the formatting properties of the sections. And if you have ever split a section into subsections, you know that each subsectioin has their own set of properties in the Section Expert.

But users don’t always notice that whenever you split a section into subsections, the parent section still exists in the Section Expert. So when you split the Details section in to Details A and Details B, there is still an item called Details in the list of sections, and this ‘parent’ section has properties that apply to all of the subsections at once. For example:

  1. If you check “Keep Together” in the parent section Crystal will try to keep all the subsections together on a page, and if they won’t fit will move them ALL to a new page.
  2. If you put a suppress condition in the parent section it will suppress ALL of the subsections at once.
  3. If you check “New Page After” in the parent section it will generate a page break after the last detail subsection, even if you rearrange the details.

You might find that this helps simplify formatting sections with subsections.




“New Page After” on group 2 orphans group footer 1

Tuesday 18 February 2020 @ 8:24 am

If you have two group levels and you put a “New Page After” on Group Footer 2, you will find that Group Footer 1 gets orphaned onto it’s own page. To fix this put a “New Page After” on Group Footer 1. Then instead of putting the same check mark into Group Footer 2 you use the following condition on the “New Page After” property:

{Group1.DatabaseField} = Next ({Group1.DatabaseField})

Of course you use your own database field from Group 1 in the formula. This prevents Group 2 from doing a page break on the last record of the group. On that record the next value for Group 1 is different, so the page break is handled by Group 1.




The humble beginning

Monday 10 February 2020 @ 5:56 pm

I now have a copy of the very first version of Crystal Reports – still in the box with shrinkwrap. I had never even seen this version before. This original version of Crystal Reports was released in 1991.  I didn’t even hear about Crystal till 1994.  I did collect all the versions from 3 on but never ran across v1 or v2.  So it was a nice surprise when Dan Smith of Crystal Certified Solutions in Buffalo sent me a copy.  Thanks, Dan.





Recrystallize Pro