- •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
$Paste the formula into the Formula text box using the Paste command (Ctrl-V).
Add additional formula elements as needed.
How to fine tune record selection formulas
Uppercase/
lowercase inconsistencies
You may have run into a situation in which you create a record selection formula (using the RECORD command on the Report|Edit Selection Formula menu), and, while header and footer information prints on your report, no detail information appears. The problem is a selection formula that is rejecting all records, and this usually occurs because of some inadvertent error in the creation of the selection formula.
There are several things that you can look for as the cause of your problem in the selection formula:
●Uppercase/lowercase inconsistencies, Page 366
●Number in text object not in quotes, Page 367
●Unwanted spaces appear in selection formula, Page 368
Record selection formulas are case sensitive. That is, “Bob” matches only with “Bob”. It does not match with “bob”, “BOB”, “BoB”, “bOB”, “boB”, or “BOb”. Thus, if your selection formula is set to include only those records with “BOB” in the {customer.CONTACT FIRST NAME} field, but all the entries in the {customer.CONTACT FIRST NAME} field are mixed case (“Bob”, for example), the selection formula will find no matches and thus not print any details for the report.
You can solve this problem by using the UpperCase (str) or LowerCase (str) functions in your selection formula to convert field data to a consistent case before the program begins its selection. For example, if you were using this formula:
{customer.CONTACT FIRST NAME} = “BOB”
you can change the formula to this:
UpperCase({customer.CONTACT FIRST NAME}) = “BOB”
366 |
Seagate Crystal Reports User’s Guide |
Number in text
object not in quotes
This last formula first converts the value of the {customer.CONTACT FIRST NAME} field to upper case characters and then checks to see if the value in that field is equal to “BOB”. Using this formula, any instance of the three letters “b” “o” “b” will be a match, regardless of case, because the case will be converted first to uppercase for consistency.
You could use the LowerCase function in a similar manner to match with “bob”.
Check your selection formula closely and make sure you have the case correct on any text you are trying to match. If in doubt, use the UpperCase (or LowerCase) function to assure consistency and proper matches.
Another formula that does much the same as that above is:
“BOB” in UpperCase({customer.CONTACT FIRST
NAME})
When a number is stored in a text object, it is text even though it looks like a number. Whenever a value from a text object is used in a record selection formula, you must surround the value with single or double quotation marks. If your selection formula is set to look for a number in a text object and you fail to surround the number with quotes in the selection formula, the selection formula will find no matches and thus not print any details for the report.
For example, this selection formula:
{customer.CUSTOMER ID} = 12345
will not find any matches, even though the value 12345 appears in the {customer.CUSTOMER ID} field of many records.
To select records with the characters 12345 in a string field, you must put quotes around the characters you are attempting to match, like this:
{customer.CUSTOMER ID} = “12345”
Check your selection formula closely, and make sure that any numbers you are attempting to match in a text object are surrounded by single or double quotation marks.
Advanced Formulas |
367 |
Unwanted
spaces appear in selection formula
Troubleshooting
record selection formulas
Spaces are characters, and when you include spaces in the search key of a record selection formula, the formula looks for records with the exact match in the selected field, spaces and all. For example, the following formula:
“Mr . “ in {customer.TITLE}
will not find any matches with the form of address “Mr.” because there is an extra space in the search key between the letter “r” and the period. Likewise, “Ph. D” will not match “Ph.D”.
Check your selection formula closely, and make sure that the spaces in the selection formula match the spaces in the fields you are trying to match.
To troubleshoot your selection formula, you will first begin making sure that all of the fields referenced in the selection formula are placed on your report, then delete the selection formula, and test it as you rebuild it, step by step.
Write down the record selection formula on paper. You will use the written copy of the selection formula to help you reconstruct the selection formula a step at a time.
Remove the record selection formula from your report by deleting the formula from the Formula text box in the Formula Editor.
! Click Accept when finished.
"Make certain that all fields referenced in the record selection formula (the selectors) are on the report physically and not hidden.
For example, if one of the selectors is:
{customer.POSTAL CODE} > “80000”
but the {customer.POSTAL CODE} field is not used on your report (as in the case of a sales report that uses the zip code to define territories but does not include the postal code in the report data), then insert the {customer.POSTAL CODE} field in an obvious place on the report.
Or, if one of the fields referenced in the selection formula is on the report but hidden, unhide it by toggling the Hide when Printing option off in the Format Editor for that field.
368 |
Seagate Crystal Reports User’s Guide |
#Print the report and make certain that the data in those fields referenced by the selection formula prints satisfactorily. Make certain that all the data prints. For example, if there are x total records in the database you should have x records printing for each of the referenced fields. This establishes a baseline against which you can compare the results of printing with the selection formula.
$When you are sure you are getting satisfactory results without the selection formula, enter the selection formula using only one of the selectors.
For example, if you want to use this as your final selection formula:
{customer.POSTAL CODE} > “80000” and {customer.CONTACT LAST NAME}[1] = “C” and {customer.LAST YEAR'S SALES} >= 5000
this formula will select all of those records that show a Postal code greater than 80000, a value in the {customer.CONTACT LAST NAME} field beginning with “C”, and a value in the {customer.LAST YEAR'S SALES} field greater than or equal to 5000.
You might start with this as your first test selection formula:
{customer.LAST YEAR'S SALES} > “80000”
Print the report and evaluate the data that prints with only one selector activated. In your example, evaluate the data in the {customer.POSTAL CODE} field. Does the field show only ZIP codes greater than 80000?
●If it does, then you know that this part of the selection formula is working.
●If it does not, then troubleshoot this part of the selection formula.
%Once the selection formula with one selector activated is working properly, add a second selector. In your example, the new selection formula might look like this:
{customer.POSTAL CODE} > “80000” and {customer.CONTACT LAST NAME}[1] = “C”
Advanced Formulas |
369 |