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   

My Links

Ads Via DevMavens

Archives

Post Categories

 

I am a Microsoft MVP for ASP.NET.
I am an ASPInsider.
<March 2010>
SMTWTFS
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Comment Stats

DayTotal% of Total
Sunday 2056.8%
Monday 42514.1%
Tuesday 51917.2%
Wednesday 55518.4%
Thursday 58019.2%
Friday 54718.1%
Saturday 1886.2%
Total 3019100.0%

Hour1Total% of Total
12:00 AM 782.6%
1:00 AM 812.7%
2:00 AM 682.3%
3:00 AM 822.7%
4:00 AM 692.3%
5:00 AM 1264.2%
6:00 AM 1183.9%
7:00 AM 1816.0%
8:00 AM 1926.4%
9:00 AM 1585.2%
10:00 AM 1886.2%
11:00 AM 1936.4%
12:00 PM 2016.7%
1:00 PM 1846.1%
2:00 PM 1695.6%
3:00 PM 1354.5%
4:00 PM 1153.8%
5:00 PM 1073.5%
6:00 PM 1013.3%
7:00 PM 1073.5%
8:00 PM 923.0%
9:00 PM 882.9%
10:00 PM 913.0%
11:00 PM 953.1%
Total 3019100.0%

Comments by Blog Entry Date/Time

Day Entry MadeAvg.Total
Sunday 4.97159
Monday 4.80384
Tuesday 4.04477
Wednesday 7.39680
Thursday 6.26676
Friday 5.07466
Saturday 4.78177
Total 5.403019

Hour1 Entry MadeAvg.Total
12:00 AM 5.2937
1:00 AM 1.002
5:00 AM 0.000
7:00 AM 3.8550
8:00 AM 3.72134
9:00 AM 6.06297
10:00 AM 5.63276
11:00 AM 4.22194
12:00 PM 6.16351
1:00 PM 3.09133
2:00 PM 4.89230
3:00 PM 7.64321
4:00 PM 4.00108
5:00 PM 6.07170
6:00 PM 4.64116
7:00 PM 8.95188
8:00 PM 8.63164
9:00 PM 5.00115
10:00 PM 6.31101
11:00 PM 4.5732
Total 5.403019

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


Blog Stats

Favorite Web Sites

My Books

My MSDN Articles