Part 1
Getting started
Chapter 1
Building your first report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Working with Actuate e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Preparing to create your first report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Preparing to access a data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Making report components available to your report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Setting up the report design environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Creating a report that groups data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Opening the listing report wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Choosing a data source for a listing report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
Selecting tables and columns for a listing report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Organizing the data by table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Adding summary data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Sorting the data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Selecting a layout style for a listing report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Saving the report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Viewing the query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Understanding report structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Enhancing a report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Running a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Chapter 2
Understanding report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Overview of the design process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Understanding report design concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
About components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
About component relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
About reusable components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
About the report design environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
About the application window elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Work area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Status bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
i
Managing workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
About the design perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43
About the data perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
About the debug perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
About the view perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Personalizing the application window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
Moving, minimizing, and stacking windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
Moving, hiding, and changing toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
Restoring a perspective to its default layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
About the main design tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
About the Layout window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
About the Report Structure window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50
Performing common operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Placing components in a report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
Naming a report component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .53
Setting a component’s properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54
Copying components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
Saving, running, and previewing a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
Building the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
Running the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
Viewing the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Closing a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
Going beyond the graphical tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
About object-oriented design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
Customizing reports through programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58
Part 2
Designing a report
Chapter 3
Planning and creating a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Planning the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
Deciding the content of the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
Determining how the report will be viewed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
Deciding if the report will be used by international users . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
Deciding the layout and format of the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
Designing a prototype on paper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
Deciding how to start a new report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
Using a wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
About the Quick Report wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
About the Listing Report wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .68
Starting with a template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .69
Starting with a blank report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
ii
Configuring report development resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Creating a report without a wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Starting a new report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Accessing data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Setting up the connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Specifying the data to use in the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Grouping and sorting data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Placing data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Summarizing data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Formatting data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Specifying a report title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Setting page size, orientation, and printable area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Naming an Actuate report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Performing other report design tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Chapter 4
Laying out a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
About laying out a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Preparing to lay out a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Understanding the layout process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Grouping report data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
About sorting and sort keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Creating a group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Examining how groups appear in the report structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Grouping report data by intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Grouping string data by intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Grouping numeric data by intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Grouping date and time data by intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Deciding which tool to use to group data by interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Grouping on a custom sort key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Placing data in the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Deciding where to place data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Placing data in a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Placing database fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Placing computed fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Associating data with controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Changing a control’s value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Changing a control’s class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Adding column headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Adding group headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Placing group headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
Specifying expressions for group headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
Adding aggregate information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
iii
Examining sample aggregates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Refining aggregate functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Using a lookahead aggregate in a conditional section or sequential section . . . . . . . . . . . . .122
Inserting a page break before or after each group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
Changing the placement of the report title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
Sorting report data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Sorting data at the group level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126
Sorting data at the detail level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
Enhancing the appearance of a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Testing a report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Storing report components in the Scratch Pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Testing the layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
Verifying values of computed fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Verifying results of groups and sorts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
Checking the running headers and footers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
Chapter 5
Formatting report content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
About formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
Arranging components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
Selecting multiple components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
Moving components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
Sizing components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
Aligning components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Arranging components relative to the frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
Layering components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Formatting data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Formatting numeric data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Formatting date and time data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144
Formatting text data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
Using code mapping to control the appearance of text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Specifying how data appears if its value overflows the control size . . . . . . . . . . . . . . . . . . . 146
Adjusting the spacing between rows of data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Adding borders and colors to components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
Adding a shadow behind a frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150
Adding shapes and lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Adding images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
Planning to use an image file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .154
Inserting an image in a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
Inserting an image using a database reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
Formatting report content based on conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
Applying conditional formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158
Inheriting conditional formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162
iv
Chapter 6
Customizing page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
About page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Understanding the relationship between page layout and report layout . . . . . . . . . . . . . . . 165
Viewing the page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
About the page layout components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Planning the page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Specifying page size, orientation, and margins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Specifying a fixed page size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Specifying a dynamic page size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Setting page orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Setting page margins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Understanding the effects of page size on online and printed reports . . . . . . . . . . . . . . . . . . . 176
Comparing online and printed output for reports with fixed page size . . . . . . . . . . . . . . . 176
Comparing online and print output for reports with dynamic page size . . . . . . . . . . . . . . 177
Printing a report with large report pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Specifying margins for the printed report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Specifying headers and footers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Comparing headers and footers in page layout and report layout . . . . . . . . . . . . . . . . . . . . 183
Specifying page numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Using a standard page number format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Using a custom page number format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Specifying a date and time stamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Designing background patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Adding color and borders to flows and pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Adding a watermark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Designing a multicolumn page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
Designing multiple page layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Creating a left and right page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Creating a title and body page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Chapter 7
Understanding charting concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
About Actuate charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Recognizing the parts of a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Understanding types of charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
About area charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
About bar charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
About bubble charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
About line charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
About pie charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
About scatter charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
v
About step charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
About stock charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Understanding chart layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
Using an overlay chart layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Using a study chart layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Understanding chart data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Specifying data for an area, bar, line, or step chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Specifying data for a pie chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213
Specifying data for a scatter chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214
Specifying data for a stock chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Specifying data for an overlay or study chart layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218
Using a chart hyperlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218
Chapter 8
Displaying data in a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Creating a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Inserting a chart control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222
Selecting a chart type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222
Specifying chart data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
Sorting chart data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234
Grouping chart data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
Setting up a group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
Adding missing groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237
Adding a static group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241
Modifying a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Working with chart titles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Formatting the chart area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Working with a chart legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Working with axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
About the x-axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
About the y-axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
Formatting an axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250
Working with axis scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252
Working with axis labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253
Working with series and categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Modifying series labels or series color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256
Working with point labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Positioning data points and axis labels on an x-axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Working with an empty value in a series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
Displaying data point markers or series lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Working with up or down bars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264
Working with high-low lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Working with drop lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266
vi
Working with trendlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Working with bars in a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Working with pie chart sectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Using a chart hyperlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Working with sample chart data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Rendering a chart on Windows and UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Chapter 9
Presenting data in a cross tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
About cross tabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Comparing a cross tab to a listing report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Understanding cross tab limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Placing a cross tab in a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Understanding the effects of placing a cross tab in different frames . . . . . . . . . . . . . . . . . . . 286
Understanding the effects of placing a cross tab in different sections . . . . . . . . . . . . . . . . . . 287
Placing multiple cross tabs in a frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Building a cross tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Grouping data by more than two fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Displaying multiple aggregate fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Displaying computed values in row and column headings . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Displaying static text in row and column headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Limiting the amount of data the cross tab displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Sorting cross tab data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Grouping cross tab data by intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Adding missing groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Specifying the range of data to use when adding missing groups . . . . . . . . . . . . . . . . . . 310
Customizing the appearance of a cross tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Resizing cross tab rows and columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Formatting borders of a cross tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Formatting numbers in a cross tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Adding color to a cross tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Understanding cross tab sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Understanding how a cross tab affects report layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Printing a cross-tab report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Changing the margins for the printed pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Setting print options to join multiple pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Eliminating blank space on the right of the cross tab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Chapter 10
Displaying variable-length text data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Displaying memo field data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Using dynamic text controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Comparing a dynamic text control with a text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
vii
About the supported text formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332
Using full text justification in a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
Considering performance issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
Placing a dynamic text control in a report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333
Developing content for a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334
Building complex RTF-tagged text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336
Displaying Unicode characters in RTF-tagged text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336
Indenting RTF-tagged text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337
Using fonts and colors in RTF-tagged text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Modifying the default resizing behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338
Shrinking a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339
Moving a control up when a dynamic text control above it shrinks . . . . . . . . . . . . . . . . . . . .339
Setting the maximum height of a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Increasing the width of a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340
Setting the maximum width of a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Using dynamic text controls in nested frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
Using dynamic text controls in different types of frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343
Using dynamic text controls in Content, Before, and After frames . . . . . . . . . . . . . . . . . .343
Using dynamic text controls in PageHeader frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Using dynamic text controls in PageFooter frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343
Adjusting text formats for different rendering environments . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Adjusting the space on the right of the text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .344
Adjusting the space between lines of text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Adjusting the space between paragraphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Adjusting the space between tabbed text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348
Controlling how a frame and its contents fit in multiple pages . . . . . . . . . . . . . . . . . . . . . . . . . .350
Specifying how a frame and its contents should split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350
Splitting frames that contain dynamic text controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
Splitting frames that do not contain dynamic text controls . . . . . . . . . . . . . . . . . . . . . . . . . 352
Specifying an area of the frame that should not be split . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .354
Setting margins for the segments of a split dynamic text control . . . . . . . . . . . . . . . . . . . . . . 355
Setting margins for the segments of a split frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .357
Controlling how lines in a paragraph break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358
Understanding how dynamic text controls affect report layout . . . . . . . . . . . . . . . . . . . . . . . . . .359
Building a report with dynamic text controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Solving common output problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366
Chapter 11
Formatting a report with dynamically sized components . . . . . . . . . . . 369
About dynamically sized components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
Formatting controls in a frame that contains a dynamically sized component . . . . . . . . . . . . .370
Understanding how Actuate software resizes and repositions components . . . . . . . . . . . . .372
Understanding vertical resizing and repositioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .373
viii
Understanding horizontal resizing and repositioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
Modifying the default resizing and repositioning of controls . . . . . . . . . . . . . . . . . . . . . . . . 377
Resizing a control to match the height of a dynamically sized component . . . . . . . . . . 377
Resizing a control to match the width of a dynamically sized component . . . . . . . . . . . 378
Resizing a control relative to the height of the frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Resizing a control relative to the width of the frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Repositioning a control vertically relative to the frame . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Repositioning a control horizontally relative to the frame . . . . . . . . . . . . . . . . . . . . . . . . . 384
Modifying how pages resize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Enforcing a fixed page size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
Resizing a page to fit the contents of a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . 388
Solving common output problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Chapter 12
Building subreports and conditional sections . . . . . . . . . . . . . . . . . . . . 395
About building a report that contains subreports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Setting up the structure of the main report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
About the components that define a report’s structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Placing section components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Placing components in a report section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Placing components in a sequential section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Placing components in a parallel section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Placing components in a conditional section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Specifying the condition for a conditional section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Using an aggregate function in a conditional section or sequential section . . . . . . . . . . . . . 402
Creating a page layout for a subreport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Using a subpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Creating a multiflow page layout for parallel subreports . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Building a report with side-by-side subreports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Building a report with sequential subreports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
Building a report with linked subreports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Building a report with conditional sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Examining a report containing multiple sections and subreports . . . . . . . . . . . . . . . . . . . . . . . 432
Chapter 13
Adding interactive viewing features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
About interactive viewing events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Providing balloon help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
Providing search functionality in a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Naming a component in a search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Creating versatile searches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Searching for multiple instances of the same class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Searching for multiple classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
ix
Retrieving data from controls in multiple parallel or sequential sections . . . . . . . . . . . . .447
About page headers and page footers in searches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .448
Designing searchable reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .449
About search analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Searching reports with parallel and sequential sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .453
Developing hyperlink functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .455
About LinkExp syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .455
About destination URL syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .457
About search expression syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .458
About dynamic report parameters syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Creating a hyperlink that uses a dynamic parameter value . . . . . . . . . . . . . . . . . . . . . . . . 464
Calling JavaScript functions with LinkExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .466
Defining universal hyperlinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .466
Designing a hyperlink URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .467
Developing a table of contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .468
About table of contents properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .468
Developing a table of contents for a grouped report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Developing a table of contents for other reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Programming for interactive events in the view perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Creating a context menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
About default context menu items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .471
Customizing a context menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
About mouse events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .474
Responding to a mouse event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .474
About the Shift value in mouse event methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .475
Chapter 14
Designing a report for multiple platforms . . . . . . . . . . . . . . . . . . . . . . . . 477
Designing a report to display and print data across platforms . . . . . . . . . . . . . . . . . . . . . . . . . .478
Understanding viewing and printing requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Designing for the delivery environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479
Designing for overlapping controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
Designing for the print environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479
Understanding font issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479
Getting font information on Windows and UNIX servers . . . . . . . . . . . . . . . . . . . . . . . . . . . .480
Getting font information on desktop-only environments . . . . . . . . . . . . . . . . . . . . . . . . . . . .481
About the master fonts file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .481
Embedding font information in a report object executable file . . . . . . . . . . . . . . . . . . . . . . . .482
Defining custom fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
Using a custom font file in a desktop environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .485
Designing with fonts on multiple platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .485
x
Chapter 15
Debugging a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
About debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Understanding the types of errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
About compilation errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
About run-time errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
About logic errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
About e.Report Designer Professional’s debugging tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
About the Debug menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
Viewing errors in the Output window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
About Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
About Call Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
About the Watch window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Controlling code generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Running to a breakpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Stepping through code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
Resuming code generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Stopping code generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Starting a debugging session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
Saving parameters for successive debugging runs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Examining and modifying variable values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Tracing object reference variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Monitoring and changing the run-time value of a variable . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Inserting and arranging variables in Watch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Editing a variable value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Part 3
Displaying multiple reports from a single report design
Chapter 16
Designing for ad hoc reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
About ad hoc reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
About parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510
Understanding how a report prompts the user for input . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
Planning to use parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
About the types of parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
About ad hoc parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
About static parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Enabling the user to filter data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Specifying a value for an ad hoc parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Specifying a null value in a QBE expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
xi
Using a date in a QBE expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .519
Matching an exact string value in a QBE expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Using a special character in a QBE expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .521
Using a special character to match one or more characters in a QBE string . . . . . . . . . . . 522
Prompting the user to specify an expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .525
Prompting the user to provide a specific value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526
Changing component properties at run time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
Specifying how parameters appear to the user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .529
Specifying a parameter’s display name, group, and default value . . . . . . . . . . . . . . . . . . . . .530
Providing the user with a list of choices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .531
Typing a list of parameter values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Creating a query that retrieves a list of parameter values . . . . . . . . . . . . . . . . . . . . . . . . . .533
Providing the user with true or false options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Specifying the order in which parameters appear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .539
Hiding a parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .540
Deleting parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .541
Testing parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
Saving and reusing parameter values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
Suppressing parameter prompting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
Verifying parameter values that the user supplies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .546
Customizing the Requester user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .547
Chapter 17
Controlling user access through page-level security . . . . . . . . . . . . . . 549
About page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .550
About security IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
Defining page-level security rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .551
Understanding cascading security rules for nested sections . . . . . . . . . . . . . . . . . . . . . . . . . .552
Designing a report that uses page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .553
Displaying page numbers in a report that uses page-level security . . . . . . . . . . . . . . . . . . . .554
Testing a report that uses page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
Setting up a report design to test page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .555
Testing page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .558
Creating a virtual security ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .562
Customizing an access control list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
Controlling access to subsections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .564
Setting CascadeSecurity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .564
Overriding GetFullACL( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Generating a custom ACL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .565
Generating a custom ACL using SetSecurity( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .566
Generating a custom ACL using an Actuate Basic function . . . . . . . . . . . . . . . . . . . . . . . . 566
xii
Chapter 18
Designing a master report to generate multiple reports . . . . . . . . . . . . 569
About report bursting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
Understanding report bursting techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
Understanding report bursting tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Examining report bursting examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Examining a subreport bursting report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
Examining the BuildFromRow( ) method for a subreport bursting report . . . . . . . . . . . 574
Examining the SuggestRoiName( ) method for a subreport bursting report . . . . . . . . . 574
Examining the summary entry’s LinkExp property for a subreport bursting report . . 575
Examining a group bursting report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Examining the SuggestRoiName( ) method for a group bursting report . . . . . . . . . . . . . 576
Examining the summary entry’s LinkExp property for a group bursting report . . . . . . 576
Part 4
Optimizing report development tasks
for the enterprise environment
Chapter 19
Designing reusable components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
About designing reusable components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Working with custom properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Creating, editing, and deleting a custom property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580
Creating a property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Editing a custom property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
Deleting a property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Setting a property as a value expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Filtering a property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
Working with structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
Working with enums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
Chapter 20
Publishing reusable components in a library . . . . . . . . . . . . . . . . . . . . . 597
Understanding component and function libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
About component libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
About function libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
About included and available libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
About Library Organizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
Planning a component library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601
Tailoring the library to the task . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
Optimizing report performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
xiii
Creating a component library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .602
Creating a function library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .605
Including a component or function library in a report design . . . . . . . . . . . . . . . . . . . . . . . . . . .607
Placing a library component in a report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .612
Creating a component reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
Creating a subclass of a library component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .613
Publishing a component to a library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .615
Providing access to a library using a configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
Including or making available a single library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .618
Making all libraries in a directory available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .619
Protecting a component or function library from modifications . . . . . . . . . . . . . . . . . . . . . . . . .620
Chapter 21
Publishing a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
About publishing a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .624
Creating an Actuate iServer profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624
Setting publication options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .627
Managing file versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .628
Copying file properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .628
Publishing a report to an Encyclopedia volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Chapter 22
Generating information objects from Actuate Basic report designs . . 631
Generating an information object from an Actuate Basic report design . . . . . . . . . . . . . . . . . . . 632
Chapter 23
Customizing the design environment . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
About design environment customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .638
Setting design environment options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .638
Setting a font in the designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .640
Setting the default font for labels, data, and source editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Setting the default font for a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .642
Setting the font for Report Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .643
Setting units of measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .644
Setting the default unit of measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .644
Customizing unit suffixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645
Setting design search paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .647
Setting general options in the designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .649
Customizing the length of the recently opened files list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .650
Setting the Management Console URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
Setting Basic source encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .651
Customizing the classes of the toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
Customizing the class association of the toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
xiv
Saving and reusing class associations of components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
Changing the item list for Create New Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
Hiding a report wizard item that appears in Create New Report . . . . . . . . . . . . . . . . . . . . . 658
Adding or removing a template in the item list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
Part 5
Integrating report output
Chapter 24
Embedding report content in a web page . . . . . . . . . . . . . . . . . . . . . . . . 665
About embedding report content in a web page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
About the source HTML for the web page example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
About supported components for embedded report content . . . . . . . . . . . . . . . . . . . . . . . . . 667
About changes to report capabilities in embedded report content . . . . . . . . . . . . . . . . . . . . 668
Identifying the report content to display in a web page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
Displaying or hiding report content that is embedded in a web page . . . . . . . . . . . . . . . . . 668
Identifying the report content to embed in a web page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
Importing report content using a search URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
Importing a report page into a web page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
Importing a report section into a web page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Working with a Reportlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Printing and downloading a Reportlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Enabling a hyperlink in a Reportlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Chapter 25
Providing web functionality in a report . . . . . . . . . . . . . . . . . . . . . . . . . . 673
About custom browser code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
About the browser scripting control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
About the context block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
Clipping the output of custom browser code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
Aligning the output of custom browser code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
Debugging custom browser code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
Including global custom browser code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
Creating an HTML form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 680
Generating custom browser code dynamically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
Overriding BrowserCode( ) and GetText( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
Determining the application execution context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
Generating output for different browsers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 682
Adjusting for the current scaling factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
Overriding BuildFromRow( ) and OnRow( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 683
Printing and viewing a report using the PDF converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
Displaying different controls in DHTML and PDF output . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
xv
ShowWhenPrinting and ShowWhenViewing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .685
Printing and viewing a report using the view perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .685
Creating an example library for Internet Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .686
Using DHTMLForm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .686
Subclassing DHTMLForm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .687
Working with DHTMLMenuControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .688
Using BuildFromRow( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .689
Using OnRow( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
Using Finish( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .689
Using BrowserCode( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
Subclassing DHTMLMenuControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .690
Displaying custom browser code in the view perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
Chapter 26
Designing for XML output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693
About the XML data format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
About document type definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .694
Examining a simple XML document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .694
About the View process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .695
Publishing an Actuate report as XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696
Mapping XML to an Actuate report component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
About XML properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .698
About AcReport XML properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .699
About AcReportComponent XML properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 700
About AFC XML methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .701
Part 6
Previewing reports in Actuate
e.Report Designer Professional
Chapter 27
Viewing a report using the view perspective . . . . . . . . . . . . . . . . . . . . . 707
Opening and viewing a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .708
Navigating a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .710
Using the paging commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .710
Going to a specific page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .710
Using the table of contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
Using hyperlinks to navigate report data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .713
Personalizing the view perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .715
Using screen arrangement options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .715
About zooming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
Using report-specific online help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .717
xvi
Using context menus while you view a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
Copying report data to another document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719
Chapter 28
Running a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
About running a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
Running a report locally . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
Viewing pages during report generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
Understanding checkpoints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
Refreshing the report in the view perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
Running a report that uses parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
Specifying parameter values on Requester . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
Using a text box to set a parameter value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
Using radio buttons or a drop-down list to set a parameter value . . . . . . . . . . . . . . . . . . 727
Setting values for date parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
Running an SAP R/3 report that uses structure and table parameters . . . . . . . . . . . . . . . . . 727
Using null values with structure and table parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
Specifying a value for a structure parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 728
Setting a value for a table parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
Chapter 29
Searching for report data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
About the search feature in Actuate reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
About searchable report fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
Identifying a searchable report field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
Searching for report data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
Understanding how a multifield search works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
Creating search conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
Using a search expression in the search conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 736
Using operators in a search expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
Using a wildcard character in a search expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
Using a pattern in a search expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
Searching for the ?, *, #, and [ ] characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
Searching for a string that contains a special character . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
Using a nonprinting ASCII character in a search expression . . . . . . . . . . . . . . . . . . . . . . . . . 740
Using search results to navigate through the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 741
Specifying data to display in Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 742
Creating a search definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 745
Chapter 30
Printing a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
Printing a report from your desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
Running a report before printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
xvii
Appendix A
Working with RTF and HTML tags in a dynamic text control . . . . . . . . . 753
Working with RTF tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .754
Working with HTML tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .758
Appendix B
Upgrading reports in batches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
Upgrading reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Using the erdpro command to upgrade reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
xviii
About Deve lop i ng
Actu ate Ba sic Repo rts
Developing Actuate Basic Reports provides information about using the e.Report
Designer Professional graphical report design tools. This manual explains how to
use and customize the design environment and how to work with items such as
report components, report sections, and data streams.
Developing Actuate Basic Reports includes the following chapters:
■ About Developing Actuate Basic Reports. This chapter provides an overview of
this guide.
■ Part 1. Getting started. This part explains how to build a report using a report
wizard and also introduces basic reporting concepts.
■ Chapter 1. Building your first report. This chapter explains how to create a report
using a report wizard.
■ Chapter 2. Understanding report design. This chapter provides an overview of
the report design process and environment, and explains basic report design
concepts and tasks.
■ Part 2. Designing a report. This part provides information about designing a
report, from the planning stage to working with specialized controls such as
charts and cross tabs.
■ Chapter 3. Planning and creating a report. This chapter describes the decisions to
make when planning a report and explains the basics of creating a report.
■ Chapter 4. Laying out a report. This chapter describes the procedures for
grouping, sorting, and placing data in a report.
■ Chapter 5. Formatting report content. This chapter describes how to make a
report visually appealing and effective.
■ Chapter 6. Customizing page layout. This chapter describes how to set page
attributes and design page layouts.
Part 1
1
Getting started
Chapter
Content—CustomersGroup contains
data about each customer, including
the details of each customer’s orders
Content—OrdersGroup contains
detailed data about each order
Running a report
After you finish the design and save it, run the report to compile a report object
executable (.rox) file and generate a report object instance (.roi) file.
How to run the listing report
1 In e.Report Designer Professional, choose Report➛Build and Run.
Status messages appear in the status line of the application window as
e.Report Designer Professional compiles the report. As soon as the first page
generates, it appears in the view perspective. e.Report Designer Professional
continues generating pages until the report completes.
The report includes the title that you typed in the report wizard and a default
footer. The footer appears on every page. It includes the page number, page
count, and the date. The report structure reflects the data grouping that you
chose in the report wizard.
Customer
group header
Order details
grouped by
order ID
Default page
footer
Figure 1-35 First page of a report
2 Navigate through the report to view additional data.
3 Choose View➛Last Page to view the end of the report. Note that the group
totals and report total appear in Currency format, as shown in Figure 1-36.
Order total
Customer total
Report total
Understanding report
Chapter 2
2
design
This chapter contains the following topics:
■ Overview of the design process
■ Understanding report design concepts
■ About the report design environment
■ Performing common operations
■ Going beyond the graphical tools
Accessing data
A report can access data from a wide range of sources, including databases,
enterprise resource planning (ERP) applications, and text files. To set up the
report to access data, take the following steps:
■ Install and configure the necessary third-party software on your computer. To
access a database such as Oracle, for example, you must first install the
database client software. To access a data source using Open Database
Connectivity (ODBC), you must first configure it as an ODBC data source.
About components
The building blocks of a report design are called components. Each piece of data,
text label, graphical element, image, or chart in a report design is a component.
e.Report Designer Professional provides a rich set of components, including:
■ Components for displaying data, such as text, integer, date, and chart controls
■ Drawing components, such as lines and rectangles
■ Data access components, such as database connections and data sources
■ Page layout components, such as pages and flows
■ Structure components, such as frames, group sections, and conditional
sections, that you use to organize other components
When you build a report without using a report creation wizard, you build it by
placing components, one at a time, in a report design file. For example, to add a
title to your report, place a label control to display the title. To add a company
logo, place an image control to display the graphic.
Figure 2-1 and Figure 2-2 show components as they appear in the Layout window
and as they appear when you view the finished report document.
Part of a report design
Each component
appears with a border
around it. Many of
these components
display data from
database fields.
The report design you create is a template of sorts. It specifies the structure and
instructions for generating the finished report but it is not the report itself. When
you place a component in the report design to display data from a field, that
single component can represent tens, hundreds, even thousands of values,
depending on the number of records in the database.
Sales representative
section within the office
section
Toolbars
Work
area
Status bar
Windows application users will notice the standard user interface elements, such
as pull-down menus, toolbars, and status bar. Integrated Development
Environment (IDE) users will also notice the similarity in look and feel between
e.Report Designer Professional and developer applications, such as Visual Studio.
Menus
The menus are standard Windows menus that you can pull down with your
mouse. In some cases, you can also use shortcut key combinations to choose
menu options. For example, Ctrl+O opens a new report.
Work area
The work area occupies most of the application window. It is the large area
between the toolbars and status bar. Here, you work with the tools that help you
build, test, and preview reports. The set of windows that appear in the work area
change, depending on the current report design task.
Status bar
The status bar appears at the bottom of the application window. It displays
information about the actions that you perform as you build your reports. It also
shows more detailed information about a menu option or toolbar button. You can
hide the status bar by deselecting the Status Bar option on the View menu.
Managing workflow
e.Report Designer Professional provides an intuitive way to create a report. It
provides tools following these primary phases of creating a report:
■ Laying out the report
■ Accessing data
■ Debugging the report
■ Viewing the report
When you work with e.Report Designer Professional, you work in one of these
phases at a time. Each report creation phase is called a perspective. For each
perspective, e.Report Designer Professional displays different menus and
toolbars and a different set of windows, or tools, in the work area.
Perspectives model the way report developers work and they manage the work
space effectively. When creating a report, you often perform each task multiple
times and in different order. You might write a query, lay out data, preview the
report, then modify the query, preview the report, debug the report, change the
layout, preview the report again, and so on, until you are satisfied with the
report’s contents and appearance.
Call Stack
displays
called
methods
Variables
displays
variables
Properties in its
new location,
above Fields
Figure 2-14 shows how to minimize a window so that only the title bar appears at
the edge of the work area.
Figure 2-15 shows how to stack two windows so they appear as one window with
tabbed pages.
Components in a
PageHeader slot
The top-level
component in every
report design
Choose + to view the represents the
components that this entire report
component contains
These components
display data
Copying components
A report design that presents a lot of data can contain many components. Often,
you format different pieces of data the same way to achieve a consistent look. For
example, you can set column headings to one font style and text data to another.
In this situation, you can create and format one component, then copy it and use
it as a template for creating similar components. When you copy a component, all
the property settings are also copied.
To copy a component, use one of the following techniques:
■ Select the component and press Ctrl as you drag the component to another
location.
■ Select the component, choose Edit➛Copy, then choose Edit➛Paste. A copy of
the component appears on top of the original component.
Closing a report
You can close a report object design (.rod) file in one of the following ways:
■ Choose File➛Close Design.
■ In the design perspective, click the X in Layout, as shown in Figure 2-23. If you
have several windows open in Layout, you must first select Layout, then click
the X.
Click to close
a report
design
End Sub
As you can see, the code can be very simple. The challenging part is determining
which component method to override to add your code. To accomplish this part
of the programming task, you need to know:
■ The report-generation process
■ How the AFC classes work
■ The methods of each class, what they do, and how they interact with other
methods
To learn about the classes and their methods, and how to override methods, see
Programming with Actuate Foundation Classes. For more information about Actuate
Basic, see Programming with Actuate Basic.
Part 2
2
Designing a report
Chapter
Using a wizard
e.Report Designer Professional provides two wizards that help you create basic
reports quickly. They are helpful when you want to create a simple report or the
basic structure for a more complex report. All you have to do is choose File➛New,
and choose the wizard that most closely matches the type of report that you want
to create. The wizard walks you through the steps of creating the report, from
selecting the data source to selecting a basic layout.
Once you finish creating a report with a wizard, you cannot return to the wizard
to make changes to the report. You must use the Layout window to make the
changes manually. If the changes are major, such as changing a tabular report to a
columnar report, then it is easier and faster to start over with a wizard.
Accessing data
After you start a new report design, the next step is to set up the report to access
data. To accomplish this task, you need to set up a connection to the data source,
then build a query to specify the data to use in the report.
These steps assume that you have already configured your computer to access the
data source. For example, if the data source is a database such as Oracle, you
should have installed and configured the Oracle client software on your
computer. Similarly, an ODBC data source requires that you first configure the
data source using an external tool, such as the Windows ODBC Data Source
Administrator.
For a complete discussion of how to configure, use, and access data sources in
your report, see Accessing Data using Actuate e.Report Designer Professional.
Selecting tables
1 Choose View➛Data, then provide the necessary connection information.
2 In Database Browser, click the + icon next to the database to display all the
tables.
3 Drag the required tables from Database Browser and drop them in
DataSource—Query Editor.
Selecting columns
After you select the tables, you can select the fields whose values that you want to
use in the report.
1 Select the Columns tab in the lower pane.
2 Select the columns to use in the report, using one of the following methods:
■ Drag the columns from the upper page and drop them in Column Name.
To select all the columns, drag and drop the asterisk (*).
■ In Column Name, use the drop-down list to select the column.
Placing data
After you specify the data to use in your report and how to group and sort it, you
are ready to place data in the report design to display it.
1 Choose View➛Fields to display the list of fields.
Summarizing data
You can include aggregate information, such as counts, averages, and totals, at
the beginning and end of the report and before and after each grouped section.
1 Choose Insert➛Total and place the component in the desired Before or After
frame.
2 Select the field whose values to summarize and select one of the aggregate
functions.
Formatting data
When you place data components, e.Report Designer Professional uses default
font styles, sizes, and colors that are optimal for display and printing on multiple
platforms. To change the format of data or a component, use one of these
techniques:
■ Apply text formatting using the Format toolbar shown in Figure 3-4.
MP-2938
Carre Corp
Order
No. 1001
Creating a group
You can create as many groups as you want in a report. The example report in
“Grouping report data,” earlier in this chapter contained two groups, orders and
customers. You can create a third group, state, to sort customers by state. As a
practical matter, however, a report that contains too many groups makes the
report difficult to read.
To create a group, use the Grouping and Sorting tool to select the field or fields on
which to group. The instructions in this section include an example of creating a
report that groups orders by customer, then by order number. The example report
uses the sample database, sfdata.mdb, as its data source.
How to create the CustomerOrders example report and build the query
1 Create a new report with a connection to the Sfdata sample database:
1 Choose File➛New. Create New Report appears.
These settings
produce the
same results
Figure 4-19 and Figure 4-20 show the first and second pages of the generated
report, Detail.roi, and details about the slots in which data was placed to achieve
the results.
SalesDetailReport:Before
contains the report title,
company logo, and grand
total of forecast sales
OfficeGroup:Before contains
general information about
each office
SalesRepGroup:Before
contains information about
each sales representative
CustomerGroup:Before
contains information about
each customer
OrderGroup:Before contains
general information about each
order
OrderGroup:Content contains
information about all the
items in an order
OrderGroup:After contains
the total for each order
CustomerGroup:After
contains the total of all orders
for each customer
Figure 4-20 Second page of the report, Detail.roi
This rectangular
container is a frame.
Each smaller rectangle
represents a control. A
control is necessary to
display each piece of
data.
The same design displaying data as it appears in the finished report
Figure 4-21 Report frame with controls and display of same data in a finished report
When you use Tools➛Grouping and Sorting to create groups, e.Report Designer
Professional automatically creates the group sections. It also creates frames in the
Before and Content slots of the innermost group because grouped reports almost
always contain data in these slots.
If you want to add data to the PageHeader or PageFooter slot, place a frame in the
slot first. To do so, drag a frame from Toolbox—Structure and drop it in the slot.
Once you place a frame, you are ready to place data in it. The following sections
describe how you place different types of data in the report.
Report data
Column headings
do not appear at
the top of page 2
Column headings
appear above a
new group
Column headings
on the first page
Column headings
at the top of the
second page for an
order
Column headings
at the beginning of a
new order
5 Run and view the report by choosing Report➛Build and Run. Figure 4-37
shows the first and second pages of the CustomerOrders example report.
Now, the group headings appear on both pages.
You can use one or more aggregate functions in an expression. You can also use a
clause, such as GROUP BY, to refine an aggregate function.
You can place aggregate information only in the following places in a report:
■ At the beginning of a group or a report, in the Before slot
■ At the end of a group or a report, in the After slot
Grand total
Customer total
Order total
Order total
9 Run the report by choosing Report➛Build and Run. The report appears in the
view perspective.
Figure 4-43 shows the aggregate information in the CustomerOrders example
report for a group section that spans more than one page.
Group total
Figure 4-43 Generated and formatted report result
Lookahead
aggregate using
OVERALL
Figure 4-47 Report title design and appearance on first page of report
Report title design for page 2 onwards is in the report’s PageHeader slot
Report title on pages after the first page of the report document
Figure 4-48 Report title design and appearance on subsequent pages of report
Properties page
Arranging components
After you place components in a report design, you can rearrange them to create
a polished and professional-looking report. This section provides techniques for
selecting and arranging components in the following ways:
■ Selecting multiple components
■ Moving components
■ Sizing components
■ Aligning components
■ Layering components
Moving components
You can move components in three ways. The technique that you use depends on
the level of precision that you want and whether you are moving a component
within a frame or to another part of the report. The three options are:
■ Use the mouse. This option moves a component from one part of the report to
another.
■ Use the arrow keys. This option moves a component one pixel at a time, which
is useful for small adjustments. If you choose Tools➛Options and enable Snap
to grid, the arrow keys move a component one grid square at a time.
■ Align components in relation to one another. The alignment feature adjusts the
placement of multiple components in a variety of ways, such as distributing
components evenly in a frame or aligning the bottoms of selected components.
How to move a component
1 Select the component or components that you want to move.
Sizing components
When you place a frame or control in a report, e.Report Designer Professional
gives the component a default size. You can also use the mouse to size a
component at the same time that you place it in the report. In either case, you can
easily change the size later.
You can resize a component in three ways:
■ Use the mouse.
■ Specify values for the component’s Size properties.
■ Use Format➛Size to resize a component to the same size as another
component.
When resizing a frame, make sure it is not wider than the flow on the page. If the
frame is too wide, it is truncated.
How to resize a frame
1 Place the mouse pointer at the bottom edge of the frame as shown in
Figure 5-7. The pointer changes shape.
Aligning components
You can align components in the following ways:
■ Align selected components in relation to each other using their right, left, top,
or bottom edges. You can also align components using their vertical or
horizontal centers.
■ Space selected components evenly, horizontally or vertically, within the area
they occupy.
■ Compact selected components so there is no space between them.
You perform these alignment tasks by using commands on the Format menu.
How to align components with each other
1 Select the components in the layout window.
2 Choose Format➛Align.
3 From the menu that appears, choose one of the alignment commands as
shown in Figure 5-9.
Layering components
You can place any number of components on top of one another. For example,
you can layer components to create a graphic image as is shown in Figure 5-17. If
a component contains a background fill, it obscures the components behind it.
You can control the Z-order, or the order in which components overlap, by
moving components forward and backward in relation to each other.
How to layer components
1 In the layout window, select the component that you want to bring forward or
send backward.
2 Choose Format➛Layers.
Move Forward
Move to Front
Send Backward
Send to Back
Formatting data
You format the data in one or more controls by selecting the controls, then making
changes using the Format toolbar or the Properties page. If you apply a format
using the toolbar, your format choices appear in the Properties page. If you
update a format using Properties, the change is reflected in the toolbar.
You can customize how data appears by setting the following:
■ Format of numbers, text, dates, and times
e.Report Designer Professional provides common format styles in which to
display numbers, currency, or date values. If you do not choose a format,
e.Report Designer Professional displays the data as it appears in the data source.
If you want to use some combination of formatting that these styles do not
provide, you can specify a custom format using the control’s Format property.
■ Font face, point size and color
When choosing fonts, remember that for the report user to view the report
with the fonts that you choose, the fonts must also be installed on the user’s
system.
■ Text style as bold, italic, or underline
These are the styles available on the Format toolbar. Properties includes one
additional style, Strikethrough.
You can also define your own formats. You can, for example, specify the number
of digits after the decimal or add literal characters to the numbers. To define a
custom format, you use special symbols to construct a format pattern for the
control’s Format property. For a list of these symbols and their descriptions, see
the Format function in Programming with Actuate Basic.
Table 5-2 shows examples of custom format patterns and their effects on numeric
or currency data.
Table 5-2 Custom numeric format patterns
Format pattern Data in the data source Results of formatting
0000.00 12.5 0012.50
124.5 0124.50
1240.553 1240.55
$#,### 2000.00 $2,000
20000.00 $20,000
#.000 3000 3000.000
3000.1237 3000.124
"ID "# 15 ID 15
You can also define your own date and time formats. You can, for example, specify
two-digit months (01 - 12), use two digits for the year, or add literal characters to
dates or times. To define a custom format, you use special symbols to construct a
format pattern for the control’s Format property. For a list of these symbols and
their descriptions, see the Format function in Programming with Actuate Basic.
Table 5-4 shows examples of custom format patterns and their effects on a date
that is stored as 4/15/2006 in the data source.
Table 5-4 Custom format patterns
Format pattern Results of formatting
mm-dd-yy 04-15-06
ddd, m/d Thu, 4/15
dddd, m/dd/yy Thursday, 4/15/06
mmm d Apr 15
mmmm April
"Quarter" q Quarter 2
"Day" y Day 106
******** 234.50
...34.50 $1234.
Clip = ClipTrailing
Ellipsis = True
$123...
Figure 5-19 Clip and Ellipsis properties
Figure 5-20 show how the settings of a text control’s Clip, Ellipsis, and WordWrap
properties determine the appearance of the value 555 Franklin South Ave if the
text control is not wide enough to accommodate the value.
Clip = ClipTrailing (default) Clip = ClipTrailing
Ellipsis = False (default) Ellipsis = False
WordWrap = TextWordWrap (default) WordWrap = TextCharacterWrap
555 Franklin 555 Franklin So
Height of frame
Output 1
Height of each
row of data
Design 2
Height of frame
Output 2
Height of each
row of data
To adjust the amount of space between rows, change the height of the frame. The
same technique applies when adjusting the spacing between different parts of the
report.
Figure 5-31 Sending the shadow rectangle to the back of the frame
Override
Figure 5-42 Overriding an inherited conditional format
When you select dynamic page size, all data appears on one page, except when
any of the following conditions apply:
■ You specify explicit page breaks in the report, such as a page break after a
group section.
■ You apply page-level security to manage user access to different report pages.
Page-level security forces page breaks in the report.
■ The data exceeds the maximum page length determined by the operating
system or web browser. For example, Windows 2000 and Adobe Acrobat 4.0
display report pages up to 200 inches in height. In this situation, e.Report
Designer Professional inserts page breaks to limit the length of each page.
Top margin
Flow
Bottom margin
Page header
appears at the top
of every report
page, so appears
only on the first
printed page
Figure 6-13 Comparing online and printed reports with fixed page size
Page header
appears at the top
of the report page,
so appears only on
the first printed
page
Figure 6-14 Comparing online and printed reports with dynamic page size
Report content is
truncated
Page 1 Page 1
Page’s top Page’s top
margin margin
Flow
Page’s bottom
margin
Page 4
Page’s bottom
margin
Figure 6-18 Default page layout showing header and footer components
Report
footer
displays
order
total
The format pattern that you specify for the PageNumberFormat property of the
page applies only if you set the page number control’s PageNumberType
property to FormattedPageNumber. If PageNumberType is set to any other value,
the format in PageNumberFormat has no effect on the page number display.
Page
Flow
Frame
Control
When you use the title and body page style, ensure that the data in the report
layout fits the page layout. If you want only a particular data frame, such as a
report title frame, to appear on the first page, specify a page break after that
frame. If you do not specify a page break, data from subsequent frames fills all
available space on the first page.
Figure 6-31 shows the report layout for the report shown in the previous
illustration.
If you use the default property settings for the report title frame, the output
appears as shown in Figure 6-32.
Figure 6-32 Report output using default property settings for title frame
The report’s main contents appear on the first page rather than on the second
page. To start the main content on the second page, specify a page break after the
report title.
Understanding charting
Chapter 7
7
concepts
This chapter contains the following topics:
■ About Actuate charts
■ Recognizing the parts of a chart
■ Understanding types of charts
■ Understanding chart layers
■ Understanding chart data
■ Using a chart hyperlink
Legend
Sales by Region, 2003 Chips
Series
40,000 Boards labels
30,000
Sales $
20,000
10,000
0
North South East West
Regions
X-axis
40,000 Boards
30,000
Sales $
20,000
10,000
0
Q1 Q2 Q3 Q4
40,000,000
30,000,000
20,000,000
10,000,000
Figure 7-8 The line chart in Figure 7-7, using a Korean-localized data source
70,000
60,000
50,000
40,000
Price $
30,000
100 200 300 400
Top speed (km/h)
40 Close bar
20
Low bar
0
Mon Tue Wed Thu Fri
Weekday
80
High value
60 Open value
Price $
40 Close value
20
Low value
0
Mon Tue Wed Thu Fri
Weekday
To create the sample chart using this data, you use the following chart data
expressions:
■ QuarterlySales.TotalSales as values
■ QuarterlySales.Year as the category key
■ QuarterlySales.Quarter as the series key
In a different sample data source, the chart data appears in the TotalSalesQ1,
TotalSalesQ2, TotalSalesQ3, Total SalesQ4, and Year columns in the QuarterlySales2
table. For example, Table 7-3 lists the first five data records in QuarterlySales2.
Table 7-3 TotalSales sample data source
TotalSalesQ1 TotalSalesQ2 TotalSalesQ3 TotalSalesQ4 Year
30,010,000 1997
32,510,500 1997
To create the chart using this data source, you use the following chart data
expressions:
■ QuarterlySales2.TotalSalesQ1, QuarterlySales2.TotalSalesQ2,
QuarterlySales2.TotalSalesQ3, and QuarterlySales2.TotalSalesQ4 as chart
value expressions plotted as series
■ QuarterlySales2.Year as the chart category key
To create the sample chart using this data, you use the following chart data
expressions:
■ Sum([OrdersByOffice2003.Orders]) as slice size
■ OrdersByOffice2003.Office as the slice key
In a different sample data source, the chart data appears in the OrdersBoston,
OrdersSeattle, OrdersNewYork, and OrdersLondon columns in the Sales2003
table. For example, Table 7-5 lists the first five data records in Sales2003.
Table 7-5 Data records Sales2003
OrdersBoston OrdersSeattle OrdersNewYork OrdersLondon
5,010
3,500
36,903
6,750
900
To create the chart using this data source, you use OrdersBoston, OrdersSeattle,
OrdersNewYork, and OrdersLondon as Sum value expressions plotted as slices.
To create the sample chart using this data source, you use the following data
expressions:
■ OfficeSales.Sales as an X Value expression
■ OfficeSales.Employees as a Y Value expression
■ OfficeSales.Office as the series key expression
To create the sample chart using this data source, you use the following data
expressions:
■ 2003Sales.SalesBeijing, 2003Sales.SalesBoston, 2003Sales.SalesNYC,
2003Sales.SalesPhiladelphia, and 2003Sales.SalesTokyo as Y Value expressions
plotted as series
■ OfficeDetails.Size as an X Value expression
To create the sample chart using this data source, you use the following data
expressions:
■ StockData.Open as an Open expression
■ StockData.High as a High expression
■ StockData.Low as a Low expression
■ StockData.Close as a Close expression
■ StockData.Date as a Date expression
To create the sample chart using this data source, you use the following data
expressions:
■ FIRST([Trades.Value]) as an Open expression
■ MAX([Trades.Value]) as a High expression
■ MIN([Trades.Value]) as a Low expression
■ LAST([Trades.Value]) as a Close expression
■ Trades.Timestamp as a Date expression
Sales by Region
Chips
Series
40,000 Boards
30,000
Sales $
20,000
10,000
0
North South East West
Regions
For example, to link to the data for a category, you use the following link
expression:
"detail.roi;1#SalesDetail::OfficeTitleFrame::txtOfficeName="""&
Category & " Office"& """"
When you run the report, Chart Builder inserts the name of the category for each
category link. For example, if the user chooses the Boston category, Chart Builder
inserts Boston in txtOfficeName.
After you create chart hyperlinks, you specify whether to open a linked data
section in the same window as the chart, or in a different window.
Setting up a group
To allocate data to a group, you use the following settings:
■ The data type of the expression to group determines the available group units
and intervals.
■ The group unit determines the size of the groups. For example, you can use a
month unit for date-and-time data.
■ The group interval determines when the range for each group begins and
ends. For example, using a group unit of month, you can use a group interval
of 2 to show data in two-month groups.
For example, the chart in Figure 8-8 shows the item counts of the orders placed by
a group of sales representatives. The chart uses the number of orders as values,
sales representatives as series, and the number of items per order as categories.
Categories appear in groups of ten, using a group unit of integer and a group
interval of ten. For example, the chart shows that Barajas had seven hundred
orders that included between zero and nine items.
Modifying a chart
After creating a chart, you can resize the chart control or modify chart formatting.
Chart Builder adds some parts of a chart automatically, such as a legend. You can
remove or modify these parts. You can also add other items to a chart, such as
data labels or drop lines. You use Chart Builder to modify the following basic
chart attributes:
■ Titles. You can use default title text, provide new title text, or hide titles. You
can format title text and background and set title positioning.
■ Chart area. You can modify the appearance of the chart background or plot. In
a chart with depth, you can change the appearance of the chart floor or walls.
■ Legend. You can hide a legend or set where a legend appears on a chart. You
can also change legend formatting. For example, you can modify legend
outline style or change the text or the text style of legend items.
You use Advanced Chart Options to modify the following advanced chart
attributes:
■ Axes. You can modify axis line style or change the scale of an axis. You can add
grid lines that extend from axis ticks and modify axis label text, formatting,
and position. You can also specify where one axis intersects another.
■ Series or category attributes. You can change how Chart Builder plots empty
values in a series. You can also change how series data appears on the chart.
For example, you can use point labels to identify data points or set the color or
style of each series on the chart.
■ Chart hyperlinks. You can create a link from a part of the chart to the
associated chart data.
■ Sample chart data. You can modify the data a chart displays in the layout
window.
Grid lines
30
20
Number Sold
Grid lines
10
Labels
Title
Figure 8-19 Formatting the y-axis
Categories between
tick marks
Figure 8-24 Categories between tick marks
How to set the position of category markers and labels
1 On Chart Builder, choose Advanced.
2 On Advanced Chart Options, choose Plot.
3 On Advanced Chart Options—Plot—Y Axis, set category marker and label
position:
■ To display category markers and labels between tick marks, select
Categories are between ticks.
■ To align category markers and labels with tick marks on an x-axis, deselect
Categories are between ticks.
Choose OK.
4 On Chart Builder, choose OK.
Missing value
Zero value
Values in the
state field form
the rows
Grand totals
Figure 9-2 Listing report with total units and total sales grouped by state and product type
Figure 9-3 Cross tab with total units and total sales grouped by state and product type
The listing report shows the same information as the cross tab, except that,
without programming, it cannot calculate and display the overall totals for each
product type. The listing report cannot show these totals easily because product
type is the inner group and the listing report calculates overall totals only for the
top-level group.
With the listing report, it is difficult to compare, for example, total sales for CT
and NJ because the information is on different pages. It is also difficult to
compare state totals with the grand totals because the grand totals appear at the
end of the report.
The cross tab, on the other hand, has a compact format that is ideal for comparing
and analyzing summary information. Whenever a report user requests summary
information to be shown by one criterion and also by another, the cross tab is the
perfect solution.
As you can see, the cross tab in the group section displays only two rows, and one
of them is the Totals row, which displays the same data as the row above. This use
of a cross tab is not a particularly good one. There are better ways to display the
same data.
You can place a cross tab in a group section. You should consider carefully the
fields to use in the cross tab, however. Do not use the same field that the grouped
section uses as its grouping field.
For example, instead of grouping the cross-tab data in the previous example by
city and by status, you can group the data by customer and status, as shown in
Figure 9-6.
Figure 9-9 Cross tab displaying total sales by state and product category
Column value
Row value Aggregate value
As Figure 9-17 shows, each additional field that you group data by appears as a
subcolumn or subrow. The customer rows appear within the state rows. The
product item columns appear within the product category columns. This type of
grouping is similar to creating nested groups in a listing report.
If you plan to create multiple row or column fields, choose fields that have a
logical one-to-many relationship. Figure 9-19 shows some of the following
examples of fields to use as row and subrow, or column and subcolumn:
■ City and Customers
■ State and City
■ Product category and Product names
■ Country and Region
■ Customer and Orders
To display multiple values in each cell, you specify multiple fields in the In each
cell, show: part of Crosstab Builder.
Figure 9-21 shows the fields defined in Crosstab Builder to create the cross tab
shown in Figure 9-20.
The default setting is for a cross tab to display values horizontally in a cell. You
can specify that the cross tab display them vertically instead, as shown in
Figure 9-22.
Each cell displays the
aggregate values, one
above the other
Each value in
the State field
forms a row
5/1/2004 is missing
5/1/2004 added
5/1/2004 added
10/1/2004, 11/1/2004,
and 12/1/2004 added
The cross tab in Figure 9-39 uses the same round settings as in Figure 9-38 and
adds a span unit of year and a span interval of one. Now, the group range ends
with 12/1/2004, which is at least a year from the beginning of the range.
The Sorting and Grouping window shows the round and span settings specified
on the Advanced Grouping page that resulted in the cross tab.
How to specify the range of data to use when adding missing groups
1 On Crosstab Builder, select the field to group.
2 Choose Grouping.
3 On Sorting and Grouping—Grouping, if you have not already done so, specify
the grouping unit and interval.
4 Select Add missing groups, and optionally, specify the conditions for adding
missing groups.
Cross tab’s
ColumnHeadingsBorder
Cross tab’s
RowHeadingsBorder
Figure 9-45 Formatting cross tab borders
Figure 9-46 and Figure 9-47 show the following border properties of the cross tab
column:
■ InnerBorder appears between column levels.
Column inside borders
Figure 9-48 and Figure 9-49 show the following border properties of the cross tab
row:
■ InnerBorder appears between row levels.
Row InnerBorder
Figure 9-58 shows an enlarged view of the right edge of the first page and the left
edge of the second page. It also shows where to fold the second page and where
to place it on the first page to join both pages to form a continuous report.
This blank space is equal to the distance between the right edge of the cross tab
and the right edge of the frame containing the cross tab. By default, when you
insert a frame, its size fits in the available flow space. Figure 9-60 shows the
layout of the frame and the cross-tab control within it.
Right edge of frame
Figure 9-60 Frame layout showing cross-tab control and blank space
Output
Customers in California
ComputerWares
Leslie Patterson Customer since 1995. Purchases have increased
2654 Valley Drive every year. Notify Ms. Patterson of special deals.
Customer Notes
page 1
Figure 10-2 shows the output of a report that uses dynamic text controls for the
contact name, address 1, address 2, and customer notes. Notice that there are no
blank lines for missing contact names or address 2 information.
Notice, too, that the colored background behind the customer notes adjusts to the
size of the text block.
Customers in California
ComputerWares
Leslie Patterson Customer since 1995. Purchases have increased
every year. Notify Ms. Patterson of special deals.
2654 Valley Drive
Santa Clara, CA 95050
Contact
name Comtrex Systems
Peter Banks Wants to settle accounts quarterly instead of
monthly. Per agreement on March 25, 2004, we
Address 1 999 Baker Way
will not charge interest. The alternate contact person
Suite 100 is Tony Myers. Follow up two weeks before the
San Mateo, CA 94404 end of this quarter.
Address 2 Datatron Corp
46372 Oakwood St. Send SKU B100 on the first of every month and
SKU C2890 on the first of every quarter. They
Suite 250
anticipate increasing volume of orders in Q4.
Palo Alto, CA 94306
A A A
B
B B
Output: Dynamic text control’s width expands when the cross tabulation width
expands. The dynamic text control’s content, however, does not expand
Frame 1
A Frame 2
B
Frame 1
A Frame 2
B
Part WDG24637 can only be used Part WDG24637 can only be used
with the following parts: FL667W, with the following parts: FL667W,
FL668W, FL700R, FL701R, FL702R, FL668W, FL700R, FL701R, FL702R,
FL800S, FL805S, FL810S, FL1000A, FL800S, FL805S, FL810S, FL1000A,
FL1010A FL1010A
fixed width x fixed width x
Figure 10-10 Rendering environments
If the report appears or prints to the second rendering environment in the
example above, you can choose to reduce the space on the right of the text. To do
so, decrease the default padding value by setting the dynamic text control’s Text
Layout➛LineWidthPadding property to a lower value. Note, however, that by
reducing the LineWidthPadding value to optimize for the second rendering
environment, text appearing on the first rendering environment might overflow
or truncate.
Figure 10-11 shows the effect of reducing LineWidthPadding for the previous
examples. By decreasing the padding, more words fit on a line. The text layout
improves for the second rendering environment but text is now truncated in the
first rendering environment.
Changed output in rendering environment 1 Changed output in rendering environment 2
Part WDG24637 can only be used w Part WDG24637 can only be used with
the following parts: FL667W, FL668 the following parts: FL667W, FL668W,
FL700R, FL701R, FL702R, FL800S, FL700R, FL701R, FL702R, FL800S,
FL805S, FL810S, FL1000A, FL1010A FL805S, FL810S, FL1000A, FL1010A
8.8"
8.8"
To increase the space between paragraphs, To increase the space between paragraphs,
specify a value higher than 0.08" for the specify a value higher than 0.08" for the
SpaceBetweenParagraphs property. To SpaceBetweenParagraphs property. To
decrease the space between paragraphs, decrease the space between paragraphs,
specify a value lower than 0.08". specify a value lower than 0.08".
The following illustrations show the
The following illustrations show the effects of changing this property value.
effects of changing this property value.
Output 3 Output 4
LineSpacing = 1 LineSpacing = 1.2
SpaceBetweenParagraphs = 0.15" SpaceBetweenParagraphs = 0.08" (default)
To increase the space between paragraphs, To increase the space between paragraphs,
specify a value higher than 0.08" for the specify a value higher than 0.08" for the
SpaceBetweenParagraphs property. To SpaceBetweenParagraphs property. To
decrease the space between paragraphs, decrease the space between paragraphs,
specify a value lower than 0.08". specify a value lower than 0.08".
The following illustrations show the The following illustrations show the
effects of changing this property value. effects of changing this property value.
= 2.5" 1.45"
Pad 0.109"
Frame 2
Page 1 Page 2 Page 3
DTC 2
Currency
Text
DTC 1 Currency
Text
DTC 1
Text 2 flow
Page 1 Page 2 Page 3
Frame 2
Label 2
Currency
Text 1 Currency
Frame 1 Frame 2
Label 1 Label 2
Text 1 Currency
Text 2 flow
Text 1
Text 2
DTC
Page 1 Page 2 Page 3
Figure 10-24 Result of NoSplitTop and NoSplitBottom set to <1
Output 2
Text fits within the control. Specify Text content
margins if you use a background color
for the control and you want some space Margin
between the text and the control’s edges.
Page 1
Page 2
Bottom margin
Page 3
Figure 10-26 Effects on margins using split dynamic text controls
Notice there is no space between the content and the bottom edge of the first
segment. In the second segment, there is no blank space on either the top or
bottom of the segment. In the third segment, there is no blank space at the top.
If you want space on the tops and bottoms of the segments, modify the values of
SplitMarginTop and SplitMarginBottom. Typically, you set SplitMarginTop to the
same value as Margins➛Top, and SplitMarginBottom to the same value as
Margins➛Bottom. This gives the segments of the dynamic text control consistent
top and bottom margins.
Figure 10-27 shows the effects of the Margin and SplitMarginTop and
SplitMarginBottom properties on a dynamic text control that is split.
Page 1
Page 1
Page 2
Page 2
Page 3
Page 3
Figure 10-27 Formatting without and with dynamic text control
h2
Page 1 0.1"
Page 1 SplitMargin
Bottom
0.1"
SplitMargin
Top
Page 2
0.1"
Page 2 SplitMargin
Bottom
0.1"
h2 SplitMargin
Top
Page 3
h2
Page 3
Figure 10-28 Variance between default and custom margin setting
Customer Letters
Datatron Corp Action Taken
To whom it may concern:
Solution 1a
Check the Pagination➛AutoSplitVertical properties of the frame and the dynamic
text control. If either one of them is set to DoNotSplit, the frame and its contents
are truncated if they exceed a page.
Solution 1b
If you have multiple controls—dynamic text controls and other controls—in the
frame, check the Dynamic Size and Position➛VerticalSize setting of the other
controls. If you use VerticalSizeRelative, you must ensure that
Pagination➛IsFrameDecoration is set to True. This setting is required to properly
display the contents of the controls if they exceed one page. In the example shown
in the previous illustration, the text control’s VerticalSize is set to
VerticalSizeRelative, and its IsFrameDecoration property should be set to True.
Solution 2
Increase the dynamic text control’s Text Layout➛LineWidthPadding property
value.
Customer Letters
Datatron Corp
<html>
<body>
<p>To whom it may concern:</p> Dynamic text
<p>I’m writing this letter concerning the problems
with the 3/1/02 shipment. The following are the control displays
problems we had:</p> HTML tags
<ul>
<li>Parts MR1005 missing</li>
<li>Parts WR100100 broken</li>
</ul>
Solution 3
Check the dynamic text control’s TextFormat property value. If set to
TextFormatPlain, e.Report Designer Professional interprets HTML or RTF tags as
literal text. Set TextFormat to the correct text format.
Chapter 11, For matting a repor t with dynamically sized components 369
About dynamically sized components
A dynamically sized component is a component whose size changes at report-
generation time, in response to its content. The following components are
examples of dynamically sized components:
■ A dynamic text control, whose height expands to fit text data.
■ A cross-tabulation control, or cross tab. The cross tab’s height and width
expands to fit rows and columns of data
■ A nested frame, the height and width of which expand to fit dynamically
When the size of a dynamically sized component changes, it can cause its
container to resize. It can also cause other components within that container to
resize or move from their original positions. For example, if a dynamic text
control expands, its containing frame expands as well. If you place a line
below a cross tab of the same width and the cross tab expands horizontally, the
line expands as well.
Use dynamically sized components judiciously. Reports that contain dynamically
sized components take longer to generate because e.Report Designer Professional
must compute dynamic frame and page layouts.
Chapter 11, For matting a repor t with dynamically sized components 371
Understanding how Actuate software resizes and
repositions components
e.Report Designer Professional uses the following key principles to resize and
reposition components:
■ A dynamic text control remains the same height or expands vertically. It does
not shrink. To modify this behavior, set its CanReduceHeight property to
False.
■ A cross tab can increase and decrease its size both horizontally and vertically.
Its contents determine its size. Changes in the size of a cross tab’s container or
other content within the container do not affect the cross tab’s size. You cannot
modify this behavior using the cross tab’s properties.
■ The container frame remains the same size or expands with dynamically sized
components within it. You can set the CanReduceHeight and
CanReduceWidth properties to shrink a frame if its contents shrink.
■ Pages and flows expand to accommodate a cross tab report, even if you
specify a fixed page size. To prevent a page from expanding, set the cross tab’s
ForcePageHeightToFit and ForcePageWidthToFit properties to False. Using
these property values, the cross tab is truncated if it does not fit on the page.
■ Depending on the original size and placement of lines and rectangles, these
controls expand when an adjacent dynamically sized component expands. To
stop a line or rectangle from expanding, set the CanIncreaseHeight and
CanIncreaseWidth properties to False.
■ Other controls stay the same size unless you specify that they expand relative
to the dynamically sized component or frame. To expand a control, modify the
following properties:
■ Set VerticalSize to VerticalSizeRelative or VerticalSizeFrameRelative
■ Set HorizontalSize to HorizontalSizeRelative or
HorizontalSizeFrameRelative
■ A control moves down if a dynamically sized component above it expands
vertically.
■ A control does not move up if a dynamically sized component above it
reduces its height. You can set the control’s CanMoveUp property to modify
this behavior.
■ A control moves to the right if a dynamically sized component on the left of it
expands horizontally.
■ A control does not move to the left if a dynamically sized component to the
left of it reduces its width. You can set the control’s CanMoveLeft property to
modify this behavior.
Frame Frame
A A
B F B F
C Top C
G G
D D
Center
Bottom
H
Chapter 11, For matting a repor t with dynamically sized components 373
■ Control C does not move because its top is above the center of the dynamically
sized component.
■ Control D does not move because its top is above the center of the
dynamically sized component.
■ Control E moves down because its top is below the center of the dynamically
sized component.
■ Line F expands because its top and bottom are aligned with the top and
bottom of the dynamically sized component, and because its VerticalSize
property’s default value is VerticalSizeRelative.
■ Control G does not expand because its VerticalSize property’s default value is
VerticalSizeFixed.
■ Control H moves down to accommodate changes in the height of the
dynamically sized component.
Frame
A B
D E F
Output
Frame
A B
D E F
G
H
Chapter 11, For matting a repor t with dynamically sized components 375
■ Control E does not move because its left side is to the left of the dynamically
sized component’s center.
■ Control F moves to the right because its left side is to the right of the
dynamically sized component’s center.
■ Line G expands because its left and right sides are aligned with the left and
right sides of the dynamically sized component, and because its
HorizontalSize property’s default value is HorizontalSizeRelative.
■ Control H does not expand because its HorizontalSize property’s default
value is HorizontalSizeFixed.
As you have probably deduced, horizontal geometry behaves the same as vertical
geometry, rotated 90 degrees counterclockwise. The descriptions of vertical
resizing and repositioning apply to horizontal resizing and repositioning, except
that horizontal replaces vertical, width replaces height, left replaces bottom, and
right replaces top.
The following sections describe typical tasks when formatting controls in a frame
that contains a dynamically sized component.
Chapter 11, For matting a repor t with dynamically sized components 377
Design Output
Frame Frame
A B C A B C
A’s, B’s, and C’s left and right sides are aligned
B’s VerticalSize = HorizontalSizeRelative
C’s VerticalSize = HorizontalSizeFixed (default)
Frame Frame
A A
B B
C C
Chapter 11, For matting a repor t with dynamically sized components 379
Design
C’s and D’s tops and
bottoms are aligned
Frame
A
h1
B
C D
h2
A A A
h1
B B B
D
SizeFrame
C D C D C Relative
SizeFixed
SizeRelative
h2
D’s height does not change D’s height increases D’s height increases
relative to dynamically relative to the frame. Its top
sized component C and bottom maintain the
same distance from the
frame’s top and bottom.
Figure 11-6 VerticalSize with three values and non-dynamic control
How to resize a control relative to the height of the frame
1 Set the control’s Dynamic Size and Position➛VerticalSize property to
VerticalSizeFrameRelative.
If the frame’s height increases, the control’s height increases by the same
amount. The distance between the top of the control and the top of the frame is
constant, as is the distance between the bottom of the control and the bottom
of the frame.
A B C A B C
w1 D w2 D
Output 2 Output 3
D’s HorizontalSize = HorizontalSizeRelative D’s HorizontalSize =
HorizontalSizeFrameRelative
Frame Frame
A B C A B C
D w1 D w2
Chapter 11, For matting a repor t with dynamically sized components 381
How to resize a control relative to the width of the frame
1 Set the control’s Dynamic Size and Position➛HorizontalSize property to
HorizontalSizeFrameRelative.
If the frame’s width increases, the control’s width increases by the same
amount. The distance between the left of the control and the left of the frame is
constant, as is the distance between the right of the control and the right of the
frame.
2 Set the control’s Pagination➛IsFrameDecoration property to True. This setting
is required to allow the control to split across multiple pages.
A x A A x
B D D FrameTop
E B D Default B E FrameTop
C E Default
y
C C
Output 3 Output 4
D and E VerticalPosition = D and E VerticalPosition =
VerticalPositionFrameBottom VerticalPositionFrameMiddle
Frame Frame
A A
B B D FrameMiddle
D FrameBottom E FrameMiddle
E FrameBottom
C C
y
Output 5 Output 6
D and E VerticalPosition = D and E VerticalPosition =
VerticalPositionTop VerticalPositionBottom
Frame Frame
A A
B D Top B
D Bottom
E Top
E Bottom
C C
Chapter 11, For matting a repor t with dynamically sized components 383
How to reposition a control vertically relative to the frame
Set the control’s Dynamic Size and Position➛VerticalPosition property to one of
the following values:
■ VerticalPositionFrameTop
The control’s vertical position is fixed. The control does not move.
■ VerticalPositionFrameBottom
The control moves vertically to keep the distance between its bottom and the
bottom of the frame constant.
■ VerticalPositionFrameMiddle
The control moves vertically to keep the distance between its middle and the
middle of the frame constant.
Frame
A B
w1 C D w2
Output 1 Output 2
C and D HorizontalPosition = C and D HorizontalPosition =
HorizontalPositionDefault HorizontalPositionFrameLeft
Frame Frame
A B A B
C D w1 C D
Output 3 Output 4
C and D HorizontalPosition = C and D HorizontalPosition =
HorizontalPositionFrameRight HorizontalPositionFrameCenter
Frame Frame
A B A B
w2
C D C D
Output 5 Output 6
C and D HorizontalPosition = C and D HorizontalPosition =
HorizontalPositionLeft HorizontalPositionRight
Frame Frame
A B A B
C D C D
Chapter 11, For matting a repor t with dynamically sized components 385
Modifying how pages resize
The following factors control the sizes of pages in the generated report:
■ Whether you specify a fixed or dynamic page size. If you specify a dynamic
page size, the page expands to accommodate the report contents, and the
entire report appears on one page. In this case, dynamically sized components
obviously have no effect on individual pages.
■ The type of dynamically sized component that you place in the report.
■ A cross tab causes a page to expand to fit it, even if you specify a fixed page
size. To modify this behavior, see “Enforcing a fixed page size,” later in this
chapter.
■ If you specify a fixed page size, a dynamic text control’s contents splits
over multiple pages, if necessary. Unlike the cross tab, it does not cause the
page to expand. To modify this behavior, see “Resizing a page to fit the
contents of a dynamic text control,” later in this chapter.
If a report design uses a fixed page size and it contains a cross tab and dynamic
text control, the generated report can contain pages of different sizes.
Chapter 11, For matting a repor t with dynamically sized components 387
Cross tab ForcePageWidthToFit = False
The page does not expand to accommodate the cross tab
Cross tab is
truncated
Chapter 11, For matting a repor t with dynamically sized components 389
Dynamic text control ForcePageWidthToFit = True
The page expands to accommodate the contents of
the dynamic text control
Frame
Solution 1
When a dynamically sized component increases in height and overlaps another
control, it usually means that the other control’s vertical position is set relative to
the frame instead of the dynamically sized component. In this example, C’s
VerticalPosition is set to VerticalPositionFrameBottom, which means its bottom
maintains the same distance from the bottom of the frame. If you do not know if,
or how much, a dynamic text control above a control will increase in height, set
the control’s VerticalPosition property to VerticalPositionDefault, the default
value. When the dynamic text control increases in height, the control moves
down accordingly.
Frame 1
A Frame 2
B C
Chapter 11, For matting a repor t with dynamically sized components 391
Design
Frame 2 VerticalSize = VerticalSizeFrameRelative
Control C VerticalSize = VerticalSizeRelative
Frame 1
A Frame 2
B C
Solution 2
When controls in a nested frame are truncated, this typically indicates that a
dynamically sized component increased in height but its containing frame did
not increase enough. Check the frame’s VerticalSize property value. In this
example, Frame 2’s VerticalSize property is set to VerticalSizeFrameRelative. This
setting causes Frame 2 to increase by the same amount as Frame 1, rather than
increasing to accommodate its contents. Frame 1, in turn, increases to
accommodate control A. As a result, Frame 2 might not expand sufficiently to
accommodate control B’s data. When control B is truncated, control C is also
truncated because its size expands to match B’s size.
To fix the problem in this example, set Frame 2’s VerticalSize property to
VerticalSizeFixed. This setting enables Frame 2 to expand to accommodate its
contents.
Solution 3
■ Check the cross tab’s ForcePageWidthToFit property value. It must be set to
True to enable a page to expand horizontally to fit the cross tab.
■ Check the CanIncreaseWidth property of the frame that contains the cross tab.
It must be set to True to enable the frame to expand horizontally to fit the cross
tab.
Chapter 11, For matting a repor t with dynamically sized components 393
394 Developing Actuate Basic Repor ts
Chapter
Top Deals
subreport
Negative Changes
subreport
Issues subreport
Figure 12-1 Report containing multiple subreports
This subpage
component contains
two flows, one for each
subreport
Figure 12-3 Report containing two side-by-side subreports
Title appears
at the top of
every page
Flow, where
report content
appears
In both examples, one report is nested in another, creating a master report and
detail report relationship. Each report accesses data from a different database,
and the reports must be linked by a common field value, such as customer ID or
mutual fund name. The value of the linking field in the master report determines
the data that appears in the detail report. For example, if the customer ID in the
master report is 786, the detail report displays the issues for the customer whose
ID is 786.
These reports resemble a single report with group sections in which data from
two tables are linked, then sorted by a common field. In fact, to create a report
that links data from two tables in a single database, you can use either
technique—create two linked reports or a single report with two group sections.
It is better, however, to use the second technique to improve performance.
Master report
Detail report
Handles appear
around the edges
of the four flows.
Three of the flows
have background
colors. Colored
rectangles added
behind the flows
appear as
shadows behind
the flows.
Office ID
Name
Total
SalaryHistory instances
Context menu
Figure 13-22 Context menu items
Help
Context menu
Figure 13-23 Default Action from context menu
Override OnFollowLink( ) to implement hyperlinks between objects. If you do
not implement the hyperlink or do not assign a different action to OnActuate( ),
nothing happens when the user chooses Default Action.
Figure 13-24 is a code example that shows how to create a menu item for the
context menu.
Sub AddMenuCommands( menu As AcPopupMenu)
' Execute the default processing
Super::AddMenuCommands( menu )
' Create a line to separate the new menu item from the
previous item menu.AddSeparator
Default Action
Help
Evaluate Discount
For more information about the method for each mouse event, see Class
AcVisualComponent in Chapter 7, “AFC classes,” in Programming with Actuate
Foundation Classes.
The Shift parameter gives you additional control over mouse events.
Using the Shift value, you can assign different actions to the different key and
mouse action combinations. For example, the OnLButtonDown( ) method assigns
default functionality to key and mouse actions, as described in Table 13-8.
Table 13-8 OnLButtonDown method functionality
User action OnLButtonDown action
Press left mouse button on object Select the object and deselect other objects,
if any were previously selected.
If view.IsSelected( me ) Then
If Shift BAND ControlKey Then
OnLButtonDown = True
view.SelectElement( me, False )
Else
OnLButtonDown = False
End If
Else
OnLButtonDown = True
If Not ( Shift BAND ControlKey Or Shift BAND ShiftKey )
Then
view.DeselectAll
End If
view.SelectElement( me, True )
End If
End Function
If you use a font that does not appear in master_fonts.rox, you can create a
custom executable file that defines your fonts.
Debugging a report
Chapter 15
15
This chapter contains the following topics:
■ About debugging
■ Understanding the types of errors
■ About e.Report Designer Professional’s debugging tools
■ Controlling code generation
■ Starting a debugging session
■ Examining and modifying variable values
Double-clicking an error message in Output displays the statement that causes the error
Figure 15-3 Identifying errors in Output
Output also can identify obsolete properties. Properties become obsolete for
many reasons, including changes to the data source and changes that occur from
one Actuate release to another. Obsolescence also can occur when you change the
parent class of a component. When you run the report, Output displays error
messages about the obsolete properties. To remove references to these properties
from the design, choose Report➛Verify Design.
About Variables
To monitor a variable during code generation, use the Variables window. The
Variables window is available only during a debugging session. To use Variables,
set a breakpoint in the method that contains the variable that you want to
examine, then run the report. At the first breakpoint, Variables appears in the
debug perspective.
Variables shows the values of all variables in context, organized by scope:
■ Global. A global variable is accessible to the whole report. For example, the
variables that store the names of the report object executable (.rox) file and
report object instance (.roi) file have global scope.
■ Local. A local variable is accessible within the method currently executing.
■ Instance. An instance variable is accessible to an object. For example, in
Figure 15-4, the SQLQuerySource object has the instance variables
SelectClause, FromClause, WhereClause, and so on.
Last line
executed
Figure 15-6 Call Stack and source code in code generation suspension
Variables
associated with
the connection
Value Type
Figure 15-8 Debugging with Watch
In Name, type the name of the variable to watch. You also can drag the variable
name from a source file or method editor and drop it in Name. If the variable is a
structure, instance, or array variable, you can view the values assigned to its
members by choosing the plus sign to expand it.
In Value, you can view the value of the variable.
In Type, you can view the data type of the variable. You cannot change the type.
You can also view the context within the report for a structure, instance, or array
variable.
Running to a breakpoint
Use a breakpoint to pause report generation at a specific line of code. For
example, if you do not want to trace through each line of a complex method, set a
breakpoint just before the code that you want to examine. When Actuate Basic
encounters a breakpoint, it suspends generation just before the line with the
breakpoint. You can then use the other debugging tools to inspect the state of the
method or trace generation line by line from that method.
Breakpoint
Array element
Simple variable
Edited value
3
Displaying multiple reports from a
Part 3
About parameters
Report parameters determine which data the report displays. Instead of
retrieving all data from a data source, a report that uses parameters retrieves a
specific subset of data. For example, if you are working with an inventory
database, you can use parameters to retrieve data about heavy equipment only, or
data about all inventory purchased from a specific vendor, or data about office
furniture purchased between two dates. The report developer creates parameters
during the design process. The report user can set parameter values by typing or
selecting values on the Requester dialog box. If the user does not set parameter
values, e.Report Designer Professional uses a default value the report developer
defines.
Report parameters can be optional or required. Optional parameters do not
require that the report user enter values when running the report. Optional
parameters appear in the parameter list without a trailing asterisk, as Figure 16-1
shows.
Actuate-defined parameters
X indicates
an ad hoc
parameter
Ad hoc parameter
A value in a QBE expression must match the data type of the data source column
to which it applies. For example, you must use a numeric value in a QBE
expression that filters a numeric column. Do not apply formatting to a report
parameter value. If the application cannot convert a value in a QBE expression to
the data type that the data source requires, <ERROR> appears in the SQL code.
How to use the ad hoc parameter builder
For a field that supports typing an ad hoc value, you can type the value and use
the ad hoc parameter builder to choose from a list of operators and characters to
provide a QBE expression in the field.
1 Choose the builder button to the right of the parameter value field’s drop-
down list. Figure 16-5 shows the menu that appears.
When you use a date in a QBE expression, use four-digit years rather than
two-digit year abbreviations. For example, to signify January 15, 2006, type
01/15/2006 rather than 01/15/06. Using a four-digit year ensures that you do not
have to consider the two-year interpretation rules.
In the preceding table, a comma appears as a list separator for Smith, Jane. To
specify a list separator that is locale independent, use the pipe sign (|).
To match values ending in a space character when the QBE expression contains a
percent character, append a percent character to the QBE expression. For
example:
Sm%th%
This syntax is valid only for LIKE. The application does not add a percent
character to a BETWEEN clause. For example, if the database column custName
is of type string, and the report user types D as the value of the ad hoc parameter,
the query retrieves the data row that contains Design Boards, however, if the
report user types A-D as the ad hoc parameter value, the application generates
the following WHERE clause:
WHERE custName BETWEEN 'A' AND 'D'
This query does not match customer records where custName is Design Boards.
QBE expression values that retrieve values starting with A through D appear in
Table 16-8, including one to which the application adds a percent sign.
Table 16-8 Examples of QBE expressions to retrieve a range of values
QBE expression SQL condition
A-E custName BETWEEN 'A' AND 'E'
>A&<E custName > 'A' AND custName < 'E'
A|B|C|D custName LIKE 'A%' OR
custName LIKE 'B%' OR
custName LIKE 'C%' OR
custName LIKE 'D%'
The flexibility available with this type of parameter is both an advantage and a
disadvantage. The user needs to know how to construct valid expressions, and
while Requester includes an expression builder to help the user build
expressions, a novice report user can have trouble.
e.Report Designer Professional does not verify values that a user enters. If the
user specifies an invalid expression or value, the report runs but it does not
display any data. You should consider writing code to verify the values that users
specify.
Indicates ad hoc
parameter
Figure 16-7 Query Editor—Conditions
The column that you selected appears as a parameter when the user runs the
report. Requester uses the default parameter name, which is the same as the
column name. You can change the parameter name to make it more
descriptive.
Parameters group
Default values
Figure 16-12 Specifying parameter display name, group, and default value
Choose OK.
Drop-down list
Radio buttons
Create an
Actuate iServer
profile
Figure 16-25 Setting the default value for the check box
Choose OK.
Hiding a parameter
You can specify that a parameter does not appear on Requester. Use this approach
when you want to supply a value programmatically, rather than through user
input.
For example, you can link two subreports in a master-detail relationship based on
a common field. The value of the common field in the master report controls the
data that appears in the detail report. You need to make the common field a
parameter in the detail report so that, at run time, the detail report can get the
current value from the master report. Because the parameter value is passed
Deleting parameters
You use the same tool to create and delete a parameter. For example, if you create
a parameter using Query Editor, you must delete the parameter in Query Editor.
If you create a parameter using a component’s Properties page, you must delete
the parameter on the Properties page.
If you are not sure how a parameter was created, use the Parameter Editor to
view information about the parameters in a report.
Parameter Editor lists all parameters, as shown in Figure 16-27. To open
Parameter Editor, choose Tools➛Parameters.
List of parameters Default values
Testing parameters
It is important to test all the parameters you create to verify that they work the
way you intend and meet user needs. Testing entails running the report,
supplying different parameter values, and checking the generated report
carefully. You can test parameters using the following techniques.
End Sub
DataSource::OfficeState is the fully scoped parameter name. You must use fully
scoped names for parameters with local scope. All data-filtering parameters have
local scope. To check the scope of a parameter, look at the parameter’s properties.
How to write code that verifies parameter values
1 In Report Structure, right-click the top-level report component. Choose
Properties.
2 On Properties, choose Methods.
3 On Methods, select Sub Start( ). Choose Override. The method editor displays
the required lines of code for overriding the method.
4 Add the error-checking code to the method.
Chapter 17, Controlling user access through page-level secur ity 549
About page-level security
Page-level security is a technique for controlling user access to a report on a page-
by-page basis. In a report that uses page-level security, a report user can view,
search, and print only pages to which he has access.
Page-level security works by comparing the report user’s security IDs (SIDs) to
the access control list (ACL) for a page in the report. An ACL is a list of security
IDs that pertain to a report component such as a section. If any of the report
user’s security IDs matches any security ID in the section’s ACL, the report user
has access to pages e.Report Designer Professional generates from the section.
For example, a report developer can control access to data by creating a report
like the one shown in Figure 17-1. The report consists of six pages. Some report
users can see all pages and some users can see only a subset of pages.
VP VP VP
CTMgr CTMgr CTMgr
Rep1102 Rep1337
1 2 3
VP VP VP
MAMgr MAMgr MAMgr
Rep1002 Rep1076
4 5 6
Figure 17-1 Example of a report with controlled access
This report contains a list of customers in a sales region. The VP user can access
every page in the report and can see the name of every customer in the region.
The state managers, CTMgr and MAMgr, can see only the names of customers in
their states. CTMgr can access pages 1, 2, and 3. MAMgr can access pages 4, 5,
and 6. Each sales representative can access only a single page.
Page-level security is available only for a report a developer publishes to Actuate
iServer for viewing in DHTML format using the secure read privilege. If the
report is on the client machine or the report user has the standard read privilege,
page-level security is not in effect. For page-level security to take effect, the report
user must have secure read privilege to the report. Secure read provides the
ability to open, read, print, but not download or edit, a report in the Encyclopedia
volume. Using page-level security requires the Actuate Page Level Security
option on Actuate iServer.
Chapter 17, Controlling user access through page-level secur ity 551
GrantExp = "VP"
Chapter 17, Controlling user access through page-level secur ity 553
Using this page, you can assign security IDs to simulated users, then run the
report to verify that each user can access the correct pages.
How to grant access to the pages in a section
1 Right-click a section in Report Structure, then choose Properties. The
Properties page for the section appears.
2 Type a value for Security➛GrantExp.
If you do not see the property, choose Advanced Properties on the Properties
page.
A valid value for GrantExp is an Actuate Basic expression that evaluates to a
single security ID, a comma-separated list of security IDs, or a virtual security
ID.
For example, as shown in Figure 17-5, type the following expression in
GrantExp:
[offices.city] & "Office Manager"
Chapter 17, Controlling user access through page-level secur ity 555
4 As shown in Figure 17-6, set ValueExp to:
GetPageList( ).GetCurrentPageACL( )
Chapter 17, Controlling user access through page-level secur ity 557
How to display visible and actual page numbers
When you create a blank report, e.Report Designer Professional places a page
number control at the bottom of the page. This default page number control’s
PageNumberType property setting is VisiblePageNofM.
1 In the layout window, scroll to the bottom of the page.
2 Move the default page number control up and to the right, as shown in
Figure 17-10.
Chapter 17, Controlling user access through page-level secur ity 559
How to test page-level security as a simulated user
1 Choose Report➛Design Properties. Design Properties—Report Settings
appears.
2 To view the report as User 1, select User 1.
3 Type a security ID for this simulated user, as shown in Figure 17-14.
Chapter 17, Controlling user access through page-level secur ity 561
7 Run the report. User 2’s security ID appears at the top of the page. The report
contains only the page for which the access control list includes the security ID
Rep1102.
The visible page number is less than the actual page number, as shown in
Figure 17-17.
Page ACL
User’s Security ID
Chapter 17, Controlling user access through page-level secur ity 563
' Check whether the security ID is a product ID.
If InStr( SecurityID, "Product Category" ) > 0 Then
' Build the virtual security ID and add it to the list.
' Ensure that the comma in the virtual security ID
' reads as an AND operator. Typically, the comma in
' GrantExp list reads as an OR operator.
acl = acl & ", " & mgrSecurityID & " " & SecurityID
End If
Loop
End If
GetUserACL = acl
End Function
Setting CascadeSecurity
The default setting for the Security➛CascadeSecurity property of a section is
True, as shown in Figure 17-18. This setting ensures that a subsection inherits
security IDs from its container section. A report user who can access the pages in
a container section can also access the pages in any subsections within that
section.
Overriding GetFullACL( )
When the Security➛CascadeSecurity property of a section is True, a subsection
calls GetFullACL( ) for its container section. Then, the subsection appends its
ACL to the ACL for the container section. In this manner, a report user who can
access pages in the container section also can access pages in the subsection.
To disable cascading security, you can override GetFullACL( ) for the subsection.
If you override GetFullACL( ) as shown in the following example, the access
control list for the subsection contains only the security IDs the subsection’s
GrantExp property specifies.
Function GetFullACL( ) As String
GetFullACL = GetComponentACL( )
End Function
Chapter 17, Controlling user access through page-level secur ity 565
Generating a custom ACL using SetSecurity( )
The Factory calls SetSecurity( ) to generate an access control list for a section.
Typically, SetSecurity( ) returns the security IDs that Security➛GrantExp defines
for the section. You can build a custom access control list by overriding
SetSecurity( ) on a section. Then, set the ACL variable to a single security ID or a
list of security IDs separated by commas. When you override SetSecurity( ), the
Factory ignores the value of GrantExp for the section.
The following example uses the AccountType property of the current data row to
define the data values and the ACL variable to define the security role. If no
security restrictions exist, set an empty ACL variable.
Sub SetSecurity( row As AcDataRow )
Dim myRow As MyDataRow
Set myRow = row
End Function
Chapter 17, Controlling user access through page-level secur ity 567
568 Developing Actuate Basic Repor ts
Chapter
Detail report
Master report
Group section
Summary entry
Detail report
Group section
4
Optimizing report development tasks
Part 4
Custom property
A custom property
A custom property
Creating a property
When you create a property, you assign it the following settings:
■ Name
Use Actuate Basic conventions for a name.
■ Property group
You can assign a new property to an existing property group. This assignment
places the property in a group on the Properties page. There is no default
property group for a new property, and you do not need to assign a property
to a group.
You also can create a new group for the property. The new group appears on
the Properties page with the new property.
■ Value expression
When you create a property for a control, you also indicate whether the
property is a value expression. For more information about value expressions,
see “Setting a property as a value expression,” later in this chapter.
Filtering a property
You can set the visibility of any property, so that it appears at a particular filtering
level on the Properties page. You set this attribute when you create a custom
property. To change the visibility of any property, including properties defined by
AFC, choose Edit. If you set the Visibility of a property to Hidden, as shown in
Figure 19-9, the property does not appear on the Properties page of a subclass or
reference. Use the Hidden setting for a custom property to set the value of the
property on a component in a library. When a report developer subclasses the
component in a report design, no changes to the hidden property are possible.
Custom structure
Figure 19-14 Use the pane at the right to create structure members
4 Choose New. The first Element field becomes active.
5 Type a name for the first structure member. Use Actuate Basic conventions for
a name.
6 Place the cursor in the first Type field. Type or select a valid data type for the
member.
7 Create as many member variables as the structure requires. When you finish,
choose OK.
Custom structure
Custom structure
Member variables
Custom enum
Figure 19-21 Use the pane at the right to create enum constants
4 Choose New. The first Element field becomes active.
5 Type a name for the first constant. Use Actuate Basic conventions for a name.
6 Place the cursor in the first Value field. Type an integer value for the constant.
7 When you finish adding constants, choose OK.
Publishing reusable
Chapter 20
20
components in a library
This chapter contains the following topics:
■ Understanding component and function libraries
■ Planning a component library
■ Creating a component library
■ Creating a function library
■ Including a component or function library in a report design
■ Placing a library component in a report design
■ Publishing a component to a library
■ Providing access to a library using a configuration file
■ Protecting a component or function library from modifications
The function in an
included function library
appears in Expression
Builder as an external
function
Locate additional
libraries
Libraries available to
the report design
Library icon
Library icon
Component references
<Config>
<SearchPath>
<Location>\DesignResources</Location>
</SearchPath>
<Include>
C:\Market\StocksConfig.xml
</Include>
<Design>
<Library
Autoinclude="true"
Alias="Financial Reports">
C:\LibraryFiles\Finance.rol
</Library>
<Connection Type="Trades"
Alias="Financial reporting resources"
DefinedIn="C:\LibraryFiles\Stocks.rol"
Description="For quarterly and weekly financial
reports."
IsDefault="True">
Component and
function libraries
from SearchPath
locations are
available to the
report design
Figure 20-25 Making libraries available through SearchPath
Generating information
Chapter 22
22
objects from Actuate Basic
report designs
This chapter covers the topic “Generating an information object from an Actuate
Basic report design.”
Chapter 22, Generating information objects from Actuate Basic repor t designs 631
Generating an information object from an Actuate
Basic report design
An Actuate Basic report can be used as a data source for an Actuate
BusinessReport Studio report. BusinessReport Studio is a web-based report
design tool. There are two modes of BusinessReport Studio, the Enterprise mode
and the Workgroup mode. In the Enterprise mode, Actuate information objects
can be used as data sources, and information objects and report designs are stored
on Actuate iServer. An information object is a named SQL query. In the
Workgroup mode, reports cannot use information objects as data sources, and
report designs are stored locally or on a non-Actuate application server.
To generate an information object from an Actuate Basic report design, you must
specify a default Actuate iServer profile. In addition, the connection component
in the report design must be of a supported type. Supported connection types are
SQL Server 2005 (MS SQL in e.Report Designer Professional), Oracle, or DB2.
In e.Report Designer Professional, you open a report design based on a supported
connection type. Then, you export the query to Actuate Information Object
Designer to create an information object and store it on Actuate iServer.
Information Object Designer uses the query defined for the data source
component in the report design to create the following files, using information
from the report design:
■ Information object project
Information Object Designer creates a project using the default iServer profile
defined in e.Report Designer Professional.
■ Connection definition
Information Object Designer creates a connection definition using the
properties of the connection component in the report design.
■ Map file
A map (.sma) file is a representation of the data query. A BusinessReport
Studio user uses the map as an information object data source.
A map consists of data columns. The properties of a map column derive from
the properties of the first control whose value expression is set to the
corresponding database column. For example, if the CustID control’s
TextPlacement.Horizontal property is set to TextAlignRight, the CustID
column’s Horizontal Alignment property is set to right. If no such control
exists, Information Object Designer uses the default values for map column
properties.
Chapter 22, Generating information objects from Actuate Basic repor t designs 633
4 On Select Server Profile, complete one of the following tasks to specify a
default iServer profile:
■ Select an iServer profile from the list, as shown in Figure 22-3.
Chapter 22, Generating information objects from Actuate Basic repor t designs 635
Port
number
Customizing the
Chapter 23
23
design environment
This chapter contains the following topics:
■ About design environment customization
■ Setting design environment options
■ Setting a font in the designer
■ Setting units of measurement
■ Setting design search paths
■ Setting general options in the designer
■ Customizing the classes of the toolbox
■ Changing the item list for Create New Report
If your machine uses Arial Unicode MS font, e.Report Designer Professional uses
it with the font size 8 as the default settings for other languages.
Figure 23-7 Setting units of measurement for data entry and display
3 In Unit Display, set the display options:
1 From Display Unit, select a unit of measurement.
2 To display a unit suffix after the value, such as in for inches or cm for
centimeters, type the suffix in Display Suffix.
For example, if you select inches as the display unit and you want to
display the abbreviation in for inches after the unit value, type:
in
e.Report Designer Professional displays 2.23in for the value 2.23. To
display a space between the value and the suffix, type a space before the
suffix.
3 Under Decimals, set the number of digits to display after the decimal point.
Add Component
Add Group
Select a component
identifier
Select an image
Sample template
Custom template
Template alias
5
Integrating report output
Part 5
Chapter
<IFRAME SRC="http://localhost:8700/iportal/servlet
/ViewPage?page=1&format=Reportlet&name=Detail.roi&type=roi
&scalingFactor=60 "NAME "A" HEIGHT=250 WIDTH=80% HSPACE=10
SCROLLING=YES ALIGN=RIGHT>
Your browser cannot display content in an IFRAME
</IFRAME>
Providing webChapter 25
25
functionality in a report
This chapter contains the following topics:
■ About custom browser code
■ About the browser scripting control
■ Including global custom browser code
■ Creating an HTML form
■ Generating custom browser code dynamically
■ Printing and viewing a report using the PDF converter
■ Printing and viewing a report using the view perspective
■ Creating an example library for Internet Explorer
<b>MyText</b>
DHTML
converter
<b>MyText</b>
Web
<b>MyText</b>
browser
<b>MyText</b>
DHTML
converter
Web Output of
browser context block
function clearCurrent()
{
4 Choose OK.
Using DHTMLForm
DHTMLForm defines several new variables and overrides two methods.
Figure 25-6 shows the variables DHTMLForm defines.
Subclassing DHTMLForm
When you subclass DHTMLForm from a library, you can set the FormAction,
FormMethod, and FormName properties, as Table 25-2 shows. The
CustomDHTMLHeader( ) method uses values of these properties to generate a
FORM element.
Table 25-2 Subclassing DHTMLForm
Property Value
FormAction http://radium:8700/iportal/iportal/activePortal
/viewer/executereport.do?__requesttype=
immediate&__executableName=
%2fSales%20Conferences%2f
SummaryTimeSeries%2erox
FormMethod POST
FormName FormBasedForm
Using OnRow( )
OnRow( ) defines an Option element for each menu option and assigns the code
to MenuCode. OnRow( ) is called repeatedly because BuildFromRow( ) returns
ContinueBuilding. DHTMLMenuControl overrides OnRow( ) as shown in the
following example.
Sub OnRow ( row as AcDataRow )
Dim NL as String
Dim TAB as String
Dim i as Integer
Dim text as String
Dim value as String
NL = Chr$(10)
TAB = Chr$(9)
i = 0
text = row.GetValue(OptionText)
value = row.GetValue(OptionValue)
MenuCode = MenuCode + NL + " <option value= ' " + value + "
'>" + text +
"</option>"
End Sub
Using Finish( )
Finish( ) generates a Select element and assigns the code to FinalMenuCode.
DHTMLMenuControl overrides Finish( ) as shown in the following example.
Sub Finish( )
Super::Finish( )
FinalMenuCode = "<SELECT NAME=' " + MenuName + " '>"
FinalMenuCode = FinalMenuCode + MenuCode + Chr$(10)
FinalMenuCode = FinalMenuCode + "</SELECT>" + Chr$(10)
FinalMenuCode = FinalMenuCode + MenuScript
EndSub
Subclassing DHTMLMenuControl
By subclassing DHTMLMenuControl from a library, you can create a browser
scripting control that generates a drop-down menu when a report appears in a
web browser. For example, you can create a control called CustomerMenu that
generates a drop-down menu listing all customers in a database.
Set the MenuName, OptionText, and OptionValue properties as Figure 25-10
shows. The OnRow( ) method uses values of OptionText and OptionValue to
generate an Option element for each menu option. Because the OptionText setting
is customers.customName, the customer name appears in the menu. The Finish( )
method uses the value of MenuName to generate a SELECT element.
Microsoft
Internet
Chart Internet
ROX Explorer
and Explorer
cache browser
image DHTML
cache Converter
XML
frameworks
Page- Search
Basic level
engine security Acrobat
TOC Reader
PDF
XML
data
Custom
Report document application
6
Previewing reports in Actuate
Part 6
Go to a
specific
page of the
report
Open the
table of
contents
Split the
window
vertically
Figure 27-1 The view perspective
How to split the viewing window
You can view different parts of the report simultaneously by splitting a window.
Use the split box at the top of the vertical scroll bar or the left of the horizontal
scroll bar to create a split window. To restore the non-split window, double-click
the split bar.
Go To Page
Figure 27-3 Go To Page toolbar button
About zooming
Zooming in and out of a report makes it easier to view specific data. The scaling
range is from 25 percent to 400 percent. Actuate e.Report Designer Professional
uses the last zoom setting you set as the default magnification when opening a
report. When you change the zoom scale of a report, you change the default zoom
setting. When you choose a hyperlink in a report that links to another report, the
linked report uses the zoom setting of the report containing the hyperlink.
Figure 27-14 and Figure 27-15 show a report at 50 percent and at 200 percent.
Set scaling size
Selected items
Running a report
Chapter 28
28
This chapter contains the following topics:
■ About running a report
■ Running a report that uses parameters
Understanding checkpoints
As the Factory generates the pages of the report, it writes the completed pages to
the report at designated checkpoints. The checkpoints occur after the completion
of the 1st, 5th, 10th, 25th, and 50th pages, and every 50 pages after the 50th.
The view perspective displays the portions of the report that were written to a file
when you manually refresh the report.
Text boxes
Drop-down list
Open
Save Stop
Save As Search
Add Clear All
Delete
Figure 29-1 The Search window
Next
Previous
Show company
name and
address
Printing a report
Chapter 30
30
This chapter contains the following topics:
■ Printing a report from your desktop
■ Running a report before printing
Select a printer
Choose Properties
to change the
printer’s settings
Options specific
to Actuate Basic
reports
Select the
pages to print
and other
options
Appendix A, Working with RTF and HTML tags in a dynamic text control 753
Working with RTF tags
The RTF tags that you use in a dynamic text control must be well formed. An RTF
tag starts with a backslash (\) character and ends with a space or a new line
character. To turn off the effect of a tag, use the same tag with a zero (0) character
after it. For example, the following RTF code:
Hello world\par
\b Hello stars\b0\par Hello moon
produces the following text that contains bold text and multiple paragraphs:
Hello world
Hello stars
Hello moon
You can concatenate tags. For example, the following RTF code:
\b\i Hello\i0 stars\b0
produces the following text that is both bold and italic:
Hello stars
You do not need to provide a complete RTF document by providing an RTF
header.
Table A-1 lists the supported RTF structural and definition tags. For more
information about using RTF tags, refer to RTF documentation, such as “Rich Text
Format (RTF) Specification, version 1.6,” which is available at the following URL:
http://latex2rtf.sourceforge.net/rtfspec.html
Appendix A, Working with RTF and HTML tags in a dynamic text control 755
Table A-2 RTF paragraph format tags (continued)
RTF paragraph tag
supported Description
\saN Specifies vertical space after the paragraph. N indicates
the space in twips.
\sbN Specifies vertical space before the paragraph. N indicates
the space in twips.
\slN Specifies vertical line spacing. N indicates the total line
height in twips.
\slmultN Specifies vertical line spacing multiplier. N indicates the
multiplication type.
\txN Specifies the tab stop. N indicates the tab stop position in
twips.
The dynamic text control recognizes any Unicode character encoded in the
standard RTF form \un where n is the decimal Unicode value of the character. If
Appendix A, Working with RTF and HTML tags in a dynamic text control 757
Working with HTML tags
HTML tags within a dynamic text control must be well formed and complete. For
example, if you need to create a bold set of text, wrap the <B> and </B> tags
around the text to format. You can combine multiple HTML tags in one dynamic
text control to create text that is formatted in one manner in some portion of the
control and in a different manner in another portion.
If you need to format text that crosses several rows of data, the tags and
associated text must all be aggregated into one control. To aggregate the text into
one control, set the ValueType property of the control to SummaryControl. This
type of control consumes all the row data for the enclosing section. Tags also must
be aggregated into one control because HTML tag formatting does not persist
across controls. For example, the tags for the ordered list, such as <OL> and <LI>
must be placed within one long dynamic text control. The first part of the control
must contain the <OL> tag, and the last entry in the list must contain the closing
</OL> tag. In between, each individual <LI></LI> must be nested within the
same dynamic text control.
For more information about using HTML tags, refer to HTML documentation,
such as the W3C’s “HTML 4.01 Specification,” which is available on the web at
the following URL:
http://www.w3.org/TR/html4/
Table A-5 lists the supported HTML structural tags.
Table A-5 HTML structural tags
HTML structural
tag supported Description
<HEAD> Specifies HTML document header information. Actuate
</HEAD> software ignores all content between <HEAD> and
</HEAD>, including any nested tags.
<!-- --> Specifies a comment. Actuate software ignores all content
between <!-- and -->.
<COMMENT> Specifies a comment. Actuate software ignores all content
</COMMENT> between <COMMENT> and </COMMENT>.
<SCRIPT> Specifies a script. Actuate software ignores all content
</SCRIPT> between <SCRIPT> and </SCRIPT>.
Appendix A, Working with RTF and HTML tags in a dynamic text control 759
Table A-8 lists the supported HTML parameters.
Table A-8 HTML parameters
HTML parameter
supported Tag Description and values
ALIGN <P> Specifies the alignment. Use CENTER, LEFT,
RIGHT, or JUSTIFY.
COLOR <FONT> Specifies the foreground color.
Use one of the following values:
■ An RGB value specified as a 6-digit hex
number in the form #xxxxxx
■ A color name from the following list: aqua,
black, blue, fuchsia, gray, green, lime,
maroon, navy, olive, purple, red, silver, teal,
white, yellow
FACE <FONT> Specifies the font name, such as Arial. If a font
is not specified, Actuate software uses a
default font.
SIZE <FONT> Specifies the font size. Use one of the following
values:
■ An absolute font size specified as an
integer. Absolute font size values map to
point sizes by the following rules:
0 or 1 = 8 pt, 2 = 10 pt, 3 = 12 pt, 4 = 14 pt,
5 = 18 pt, 6 = 24 pt, 7 or greater = 36 pt.
■ A relative font size specified as an integer
with a leading + or -. Relative font sizes are
interpreted as offsets from an absolute font
size 3. For example, +2 is interpreted as 5.
The dynamic text control recognizes any Unicode character encoded in the
standard HTML form &#n; where n is the Unicode value of the character. If the
specified character does not exist in the requested font, the null symbol (¤,
Unicode value 127) is used.
Appendix A, Working with RTF and HTML tags in a dynamic text control 761
762 Developing Actuate Basic Repor ts
Appendix
Index 767
– (hyphen) character (continued) report templates 69
search expressions and 737 report wizards 67
– (hyphen) character tag 761 reports 624, 708
– (minus sign) icon 51 resources 617
– operator 737 sample configurations 5
… (ellipsis) character 147 sample reports 708
’ (single quote) character specific parts of a report 711
query statements and 520, 522 table of contents 711
RTF formats and 757 ToolTips 42
AcChart class 200
A AcChart6 class 200
absolute font size 760 accounts 624
absolute formatting 157 AcCrosstab class 285
absolute paths 457, 458, 620, 661 ACL variable 566
absolute URLs 672 ACLs. See access control lists
AC_CENTURY_BREAK registry key 520 AcReport class 571, 698, 699
AC_MASTER_FONT_FULLPATH_NAME AcReportComponent class 699, 700
variable 485 Acrobat Reader 486
AC_USE_DEFAULT_FONT_FILE See also PDF Viewer
variable 485 active perspective 649
accelerator keys. See keyboard shortcuts Active Perspective Only command 49
access control lists actual page numbers 184, 558
creating security IDs for 551, 554 ActualPageCount value 558
customizing 564–567 ActualPageNumber value 555
displaying for current page 555 Actuate Basic
generating 551, 566 caution for fatal errors and 495
implementing page-level security and 550 customizing reports with 59
nesting sections and 552, 565 displaying source code for 500
access privileges. See privileges generating source code for 501
access restrictions 550, 564 mapping security roles with 566
accessing running source code for 496
blank report designs 71 setting source encoding for 651
call stack 491 starting debugging sessions for 500
color palettes 149 stopping debugging sessions for 498
component libraries 598 tracking methods calls and 489, 493
context menus 638, 718 Actuate Foundation Classes 58, 200, 473, 497
data 34, 71 See also classes
data perspective 22 Actuate Palette Representation files. See apr
data sources 4, 72 files
databases 511 ad hoc parameter builder 518, 726
Encyclopedia volumes 651 ad hoc parameters
external functions 599 adding conditional sections and 402
function libraries 599 creating 429, 525, 526
Listing Report wizard 10 overview 514
multiple view windows 715 selecting 532
ODBC databases 4 setting values for 517
ad hoc reporting 510
Index 769
aggregate expressions (continued) AND operator 563
customizing properties and 587 angle brackets (<>) character tags 761
filtering data and 120, 121 angle brackets (<>) characters
restrictions for 225 finding 739
aggregate functions in text fields 528
calculating values and 114, 120 parameter names and 528
creating cross tabs and 283 query statements and 521
restrictions for 122, 402 annual sales reports 215
returning null values and 114 Appearance page 134
aggregate information. See aggregate values applets 674
aggregate values Application server field (iServer Profile) 625
See also summary values application servers 625
adding 74, 114–119 See also web servers
building cross tabs and 286, 298 application window
comparing 120, 122 accessing elements of 43
displaying 298 changing fonts for 643
filtering 120 changing toolbox in 652, 653
grouping 296, 297 customizing 638
aliases 590, 593 elements described 41
Align command 139 personalizing 46–49, 715
ALIGN parameter 760 viewing status messages in 29
aligning applications
browser code output 678 designing multi-platform 478–479, 485
components 136, 139–140 generating browser code and 682
controls 340 planning page layouts for 169
labels and data points 260, 261 XML data formats and 694, 696
text 143, 755, 760 .apr files 655, 656, 657
All Perspectives command 49 archiving rules 624, 628
Allow user to type a value setting 532 area charts
alphanumeric searches 737, 738 See also charts
alphanumeric values 89 aligning components in 260, 261
AlternateText property as study chart layer 210
building browser scripting controls changing series labels for 256
and 678, 679, 681, 685 creating 203
displaying sample data and 677 displaying data in 255
dynamically generating values for 683 generating sample data for 277
generating PDF reports and 684 labeling data points in 258
hiding scripting controls and 685 plotting empty values for 262
AltKey value 475 selecting data for 211, 224
Always prompt for values setting 513 arguments. See parameters
ampersand (&) character arranging items in lists 532
link expressions and 455 arrays 493
parameter names and 528 Asc setting 18
query statements and 521 ascending sort order 18, 73, 127, 128
ampersand (&) character tag 761 ASCII characters 739, 740
analyzing data 66, 283 ASCII control codes 332, 333
And operations 733 ASCII formats 334
Index 771
.bas files. See source files clipping output for 677–684
Base layer legend text setting 248 converting to PDF formats 684, 685
base layers (charts) 209, 210, 211 debugging 678
Basic. See Actuate Basic displaying 679, 685
batch files 764 example for Internet Explorer 686
Before frames 26 generating dynamically 681–684
Before slot 95, 106, 343 generating HTML tags for 677
BETWEEN clause 524 including in designs 674, 677, 679, 680
bitmapped image files 154 referencing 680
blank design windows 5 setting scaling values in 683
blank lines 339 supported formats for 674
blank report designs 70, 71, 100, 483 browser scripting controls
Blank Report option 70, 71, 100, 125, 658 adding to frames 677, 679
Blank Report wizard 658 adding to libraries 680, 686
blank space 326, 330, 344, 347 creating HTML forms with 680–681
See also leading spaces; trailing spaces displaying values 679, 683, 685
blank spaces in strings 523 getting execution context for 682
BMP files 154 hiding 685
body page layouts 194–198 overview 674
boilerplate text 330 replacing image controls with 684
bold text 756, 759 resizing 683
Boolean expressions 401, 517 specifying output alignment 678
Boolean types 538 browser source viewer 679
Boolean values 143, 538 BrowserClipping property 677
border attributes 244, 245, 246 BrowserCode method 681, 683
Border dialog 244, 245, 246, 276 BrowserCode property 677, 679
Border property 186 browsers. See web browsers
BorderColor property 685 bubble charts 204
borders See also charts
browser scripting controls and 685 Build and Run command 29, 56, 57, 362, 546
chart legends and 247 Build command 56
charts and 244, 245, 246, 273 builder button 518
components and 149 BuildFromRow method 681, 683, 684
cross tabs and 317–319 building reports 56
drop shadows and 150 See also creating reports; developing
dynamic text controls and 355 reports
page layouts and 186 built-in classes 58
Bottom property 356 bullet symbols 757, 761
Break command 491 bulleted lists 330, 350
Break line setting 262 Bundle Rox in Roi parameter 723
break reports. See grouped reports bundling reports 513
breakpoints BurstGrouping sample report 571, 575
removing 491 BurstGrouping.rod 571
running to 496 bursting 570–571
setting 497, 499, 500 bursting examples 571–576
browser code BurstSubreports sample report 571, 572
aligning output 678 BurstSubreports.rod 571
Index 773
changing (continued) adding missing groups with 237, 239
margins 75, 170, 180, 323 adding titles with 243, 244
page number formats 184 adding trendlines with 270
page orientation 170, 173 adding up or down bars with 264
printing options 751 changing charts from 242, 243
registry keys 643 changing labels with 256, 257
report designs 19, 23, 26, 30, 67 connecting data points with 263
report parameters 511, 530 creating labels with 248, 256
report titles 528 creating legends with 247
reports 527 creating static groups with 241
search conditions 736 generating sample data with 277
sort order 127 grouping data with 235, 237
source code 652 labeling data points with 258, 259, 260
value expressions 225 opening 222
wall colors 246 overview 200, 222
web page scaling factor 683 plotting empty values with 262, 263
character codes 756, 760 selecting chart type 223
character encoding 467, 757, 760 selecting data for 211
character entity reference 761 selecting fields from 224, 226, 227, 229
character formats. See formats selecting formatting options 245, 246, 247,
character sets 486, 699, 756, 760 254
character strings. See strings setting axes values options with 250, 251,
characters 252
adding to date and time values 145 setting bar options with 272, 273
adding to numbers 144 setting category marker and label
alternative representations for 755 positions 261
browser scripting controls and 675, 676 setting pie sector attributes with 274, 276
encoding restrictions and 652 setting pie sector size and 213
grouping alphabetically 89 setting series colors with 256, 257
including in search expressions 459, 460 sorting data with 234
including in URLs 467 Chart command 222
inserting overflow 146 chart controls 219, 222, 243
matching exact 520 See also charts
matching literal 522 Chart Fonts page 642
matching specified 739 chart layers
matching subsets of 522, 524 adding 223
naming conventions and 27, 528 adding drop lines to 266
QBE expressions and 518, 521, 522, 525 adding high-low lines to 265
searching for 738, 739, 742 adding summary data to 232, 234
viewing truncated data and 147 adding up or down bars for 265
Chart background setting 245, 246 changing data series for 257, 258
Chart border setting 245, 246 connecting data points for 264
Chart Builder creating legends for 248
adding axis labels 253, 254, 255 formatting bars in 273
adding drop lines with 266 formatting labels for 254
adding high-low lines with 265 generating sample data for 277, 278
adding hyperlinks with 276 labeling axes values for 254
Index 775
code setting transparent 187, 685
See also Actuate Basic; source files Colors page (Chart Builder) 274
changing fonts for 640, 642 column headings
controlling execution of 496–498 adding 95, 106–109, 294
creating data groups with 92 compared with group headings 109
customizing reports and 58, 59 creating cross tabs and 282
debugging 44, 488, 489, 500 displaying computed values in 300
defining link fields with 425 displaying static text in 301–303
displaying 500 repeating for multiple pages 106
editing 652 setting border properties for 317
generating 56 column names 401, 526
removing breakpoints 491 See also column headings
running 501 ColumnHeadingsBorder property 317
setting breakpoints for 497, 499, 500 columns
setting encoding options for 651 See also fields
starting debugging sessions for 498 adding background colors to 320, 321
stepping through 491, 493, 497 adding labels to 107
verifying input values with 525, 547 adding to link expressions 455
viewing browser scripting 679, 685 adding to Query Editor 84
writing for web browsers 674, 677, 681 applying conditions to 73
collapsing charting data from 211, 213, 215
parts of a report 51, 94 conditional expressions and 401
table of contents 712 creating group headings from 110, 111
colon (:) character 526 creating summary values for 17
color names 760 cross tabs and 297, 303, 316, 321
color palettes 149 generating chart values from 224, 226, 227,
COLOR parameter 760 229
Color property grouping on 73, 81, 84
borders 149 resizing 316
line styles 153 retrieving empty 519
rectangle controls 152 searching on 732, 733, 734
color selector 245, 246 selecting 13, 72
color tables 754, 756 setting border properties for 317, 319
colors sorting on 17, 126, 127
See also background colors combo boxes 680
applying to fonts 640, 642, 760 comma (,) character
applying to shadows 152 as literal value 522
building browser scripting controls finding 739
and 685 query statements and 521, 522
building charts and 208, 244, 256 search expressions and 737
building cross tabs and 320 comments 758
conditional formatting and 157 common fields 540
customizing 149, 245, 246 Commonly used setting (New Property) 584
entering values for 149 commonly-used commands 471
laying out reports and 186 communications protocols 457
selecting default 257 Compact command 140
setting dynamic text 355 compacting components 140
Index 777
components (continued) removing parameters 542
setting properties for 54, 58, 588 Config element 617
setting visibility properties for 668 configuration files
setting XML properties for 700 adding libraries and 70, 599, 610
spacing evenly 139, 141 adding templates to 69
storing temporary 129, 130 components of 5
updating 52 creating reports and 4, 70
viewing names of 51 default locale settings and 144
computed columns elements in 619–660
adding to reports 74, 101, 102, 104, 430 including in designs 617
aggregating values for 117 opening 6
creating group headings from 110, 111 selecting 4, 6
verifying values in 130 selecting data sources in 12
Computed Field command 74, 102, 111 setting search paths and 620, 648
computed fields (cross tabs) 300 specifying 70
See also computed columns viewing search paths for 619
concatenation 300, 605 configurations
concatenation character 455 accessing sample 5
conditional expressions 401 changing report wizard 660
See also Boolean expressions replacing default 70
Conditional Formatting dialog 135 saving toolbox 655, 656
conditional section components 427 setting up data source 71
conditional section icon 398 confirmation messages 7
conditional sections connection components 411, 615, 632
adding components 401 See also connections
aggregating data and 122, 402 connection definition files 632
described 398 connections
displaying properties for 402 See also connection components
nesting 426 accessing sample database 12
placing in reports 426, 427 adding to parallel sections 411
specifying conditions for 401–402 building database 12, 511
conditional subreports customizing 12
creating 426, 427 grouping with data streams 615
example for 400 loading predefined 7
running 432 publishing 615
conditionally formatting data 35, 157, 161 setting up data source 72
conditionally selecting data 73 sharing 411
conditions testing 626
adding to conditional sections 401–402, constants 593, 595
426 Content slot 95, 343, 399
applying to database columns 73 contents. See table of contents
applying to formats 157–161 context block (scripting control) 676, 677
removing parameters for 542 context menus
setting grouping 92 accessing 638, 718
Conditions page (Query Editor) coding mouse events and 474
creating parameters and 516, 526, 527 creating 471–473
entering conditions on 73 customizing 472, 473
Index 779
creating (continued) source files 651
computed columns 74, 101, 102, 430 static groups 241
context menus 471–473 subreports 396, 407, 414, 420, 426
cross tabs 291–315 summary values 17
custom font files 483, 485 table of contents 468, 470
data groups 73, 81–85 title pages 194–198
data structures 590–593 URLs 455, 457, 467
date and time groups 242 value expressions 334
detail reports 423, 461, 570, 571 virtual security IDs 562–564
DHTML forms 686–688 criteria. See parameters; search conditions
drop-down lists 531, 532 cross tabs
error-checking routines 546 See also cross-tab controls
function libraries 605–606 adding 286–289, 292
group headers 95, 98 as dynamically sized components 340,
grouped reports 81 370, 372, 386
HTML forms 680–681 building queries for 289, 291, 304
hyperlinks 218, 276–277, 456, 462 changing border properties of 317, 319
iPortal headlines 513 changing data layouts for 299, 300
joins 23 changing margins for 323
left and right page layouts 191–194 color properties for 320–321
link fields 424 compared to listing reports 283, 286, 297
listing reports 10–19 computing values for 300
master reports 397, 398 creating 291–315
multiflow page layouts 404 customizing 315–321
page headers and footers 95, 96, 98 defining headings for 294
parameters 529 defining multiple columns or rows for 297
properties 580, 583, 584 defining static headings for 301–303
property groups 583 designing for 286, 322
queries. See queries developing for 285
radio buttons 531 displaying 286, 299, 322, 323
report designs xix, 34–35, 64, 65, 66, 70 eliminating blank space for 326–327
report executable files 56 formatting numeric values in 320
report object value files 544, 545 generating 286, 295, 303, 321
report parameters 516, 525 grouping data for 296, 305, 307
report titles 74, 516 limitations of 285, 304
Reportlets 668, 669, 670 overview 282, 321
reports printing 322–327
from templates 69 resizing 300
guidelines for 64 resizing columns or rows for 316
international considerations for 65 restricting data in 304
options for 67 retrieving data for 310, 321
with wizards 4, 67–68 retrieving missing groups for 308–315
without wizards 71–75 sorting data for 304
report-specific online help 717–718 specifying fixed page size for 386
search expressions 736–740 troubleshooting output for 392
security IDs 551, 554 truncated data in 316
server profiles 624–626, 632 undoing changes to 285
Index 781
data (continued) sorting report 73, 126–128
analyzing 66, 283 specifying overflow characters for 146
changing cell alignment for 299, 300 summarizing 74
changing default formats for 74 testing output for 130, 131
changing font attributes for 642 truncating 143, 147, 330
changing sort order for 127 updating 722
changing values for 105 viewing current 57
charting 211–218 viewing group keys for 16
comparing values 206 viewing relationships 200
conditionally selecting 73 viewing sample data 639
controlling page breaks for 350, 354, 358 zooming in on 716
copying 719–720 data categories
creating static groups for 241 See also charts
customizing appearance of 142 assigning values to 225
displaying 73, 97 building axis labels with 254, 255
extracting from XML documents 696 building chart titles from 244
filtering 518 changing attributes of 242
formatting 55, 74, 142–147, 161, 300 chart layers and 218
generating sample 99, 242, 277–278, 677 displaying markers for 260, 261
grouping generating legends with 247
charts and 235–237 generating sample data for 277
cross tabs and 296, 305, 307 grouping 225
reports and 10, 73, 79–93 grouping data for 235
highlighting 149, 152 grouping data points and 200
keeping original order for 235 linking to 219
language- and platform-independent multiple value expressions as 225
format for 694 plotting for pie charts 274
laying out 94–126 plotting values for 211
linking to 459, 460, 464 reformatting 255
multi-style formats and 330, 333 renaming 225
placing for table of contents entries 468 setting distance between 273
placing in slots 94, 97 sorting 225
plotting range of values for 207 spacing options for 271
plotting relationships to whole 206 Data command 22, 43, 72
resizing controls for 28 data controls 97
retrieving See also controls; data
for cross tabs 304, 310, 321 data filters
from databases 72, 104, 420, 514 defining parameters as 516, 529
from multiple tables 10 removing parameters for 542
from ODBC data sources 516 setting at run time 516
with queries 13, 35, 52, 81 typing conditions for 73
returning specific values for 510, 512, 526 Data page (Chart Builder) 223, 224
searching for 733–736, 743 data perspective 22, 44
selecting 66, 72, 719 data point markers 263
setting fonts for 640 data points
sorting chart 234–235 See also charts
sorting cross tab 304 adding to line or scatter charts 263
Index 783
databases (continued) by stepping over methods 491, 498
displaying tables in 22 from Design Editor 491
filtering data from 516 logic errors and 489
installing client software for 34 overview 488
linking security roles to 565 debugging sessions
mapping values to security roles 566 controlling code execution for 496–498
multiple tables and 10 monitoring variables from 501–506
placing data from 98, 99 resuming 491, 498
restricting data retrieval from 516 running successive 501
retrieving data from 13, 72, 104, 420, 514 saving parameters for 501
returning date values from 519 starting 498
returning null values from 519 stopping 498
returning string values from 520, 522, 523, viewing methods calls 493
524 debugging tools 44, 488, 489, 501
selecting tables from 13 DebugOption property 679
setting up 79 decimal values 144, 645
viewing directory paths for 22 decorative elements 125, 128, 186, 451
viewing fields in 73 Default Action command 472
viewing tables in 72 default chart titles 244
DataSource components. See data sources default colors 257
DataStream components. See data streams default component images 654
date and time groups 242 default configurations 70
date controls 97 default directories 639
date data types 256 default fonts 278, 640, 642, 644
date expressions 520 default formats 26, 74, 142, 226
date picker 727 default layouts 125, 169
date separators 519 default locales 649
date stamps 185 default margins 323, 355
Date$ function 101 default menu items 471
dates default mouse actions 474
adding to queries 519 default padding 344, 348
changing formats for 186, 300 default page settings 169
charting 216, 231 default page styles 167
customizing formats for 145 default settings 716, 722, 749
displaying 97 default sort order 16, 127
formatting 144–145 default unit of measure 644, 645
generating missing values for 309, 314 default values
grouping data by 240 page layouts and 35
grouping values for 90, 92, 305, 307, 310 report parameters and 529, 530, 533
printing 326 static parameters and 527
selecting 529, 727 defaults, restoring 47, 49
Debug command 43 DefaultSplitting value 351
Debug menu 490 degree symbol character tag 761
debug perspective 44, 489 delays (refreshes) 724
debugging deleting
browser code 678 component libraries 613
by stepping into methods 498 custom properties 580, 587
Index 785
designs (continued) detail reports
locale-specific environments and 65 See also master reports; subreports
nested frames and 342 adding table of contents to 468
opening blank 71 creating 423, 461, 570, 571
organizing components in 50 displaying 570
organizing data in 73 displaying properties for 425
overview 34, 36, 39 examples for 571
placing section components in 408, 415, generating 512
427 linking to master reports 419, 424, 540,
planning page layouts for 78, 79, 165, 169 571, 575, 576
prerequisites for 4 placing data in 95
preserving previous versions 764 providing unique names for 574, 576
previewing 20, 21 running 425
protecting libraries in 620 sorting data for 127
renaming components in 26, 27 testing 131
report bursting techniques for 570, 571 viewing contents of 25
reporting tasks and 602 detail rows 17
resizing components in 138 Detail sample report
retrieving multi-line text fields and 330 displaying online help for 717
reusing components in 39 opening 708
sample resources for 70 searchable objects in 733
saving 9, 22, 56, 129 viewing table of contents for 712
search strategies and 449, 450, 451, 454 Detail.roi 96, 708
selecting components in 137 developers
selecting data sources for 12 adding context menus and 718
selecting database columns for 13 creating online help topics and 717
selecting page layouts for 18 searching reports and 732
setting default directories for 639 supporting information for 59
setting up environments for 7 developing reports 58, 70, 370, 510
setting up sample reports for 8 development languages 59
stacking controls in 684 DHTML converter
testing 553, 555 adjusting scaling values and 683
testing layouts for 129, 130 generating documents and 679
testing page-level security with 555–558 generating HTML code with 677
upgrading 765 processing scripting controls 675
viewing libraries in 601, 619 setting properties and 678
XML data and 694 DHTML format 674
desktop reporting 481, 485, 722 DHTML forms 686–688
desktop viewing requirements 478 DHTML reports
Destination folder field (iServer Profile) 625 See also web pages
destination folders (publishing) 625, 626, 627 converting to PDF formats 684
destination URLs 455, 457, 464 converting XML formats to 695
detail data 152 debugging browser code for 678
detail data fields 17 displaying 674
detail frames 25 enabling page-level security and 550
detail information 95, 127 generating 679, 684
Index 787
Document Properties dialog 749 changing contents of 333
document structure information 745 character encoding and 757, 760
document type definition files. See DTD files content misaligned 640
document type definitions 694, 697, 698 controlling height of 372
documents. See reports controlling page breaks for 340, 354, 358
DoNotSplit value 350, 351, 352 converting text controls to 363
double quotation mark (") character default padding for 344, 348
as literal value 456, 757 embedding fonts for 482
link expressions and 455, 459 formatting 334
search expressions and 460 generating content for 333, 338, 344, 346,
double quote (") character tags 757, 761 348
down bars (charts) 256, 264 getting font information for 480, 481
downloading report files 570 getting tagged text 333
downloading Reportlets 672 hiding 339
dragging components 52, 55 HTML tags for 758–761
drawing controls 152 nested frames and 342
drivers 4 optimizing output for 344, 347, 349
drop lines (charts) 201, 242, 266 overview 330–333
drop shadows 150 placing in frames 343
drop targets. See slots resizing 339, 340
drop-down lists restrictions for 333
displaying property values and 580 RTF tags for 754–757
generating items for 531 setting margins for 355–356
providing user with 531, 532 setting maximum heights 340, 343
testing items in 544 setting maximum widths 341
DTD files 694, 695, 697 setting minimum heights for 339
See also document type definitions setting static height for 343
dual y-axis charts 209 setting tagged text 333
duplex printing 749 spanning multiple pages 350–358
duplicate file names 624, 628 specifying page size for 388
duplicate values 120 supported formats for 332
duplicating toolbox classes 655 troubleshooting output for 366–367
dynamic formatting 157 dynamically sized components
dynamic hypertext markup language. See formatting controls and 370
DHTML horizontal resizing and repositioning
dynamic parameters for 374–376
adding to hyperlinks 464–466 overview 370
creating 461–462 repositioning controls relative to 382–384
Dynamic Size & Position properties resizing controls relative to 377–382
group 377 vertical resizing and repositioning
Dynamic Text Control command 330, 334 for 373–374
dynamic text controls
adding 333–334, 359 E
as dynamically sized components 370, 386 e.Report Designer Professional
as page footers 343 accessing options for 638
as page headers 343 accessing sample configurations for 5
building reports with 359
Index 789
Essential setting (New Property) 584 Expression Builder icon 225
etc directory 485 Expression setting 248
Euro currency symbols 761 expressions
event handlers 679 See also Expression Builder
events adding computed fields for 101, 102
handling mouse 474–476 adding nonprinting ASCII codes to 740
interactive viewing 440 adding parameters to 526
examining variables 501 adding to group headings 110, 111
example reports. See sample reports automatically entering parts of 102
Examples directory 571 building label text with 248, 254, 255, 256
Excel spreadsheets 480, 481 category keys and 225
exclamation point (!) character changing value 225
as literal value 739 charting data and 211, 214
HTML tags and 761 converting to strings 551
query statements and 521 creating conditional 401
executable files creating search 736–740
bundling with reports 513 creating security IDs and 551, 554
compiling 29 customizing properties and 587, 588
creating 56 default chart titles and 244
creating search definitions for 745 defining for chart layers 232, 234
defining custom fonts in 483 defining for charts 225, 227, 228
embedding fonts in 480, 482, 486, 640 determining pie size and 213, 214
generating reports from 461, 570, 722 displaying results of 101
including large libraries and 602 entering invalid 525
linking to 457 entering run-time 525
opening 722 errors in 130
publishing 624, 628, 629 formatting data with 300
running 722, 723 hyperlinks and 455
specifying encoding for 651 placing in function libraries 605
upgrading 765 returning date values and 520
executing queries 570 returning stock price data with 217, 218
executing reports 29, 56, 362, 722, 751 reusing 605
executing subreports 413, 417, 432 sector keys and 227
expanding series keys and 225, 229
parts of a report 24, 51, 94 setting parameter values and 517
table of contents 712 extended price 102
expense reports 66 ExtendSearchPath function 647
Expert setting (New Property) 584 extensible markup language. See XML
Expert settings (Properties page) 370 external applications 719
exploding pie sectors 274 external functions 599
Export to Information Object button 633 external libraries 610
Expression Builder external source code 674
charting data with 225, 227, 228, 230, 232,
234 F
displaying external functions in 599 –f option (erdpro) 765
opening 102, 225 FACE parameter 760
Index 791
Fixed format type 143 applying conditional formatting to 157
fixed-width text 759 changing application 643
flat file data sources 11 changing chart 244, 247, 254, 260
Flip axes option 223 choosing chart 278
floor colors (charts) 246 color names and 640, 642
flow cross-platform considerations for 479, 485
adding borders to 186 customizing 482, 485
adding watermarks to 187 embedding 480, 482, 486
assigning to subreports 406, 413, 437 embedding in executable files 640
defining multicolumn 403 generating dynamic content and 346, 348
laying out multiple 404, 412 getting information for 480, 481, 485
placing page components and 182 installing 278
renaming 412 not available 278
resizing 175 resetting default 641, 643
specifying background colors for 186 selecting 142
flow components 168 setting chart 642–643
flow names 413 setting colors for 760
FlowName property 406, 437 setting dynamically 482, 486
folders setting properties for 484
linking to 458 setting report 640–642
placing detail reports in 574, 576 setting size 756, 759, 760
publishing to 625 substituting 480, 486
report bursting and 571 Fonts page (Options) 640
uploading to 627 Footer command 183
font attributes footers
adding label controls for 484 adding dynamic text controls as 343
applying from toolbar 142 adding to reports 183
changing 640, 641, 643 creating 96, 98, 182
dynamic text controls and 330, 756, 759 defaults for 29
Font dialog 641, 643 designing for 66
font files printing 176
accessing master 481 ForcePageHeightToFit property 372, 386,
creating custom 483, 485 388, 390
defining font information in 482, 483 ForcePageWidthToFit property 372
registering 485 Forecast sample report 396, 432–437, 470
saving 485 Forecast.roi 714
font information 478, 480, 481, 640 foreground colors 760
font names 760 See also colors
Font page 134 FORM element 680, 687
Font property 482, 483 Format dialog 134
font style settings. See font attributes Format function 101, 185
font tables 754, 756 Format menu 74, 135, 139
FONT tag 759, 760 format patterns 144, 145, 185
FontColor property 685 Format property
fonts cross tabs 320
See also font attributes data controls 142, 144
adding to designs 480, 484, 486 date controls 145, 186
Index 793
function libraries (continued) generation requests 510
protecting 620 GetAppContext function 682
restricting changes to 620 GetCurrentPageACL method 556
saving 606 GetFullACL method 564, 565
selecting 607, 608, 610 GetKeyValue method 92, 93
setting as read-only 620 GetReportContext function 681, 682
setting location of 619, 620 GetReportData directive 671
functions GetReportScalingFactor function 683
See also methods GetTaggedText method 333
adding to group headings 110, 111 GetText method
adding to multiple designs 598 browser scripting and 681, 684, 685
aggregating data and. See aggregate default value for 684
functions security IDs and 556
calling browser code 674 getting started 39
debugging 489 GetUserACL method 557, 562, 563
defining link fields and 425 GetUserAgentString method 682
generating XML documents and 701 GetXMLText method 701
mapping security roles with 566 GIF files 154, 187
returning values from 131 global browser code 674, 679, 680
summarizing data and 17 global reporting 65
fundamental data types. See data types global search path 647, 648
Global Search Path page (Options) 648
G global variables 492
General Date format type 144 GlobalDHTMLCode property 680
General format type 143 Go To command 710
General page (Options) 649, 650, 651 Go To icon 741
GenerateXML method 698, 701 Go To Page button 710
GenerateXMLData method 701 Go To Page dialog 711
GenerateXMLDataFile method 701 gopher protocol 457
generating grand totals 17
access control lists 551, 566 GrantExp property
cross tabs 286, 295, 303, 321 customizing ACLs with 565, 566
DHTML reports 679, 684 defining security IDs with 551, 565
dynamic text content 333, 338, 344, 346, linking security roles with 565
348 setting 554
external source code 674 specifying access restrictions with 562
HTML tags 677 graphical controls 152–153
information objects 632–636 See also image controls
output 176, 681, 682 graphical tools 39, 41, 42, 58
PDF files 684 graphics 479
report object instance files 29, 570, 722 See also images
reports 56, 333, 344, 359, 386, 722, 724 graphs. See charts
sample data 99, 677 gray bars (Layout window) 49
source code 56 greater than (>) character tag 761
table of contents 468, 470 greater than operator 737
XML output 697, 700, 701 greater than or equal to operator 737
Index 795
handles (sizing) 28 highlighting data 149, 152
HEAD element 680 high-low lines (charts) 201, 255, 265
Header command 183 high-resolution monitors 479
headers Horizontal property 678
adding images to 154 HorizontalOverlap property 324
adding to reports 182, 183 HorizontalPosition property 377, 384
creating 95, 98 HorizontalPositionFrameCenter value 384
designing for 66 HorizontalPositionFrameLeft value 384
dynamic text controls as 343 HorizontalPositionFrameRight value 384
printing 176 HorizontalSize property 340, 372, 376, 377
visual dividers for 152 HorizontalSizeFrameRelative value 372, 376,
headings. See column headings; row headings 382
headlines 513 HorizontalSizeRelative value 340, 372, 376,
Height property 379
cross tabs 316 HTML documents 672
dynamic text controls 339, 340 HTML formats 332, 334, 347, 760
page size 170, 171 HTML forms 674, 680–681
help HTML headers 758
creating report-specific 717–718 HTML reports
including for searches 449 See also web pages
omitting text strings for 472 dynamically resizing elements in 683
overlapping controls and 479 formatting dynamic text controls for 332,
providing balloon 440 334
Help command 472, 718 generating tags for 677
HelpText property 472 importing Reportlets and 670
hidden properties 584, 588 misaligned text in 640
Hidden setting (New Property) 584, 588 optimizing output for 347
Hidden value (CSS attribute) 678 HTML tags
hiding adding dynamic text controls and 758–761
application windows 47 adding for Reportlets 667, 670
axis labels 253 assigning literal values with 333
browser scripting controls 685 displaying as literal text 334
dynamic text controls 339 generating 677
gridlines 644 http attribute 457
group sections 639 HTTP requests 681
items in Create New Report 658 HTTP servers 457
legends 247 HTTP service 625
parameters 540, 541 Hyperlink Builder 277
report parameters 425 Hyperlink Builder icon 277
Reportlet content 668 hyperlink buttons 713
slots 95 Hyperlink page 276, 277
status bars 42 hyperlinked fields 714
tick marks 250 hyperlinks
toolbars 49 accessing objects from 472
hierarchical structures 37 adding dynamic parameters to 464–466
high values, plotting 207, 208, 216, 230 adding to charts 218–220, 276–277
highlighting aggregate values 118 adding to master reports 571, 575, 576
Index 797
Internet Explorer (continued) keys. See group keys; sort keys
creating scripting code for 677, 686 keywords 219
generating output for 682
Interpolate setting 262 L
interpolating missing chart data 262 Label command 107, 128
invalid expressions 525 label controls
invalid values 525, 546 See also labels
inverted exclamation mark 761 adding 107, 128
inverted question mark character tag 761 adding font information to 482, 483, 484
investment reports 330 creating access control lists with 555
iPortal creating column headings with 107
creating headlines for 513 displaying literal values with 333
defining URLs for 467 displaying security IDs with 556
published reports and 624 placing data values in 105
iServer setting page numbers in 558
creating profiles for 624–626, 632 labels
default port for 625 See also label controls
getting privileges for 551 adding to charts 253, 254, 258
publishing to 624 adding to reports 97, 118
report bursting and 570 aligning with data points 260, 261
report size and 570 arranging chart 253, 260, 261
iServer field (iServer Profile) 625 changing 107, 242, 256, 257
iServer Profile dialog 625 changing font attributes for 641
IsFrameDecoration property 378, 379, 381, creating expressions for 248, 254, 256
382 creating for static groups 241, 242
italic text 756, 759 cross tabs and 302
iterators 495 customizing 255
dynamic text controls and 330
J formatting chart 254, 260
Japanese currency symbols 761 formatting numbers in 257
Java applets 674 images as 154
JavaScript 667, 674, 679 literal text and 105
JavaScript error messages 678 setting fonts for 640, 642
JavaScript functions 466 setting orientation for 253
jobs 570 Labels page 253, 254, 255
joins 23 Landscape orientation 18, 173
JPEG files 154 language-independent formats 694
jumps. See hyperlinks large libraries 602
justification 143 large numbers 147
large reports 512, 570, 571, 710, 748
K layering components 141
Keep original order setting 235 Layers command 141
key fields. See sort fields laying out data 94–126
key presses 475 laying out reports 35, 43, 66, 78–79, 165
Key property 86 See also page layouts
keyboard shortcuts 41, 43 laying out subreports 403, 404, 411, 435
Index 799
line charts (continued) displaying 465
creating 205 including search expressions in 458–461
displaying data in 255 specifying destinations in 458, 460
displaying data points for 263 link fields 424
generating sample data for 277 See also sort fields
labeling data points in 258 LinkExp property
plotting data for 263 calling JavaScript functions with 466
selecting data for 211, 224 character encoding and 467
setting line styles for 257 context menus and 472
Line command 153 creating reports with 461
line controls defining parameters with 461–462
See also lines overview 455
adding 118, 152 report bursting and 575, 576
adjusting for dynamic content 372, 377, setting from Parameter Editor 463
378 setting programmatically 455, 457, 458,
as graphical elements 152 461
line feed characters 740 syntax for 455
line feed control codes 332 temporary reports and 458
line heights 346, 372 linking charts to reports 276
line spacing 346, 347, 756 linking security roles 565, 566
Line Style dialog 250, 251, 257 linking subreports 396, 419–426, 540
line styles linking to parts of a report 713
borders 149 linking to reports 218, 467
charts 242, 251, 257 links. See joins; hyperlinks
line or rectangle controls 153 LinkTo variable 472
tick marks 250, 251 list separators 517, 521, 522
line widths 149, 344, 372 Listing Report option 658
linefeed characters 757 Listing Report wizard
lines accessing 10
adding to line charts 266 adding summary values and 17
adding to stock charts 266 creating detail reports with 423
as graphical element 152 creating subreports with 408, 416
as section dividers 118, 152, 153 finishing designs for 19
as static element 97 grouping data with 14, 15
charting data and 260, 263, 265, 271, 273 hiding 658
connecting data points with 263 overview 68
LineSpacing property 347 selecting data for 13
LineStyle properties group 153 selecting data sources 12
LineWidthPadding property 344, 345 selecting layout options 18
link expressions sorting data with 17
See also LinkExp property; search listing reports
expressions adding summary values for 17, 283
adding absolute paths to 458 changing designs for 19, 26
adding dynamic parameters to 461, 463, compared to cross tabs 283, 286, 297, 305
464 creating 10–19
adding to controls 463 displaying queries for 22
creating 219, 455, 456 grouping data for 15
Index 801
master reports (continued) generating XML data and 701
linking to detail reports 419, 424, 571, 575, setting breakpoints for 496
576 stepping into 498
running 425 stepping over 491, 498
master_fonts.rox 481 stepping through 491
master-detail relationships 419, 540 verifying input values with 547
matching exact values 520 XML data formats and 694
matching literal characters 522 Methods page 547
matching specific characters 736, 738, 739 Microsoft Excel spreadsheets. See Excel
matching substrings 522, 524 spreadsheets
matrix reports. See cross-tab reports Microsoft Internet Explorer. See Internet
Max function 115 Explorer
maximum values 115, 252 Microsoft Windows. See Windows systems
MaximumHeight property 340, 343 millimeters 645, 646
MaximumWidth property 341 MIME types 699
measurement units Min function 115
adding suffixes to 645, 646 minimizing blank space 326, 344, 347
customizing 645 minimizing windows 21, 47
selecting 644 minimum values 115, 252
setting 644–645 MinimumHeight property 339
Medium Date format type 145 minor tick marks 250, 253
Medium Time format type 145 minus sign (–) icon 51
member variables 589, 591, 593 misaligned content 640
memo fields 330 missing groups (charts) 235, 237, 239
memory 498 missing groups (cross tabs) 308–315
memos 330 missing values 262
menus mistyping reserved words 488
accessing context 718 modifying. See changing
adding items to 718–719 monitoring report generation 723, 724
creating browser-specific 680, 686, 688 monitoring variables 501
creating context 471–473 monitors 479
customizing 472, 473 monospaced fonts 485
displaying 474, 638 monospaced text 759
selecting items on 41 More button 713
messages 440 mouse actions 474, 475
meta languages 694 mouse cursor 475
Method editor 490 mouse events 474–476
methods Move Forward command 142
See also functions Move to Front command 142
associated with mouse events 474 moving
conditionally formatting data with 158 application windows 47
cross-tab controls and 285, 286 components 137
debugging 488, 493, 497, 499 controls 339
developing with 59 toolbars 49
displaying call stack for 493 moving through chart data 218
displaying class-specific 499 moving through reports 176, 710–712, 741
filtering 499 multicolumn flows 403
Index 803
numbered lists 330, 350 OnLButtonDown method 474, 475
numbering report pages 184, 554 OnLButtonUp method 474
See also page numbers online help
numbers creating report-specific 717–718
analyzing 283 omitting text strings for 472
charting comparisons for 206 overlapping controls and 479
converting to strings 605 online reports 176, 177, 479
copying 719 See also reports; web pages
customizing formats for 144 OnRButtonClick method 474
customizing measurement units for 646 OnRButtonDblClk method 474
displaying 97, 147 OnRButtonDown method
formatting chart 256, 257 default action for 471, 472, 474
formatting in reports 27, 143, 319 displaying context menus and 471
grouping 89, 92, 305 overriding 473, 474
selecting at run time 529 OnRButtonUp method 474
numeric controls 27 OnRow method 681, 683
See also numbers Open command 722
numeric data types 17 open database connectivity. See ODBC
numeric formats 143 Open dialog 708
numeric searches 738 open values, plotting 207, 216, 230
N-up reports. See multi-column page layouts opening
ad hoc parameter builder 518
O blank report designs 71
object reference variables 493, 501 call stack 491, 494
object-oriented designs 58 Chart Builder 222
objects color palettes 149
creating context menus for 471 configuration files 6
referencing 501 context menus 638, 718
searching for 443, 449, 743 Crosstab Builder 291
selecting 474, 475, 732, 735 Custom Browser Code Editor 677
obsolete properties 492 data perspective 22
ODBC Data Source Administrator 71 Database Browser 22
ODBC data sources 4, 71, 516 design window 5
ODBC databases 4, 34 executable files 722
ODBC drivers 4 Expression Builder 102, 225
old keyword 461 Hyperlink Builder 277
On/Off format types 144 Library Organizer 600
OnActuate method 472, 473 Listing Report wizard 10
OnContextMenu method 471, 472 Options dialog 6, 638
on-demand reporting 511 Parameter Editor 541
one-to-many relationships 450, 451 Publish and Preview Options dialog 625
one-to-one relationships 450, 451 report files 651, 708
OnFollowLink method 472, 473 reports 708
OnHelp method 472 Requester dialog 513
OnLButtonClick method 474 sample configurations 5
OnLButtonDblClk method 474 sample reports 708
Scratch Pad 130
Index 805
page breaks displaying 165
adding to subreports 418 displaying gridlines for 644
displaying dynamic text and 340, 350, 358 dynamic text controls and 330, 333, 350,
implementing page-level security and 553 359
splitting frames and 350, 354 dynamically sized components and 370,
page components 167, 182, 333 372, 373, 374
page headers and footers font information and 478
adding date and time stamps to 185 grouping controls for 355
adding images to 154 overview 164, 167
adding to reports 66, 95, 182–183 placing searchable controls in 449
changing page numbers in 184–185 placing watermarks in 187
creating 96, 98 planning 34, 64, 65, 66
defaults for 29 prerequisites for 79
dynamic text controls as 343 resizing frames for 138
printing 176 resizing pages for 386–390
report titles as 125 section components and 398
searching 448 selecting 18
testing 131 setting margins for 175, 180, 355
visual dividers for 152 setting page access properties for 554, 564,
page layout components 167 565
page layouts setting page attributes for 170, 171, 173
See also designs; multi-page reports specifying background colors for 186
adding borders to 186 strategies for 52
adding cross-tab controls and 372 testing 129
adding headers and footers. See page XML data formats and 694, 695
headers and footers page list components 167
changing default 125, 169 page number components 125
changing defaults for 75 page number controls 176, 177, 184, 558
changing page orientation for 173 page numbers
checking output for 130, 131 adding 184–185, 554
checking running headers and footers customizing formats for 185
for 131 displaying 176, 558
compared to report layouts 165 generating output and 176, 177
controlling dynamic sizing and removing blank space for 326
positioning for 370, 372 page orientation 18, 75, 170, 173, 749
controlling page breaks for 350, 354, 358 page ranges 748
controlling uniform size of 386 page settings (default) 169
creating for subreports 403–406, 411, 435 Page Setup command 75, 170
creating multi-column 106 Page Setup dialog
cross-tab controls and 321, 322 setting margins with 175, 180
customizing 35, 129, 403 setting oversize page options on 179
defaults for 125, 166, 169, 184 setting page size options on 170, 171
defining for specific sections 404 specifying page attributes and 170
defining multicolumn flows for 403 specifying page orientation from 173
defining multiflow 404 splitting cross tabs and 323
defining multiple 169, 191–198 page size
designing 78, 167, 169, 176, 479 changing 170, 388
Index 807
parameters (continued) patterns (backgrounds) 186
entering values for 725–727, 728 patterns (formatting) 144, 145, 185
filtering data and 516, 527 pausing code execution 491, 496
filtering data with 542 PCX files 154
getting information about 541 PDF converter 486, 684–685
grouping 529, 530, 540 PDF files
hiding 425, 540, 541 converting XML data for 695
loading Requester 545 creating multi-platform applications
naming 528 and 486
overview 510 generating 684
prompting for expressions and 526 getting font information for 480
prompting for values with 526 printing cross tabs to 322
providing list of choices with 531–533 printing from 684
publishing and 629 problems reading 640
redefining component properties with 527 setting AlternateText property for 678
required 511 PDF formats 672
resetting defaults for 545 PDF reports. See PDF files
retrieving data with 304 PDF Viewer 344, 479
saving 501, 544–546 See also Acrobat Reader
setting display names for 530 Pen property 153
setting values for 517, 527 percent bar charts 271
sorting 540 Percent format type 143
specifying default values for 529, 530, 546 percent sign (%) character
successive debugging runs and 488 as literal value 522
testing 543–544 query statements and 522, 523
types described 727 percentages 206, 259
user-specified values and 510, 512, 546, performance
547 dynamic text controls and 333
Parameters command 425, 541 file size and 570
parentheses ( ) characters large libraries and 602
parameter names and 528 linking subreports and 419
query statements and 521 XML documents and 699
parsing 678 period (.) character in class names 27
Password field (iServer Profile) 625 permissions. See privileges
passwords perspective toolbar 43
accessing sample databases and 13 perspectives
adding to server profiles 625 See also specific application perspective
as required parameters 511 changing defaults for 649
entering at run time 529 managing workflow on 42
Paste command 55 restoring defaults for 47, 49
paths saving 715
creating hyperlinks and 457 switching among 43
displaying database 22 pie charts
displaying search 619 See also charts
including in configurations 617 changing 245
setting search 620, 647 chart layers and 209
pattern matching 522, 738 creating 206
Index 809
programs setting table of content 468
See also applications setting XML 697, 698–700
clearing from memory 498 Properties command 54
controlling execution of 496 Properties page
debugging 488, 489 accessing data and 554
project files 632 charting data and 243
projected values 207 creating parameters and 541
prologs (XML) 695, 698, 699, 701 customizing properties and 580, 586, 587,
Prompt for URL setting 651 588
prompting for component names 639 displaying cross tabs and 300, 321
prompting for input 510, 512, 526, 529, 538, displaying Reportlets and 668
546 filtering properties on 54
prompting for query expressions 525, 526 searching for components and 443, 445
prompting for specific values 526–527 selecting read-only components and 620
properties property attributes 585, 586
assigning to groups 583, 585 property groups 580, 583, 585
assigning values to 586 property icons 581
changing 586 Property Parameter Info dialog 528
changing chart 243 property sheets. See Properties page
changing component 54, 527–528, 614 prototypes 34, 64, 66, 165
changing default formats and 74, 135, 142 Publish and Preview Options dialog
converting browser scripting 678, 685 accessing 625
copying components and 55 publishing from 629
copying file 628 setting publication options in 626, 627
creating 580, 583, 584 setting version options in 628
creating parameters for 528 Publish and preview setting 627
cross-tab controls and 285, 317, 319, 323 Publish and show folder contents setting 627
customizing 580–589 Publish only setting 627
defining as value expressions 580, 587–588 Publish the component setting 616
defining parameters for 528 Publish to Server command 625, 629
defining structure types and 589, 592 publishing
deleting 587 components 39, 615–616
displaying 54 duplicate file names and 628
displaying currency control 28 files 624, 628, 629
dynamic resizing and 370, 372 reports 624, 628–630
entering values for 644 publishing destinations 625
filtering 54, 588 publishing options 627
hiding 584, 588 pull-down menus. See menus
locating obsolete 492 pushpin icon 21, 47
obsolete 492
removing parameters for 542 Q
saving 581 QBE expressions
selecting values for 54 See also queries
setting at run time 512 adding date values to 519, 520
setting component 54, 58 creating 517, 518
setting font 484 entering at run time 525
setting Reportlet 668
Index 811
referencing (continued) adding help topics to 717
image files 154 adding parameters 513
objects 501 arranging components in 136–141, 644
Refresh button 7 building multiple reports and 396, 397,
refresh delays 724 399
refreshes 724 building templates for 71
regions. See frames changing 19, 23, 26, 30, 67
registered trademark character tag 761 changing components in 614
registered trademark symbol 761 changing default layouts for 125
registering font files 485 component references in 612, 615
registry keys 643, 658 components missing in 613
caution for 643 creating xix, 64, 65, 66, 70
relational databases. See databases creating table of contents and 468
relational expressions 455, 459, 460, 517 cross-platform guidelines for 478, 479
relative font sizes 760 cross-tab controls and 286–289, 322
relative page numbers 555 customizing environment for 638
relative paths 457, 620, 647, 661 customizing page layouts for 403
relative URLs 672 default components of 100
removing. See deleting developing 58
Rename command 27 displaying 49
Rename dialog 27 displaying report structures for 24
renaming dynamically sized components and 373,
components 26, 27, 603 374
controls 27 embedding tags in 333
data categories in charts 225 enabling page-level security in 553
data series in charts 225 generating information objects for 632
flow components 412 hiding empty slots in 95
pie sectors 227, 274 including browser code in 674, 677, 679,
rendering environments 65, 154, 344 680
replacing default configurations 70 including configurations in 617
report bursting 570–571 including files in 647
report bursting examples 571–576 including libraries in 599, 607–611, 617
Report command 408 large libraries in 602
report components 547 layering components in 141
See also components laying out data for 94, 125
report design files. See report object design locale-specific environments and 65
files nested frames and 342
report designs opening blank 71
See also designing reports; page layouts organizing data in 50, 73
accessing options for 6 overview 34, 36, 39
accessing resources for 617 placing section components in 408, 415,
accessing templates for 69 427
adding components 49, 52, 612 planning page layouts for 78, 79, 165, 169
adding data to 73 prerequisites for 4
adding dynamic text controls 330, preserving previous versions 764
333–334, 359 previewing 20, 21
adding fonts to 480, 484, 486 protecting libraries in 620
Index 813
report object library files (continued) Report Structure command 24
changing components in 615 Report Structure window
overview 598 displaying component relationships
overwriting 764 in 451
publishing components from 615 double question mark (??) characters
saving component libraries as 604 in 613
setting as read-only 620 overview 50
report object search definition files 745 publishing components from 616
report object value files setting font for 643
browsing for 545 viewing component names in 614
creating 544, 545 viewing component references in 612
defining hyperlinks for 457 viewing components in 52
generating reports from 461 viewing reports and 24
loading specific 545 Report Title component 74, 125
reading parameters in 501 Report Totals page 17
report painter. See Design Editor report wizards. See wizards; specific wizard
report parameters. See parameters Reportlets
report section components 408 creating 668, 669, 670
report section icon 398 displaying in web pages 666, 672
report sections enabling hyperlinks for 672
adding components 37, 400 entering HTML tags for 667, 670
adding dynamic text controls 343 importing 667, 668
adding to reports 408 saving 672
aggregating data and 122, 402 setting visibility properties for 668
cross-tab controls and 287 reports
described 398 accessing 624
disabling security restrictions for 552 accessing sample 708
display options for 639 adding context menus to 718–719
expanding 24 adding interactive viewing features
extracting as Reportlets 671 for 439
generating ACLs for 551, 566 adding multi-line text to 330
generating table of contents from 470 adding table of contents to 468–470
inheriting security IDs 564 adding titles to 19, 74, 125, 516
nesting 552, 564 applying conditions to 158
placing data in 95 building 56
searching 448, 450, 454 bundling executable files with 513
setting page breaks in 418 caution for data groups in 81
setting security restrictions for 562, 564 changing 527
visual dividers for 152, 153 changing page orientation for 173
report servers. See iServer; servers collapsing or expanding parts of 51
Report Settings page common operations for 51
displaying reports and 559 controlling access to 550, 564
preserving default parameters and 546 controlling dynamic sizing and
selecting search paths and 648 positioning for 370
specifying report object value files and 545 converting to XML 694, 695, 698
testing designs and 553 copying data to 719
testing page-level security and 560
Index 815
Requester dialog (continued) round settings (charts) 238, 240
resetting parameter defaults for 545 round settings (cross tabs) 311, 314
running reports from 723 rounding units 240
saving parameters for 544–546 .rov files. See report object value files
setting parameter values in 726 row headings
suppressing prompting from 546 adding to cross tabs 282, 294
testing parameters for 543–544 displaying computed values in 300
viewing parameters in 510, 511, 515 displaying static text in 301–303
requests 510 setting border properties for 317
required parameters 511, 514, 529 RowHeadingsBorder property 317
required values 511 rows
reserved words 219 See also records
Reset All Groups command 653 adding background colors to 320, 321
Reset Items in this Group command 653 adjusting spacing between 148
Reset Workspace command 49 conditional expressions and 401
resetting active perspective 649 counting 115
resizing cross tabs and 297, 303, 316, 321
browser scripting controls 683 resizing 316
chart controls 243 setting border properties for 318, 319
columns 316 sorting data in 17
components 138, 644 tracking values in 501
controls 26, 28, 377–382 .rox files. See report object executable files
cross tabs 300 RTF files 754
dynamic text controls 339, 340 RTF formats 332, 334, 755, 757
frames 138, 148, 339, 342 RTF readers 755
report pages 386–390 RTF tags
rows 316 adjusting line spacing with 347
resolution 479 adjusting paragraph spacing with 347
resources 70, 617 assigning literal values with 333
restoring component libraries 613 displaying as literal text 334
restoring defaults 47, 49 supported by dynamic text control 754–
restricting access to reports 550, 564 757
restricting data sorting 235 rules
Results page (Search) 736, 741, 742 applying to nested sections 552
resuming code execution 491, 498 copying autoarchiving 624, 628
return values 131 creating virtual security IDs and 562
reusing components 39 defining security 551
RGB values 149, 754, 760 testing 555, 558
rich-text formats. See RTF formats run requests 510
rich-text tags. See RTF tags running executable files 722, 723
Right property 355 running headers and footers 125, 131
.rod files. See report object design files See also page headers and footers
.roi files. See report object instance files running queries 570
RoiIsTemporary method 570 running reports 29, 56, 362, 722, 751
.rol files. See report object library files running search definition files 745
roles 565, 566 running subreports 413, 417, 432
.ros files 745 Runtime element 617
Index 817
Search dialog (continued) on multiple fields 732, 733, 736
adding searchable objects to 732, 735 page headers and footers 448
changing search conditions in 736 page-level security and 550
displaying search results from 741, 742 relationships preventing 450
entering wildcard characters in 738 relationships supporting 451
running search definition files from 745 reports 441–455, 732, 733
saving search conditions for 745 web pages 449
search expressions with conditions 734
See also link expressions with web browsers 696
adding nonprinting ASCII codes to 740 SearchNoIndex value 443, 445
adding pattern operators to 738 SearchPath element 617
adding wildcard characters to 735, 738 SearchTag property
creating 458–461, 736–740 adding items to Search window with 444
locating special characters with 739 and parallel or sequential sections 447
Search icon 734 link expressions and 460
search paths overriding default search behavior
adding directories 648, 649 and 449, 455
changing search order 648, 649 overview 443, 444–447
displaying 619 setting programmatically 449
external images and 155 SearchValueExp property 443, 668, 669
font information and 480 SearchWithIndex value 443, 445
hyperlinks and 457 section components 398, 468
removing directories 648, 649 sections
search definition files and 745 See also specific type
setting 620, 647–649 adding components 37, 400–401
search results adding dynamic text controls 343
as navigational tool 741 adding headers and footers to 183
displaying 736, 741, 742 adding subpages to 404
generating 449 adding to reports 398
returning hyperlinks 448 aggregating data and 122, 402
search URLs 670–672 creating conditional expressions for 401
Search window 443, 444 creating subreports and 404, 407, 408, 414
Searchable property 443, 454 cross-tab controls and 287
searchable report fields 732, 733 customizing page layouts for 403
SearchAlias property 443, 444, 445 defining page layouts for 191
searching disabling security restrictions for 552
cross tabs 285 display options for 639
directories 647 expanding 24
for literal strings 459 extracting as Reportlets 670, 671
for multiple components 445 generating ACLs for 551, 566
for nonprinting characters 740 mapping to XML elements 698
for single text values 732 nesting 426, 552, 564
for special characters 739 placing data in 95
for specific data 733–736, 743 searching 450, 454
from search definition files 745 setting security restrictions for 562, 564
maximizing report size for 570 types described 398
on literal values 736 visual dividers for 152, 153
Index 819
series labels 225 ShowInDHTML property 684
series lines 263, 273 ShowInPDF property 684
Series page 256, 257 ShowInReportlet property 668, 669
SeriesLabelExp property 219 ShowWhenPrinting property 685
server profiles ShowWhenViewing property 685
creating 624–626, 632 shrinking dynamic text controls 339, 340, 341
naming 625 side-by-side subreports 399, 403, 407
selecting 629 simple page lists 167
setting publishing options for 627 simulated reports 555, 558
testing 626 single quotation mark (’) character
servers 610, 624 query statements and 522
See also iServer RTF formats and 757
SetSearchTag method 445 single quote character tags 757
SetSecurity method 551, 565, 566 single table reports 68
SetTaggedText method 333 single value expressions 517
settings. See properties single-page reports 171
Sfdata sample database Size command 138
building charts with 224, 226, 227 SIZE parameter 760
building subreports from 407, 414 sizing handles 28
creating cross tabs from 291 slice key expressions 213, 227
creating grouped reports with 81 slice size expressions 213
report bursting techniques for 571 slices. See sectors (pie charts)
SGML formats 694 slot names 9
shadows 150 slots
shared libraries 598 See also specific
sharing connections 411 adding aggregate values 115
Shift parameter 475 adding components 49
ShiftKey Bor AltKey value 475 adding dynamic text controls 343
ShiftKey Bor ControlKey value 475 adding frames 98
ShiftKey Bor CtrlKey Bor AltKey value 475 adding section components to 399, 426
ShiftKey value 475 column headings and 106
Short Date format type 145 cross-tab controls and 286
short date formats 519 described 94
Short Half format type 145 displaying names 639
Short Month format type 145 group headings and 110
Short Quarter format type 145 hiding 95
short reports 171 placing data in 94, 97
Short Time format type 145 placing report titles in 125
Short Week format type 145 searching controls in 450
shortcut key combinations 41, 43 small hand cursor 714
shortcut menus. See context menus SmartSplitHorizontally property 324
Show bars as lines setting 273 SmartSplitVertically property 324
Show Empty Slots command 95 snap to grid 137
Show group sections setting 639 soft hyphens 757
Show point label lines setting 260 sort fields 17, 128
ShowFooterOnLast property 448 sort keys 86, 92–93
ShowHeaderOnFirst property 448
Index 821
SQL statements (continued) Step Into command 491, 498
displaying 22 Step Over command 491, 498
entering at run time 525 stepping through code 491, 493, 497
entering dates in 519 stock charts
entering literal characters in 520, 522 See also charts
entering null values in 519 adding bars 264
entering special characters in 525 adding drop lines 266
errors in 518 adding high-low lines 265
limiting data returned by 514 adding legends to 247
narrowing scope of 518 adding trendlines 270
square brackets ([ ]) characters changing series colors in 256
query statements and 521, 522, 524 creating 207
search expressions and 738, 739 generating sample data for 277
Srchdef directory 745 labeling data points in 258
stack 491, 493, 495 plotting missing values for 262
Stack window 493 selecting data for 216, 229
stacked bar charts 271 stocks, tracking value of 205, 207, 216
stacked controls 50 stopping code execution 491, 498
stacking application windows 47, 48 stopping report generation 723
stacking controls 684 string variables 683
stand-alone file systems 708 String$ function 111
Standard format type 143 strings
Start method 547 assigning literal values to 333
starting browsing scripting controls and 675
debugging sessions 498 converting expressions to 551
e.Report Designer Professional 5 converting integers to 605
starting values, plotting 207, 208, 216 defining empty 685
statements 488, 497 defining for online help 440
static controls 97 displaying 97
static groups (charts) 235, 241–242 grouping characters in 88, 92
static groups (cross tabs) 308 link expressions and 455
Static Groups page 242, 302 locating special characters in 739
static headings 301 matching blank values in 523
static text 333 matching characters in 522, 524
status bar 42 matching exact 520
Status Bar command 42 measurement units and 647
status messages 29 not displaying correctly 486
step charts PDF conversions and 684
See also charts returning null values with 728
as study chart layer 210 searching 737
changing series labels for 256 searching for literal 459
creating 207 structure aliases 590
generating sample data for 277 structure icon 591
labeling data points for 258 structure members 591
labeling data points in 258 structure pane. See Report Structure window
plotting empty values for 262 structure parameters (SAP) 727, 728
selecting data for 211, 224 structured content 37
Index 823
tables (continued) creating help 440
selecting 13, 72 displaying 301
TabPadding property 349 eliminating blank lines of 339
TabSpacing property 350 entering at run time 529
tags formatting 74, 145, 226, 344
adjusting line spacing with 347 generating missing values for 308
adjusting paragraph spacing with 347 indenting 755
appearing as literal text 334 misaligned 640
assigning literal values with 333 multi-style formats and 330, 333
embedding 333 right-aligning 118
generating HTML 677 RTF formatting tags for 755
HTML formats and 758 searching for 732, 736, 738, 739
Reportlets and 667, 670 setting default fonts for 640
rich-text formats and 754 setting margins for 355–356
XML data formats and 694 setting orientation for 244, 253, 260
Target window name setting 276 setting tab stops for 349
targets. See slots text attributes
templates 69, 71, 660 adding label controls for 484
temporary components 129, 130 applying from toolbar 142
temporary reports 458 changing 640, 641, 643
testing dynamic text controls and 330, 756, 759
connections 626 text boxes 726
designs 553, 555 text controls
output 345 See also dynamic text controls
page layouts 129 adding 330
page-level security 558–562 caution for placing 168
parameters 543–544 changing 363
queries 35 displaying data with 97
reports 35, 65, 130, 176, 344, 546 displaying security IDs with 555, 556
security IDs 554, 555 text editor page 606
security rules 555, 558 text editors 56, 605, 640, 652
server profiles 626 text fields 330, 742
user selection elements 544 Text Layout property 344
text Text property 107
See also text controls text strings. See strings
adding as watermarks 187 TextAlignRight value 118
adding literal 106, 128 TextFormat property 334
adding to reports 97, 128, 168, 330, 331 TextFormatHTML value 334
adjusting spacing for 344, 346, 348 TextFormatPlain value 334
aligning 143, 755, 760 TextFormatRTF value 334
alternative representations for 755 TextPlacement properties group 147, 678
changing default padding value for 345 Textual Query Editor 633
changing font attributes for 641, 643 TGA files 154
changing style of 142 Then slot 426
comparing with dynamic text 331 Thickness property 149
copying 719 third-party software 34
Index 825
U hyperlinks and 672
server profiles and 625
–u option (erdpro) 765 setting Management Console 651
UK currency symbols 761 specifying search paths with 620
unavailable fonts 278, 479 Use default values setting 546
underlined text 756, 759 user accounts 624
underscore (_) character 522 user agent strings 681
undoing changes 285 user interface (e.Report Designer) 41
unexpected search results 743 User name field (iServer Profile) 625
Unicode characters 652, 755, 756, 760 user names
unique values 121, 282 accessing sample databases and 13
Unit Recognition options 647 adding to server profiles 625
units of measurement as required parameters 511
adding suffixes to 645, 646 user-defined classes 640
customizing 645 users
selecting 644 assigning security IDs to 560
setting 644–645 changing reports and 527
Units page (Options) 645, 646 displaying security IDs for 556
universal hyperlinks 466 entering filters at run time 516, 525
Universal Resource Locators. See URLs entering invalid values 546
UNIX systems prompting for input 510, 512, 525, 529,
designing for 65, 479 538, 546
displaying charts on 200 prompting for query expressions 526
generating reports for 344 prompting for specific values 525, 526, 527
getting font information for 480 providing list of choices for 531–533
rendering charts for 278 testing security IDs for 554, 555, 556
viewing images and 154 testing security rules for 558
unordered lists 759
unresolved references 679 V
unstacking application windows 47
up bars (charts) 256, 264 value axis. See y-axis values
updating value categories. See y-axis values
data 722 Value Expression button 587
data formats 142 Value Expression icon 587
report components 52 value expressions
source code 56 See also ValueExp property
upgrades 764–765 adding dynamic text controls and 334
uploading files 627 building calculated columns and 117
URLs changing 105, 225
See also hyperlinks charting data and 214, 227, 228
accessing external libraries with 610 restrictions for 228
adding chart 276, 277 creating 334
adding dynamic parameters to 464 defining chart layer 232, 234
creating 455, 457, 467 defining chart titles and 243
creating Reportlets and 670 defining custom properties and 580, 587–
defining for temporary reports 458 588
displaying reports from 458 defining data structures and 587
Index 827
Version options (Publish and Preview) 628 database tables 22, 72
versions 461 detail reports 570
Vertical property 678 DHTML reports 674
VerticalOverlap property 324 external functions 599
VerticalPosition property 377, 382, 384 gridlines 644
VerticalPositionFrameBottom value 384 images 154
VerticalPositionFrameMiddle value 384 large numbers 147
VerticalPositionFrameTop value 384 libraries in designs 601, 619
VerticalSize property 372, 374, 377, 378, 380 link expressions 465
VerticalSizeFrameRelative value 372, 374, literal values 333
380 member variables 593
VerticalSizeRelative value 372, 374, 378 overflow characters 146
View Browser Code command 679, 685 page layouts 165
View command 43, 57 query output 480
View menu 43, 710 query statements 22
View parameter 475 related information 714
view perspective report designs 20, 21, 49
creating context menus and 471 report layout styles 18
displaying reports in 57, 685, 708–709 report parameters 539, 541
generating multipage reports and 723, 724 report structures 24
missing fonts and 479 Reportlets 668
overview 46 reports 57, 684, 685, 708–709
refreshing reports in 724 across platforms 478, 479
View service 683, 696 design strategies for 65
view window. See view perspective online 176
View with full read privilege setting 559 page-by-page 550, 554
Viewer. See DHTML Viewer; PDF Viewer sample data 639
viewing sample reports 708
access control lists 555 scripting control values 683
aggregate values 286, 298 search results 736, 741, 742
application status bar 42 security IDs 555, 556
balloon help 440 source code 56, 500
bi-directional text 333 specific parts of a report 711, 713, 714
charts 278 specific report pages 710
class-specific methods 499 status messages 29
component names 51 table of contents 712
component properties 54 text 301
component references 612, 614 toolbars 49
components 50 units of measurement 644
computed values 300 variables 491, 492, 493
context menus 471, 474, 638, 718 XML properties 698
cross tabs 286, 299, 322, 323 XML reports 699
custom browser code 679, 685 viewing events 440
data 73, 97 views 709, 715, 743
data groups 94 virtual security IDs 551, 554, 562–564
database fields 22 virtual x-servers 278
Index 829
Windows systems (continued) XML (defined) 694
customizing wizards item lists for 658 XML Data command 697
designing for 65, 479, 485 XML data formats 694, 695, 701
displaying charts on 200 XML data mapping example 702
displaying reports on 478 XML Data property group 698
generating reports for 344 XML documents
getting font information for 480 content described 694
rendering charts for 278 document type specifications and 694
wizards extracting data from 696
See also specific report wizard XML files
creating charts with 200 generating 697, 699, 701
creating reports with 10, 67–68, 423 limiting size of 699
creating subreports with 408 XML Files value 699
customizing item list for 658 XML prolog information properties 698
limitations of 71 XML properties 697, 698–700
word processing applications 56 XML reports
WordPad 720 controlling appearance of 699
WordWrap property 678 debugging 699
work area 42, 43 default encoding for 701
working directory 648 designing for 694, 696, 697
writing code 58 displaying data in 696
generating output for 697, 700, 701
X generating prologs for 695
X Axis page (Axes) 251 publishing to 696–704
X Axis page (Labels) 253, 254, 255 searching 696
x parameter (mouse events) 475 structuring 699
X value expressions 214, 215, 228 viewing 699
x-axis labels 201, 225 XML tags 694
x-axis title 201 XMLAddContents property 700
x-axis values XMLAttribute value 698, 700
See also axes values; charts XMLAttributes property 700
adding titles to 244 XMLCharSet property 699
aligning data points and labels for 260, XMLCustom value 698, 700
261 XMLDataProlog method 695, 701
arranging labels on 260, 261 XMLDocType property 699
changing line styles for 251 XMLElement value 698, 700
formatting labels for 254 XMLEmptyAttribute value 700
grouping 229 XMLFileDescription property 699
labeling 253, 254, 255 XMLFileExtension property 699
location of 201 XMLIgnore value 700
overview 249 XMLIndent property 699
positioning data points for 260 XMLMimeType property 699
positioning intersecting 251 XMLTag property 698, 700
scaling 252 XMLType property 698, 700
selecting data for 228 x-servers 278
setting options for 251 Xvfb server 278
sorting 229
Index 831
832 Developing Actuate Basic Repor ts