Scott on Writing

Musings on technical writing...

Crystal Reports Tip for the Day

As I alluded to in a blog post earlier this week, I am embarking on the journey of learning Crystal Reports and integrating them into an ASP.NET site.  While I have definitely learned a lot over the past 36 hours or so, it still feels a bit frustrating because sloshing through this stuff seems to take forever.  The upside is that I find myself celebrating often, when accomplishing even the most trivial tasks.  In any event, I've decided to add a few blog entries on my learning experiences with CR, in a hope that others who have to pick this up in the future might benefit from my hiccups along the way.  (To group these CR-related posts, I added a Crystal Reports category to my blog.)

Today's Crystal Reports tip is how to display some piece of random data in a report.  As you may know, Crystal Reports provides a designer that makes it (relatively) easy to create a report that is tightly bound to database data.  But sometimes you have some odd bit of data floating out there that you need to have displayed, that doesn't really relate or fit in with the data being bound to the report.  For example, in an invoice report, I might want to add a user-defined sign-off, like “Thank you for your business.”  To accomplish this, here's what I did (and, yes, I'm more than happy to hear that I did it the wrong way, as long as you can provide a better way):

  1. I started by creating a new Formula Field named SignOffMessage and dragged it onto my designer precisely where I wanted it to appear (in the Report Footer, if you must know).  (When creating a new Formula Field it will ask you for the field's formula.  For just squirting in a value from the code-behind class, I simply left the formula blank.)
  2. Next, in my code-behind class, I have a reference to the actual report in a local variable named invReport (see my earlier blog post on CR for a code snippet that shows creating this invReport local variable).  To set the formula field to a particular value, I used:

    invReport.DataDefinition.FormulaFields("SignOffMessage").Text = valueFromDatabase

That's it, worked like a charm. 

Another nice thing about Formula Fields is that they can be used to perform formulas upon existing data-bound elements.  For example, my invoice report binds a set of activities to an invoice, with each activity having fields like Description, Date, AmountDue, and so on.  Using a Formula Field, I can have in my Report Footer a summation of the AmountDue fields.  To accomplish this, I simply created a new Formula Field and set its Formula to Sum( {Invoice.AmountDue} ).

posted on Friday, October 08, 2004 1:00 PM

Feedback

# re: Crystal Reports Tip for the Day 10/8/2004 1:07 PM Richard Dudley

>To accomplish this, I simply created a new Formula Field and set its Formula to Sum( {Invoice.AmountDue} ).

You could probably also use a Running Total Field here. In this case, the formula is probably simpler to set up, but the Running Total Field setup gives you the option to summarize for only a particular group.

# re: Crystal Reports Tip for the Day 10/9/2004 10:04 AM Armando Andrade

This is a good solution, but if all you want is to pass a text value you could use a TextObject variable instead of a formula.

Title:  
Name:  
Url:
Protected by Clearscreen.SharpHIPEnter the code you see:
Comments   

Add To Your Reader

My Links

Archives

Post Categories

 

I am a Microsoft MVP for ASP.NET.
I am an ASPInsider.
<May 2008>
SMTWTFS
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

Comment Stats

DayTotal% of Total
Sunday 1866.8%
Monday 37913.9%
Tuesday 45316.7%
Wednesday 50418.5%
Thursday 53519.7%
Friday 49418.2%
Saturday 1666.1%
Total 2717100.0%

Hour1Total% of Total
12:00 AM 652.4%
1:00 AM 682.5%
2:00 AM 622.3%
3:00 AM 742.7%
4:00 AM 572.1%
5:00 AM 1033.8%
6:00 AM 1084.0%
7:00 AM 1585.8%
8:00 AM 1716.3%
9:00 AM 1475.4%
10:00 AM 1716.3%
11:00 AM 1816.7%
12:00 PM 1886.9%
1:00 PM 1696.2%
2:00 PM 1605.9%
3:00 PM 1324.9%
4:00 PM 1073.9%
5:00 PM 923.4%
6:00 PM 913.3%
7:00 PM 963.5%
8:00 PM 833.1%
9:00 PM 782.9%
10:00 PM 792.9%
11:00 PM 772.8%
Total 2717100.0%

Comments by Blog Entry Date/Time

Day Entry MadeAvg.Total
Sunday 5.54144
Monday 5.22339
Tuesday 4.28419
Wednesday 7.67637
Thursday 6.90607
Friday 5.48411
Saturday 5.33160
Total 5.842717

Hour1 Entry MadeAvg.Total
12:00 AM 5.0035
1:00 AM 1.002
5:00 AM 0.000
7:00 AM 7.0035
8:00 AM 5.35107
9:00 AM 6.32278
10:00 AM 6.47246
11:00 AM 4.41181
12:00 PM 6.88330
1:00 PM 3.00111
2:00 PM 5.41222
3:00 PM 8.64285
4:00 PM 4.0589
5:00 PM 5.92154
6:00 PM 4.52113
7:00 PM 9.67174
8:00 PM 9.80147
9:00 PM 5.05111
10:00 PM 5.4265
11:00 PM 4.5732
Total 5.842717

Learn More About Comment Stats
1 - All times GMT -8...


Blog Stats

Favorite Web Sites

My Books

My MSDN Articles