- •Welcome to Seagate Crystal Reports
- •Welcome
- •Two kinds of Hands-On tutorials
- •Command, button, key, and control conventions
- •Using Seagate Crystal Reports documentation
- •Seagate Crystal Reports online Help features
- •If you need more help...
- •Installation Requirements
- •Installing Seagate Crystal Reports
- •Installing on a network workstation
- •Upgrading from a previous version
- •Quick Start
- •Subreports expand report usefulness
- •Query Designer adds ad-hoc querying capabilities
- •Parameter fields mean multi-purpose reports
- •Text objects give you text with intelligence
- •Preprinted-form reports easier than ever
- •More powerful formulas extend your capabilities
- •Web solution serves up variety of online reports
- •HTML exporting simplifies Web activities
- •New database support improves data access
- •Running totals made easy
- •Smart Navigation
- •Learning Seagate Crystal Reports
- •User’s Guide
- •Online Help
- •Books Online
- •Sample Reports
- •Glossary
- •Sample Data - CRAZE.MDB
- •Suggested learning paths
- •The application window
- •Menu bar
- •Standard toolbar
- •Supplementary toolbar
- •Format bar
- •Status bar
- •Shortcut menus
- •Cursors
- •Design Tab
- •Preview Tab
- •Other fundamentals
- •HANDS-ON (Report Design Environment)
- •How to add, delete, and move guidelines
- •How to move and position objects using guidelines
- •How to turn the grid on/off
- •How to zoom your report in and out
- •How to undo/redo activities
- •How to drill down on summarized data
- •HANDS-ON (Sections and Areas)
- •How to add, delete, move, and merge sections
- •How to split and resize sections
- •Basic report design
- •How to design a prototype
- •Concepts in reporting
- •Beyond basic reports
- •HANDS-ON (Report Creation and Design)
- •How to select data and begin creating a report
- •How to add and link multiple tables
- •How to insert database fields
- •How to insert special fields
- •How to insert a page n of N field
- •How to insert text objects
- •How to use a database field in a text object
- •How to insert a picture
- •How to select, move, and resize objects
- •How to hide parts of the report
- •HANDS-ON (Finishing Your Report)
- •How to insert page headers and footers
- •How to add a title page to your report
- •How to add summary information to your report
- •Printing considerations
- •Design solutions for printing/distributing
- •Report creation checklist for distributed reports
- •Updating printer drivers
- •Report distribution
- •HANDS-ON (Distributing Your Report)
- •How to export reports
- •How to fax a report
- •How to request reports from a web browser
- •How to specify parameter field values
- •How to log on to a database
- •How to view plain HTML reports
- •Overview
- •Getting started
- •Record Selection
- •Grouping and sorting
- •Completing the report
- •Introduction
- •Working with Arbor Essbase data
- •HANDS-ON (Reporting on OLAP data)
- •How to create a cross-tab with Essbase data
- •Using multiple sections in reports
- •HANDS-ON (Multiple Section Reports)
- •How to work with text objects
- •How to create a form letter using a text object
- •How to format objects conditionally
- •How to print conditional messages in form letters
- •How to alternate background colors for rows
- •How to eliminate blank lines
- •How to add blank lines conditionally
- •Formatting concepts
- •Absolute formatting
- •Types of formatting properties
- •Conditional formatting
- •HANDS-ON (Absolute Formatting)
- •How to add color, shading, and borders
- •How to add/edit lines and boxes
- •How to change margins
- •How to add/delete white space between rows
- •How to set page orientation and paper size
- •HANDS-ON (Conditional Formatting)
- •How to flag values that meet certain conditions
- •Record selection
- •Group selection
- •Record selection formula templates
- •HANDS-ON (Record and Group Selection)
- •How to create a record or group selection formula
- •How to use record/group selection templates
- •How to select the top or bottom N groups
- •Sorting, Grouping, and Totalling Overview
- •Creating custom groups
- •HANDS-ON (Sorting, Grouping, and Totalling)
- •How to do a single field sort
- •How to do a multiple field sort
- •How to group data
- •How to sort records within groups
- •How to summarize grouped data
- •How to subtotal grouped data
- •How to sort based on summarized group values
- •How to create multiple levels of subtotals
- •How to group data in intervals
- •How to calculate a percentage of the grand total
- •How to create group headers
- •What are formulas?
- •Other formula conventions
- •Formula syntax
- •How formulas are evaluated - Order of precedence
- •HANDS-ON (Formulas 101)
- •How to insert a formula in your report
- •How to delete formulas from your report
- •How to copy formulas from online Help
- •How to copy formulas from one report to another
- •How to create if-then-else formulas
- •How to format text with formulas
- •How to use variables in formulas
- •How to declare a variable
- •How to assign a value to a variable
- •How to conditionally assign values to variables
- •How to use an array in a formula
- •How to use a range in a formula
- •How to use semicolons in formulas
- •How to fine tune group selection formulas
- •How to fine tune record selection formulas
- •How to debug a formula
- •Introduction
- •HANDS-ON (Advanced Totalling)
- •How to maintain running totals in a list
- •How to subtotal running totals within groups
- •How to subtotal without grouping
- •How to subtotal true A to B, A to C reports
- •Parameter field objects overview
- •Multiple parameter fields
- •Parameter field considerations
- •HANDS-ON (Parameter Field Objects)
- •How to create a parameter field
- •How to use a parameter field in a formula
- •How to respond to parameter field prompts
- •How to use wildcards with parameter fields
- •How to set a report title using parameter fields
- •How to set sort order using parameter fields
- •Graphing Overview
- •Choosing a graph or chart type
- •Where to place your graph
- •Data you can graph on
- •Before you create your graph
- •HANDS-ON (Graphing)
- •How to graph on a summary or subtotal field
- •How to graph on a details field
- •How to graph on a formula field
- •How to graph on cross-tab summaries
- •How to edit graphs using PGEditor
- •How to use the underlay feature with graphs
- •OLE Objects Overview
- •Inserting OLE objects in your reports
- •Linked vs. Embedded Objects
- •The dynamic OLE menu commands
- •OLE and the Picture command
- •General OLE considerations
- •HANDS-ON (OLE Objects)
- •How OLE objects are represented in your report
- •How to use OLE - General Overview Tutorial
- •How to insert a graphic/picture as an OLE object
- •What are subreports?
- •Unlinked vs. linked subreports
- •How subreport linking works
- •HANDS-ON (Subreports)
- •How to insert a subreport
- •How to preview your subreport
- •How to combine unrelated reports using subreports
- •How to use subreports with unlinkable data
- •Cross-tab overview
- •Cross-tab components
- •HANDS-ON (Cross-Tab Objects)
- •How to create a cross-tab object
- •How to format a cross-tab
- •How to print cross-tabs that span multiple pages
- •The Crystal Query Designer
- •HANDS-ON (Queries)
- •How to create a new query
- •How to add tables to a query
- •How to link tables and specify a join type
- •How to add fields to a query
- •How to identify unique values in a query
- •How to summarize data with aggregate functions
- •How to sort records according to field values
- •How to specify records to be included in a query
- •How to select groups to be included in a query
- •How to create an SQL expression
- •How to create a query from another Crystal Query
- •How to select a query for a report
- •How to use a parameter field in a query
- •Dictionaries Overview
- •HANDS-ON (Dictionaries)
- •How to create a new dictionary
- •How to add a data file
- •How to open an SQL or ODBC data source
- •How to link multiple tables
- •How to select tables and fields for users
- •How to add/create formulas
- •How to move fields/field headings within the list
- •How to update the location of a database table
- •How to add a new field heading
- •How to add Help text
- •How to add a graphic
- •How to create sample data for users to browse
- •How to edit an existing dictionary
- •How to convert a 3.x or 4.x dictionary file
- •How to select a dictionary for a report
- •Databases Overview
- •For additional information
- •HANDS-ON (Working With Databases)
- •How to open Access queries through DAO
- •How to open Access queries through ODBC
- •How to open Access parameter queries
- •How to set up an ODBC data source
- •How to check settings for an ODBC data source
- •How to log on to an ODBC data source
- •How to add an ODBC database table to a report
- •How to log on to MS SQL Server via ODBC
- •How to log off an ODBC data source
- •How to set up an A to B, A to C link
- •How to edit an SQL query
- •How to use an ACT! database
- •How to open the NT Event Log
- •Introduction
- •Four types of data
- •Direct access database files
- •ODBC data sources
- •Crystal Query Designer files
- •Crystal Dictionary files
- •Multi-pass reporting
- •Product support
- •Web support
- •E-mail support
- •Fax support
- •Telephone support
- •Extended technical support policy
- •Product registration
- •Product return policy
- •Product replacement policy
- •Glossary
How to create if-then-else formulas
If-Then-Else formulas are conditional formulas: if a condition is met, then a certain consequence, an action, takes place. If the condition is not met, a different action takes place. If-Then-Else formulas are created using the If-Then-Else operator. Search for If- Then-Else in Seagate Crystal Reports online Help.
Example |
● If a sales representative has already earned the maximum |
|
allowable bonus, print the amount of the maximum bonus |
|
allowed; if he has not yet earned the maximum, calculate |
|
the bonus actually earned and print it. |
|
● If the value in the title field is “Mr.”, print “Dear Mr.” as the |
|
beginning of the salutation; if it is not “Mr.”, print “Dear |
|
Ms.” as the salutation. |
|
● If the quantity on hand of a part is less than or equal to the |
|
reorder amount, reorder according to the reorder |
|
instructions; if the quantity is greater than the reorder |
|
amount, do nothing. |
These are just a few of the kinds of conditional formulas you can create using the If-Then-Else operator.
When using the If-Then-Else operator, remember that there must be three separate parts to any If-Then-Else formula:
1. If
This portion sets the condition.
2. Then
This portion sets the action that takes place when the If condition is met.
3. Else
This portion sets the action that takes place when the If condition is not met.
NOTE: The data types (text, number, currency, date, time, dateTime, or Boolean) for the Then and Else parts of your formula must be the same.
346 |
Seagate Crystal Reports User’s Guide |
Thus, if the action that takes place if the condition is met (Then) is to print a text string, the action that takes place if the condition is not met (Else) must also be to print a text string, even if that text string is empty. For example:
If {file.FIELD} = 5 Then “Text String”
Else
“Another Text String”
OR
If {file.FIELD} = 5 Then 0
Else 1
NOTE: You can not create If-Then-Else formulas that use a Time or dateTime data type as a Then action and a null or empty Time or dateTime as an Else action because there are no null or empty values for those data types. You can print Time or dateTime values conditionally. See How to print Time or dateTime values
conditionally, Page 347.
How to print Time or dateTime values conditionally
If you want to print Time or dateTime values conditionally (print the field if the condition is met, print the field in another color if the condition is met, etc.), you can not do it using an If-Then-Else formula because there is no such thing as an empty or null value for the Time or dateTime data type. Instead, you insert the field itself in your report and set its Suppress property conditionally.
Place the dateTime field where you want it to print on your report.
Select the field and click the OBJECT PROPERTIES button on the supplementary toolbar. The Format Editor appears.
! Click the Common Tab to activate it.
" Click the Formula button to the right of the Suppress property.
Advanced Formulas |
347 |
#Type the following formula in to the Formula Editor when it appears.
{employee.LAST NAME} <> “Fuller”
Now when you run the report, the program will print the dateTime field whenever the employee last name is Fuller and it will suppress the field when the last name is anything but Fuller.
How to create multi-condition if-then-else formulas
You can create powerful multi-condition formulas using the If-
Then-Else operator.
Multi-condition and nested If-Then-Else formulas can be set up in this general pattern:
●If the X (first) condition is met, Then, go to the Y (second) condition.
●If the Y condition is met, Then perform the Y action.
●If the Y condition is not met (Else), perform the Y alternative.
●If the X condition is not met (Else), perform the X alternative. Thus:
If {file.FIELD1} = “X” Then
If {file.FIELD2} = “Y” Then “Y Action”
Else
“Y Alternative”
Else
“X Alternative”
See How to create if-then-else formulas, Page 346.
This formula checks the field FIELD1 first.
●If the value of that field is “X,” the FIELD2 field is checked.
¾If the value of that field is “Y,” “Y Action” is printed.
¾If the value of FIELD2 is not “Y,” “Y Alternative” is printed.
348 |
Seagate Crystal Reports User’s Guide |
● If the value of FIELD1 is not “X,” “X Alternative” is printed.
While multi-condition formulas look complex at first, after you have worked through one or two you will find that they are not as intimidating as they seem, especially given the work they perform.
How to format text with formulas
You can use formulas to format text. For instance, functions are included with the program for removing unnecessary leading or trailing spaces from text stings as well as converting text entirely to upper or lower case.
Example TrimLeft(“ Al/4520/B12”)
«Returns “A1/4520/B12”.»
TrimRight(“A1/4250/B12 “)
«Returns “A1/4250/B12”.»
LowerCase(“Ronald Black”)
«Returns “ronald black”.»
Related Topics
Formatting, Page 231
How to use variables in formulas
Variables can be used to solve many formula problems, but they have two primary uses:
1.streamlining formulas, and
2.expanding formula capabilities.
Unlike a constant value which is fixed and unchanging, a variable can be repeatedly assigned different values. You assign a value to a variable and the variable maintains the value until you later assign a new value. Then the variable maintains the new value until you later assign a newer value, etc.
Advanced Formulas |
349 |
Using variables
to streamline formulas
Using variables, you can write formulas much more efficiently than you can without them. For example, to evaluate the {customer.FAX} field to determine if the area code is for Washington state (206, 360, 509) or British Columbia, Canada (604, 250), without the benefit of variables, you must write a formula similar to the following:
If {customer.FAX}[1 to 3] = “604” or {customer.FAX}[1 to 3] = “250”
Then “BC”
Else
If {customer.FAX}[1 to 3] = “206” or {customer.FAX}[1 to 3] = “509” or {customer.FAX}[1 to 3] = “360” Then
“WA”
Else
“”
See How to create if-then-else formulas, Page 346, and search for
Subscript in Seagate Crystal Reports online Help.
You have to write out the instructions for extracting the area code from the telephone number field ({customer.FAX} [1 to 3]) every time you want the formula to use the area code from the current record.
By using a variable (for example, AreaCode), you write those instructions one time. Using those instructions, the program automatically extracts the area code from the {customer.FAX} field, and stores it in the variable each time it reads a new record. You simply reference the variable AreaCode whenever you want to use the area code from the current record in your formula. Here's an example of the formula using a variable:
StringVar AreaCode:={customer.FAX}[1 to 3]; If AreaCode = “604” or AreaCode = “250” Then
“BC”
Else If AreaCode = “206” or AreaCode = “509” Then
“WA” Else
“”
350 |
Seagate Crystal Reports User’s Guide |
Using variables
to expand formula capabilities
Not only does the streamlined version take less time to write, but it takes less time to process as well, so your report prints more quickly.
Besides their impact on streamlining formulas, variables allow you to expand your formula writing capabilities. Before discussing the specifics of using variables in formulas, it is important to understand some things about the way the Formula Editor reads formulas.
SPECIAL REQUIREMENTS FOR USING VARIABLES IN FORMULAS
Through the discussion thus far, formula elements that have been narrowly defined:
●a given operator only works in certain situations and with certain kinds of text and/or data,
●a function only works with a specific number of arguments, and each argument must be a specific data type, and
●If-Then-Else formulas work only if the data type of the Else part of the formula matches the data type of the Then part.
Such narrow definition allows you to create formulas, in many cases, simply by filling in the blanks, with the formula checker pointing out any mistakes you make.
Variables, however, are not narrowly defined. They are extremely flexible; you make them what you want them to be. You create them at will and include them in formulas as needed.
Because of this flexibility, it is necessary for you to define the variables before using them so that the program:
●is aware of them,
●understands how you intend to use them, and
●can set aside and set up the memory space they require.
You also need to assign values to the variables so the program knows what values they are to return.
Seagate Crystal Reports knows only what you tell it about the variables. The fail-safe formula-checker routines that work automatically with the other formula elements work with variables only after you define them.
Advanced Formulas |
351 |
Declaring the variable
Naming the variable
Variable data types
To use a variable in a formula, you must do three things:
1.declare the variable,
2.set the value of the variable, and
3.enter the variable in the formula.
Seagate Crystal Reports requires you to declare all variables prior to using them. When you declare a variable, you tell the program:
●the name you intend to use for the variable, and
●the type of data you want the variable to hold.
The program uses this information to set aside a piece of memory for receiving and storing the values that are assigned to the variable.
NOTE: If you declare a variable with the same name and data type in two or more formulas, the formulas share the same variable. Thus, if one formula sets the value of the variable, the variable in the second (and additional formulas) reflects the change.
You can name the variable anything you wish with the following qualifications:
●the variable name must not exceed 254 characters, and
●it can not have the same name as an operator or built-in function. Search for Functions and Operators and Variables in Seagate Crystal Reports online Help.
NOTE: As a general rule, you are probably better off if you keep the variable name short, easy to remember, and unique (not so close to the name of another variable as to cause confusion).
The data type of a variable determines the type of data that can be stored as a value in that variable. You can create a variable with one of seven data types:
1.number (100000)
2.currency ($30,000.00)
3.Boolean (TRUE)
4.date (January 1, 1996)
352 |
Seagate Crystal Reports User’s Guide |