Working with Actuate e.Report Designer Professionalbrightstarc.com/TOC_ErdPro1and2.pdf ·...

22
Working with Actuate e.Report Designer Professional Part 1

Transcript of Working with Actuate e.Report Designer Professionalbrightstarc.com/TOC_ErdPro1and2.pdf ·...

Working withActuate e.Report Designer Professional

Part 1

1 0 9 8 7 6 5 4 3 2 1

Information in this document is subject to change without notice. Examples provided are fictitious. No part of this document may be reproduced or transmitted in any form, or by any means, electronic or mechanical, for any purpose, in whole or in part, without the express written permission of Actuate Corporation.© 1995 - 2004 by Actuate Corporation. All rights reserved. Printed in the United States of America.Contains information proprietary to:

Actuate Corporation701 Gateway BoulevardSouth San Francisco, CA 94080http://www.actuate.com

The software described in this manual is provided by Actuate Corporation under an Actuate License agreement. The software may be used only in accordance with the terms of the agreement.Actuate Corporation trademarks and registered trademarks:Actuate, the Actuate logo, e.Analysis, Correlink, Correlink Framework, e.Report, e.Reporting, e.Spreadsheet, Encyclopedia Formula One, Internet Spreadsheet, Lens, Lens Builder, Live Report Document, Nimble, the Nimble logo, Nimble Technology, Pace, ReportCast, Report Encyclopedia, ReportingEngines, the ReportingEngines logo, Reportlet, Spreadsheets Everywhere, Tidestone Technologies, and XML reports.Third party trademarks or registered trademarks of their respective owners, companies, or organizations:Apache Software Foundation (http://www.apache.org/): Axis, Crimson, Jakarta-ORO, Tomcat, Xalan, Xerces, and XML4C. Apple Computer, Inc.: Mac OS, Macintosh, TrueType. BEA Systems, Inc.: BEA Liquid Data for WebLogic, BEA WebLogic Portal, BEA WebLogic Portal Server, BEA WebLogic Server, BEA WebLogic Workshop. Bits Per Second, Ltd. and Graphics Server Technologies, L.P.: Graphics Server. Borland Software Corporation: JBuilder. Bruno Lowagie and Paulo Soares: iText, licensed under the Mozilla Public License (MPL). Codejock Software: Xtreme Toolkit. Component One, LLC.: VSFlexGrid Pro. DataDirect Technologies Corp: DataDirect Connect. Fred L. Drake, Jr. (http://sourceforge.net/projects/expat): Expat XML parser, created by James Clark, licensed under the MIT License. Hewlett-Packard Company: HP-UX. IBM Corporation: 1-2-3, AIX, DB2, Informix-ESQL/C, ICU, Lotus, and WebSphere. Indiana University Extreme! Lab (http://www.extreme.indiana.edu): XML Pull Parser and XPP. InstallShield Corporation: InstallShield. InterNetivity Inc.: Databeacon. JDBM Project (http://jdbm.sourceforge.net): JDBM. LEAD Technologies, Inc.: LEADTOOLS. Linus Torvalds: Linux. Lucent Technologies, Inc.: FPDTOA, created by David M. Gay. Microsoft Corporation: ActiveX, Microsoft, MS-DOS, MSN, Windows. Nanode LLC: OpenJNLP, licensed under the Mozilla Public License (MPL). Netscape Communications Corporation, Inc.: Netscape, Netscape Communications, Netscape Communicator, Netscape Enterprise Server, and Netscape Navigator. The OpenSSL Project (http://www.openssl.org/): Mac OS X, Mac OS X Server, OpenSSL Toolkit. Oracle Corporation: Oracle Call Interface. Progress Software Corporation: Progress. Quadralay Corporation: WebWorks. Rogue Wave Software, Inc.: NobleNet RPC and Rogue Wave SourcePro. SAP AG: SAP, SAP BW, SAP R/3. Sun Microsystems, Inc.: 100% Pure Java, iPlanet, J2EE, Java and all Java-based marks, JavaServer Pages, ONC, Solaris, SPARC, Sun, Sun Microsystems, and Sun ONE. Sybase, Inc.: CT-Library. Symantec Corporation: Visual Cafe. Unicode, Inc.: Unicode. World Wide Web Consortium (W3C): HTML Tidy and tidy.c. X/Open Company, Ltd.: UNIX. Zero G Software, Inc.: InstallAnywhere. Zope Corporation: DCLC and Digital Creations.All other brand or product names are trademarks or registered trademarks of their respective owners, companies or organizations.

Document No. 041015-5-130302 October 18, 2004

i

ContentsChapter 1Setup instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1Hardware requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Course materials for students . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Setting up student workstations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Setting options in e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Configuring an ODBC data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Verifying access to the Sfdata sample database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Setting a display appearance option in Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Creating a user and a home folder using Actuate Management Console . . . . . . . . . . . . . . . . . . . . . 15

Chapter 2Course introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21Working with Actuate e.Report Designer Professional, Part 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

About this course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Course objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Course agenda – day 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Course agenda – day 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Actuate course curriculum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Working with Actuate e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Developing Customized Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Designing and Publishing e.Spreadsheet Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Working with Formula One e.Report Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Actuate course curriculum (continued) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Managing Actuate iServer System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Creating an e.Reporting Web Site using Actuate ReportCast . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Customizing Actuate Active Portal for JSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Customizing Actuate Active Portal for .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Actuate Information Delivery API Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Integrating and Deploying Formula One e.Report Engine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Chapter 3Actuate and ReportingEngines product overview . . . . . . . . . . . . . . . . . . . . . . .31Actuate and ReportingEngines product overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32About Actuate products and their business benefits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

About Actuate and ReportingEngines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Providing business benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

About Actuate reporting solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Designing reports for your enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Managing reports in your enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Viewing and distributing reports across your enterprise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Benchmarking and improving reporting performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

About Actuate 8 products. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38About Actuate design tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

About e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39About e.Report Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

ii

About e.Spreadsheet Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39About Formula One e.Report Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40About Actuate Information Object Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40About Actuate Analytics Cube Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Providing report input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Data sources accessible to all report design tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41Data sources accessible to some report design tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Providing report output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42About Actuate Basic reporting with e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . 43

Supporting intelligent report navigation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Developing a report using object-oriented technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

About Actuate iServer and Actuate management tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45About Actuate iServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45About Actuate Management Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45About Actuate Active Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45About Actuate iServer Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

About Actuate viewing tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48About Actuate Active Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48About Actuate Management Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48About End User Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48About Actuate Viewer for viewing older reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

About Actuate analysis tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49About Actuate e.Analysis Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49About Actuate Analytics Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

Customizing and extending Actuate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Customizing and extending e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Extending e.Spreadsheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Extending Formula One . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Extending Actuate iServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51About customizing and extending Actuate Active Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Working with an Actuate Basic report on the web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Analyzing data in an Actuate Basic report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Chapter 4Introducing reporting concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63Introducing reporting concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

About e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Understanding report development tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Planning the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Accessing data from one or more data sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68Structuring report content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Laying out the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Formatting the content . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Controlling access to report data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Previewing and distributing the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Building a report from components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70About the types of components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Using components to implement the Actuate Foundation Classes . . . . . . . . . . . . . . . . . . . . . . . . . 70

About Actuate file types for report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

iii

About report object design (.rod) files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72About report object library (.rol) files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72About Actuate Basic source (.bas) files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

About Actuate file types for report generation and viewing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73About report object executable (.rox) files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73About report object value (.rov) files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73About report object instance (.roi) files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Understanding the report object life cycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74About the Actuate web reporting architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Publishing a report to an Encyclopedia volume. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Using Actuate Management Console. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Using Actuate Active Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Connecting to a database or data warehouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Working with connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Using an ODBC data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

About databases and queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Understanding the database schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78Creating a SQL query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78About joins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Exercise 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Drafting a report design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Create your design here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

Chapter 5Understanding report development tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .85Understanding report development tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

About the report development environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Working in the report development environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88About menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88About toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89About the work area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89About the status bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Docking, undocking, opening, and closing windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

About the perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91About the design perspective. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Understanding design perspective tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Creating a report structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Using the Properties window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Using the Toolbox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

About structure components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95About data components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95About controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95About drawing and graphical components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95About page components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Understanding the Layout window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97About the data perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

About Query Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Synchronizing a query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Using a column alias in a query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

About Textual Query Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

iv

Modifying data row variable properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101Clearing a query using Textual Query Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101Sorting data in a query using Textual Query Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101

About the view perspective. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102About the debug perspective . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104Starting a report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105

About Quick Report Wizard. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105About Listing Report Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105About Blank Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106

Creating a report using Quick Report Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107Using Page Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112

Setting the paper size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113Selecting page orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113Setting margins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114

Chapter 6Creating a grouped report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117Creating a grouped report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119

About grouped reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120

Understanding grouped reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121Understanding the structure of a grouped report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122Performing a calculation in a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124About nested groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125Creating a grouped report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126

Using the Listing Report Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126Using the Sorting and Grouping dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126Adding a group section component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127

Creating a group section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128Exercise 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129Creating a grouped report without using a report wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130Exercise 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158Creating a grouped report using the Listing Report Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159Modifying a grouped report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173Using GroupOn and GroupInterval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179

About GroupOn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179About GroupInterval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180

Exercise 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181Grouping data by interval (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182About table of contents properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192

About TocAddComponent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193About TocAddContents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193About TocValueExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193

Configuring and testing the table of contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199

Chapter 7Creating a report that uses parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201Creating a report that uses parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202

v

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203About report parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

Displaying parameters in a SQL query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205Adding parameters to a query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205About simple parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205About ad hoc parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

Setting parameter display properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207About general parameter properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208About advanced parameter properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

Using a report object values (.rov) file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210Using an ROV on the desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210Using an ROV on Actuate iServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211

Exercise 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212Creating simple and ad hoc parameters using Query Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213Exercise 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231Publishing and previewing a report on Actuate iServer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232Exercise 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238Creating a report object values file (optional). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

Chapter 8Review exercise – day 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251Review exercise – day 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252Creating a grouped report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

Chapter 9Creating a crosstab report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255Creating a crosstab report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

About crosstab reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

Recognizing the parts of a crosstab report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Exercise 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260Creating a crosstab report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

Chapter 10Working with parallel and sequential sections. . . . . . . . . . . . . . . . . . . . . . . . .271Working with parallel and sequential sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

About parallel and sequential sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

Understanding parallel sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275Examining a parallel section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276Exercise 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277Creating a report using a parallel section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

vi

Understanding sequential sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286Examining a sequential section. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287Exercise 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289Creating a report using a sequential section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .290Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295

Chapter 11Working with a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297Working with a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299

About dynamic text controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300

Examining formatted text in a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301Comparing a text control and a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302Understanding dynamic text control features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305

Understanding support for data in plain text, HTML, and RTF formats . . . . . . . . . . . . . . . . . . . . . .305Understanding dynamic resizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305Understanding consistent output generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306Understanding properties for optimizing output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306

Understanding default control size and position. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307Adjusting default dynamic text control behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308

About default dynamic text control behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308Changing default sizing behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308Controlling movement of other controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308Changing control expansion behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309Adjusting control positioning behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309Controlling how a frame splits across pages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .309

Understanding VerticalPosition values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310Understanding VerticalSize values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311Understanding font requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312

Using font information to generate text in a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . .312Looking for font information in multiple sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312Embedding font information in the report object executable file . . . . . . . . . . . . . . . . . . . . . . . . . .313About font installation requirements for users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .313

Examining a report that uses a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314Exercise 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318Modifying a report to use a dynamic text control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319Using a dynamic text control in a nested frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324

Using a nested frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324Processing a control in a nested frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324

Exercise 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326Resolving output display issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .327Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333

Chapter 12Creating a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335Creating a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337

About charts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338

Understanding chart types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339

vii

Recognizing the parts of a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341Setting the properties of a chart control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343About Chart Builder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344Selecting a chart type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345About overlay and study charts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

Adding an overlay or study chart. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346About the overlay chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346About the study chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

Obtaining data for a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348Selecting data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

Selecting data for the value axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349Selecting data for the categories and series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349

Plotting empty values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350Formatting a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

Formatting a title . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351Working with a legend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352Formatting additional chart properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352Formatting a chart’s axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352

Adding data values to data points. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353Creating a hyperlink from a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353Formatting sample data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353

Exercise 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354Creating a stock chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355Sorting and grouping chart data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

Managing missing data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365Adding categories and series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

Chapter 13Creating a hyperlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .375Creating a hyperlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

About hyperlinks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378

Writing a link expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379Defining a hyperlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379Understanding URL syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380Understanding search expression syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380Understanding dynamic report parameter syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

Adding a data value to a link expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383Exercise 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384Creating a hyperlink within a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385Exercise 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391Creating a hyperlink to an external report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392Creating a hyperlink from a chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399

About hypercharts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399Creating a hyperchart URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399

Exercise 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401Creating a hyperchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402Exercise 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413Creating a dynamic hyperlink (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

viii

Chapter 14Using conditional formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .423Using conditional formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .424Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .425

About conditional formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .425What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .426Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .426

Modifying a method to set conditional formatting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427About Actuate Basic methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427About the OnRow( ) method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427About the Finish( ) method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427

About component inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .428Understanding how a component inherits behavior or properties . . . . . . . . . . . . . . . . . . . . . . . . .428Inheriting from a superclass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .428

Exercise 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .430Conditionally formatting a component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .436

Chapter 15Review exercise – day 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .437Review exercise – day 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .438Creating a sequential report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .439

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .441

Quiz answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .473

Working withActuate e.Report Designer Professional

Part 2

1 0 9 8 7 6 5 4 3 2 1

Information in this document is subject to change without notice. Examples provided are fictitious. No part of this document may be reproduced or transmitted in any form, or by any means, electronic or mechanical, for any purpose, in whole or in part, without the express written permission of Actuate Corporation.© 1995 - 2004 by Actuate Corporation. All rights reserved. Printed in the United States of America.Contains information proprietary to:

Actuate Corporation701 Gateway BoulevardSouth San Francisco, CA 94080http://www.actuate.com

The software described in this manual is provided by Actuate Corporation under an Actuate License agreement. The software may be used only in accordance with the terms of the agreement.Actuate Corporation trademarks and registered trademarks:Actuate, the Actuate logo, e.Analysis, Correlink, Correlink Framework, e.Report, e.Reporting, e.Spreadsheet, Encyclopedia Formula One, Internet Spreadsheet, Lens, Lens Builder, Live Report Document, Nimble, the Nimble logo, Nimble Technology, Pace, ReportCast, Report Encyclopedia, ReportingEngines, the ReportingEngines logo, Reportlet, Spreadsheets Everywhere, Tidestone Technologies, and XML reports.Third party trademarks or registered trademarks of their respective owners, companies, or organizations:Apache Software Foundation (http://www.apache.org/): Axis, Crimson, Jakarta-ORO, Tomcat, Xalan, Xerces, and XML4C. Apple Computer, Inc.: Mac OS, Macintosh, TrueType. BEA Systems, Inc.: BEA Liquid Data for WebLogic, BEA WebLogic Portal, BEA WebLogic Portal Server, BEA WebLogic Server, BEA WebLogic Workshop. Bits Per Second, Ltd. and Graphics Server Technologies, L.P.: Graphics Server. Borland Software Corporation: JBuilder. Bruno Lowagie and Paulo Soares: iText, licensed under the Mozilla Public License (MPL). Codejock Software: Xtreme Toolkit. Component One, LLC.: VSFlexGrid Pro. DataDirect Technologies Corp: DataDirect Connect. Fred L. Drake, Jr. (http://sourceforge.net/projects/expat): Expat XML parser, created by James Clark, licensed under the MIT License. Hewlett-Packard Company: HP-UX. IBM Corporation: 1-2-3, AIX, DB2, Informix-ESQL/C, ICU, Lotus, and WebSphere. Indiana University Extreme! Lab (http://www.extreme.indiana.edu): XML Pull Parser and XPP. InstallShield Corporation: InstallShield. InterNetivity Inc.: Databeacon. JDBM Project (http://jdbm.sourceforge.net): JDBM. LEAD Technologies, Inc.: LEADTOOLS. Linus Torvalds: Linux. Lucent Technologies, Inc.: FPDTOA, created by David M. Gay. Microsoft Corporation: ActiveX, Microsoft, MS-DOS, MSN, Windows. Nanode LLC: OpenJNLP, licensed under the Mozilla Public License (MPL). Netscape Communications Corporation, Inc.: Netscape, Netscape Communications, Netscape Communicator, Netscape Enterprise Server, and Netscape Navigator. The OpenSSL Project (http://www.openssl.org/): Mac OS X, Mac OS X Server, OpenSSL Toolkit. Oracle Corporation: Oracle Call Interface. Progress Software Corporation: Progress. Quadralay Corporation: WebWorks. Rogue Wave Software, Inc.: NobleNet RPC and Rogue Wave SourcePro. SAP AG: SAP, SAP BW, SAP R/3. Sun Microsystems, Inc.: 100% Pure Java, iPlanet, J2EE, Java and all Java-based marks, JavaServer Pages, ONC, Solaris, SPARC, Sun, Sun Microsystems, and Sun ONE. Sybase, Inc.: CT-Library. Symantec Corporation: Visual Cafe. Unicode, Inc.: Unicode. World Wide Web Consortium (W3C): HTML Tidy and tidy.c. X/Open Company, Ltd.: UNIX. Zero G Software, Inc.: InstallAnywhere. Zope Corporation: DCLC and Digital Creations.All other brand or product names are trademarks or registered trademarks of their respective owners, companies or organizations.

Document No. 041015-5-131302 October 18, 2004

i

ContentsChapter 16Setup instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1Hardware requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2Course materials for students . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Setting up student workstations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Setting options in e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Configuring an ODBC data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Verifying access to the Sfdata sample database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Setting a display appearance option in Microsoft Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Creating a user and a home folder using Actuate Management Console . . . . . . . . . . . . . . . . . . . . . 15

Chapter 17Course introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21Working with Actuate e.Report Designer Professional, Part 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

About this course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Course objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Course agenda – day 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25Course agenda – day 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Actuate course curriculum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Working with Actuate e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Developing Customized Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Designing and Publishing e.Spreadsheet Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Working with Formula One e.Report Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Actuate course curriculum (continued) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Managing Actuate iServer System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Creating an e.Reporting Web Site using Actuate ReportCast . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Customizing Actuate Active Portal for JSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Customizing Actuate Active Portal for .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Actuate Information Delivery API Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Integrating and Deploying Formula One e.Report Engine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Chapter 18Actuate and ReportingEngines product overview . . . . . . . . . . . . . . . . . . . . . . .33Actuate and ReportingEngines product overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34About Actuate products and their business benefits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

About Actuate and ReportingEngines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Providing business benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

About Actuate reporting solutions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Designing reports for your enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Managing reports in your enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Viewing and distributing reports across your enterprise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Benchmarking and improving reporting performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

About Actuate 8 products. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40About Actuate design tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

About e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41About e.Report Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

ii

About e.Spreadsheet Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41About Formula One e.Report Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42About Actuate Information Object Designer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42About Actuate Analytics Cube Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Providing report input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Data sources accessible to all report design tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Data sources accessible to some report design tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Providing report output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Output formats accessible to all report design tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44Output formats for reports designed using specific tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

About Actuate Basic reporting with e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . 45Supporting intelligent report navigation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Developing a report using object-oriented technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

About Actuate iServer and Actuate management tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47About Actuate iServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47About Actuate Management Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47About Actuate Active Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47About Actuate iServer Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

About Actuate viewing tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50About Actuate Active Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50About Actuate Management Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50About End User Desktop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50About Actuate Viewer for viewing older reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

About Actuate analysis tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51About Actuate e.Analysis Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51About Actuate Analytics Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Customizing and extending Actuate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Customizing and extending e.Report Designer Professional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Extending e.Spreadsheet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Extending Formula One . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Extending Actuate iServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53About customizing and extending Actuate Active Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Working with an Actuate Basic report on the web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Analyzing data in an Actuate Basic report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Chapter 19Understanding programming basics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65Understanding programming basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

About programming basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Working with programming tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69About the Properties window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Using the Properties page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Using the Methods page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Using the Variables page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Using the Class page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Using Library Organizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Understanding Actuate Basic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

About Actuate Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Comparing Actuate Basic to Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

iii

Contrasting Actuate Basic with Visual Basic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72About Actuate Basic fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Working with variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Creating and calling procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Coding conditional tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Coding loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Working with variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74About data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Defining a variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Defining a variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75About Dim. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Understanding Dim syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Reviewing examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Defining a global variable or constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77About global variables and constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Understanding global variable or constant definition syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Using Declare…End Declare to define a variable and a constant . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Defining a custom data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79About custom data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Understanding custom data type definition syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Using Declare…End Declare to define a custom data type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Creating a procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81About functions and subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Understanding procedure syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Reviewing an example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Calling a procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83About calling a procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83About the called function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Exercise 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Working with variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

How to create a method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85How to call a method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Working with classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90About classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90About objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

About transient objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90About persistent objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

About class variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91About instance variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91About static variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Working with an object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Creating and destroying an object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Understanding the state of an object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Understanding the behavior of an object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

Accessing an object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Using an object reference variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Understanding Set syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Reviewing an example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Using Factory to get a reference to a control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

Accessing an object’s methods and variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96About dot notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Understanding dot notation syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Reviewing examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Understanding class scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

iv

About the scope resolution operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98Using the Project window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Using the Class page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99Using the fully scoped class name. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

Using static class variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100Accessing variables with generic code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101

About GetValue and SetValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101Understanding GetValue function syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101Reviewing an example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102

Exercise 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103Working with objects and class variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104Using a simple conditional test. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106

About If…Then…Else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106Understanding If…Then…Else syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106

Coding a simple conditional test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108Using a parallel conditional test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109

About Select Case. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109Understanding Select Case syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109

Coding a parallel conditional test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Exercise 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112Coding a conditional test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113

Calling a function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .113Constructing conditional statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115

Coding a simple loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118About Do…Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118Understanding Do…Loop syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118Reviewing an example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119

Coding a loop with start and end conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120About For…Next loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120Understanding For…Next loop syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120Reviewing an example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121

Exercise 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122Coding a loop (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123

Using Do…Loop to control loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123Using For…Next to control program loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133

Chapter 20Working with commonly used AFC methods . . . . . . . . . . . . . . . . . . . . . . . . . .135Working with commonly used AFC methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137

About AFC methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138

Building a content object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139Understanding common protocol for content objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139Understanding object creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .139Understanding the method call sequence for a persistent content object . . . . . . . . . . . . . . . . . . . . .140

Building a data source object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141About building a data source object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141Understanding the method call sequence for building a data source object . . . . . . . . . . . . . . . . . . . .141

Understanding common programming tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142Understanding general component handling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144

About general component handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144

v

Declaring a global variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Formatting a control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Customizing data access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Accessing a custom data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Filtering data rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146Manipulating columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Understanding custom data source access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148About accessing a custom data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Overriding the Start( ) method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Overriding the Finish( ) method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

Retrieving records from a custom data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150About retrieving records from a custom data source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Examining a Fetch( ) method override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Exercise 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152Retrieving data from a flat file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153Manipulating variables and columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

About manipulating variables and columns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Overriding AFC methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Examining a Fetch( ) method override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161Examining an OnRead( ) method override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Exercise 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Generating a data row variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163Exercise 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Generating a data row variable by overriding OnRead( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168Formatting data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

About formatting data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Changing a control’s format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Changing a control’s value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Adding a control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176Deleting a control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176Referencing a control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

Working with page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177About page layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177Building a custom frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177Building content for a Before or After slot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178Building a page header or footer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

Exercise 27 (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179Using custom frames (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180Reviewing the commonly used methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

Chapter 21Using components in component libraries. . . . . . . . . . . . . . . . . . . . . . . . . . . .191Using components in component libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

About components and component libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

Understanding component libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195Using a component library in a report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

Understanding included and available libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197About Library Organizer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

Exercise 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

vi

Creating and including a component library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .199Understanding inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204

Understanding how a component inherits behavior or properties . . . . . . . . . . . . . . . . . . . . . . . . .204Inheriting from a reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204Inheriting from a superclass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205

Exercise 29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206Creating a reference to a library component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207Creating a subclass. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210Exercise 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213Creating a component by subclassing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214Copying a component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218Exercise 31 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220Creating a component dynamically . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221Exercise 32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224Examining inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228

Chapter 22Debugging a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231Debugging a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233

About debugging an Actuate report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234

About the types of report errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235About compilation errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235About run-time errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235About logic errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235

Detecting a compilation error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236Understanding debugging tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237Monitoring report generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238Examining variable values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239

About Variables Browser. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239About Watch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240

Viewing the stack of method calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241Displaying a message from a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242

Using MsgBox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242Using ShowFactoryStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243

Exercise 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244Using the debugging tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245Exercise 34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250Creating a debugging log (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254

Chapter 23Designing a report that uses page-level security. . . . . . . . . . . . . . . . . . . . . . .255Designing a report that uses page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257

About page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258

vii

Understanding page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Understanding the developer’s role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259About the Factory service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259Understanding report viewing and printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

Understanding the Report Server Security Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260About the Report Server Security Extension. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260About the levels of Encyclopedia volume security the RSSE controls . . . . . . . . . . . . . . . . . . . . . . 260

Setting up page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261Using the GrantExp property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

Creating an Actuate Basic expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261Coding an Actuate Basic function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

Overriding SetSecurity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262Understanding page numbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

Using the page number control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263Calling AFC methods to return page numbers and page counts . . . . . . . . . . . . . . . . . . . . . . . . . 264

Implementing page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265Understanding software prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265Designing a report that uses page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265Assigning Encyclopedia volume privileges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

Exercise 35 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267Building a report that uses page-level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268Inheriting page-level security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280Overriding the page-level security inheritance rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

Setting CascadeSecurity to False . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281Overriding GetFullACL( ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281

Creating a virtual security ID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283About virtual security IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283Creating a virtual security ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

Chapter 24Designing a browser scripting control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287Designing a browser scripting control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

About browser scripting controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

Using a browser scripting control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291Understanding browser scripting control behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

Understanding browser scripting control inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292Understanding browser scripting control properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

Performing common tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293About commonly used methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293Writing static browser code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294Generating dynamic browser code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294Controlling clipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294Using the client viewer or printing the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294

Understanding other uses of browser code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295Writing global custom browser code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295Using a frame as an HTML form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295

Modifying a control for an alternative viewing environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296About viewing environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296Changing browser scripting control appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

viii

About commonly used functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297Working with a browser scripting control library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298

About browser scripting control libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298About BSC_Library_Common.rol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298

Exercise 36 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299Using a browser scripting control from a library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314

Chapter 25Designing an Actuate report for XML output . . . . . . . . . . . . . . . . . . . . . . . . . .317Designing an Actuate report for XML output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319

About integrating Actuate Basic reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319Key term . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319

Understanding XML structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320About XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320Mapping a report component to an XML element or attribute . . . . . . . . . . . . . . . . . . . . . . . . . . .321

Understanding XML Data properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322Interpreting an XML output file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324Exercise 37 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325Designing a report for XML output (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333

Chapter 26Creating an information object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335Creating an information object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337

About information objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337Key terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338

Developing an information object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339Generating query output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340Designing an information object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341Understanding query output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343Modifying query output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .344

Using Data Row Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .345Using Column Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .345

Modifying an information object’s output fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .347Exercise 38 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348Creating an information object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .349Setting customization options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360

Specifying the query output format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361Exercise 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362Customizing the query in an information object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .375

Chapter 27Managing design and run-time resources . . . . . . . . . . . . . . . . . . . . . . . . . . . .377Managing design and run-time resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .378

ix

Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379About configuration files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379What you learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380Supporting information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380

Selecting a configuration file for a report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381About configuration file structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

Understanding configuration file elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382About the SearchPath element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384About the Include element. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384About the Design element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385About the Runtime element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

Including a component or function library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386Setting connections for report design and report generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388

About connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388Specifying a connection for report design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388

Specifying a connection from a library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389Setting a default design connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390Defining connection properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

Specifying a connection for report generation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390Migrating a report from one environment to another . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392Specifying a template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393Exercise 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394Creating and modifying a configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .401

Quiz answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435

x