- •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 declare and assign values to multiple variables
There may be times that you want to declare multiple variables and assign values to each of them. To do this in the most efficient manner, simply chain the declaration/assignment expressions together, separating them with semicolons.
For example, to declare two variables (a number variable Quantity, and a currency variable SellPrice) and then assign values to each variable (the number 5 to the variable Quantity, and {file.COST} * 2 to the variable SellPrice), use expressions similar to the following:
NumberVar Quantity:= 5;
CurrencyVar SellPrice:= {file.COST} * 2;
How to conditionally assign values to variables
Seagate Crystal Reports formula language gives you the ability to assign different values to variables based on conditions being met or not met. Consider the following formula:
NumberVar Total;
NumberVar Result;
Total:= Total + {invoices.ITEM TOTAL};
If Next ({invoices.CUST#})<>{invoices.CUST#}
Then
(Result:= Total; Total:= 0)
Else
Result:= 0;
Result;
The If-Then-Else part of this formula says that when the If condition is met (if the customer numbers [{invoices.CUST#}] are not equal), the program is to do two separate things:
1.Assign the value stored in the variable Total (the running total) to the variable Result.
2.Reset the value in the variable Total to 0.
Advanced Formulas |
357 |
When the If condition is not met (if the customer numbers are equal), the program is to assign the value 0 to the variable Result.
How to use an array in a formula
An array is a special type of variable that can hold several values at once. The entire array can be passed to a summary function for evaluation, or separate elements of the array can be extracted using the Subscript operator. Search for Subscript in Seagate Crystal Reports online Help.
A common use for an array is to store the names of the days of the week:
StringVar array Weekdays:= [“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”];
There are five parts to declaring an array variable:
1.A variable declaration operator specific to the type of data the array will hold, StringVar in this example.
2.The word array follows the variable declaration operator.
3.The name you assign to the array follows the word array, Weekdays in this example.
4.The Assignment operator follows the name and is used to assign values to the array variable.
5.Square brackets follow the assignment operator and are used to enclose the values (elements) stored by the array. Each element is separated by a comma.
Search for Assignment in Seagate Crystal Reports online Help.
An index value is assigned to each element in the array according to the order of the elements.
●The first element is assigned index 1,
●The second element is assigned index 2, and so on.
358 |
Seagate Crystal Reports User’s Guide |
To extract an element from the following array in your code:
StringVar array Weekdays:= [“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”];
use the Subscript operator with the index number for the element you want to extract:
Weekdays[5]
«Returns “Thursday”.»
Negative numbers can also be used to extract array elements:
Weekdays[-4]
«Returns “Wednesday”.»
You can create an array of values for any valid data type. However, arrays have the following restrictions:
●All elements must be of the same data type.
●You must declare the array with one of the variable declaration operators.
●There can be a maximum of 100 elements in an array.
●Each element in an array of string values can have a maximum of 254 characters (the standard limit of any string value in Seagate Crystal Reports).
Examine the following examples of array declarations to become more familiar with arrays:
NumberVar array x := [1, 10, 44];
CurrencyVar array Cost := [$19.95, $79.50, $110.00, $44.79, $223.99];
DateVar array PayDays := [Date(1999, 05, 15), Date(1999, 05, 31)];
Advanced Formulas |
359 |
Using arrays
with summary functions
A formula example
Arrays can also be used without being assigned to array variables. For example:
[“One”, “Two”, “Three”][2]
«Returns “Two” because it is the second item in the array.»
In some situations, you may prefer to use arrays dynamically like this. However, most formula situations that require arrays can be handled more easily by defining the array as an array variable.
Summary functions accept arrays as parameters without requiring the array be declared as a variable. For example:
Average([5, 10, 15]) = 10
Use the square brackets to indicate that an array is being used with the function. Search for Summary Functions in Seagate Crystal Reports online Help.
To better understand how arrays can be used in formulas, examine the following formula example:
StringVar array Weekdays := [“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”];
Weekdays[DayOfWeek({orders.SHIP DATE})]
«If DayOfWeek is 2, Monday will be returned because it is the second item in the array.»
This formula prints the name of the day of the week that each order was shipped. First, the Weekdays array is declared and assigned string values for each day of the week. Search for DayOfWeek in Seagate Crystal Reports online Help.
Next, the DayOfWeek function evaluates the date stored in the {orders.SHIP DATE} field and returns a number representing the day of the week (1 for Sunday, 2 for Monday, etc.).
Finally, the Subscript operator is used with the Weekdays array to retrieve the name of the day of the week according to the number returned by the DayOfWeek function. The name of the day is returned by the formula and appears in the report. Search for Subscript in Seagate Crystal Reports online Help.
360 |
Seagate Crystal Reports User’s Guide |