Sunteți pe pagina 1din 148

HYPERION SYSTEM 9 BI+

INTERACTIVE REPORTING
RELEASE 9.2

OBJECT MODEL AND DASHBOARD D E VE L O P M E N T S E R V I CE S D E VE L O P E R S GUIDE

VOLUME I: DASHBOARD DESIGN GUIDE

Copyright 1989-2006 Hyperion Solutions Corporation. All rights reserved. Hyperion, the Hyperion logo, and Hyperions product names are trademarks of Hyperion. References to other companies and their products use trademarks owned by the respective companies and are for reference purpose only. No portion hereof may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or information storage and retrieval systems, for any purpose other than the recipients personal use, without the express written permission of Hyperion. The information contained herein is subject to change without notice. Hyperion shall not be liable for errors contained herein or consequential damages in connection with the furnishing, performance, or use hereof. Any Hyperion software described herein is licensed exclusively subject to the conditions set forth in the Hyperion license agreement. Use, duplication or disclosure by the U.S. Government is subject to restrictions set forth in the applicable Hyperion license agreement and as provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (Oct 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14, as applicable. Hyperion Solutions Corporation 5450 Great America Parkway Santa Clara, California 95054 Printed in the U.S.A.

Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Document Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Related Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x Where to Find Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Help Menu Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii Additional Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Education Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Consulting Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii xiii xiii xiv

Documentation Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv PART I Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 CHAPTER 1 Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Working with the Dashboard Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Inserting a Dashboard Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Deleting an Dashboard Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Switching Between Design and Run Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Working with Dashboard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Inserting Dashboard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Deleting Dashboard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 External Content in Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Embedded Browser Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Referencing a Name with a Single-byte Character . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Browsing the Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Document Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 HyperLink Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Embedded Pivot Section Interactivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Setting Dashboard Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Using Design Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Layout Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Contents

iii

CHAPTER 2 Interactive Reporting Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Understanding Interactive Reporting Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object Level Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Active Section Level Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Document Level Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using the Script Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Object Browser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scripting pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description pane and Online Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 39 41 41 42 43 43 44

Sample JavaScript Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Testing Scripts Using the Execution Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Checking Errors Using the Console Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Finding/Replacing Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 PART II Scripting Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 CHAPTER 4 Dashboard Scripting Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Understanding Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Defining Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calling Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Function Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Summary of Function Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using JavaScript Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conditional Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Loop Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . break Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 50 51 52 54 55 55 58 61

Manipulating Objects with JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 for...in Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 with Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 OLE Automation Controller within JavaScript (JOOLE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Exporting Scripts to Text Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Space-Saving Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Case-Sensitive Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Assignment Operators Versus Comparison Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conditional Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntax Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recalculating Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Designing Your Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Code Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bypass Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Getting Help with a Problem Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 67 68 68 69 70 71 71 72 73 73

iv

Contents

CHAPTER 5 Object Model Map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 CHAPTER 6 JavaScript Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Retrieving and Setting the Properties of an Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Enabling and Disabling Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Controlling the Visibility of Graphics and Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Creating an OCE (connection file) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Displaying a Connection Login Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Display Differences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Conversion of Detail Report Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Conversion of Data Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Conversion of Facts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Conversion of Smart Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Conversion of Graphic Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Downloading Data Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Displaying a Table Catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Adding Topics to a Data Model Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Setting up Topic Object Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Adding Joins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Adding Items to the Request Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Adding a Computed Column to a Query Request Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Creating and Setting Variable Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Using a BrioQuery 5.5 Limit Dialog Box and Storing Selected Value in Text Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Turning off the Page Headers for the First Page in the Report . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Turning off the Prompt To Save Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 CHAPTER 7 TroubleShooting Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Case-Sensitive Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Assignment Operators Versus Comparison Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Conditional Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Syntax Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Recalculating Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Designing Your Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Code Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Bypass Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Getting Help with a Problem Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 CHAPTER 8 Designing for the Hyperion System 9 BI + Workspace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Contents

Highlights of the Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General Features Design and Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OLAPQuery Section Design and Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Results and Table Sections Design and Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pivot Section Design and Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chart Section Design and Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dashboard Section Design and Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Report Section Design and Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

105 107 108 108 109 109 110 110

Creating a Pre-Defined Drill-Down Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 Chart Sizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Locating Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Console Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . try-catch block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 112 112 112

Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Control Object Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Graphics Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Borders and Background/Font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Embedded Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Document Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dashboard Section Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dashboard Object Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Client-Side JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Client Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Client-Side Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Text Box Events and Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Excluded Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interactive Reporting Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paging Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paging Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Event Controls for Toolbar Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Workspace Document Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Personal Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pre-Generated HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Section 508 Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 116 117 117 117 118 119 119 120 121 121 122 122 123 123 124 124 124

Alert Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Primary Use Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Guided Analysis and Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Processing the Point of View (POV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

vi

Contents

Parsing a SmartCut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Traverse the Object Model Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Object Model Exclusion List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 User Embedded HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Contents

vii

viii

Contents

Preface

Welcome to the Hyperion System 9 BI+ Interactive Reporting Object Model and Dashboard Development Services Developers Guide, Volume I: Dashboard Design Guide. This preface discusses the following topics:

Purpose on page x Audience on page x Document Structure on page x Related Documents on page x Where to Find Documentation on page xi Help Menu Commands on page xi Conventions on page xii Additional Support on page xiii

Preface

ix

Purpose
The Hyperion System 9 BI+ Interactive Reporting Object Model and Dashboard Development Services Developers Guide, Volume I: Dashboard Design Guide describes how to create custom applications in the Dashboard section, how to use JavaScript to script and to control Interactive Reporting documents (.bqys), how JavaScript programs are interpreted by the Interactive Reporting engine, how JavaScript programs are used to provide dynamic control of a document, and how JavaScript is used to respond to user events and the document life cycle.

Audience
This book is written for developers and designers who create documents using Hyperion System 9 BI+ Interactive Reporting Studio and Interactive Reporting Web Client (those users with Data Model and Analyze, or Query and Analyze privileges) and who need to create front-ends using the Dashboard functionality.

Document Structure
Volume I: Dashboard Design Guide is one of seven books that explain how to use Interactive Reporting. This book contains two main parts:

Part I, Overview, provides an overview of the Dashboard section and introduces the Interactive Reporting object model and JavaScript, an object-oriented programming language. Part II, Scripting Reference, describes the structure of applications scripted in the Interactive Reporting object model and provides general reference and troubleshooting information.

Related Documents
In addition to the Hyperion System 9 BI+ Interactive Reporting Object Model and Dashboard Development Services Developers Guide, Volume 1: Dashboard Design Guide the following documentation is available: Hyperion System 9 BI+ Interactive Reporting Studio Users Guide provides an overview of Interactive Reporting and explains the user interface and basic commands. It includes how to retrieve data, how to query new data and change existing queries, and how to query a single database as well as multiple databases. It also covers how to work with query results. Hyperion System 9 BI+ Interactive Reporting Object Model and Dashboard Development Services Developers Guide, Volume II: Object Model Guide to Properties and Collections describes the objects used in the Interactive Reporting Object Model. Hyperion System 9 BI+ Interactive Reporting Object Model and Dashboard Development Services Developers Guide, Volume III: Object Model Guide to Methods describes the methods used in the Interactive Reporting Object Model.

Preface

Hyperion System 9 BI+ Interactive Reporting Object Model and Dashboard Development Services Developers Guide, Volume IV: Object Model Guide to Properties and Constants describes the properties and constants used in the Interactive Reporting Object Model. Hyperion System 9 BI+ Interactive Reporting Object Model and Dashboard Development Services Developers Guide, Volume V: Dashboard Studio Dashboard Studio presents the wizard that works with a set of extensible and customizable templates to create interactive, analytical dashboards without the need to write programming logic. Hyperion System 9 BI+ Interactive Reporting Object Model and Dashboard Development Services Developers Guide, Volume VI: Architect discusses the integrated development environment for Interactive Reporting Studio, that can be used to edit and debug JavaScript.

Where to Find Documentation


All Interactive Reporting documentation is accessible from the following locations:

The HTML Information Map is available from the Interactive Reporting Help menu for all operating systems; for products installed on Microsoft Windows systems, it is also available from the Start menu. Online help is available from within Interactive Reporting After you log on to the product, you can access online help by clicking the Help button or selecting Help from the menu bar. The Hyperion Download Center can be accessed from the Hyperion Solutions Web site.

To access documentation from the Hyperion Download Center:


1 Go to the Hyperion Solutions Web site and navigate to Services > WorldWide Support > Download Center.
Note: Your Login ID for the Hyperion Download Center is your e-mail address. The Login ID and Password required for the Hyperion Download Center are different from the Login ID and Password required for Hyperion Support Online through Hyperion.com. If you are not sure whether you have a Hyperion Download Center account, follow the on-screen instructions.

2 In the Login ID and Password text boxes, enter your e-mail address and password. 3 In the Language list box, select the appropriate language and click Login. 4 If you are a member on multiple Hyperion Solutions Download Center accounts, select the account that you
want to use for the current session.

5 To access documentation online, from the Product List, select the appropriate product and follow the
on-screen instructions.

Help Menu Commands


Table i describes the commands that are available from the Help menu in Interactive Reporting.

Help Menu Commands

xi

Table i

Help Menu Commands Description Launches a help topic specific to the window or Web page. Launches the Interactive Reporting help. Launches the Interactive Reporting Information Map, which provides the following assistance:

Command Help on This Topic Contents Information Map

Online help in PDF and HTML format Links to related resources to assist you in using Interactive Reporting

Technical Support Hyperion Developers Network

Launches the Hyperion Technical Support site, where you submit defects and contact Technical Support. Launches the Hyperion Developer Network site, where you access information about known defects and best practices. This site also provides tools and information to assist you in getting starting using Hyperion products:

Sample models A resource library containing FAQs, tips, and technical white papers Demos and Webcasts demonstrating how Hyperion products are used

Hyperion.com

Launches Hyperions corporate Web site, where you access a variety of information about Hyperion:

Office locations The Hyperion Business Intelligence and Business Performance Management product suite Consulting and partner programs Customer and education services and technical support

About Interactive Reporting

Launches the About Interactive Reporting dialog box, which contains copyright and release information, along with version details.

Conventions
The following table shows the conventions that are used in this document:
Table ii

Conventions Used in This Document Meaning Arrows indicate the beginning of procedures consisting of sequential steps or one-step procedures. In examples, brackets indicate that the enclosed elements are optional. Bold in procedural steps highlights user interface elements on which the user must perform actions. Capital letters denote commands and various IDs. (Example: CLEARBLOCK command)

Item

Brackets [] Bold CAPITAL LETTERS

xii

Preface

Table ii

Conventions Used in This Document (Continued) Meaning Keystroke combinations shown with the plus sign (+) indicate that you should press the first key and hold it while you press the next key. Do not type the plus sign. For consecutive keystroke combinations, a comma indicates that you press the combinations consecutively. Courier font indicates that the example text is code or syntax. Courier italic text indicates a variable field in command syntax. Substitute a value in place of the variable shown in Courier italics. When you see the environment variable ARBORPATH in italics, substitute the value of ARBORPATH from your site. Italic n stands for a variable number; italic x can stand for a variable number or a letter. These variables are sometimes found in formulas. Ellipsis points indicate that text has been omitted from an example. This document provides examples and procedures using a right-handed mouse. If you use a left-handed mouse, adjust the procedures accordingly. Options in menus are shown in the following format. Substitute the appropriate option names in the placeholders, as indicated. Menu name > Menu command > Extended menu command For example: 1. Select File > Desktop > Accounts.

Item Ctrl+0

Ctrl+Q, Shift+Q

Example text Courier italics

ARBORPATH

n, x Ellipses (...) Mouse orientation Menu options

Additional Support
In addition to providing documentation and online help, Hyperion offers the following product information and support. For details on education, consulting, or support options, click the Services link at the Hyperion Solutions Web site.

Education Services
Hyperion offers instructor-led training, custom training, and e-Learning covering all Hyperion applications and technologies. Training is geared to administrators, end users, and information systems professionals.

Consulting Services
Experienced Hyperion consultants and partners implement software solutions tailored to clients particular reporting, analysis, modeling, and planning requirements. Hyperion also offers specialized consulting packages, technical assessments, and integration solutions.

Additional Support

xiii

Technical Support
Hyperion provides enhanced telephone and electronic-based support to clients to resolve product issues quickly and accurately. This support is available for all Hyperion products at no additional cost to clients with current maintenance agreements.

Documentation Feedback
Hyperion strives to provide complete and accurate documentation. Your opinion on the documentation is of value, so please send your comments by going to
http://www.hyperion.com/services/support_programs/doc_survey/index.cfm.

xiv

Preface

Part

Overview

Overview

15

16

Overview

Chapter

Dashboards

1
A Dashboard is a customizable document front-end that makes it easy for developers to build and deploy analytic applications and for end users to access information. This chapter provides an overview of the Dashboard section and explains how to create and work with Dashboard sections, and how to use Dashboard objects and properties.

In This Chapter

Dashboard Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Working with the Dashboard Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Working with Dashboard Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 External Content in Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Embedded Pivot Section Interactivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Setting Dashboard Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Using Design Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Dashboard Menu Command Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Dashboards

17

Dashboard Section
The Dashboard section provides a streamlined, push-button approach to querying a database. Through the Dashboard section, application designers can quickly combine report sections and enhanced Dashboard controls to build and deploy analytic applications that deliver prepackaged business content, including:

Simple forms to collect multiple input parameters for a report Executive dashboard applications, complete with visual drill-down from high-level metrics to underlying data content Browser-style navigation pages to assist users in maneuvering around and between documents

Interactive Reporting Studio and Interactive Reporting Web Client enable developers to customize the Dashboard section to create an interface that focuses on precisely those views of the data that are relevant to the end user. When an end users opens a Interactive Reporting document, the customized Dashboard section is displayed as the document front-end. The user can navigate the Dashboard section with a click of a button, enter parameters, and run reports without any in-depth knowledge of the data structure or the Interactive Reporting Studio and Interactive Reporting Web Client applications. Each button click, item selection, or navigation sequence invokes a script which the Interactive Reporting Studio and Interactive Reporting Web Client applications process in the background. You customize an Dashboard section by dragging objects from the Catalog pane to the Content pane, and then attaching scripts to them that are executed in response to an event or action.

Working with the Dashboard Section


Like other report sections, the Dashboard section is a section you add to a Interactive Reporting document. The Dashboard section always is displayed at the top of the Section pane.

Inserting a Dashboard Section


When you add a new Dashboard section, it is listed after any existing Dashboard sections.

To insert a new Dashboard section, select Insert > New Dashboard.

18

Dashboards

Renaming an Dashboard Section


The first Dashboard section inserted in a document is given the default section name of Dashboard. Subsequent Dashboard sections are numbered sequentially, for example, Dashboard2, Dashboard3, Dashboard4, and so on.

To rename an Dashboard section:


1 In the Section pane, select the Dashboard section that you want to rename. 2 Select Edit > Rename Section.
The Section Label dialog box is displayed.

3 Enter a new name in the Label field and click OK.

Deleting an Dashboard Section


To delete an Dashboard Section:
1 In the Section pane, select the Dashboard section that you want to delete. 2 Select Edit > Delete Section.
The Delete Section dialog box is displayed.

3 Click Delete.

Switching Between Design and Run Modes


The Dashboard section has two modes:

Design mode Used when designing the Dashboard section. In Design mode, the objects available to include in the Dashboard section are displayed in the Catalog pane. Run mode Used when deploying the Dashboard section to end users. This is the default mode for all Dashboard sections. The Catalog pane is empty in Run mode.

All Dashboard sections are always in the same mode. Interactive Reporting documents open by default with Dashboard sections in Run mode. Changing one Dashboard section to Design mode changes all Dashboard sections to Design mode.

To toggle between Design mode and Run mode, select Dashboard > Design Mode.

Working with Dashboard Objects


There are a variety of embeddable objects to help you construct a custom Dashboard section, including:

Sections Results, Chart, Pivot, Table, and OLAP sections from the active document. When you embed a section, it is automatically resized to fit. Data in embedded sections are automatically updated to reflect any changes made in the original section.
Working with Dashboard Objects

19

Note: In Run mode, active embedded tables and results have the Sort Ascending and Sort Descending options available on the shortcut menu. You can also resize Table and Results columns.

Graphics Lines, rectangles, ovals, and pictures for which you can set colors and border properties. Table 1-1 lists the graphics objects available in the Catalog pane of the Dashboard section. Controls Widgets to include in the application interface for which you can set fonts and default values. Controls provide users a way to interact with the application and can be populated with values at design time or dynamically populated using JavaScript. Table 1-2 lists the Dashboard control objects and their suggested use.
Dashboard Graphic Objects Description Creates a line that you can rotate. Creates a horizontal line. Creates a vertical line. Creates a rectangle. Creates a rectangle with rounded corners. Creates an oval. Creates a text label that you can use as a caption. Enables you to insert bitmaps (.bmp extension).

Table 1

Graphic Object Line Hz Line Vt Line Rectangle Round Rectangle Oval Text Label Picture

Table 2

Dashboard Control Objects Suggested Use To initiate or activate a process. To select one from a group of choices. To toggle an option on/off or true/false. A check box either contains a check mark or is empty. To list multiple values from which users can make one or more selections. To list multiple values from which users can make only one selection. To gather and display user input. To display external content by way of a browser To link to external content by way of a hyperlink

Control Object Command Button Radio Button Check Box List Box Drop Down Text Box Embedded Browser HyperLink

20

Dashboards

Inserting Dashboard Objects


To embed an object in an Dashboard section:
1 Choose Dashboard > Design Mode. 2 In the Catalog pane, expand the folder that contains the object you want to insert. 3 Click the object you want to insert and drag it to the Content pane.
[Ctrl+D]

To insert control and graphic objects:


1 Select Dashboard > Design Mode 2 Go to the Dashboard Menu. 3 Select Dashboard > Insert Graphic > Option or Insert Control > Option.
Select a graphic or control object from the menu.
[Ctrl+D]

4 Click the Contents pane to insert the control or graphic.

Deleting Dashboard Objects


To delete embedded sections, controls, and graphics:
1 Select Dashboard > Design Mode. 2 In the Content pane, select the object you want to delete.
To select multiple objects, press and hold [Ctrl] while selecting objects. Notice the selection handles that display.
[Ctrl+D]

3 Select Dashboard > Remove Selected Items.

[Ctrl+D]

External Content in Dashboards


External web based content can be brought into your dashboard in combination with your analytical reports sections to deliver a powerful tool for your enterprise report. You can embed a stock ticker, calendar, document objects (Interactive Reporting documents, Interactive Reporting Jobs, Hyperion System 9 BI+ Production Reporting Jobs (SQR jobs), Hyperion System 9 BI+ Web Analysis (Analyzer) or Hyperion System 9 BI+ Financial Reporting (Hyperion Reports) or launch the content of a URL based hyperlink in a separate window. Ttwo controls are available for working with external content, including:

Embedded Browser control This control is an instance of a web browser window, positioned at an arbitrary location and size on the page. It is similar to an embedded section object, except that the content is anything that can be referenced externally by a URL (and rendered in a web browser window), rather than a section. There are no recognizable events in the embedded browser and you can not create scripts on this object. Hyperlink control - A URL based hyperlink control. The content may be displayed in a popup window or the current window.
External Content in Dashboards

21

Embedded Browser Control


An embedded browser control renders and executes in all Interactive Reporting environments (Interactive Reporting Studio Designer, Explorer, the Interactive Reporting Web Client, and the Hyperion System 9 BI+ Workspace). Like the other Dashboard controls, the Embedded Browser control shares the same standard attributes and behaviors as an existing Dashboard control as demonstrated below:

an Embedded Browser control is added to the Dashboard section (in Dashboard design mode) by dragging an instance of the control from Catalog pane, sizing it, and setting properties. an Embedded Browser control uses the same common properties: Name, Visible, Locked, Tab order, Accessibility, cut/copy/paste, auto alignment and sizing.

An Embedded Browser control has additional properties that are similar to embedded sections, including:

Show Scrollbars Reference to the content For the embedded section, the reference is the name of a Chart, Pivot, or Table that is contained in the Interactive Reporting document. For the Embedded Browser control, the reference is an URL. If the content is some generic URL from the web (such as a stock ticker), the designer can reference it by simply entering the URL directly. If the content is a document in the repository, then the designer can optionally select the document and desired parameters by way of easy to use GUI controls (which create the appropriate Smartcut URL under-the-covers).

Note: Interactive Reporting document Report sections displayed in embedded browser objects of another Interactive Reporting document cannot be printed.

To create a new instance of an Embedded Browser control:


1 Select Insert > New Dashboard to add a new Dashboard section to the document.
Inserting a new Dashboard section changes the document to Design mode. The Content pane is blank and the Catalog pane is displayed the sections, graphics, and control objects available for embedding in a Dashboard section.

2 Expand the Controls folder in the Catalog pane. 3 Drag the Embedded Browser control from the Catalog pane to the Content pane. 4 Double-click the control object to display the Objects dialog box. 5 Type a new entry in the Name field.
Enter a name that identifies the unique name of the embedded browser object. The default for the name is EmbeddedBrowser followed by a unique number identifying the Embedded Browser object.

6 Type a new entry in the Title field.


The Title field is only used when the Dashboard section is printed.

22

Dashboards

7 Select the Visible check box to display the Embedded Browser control when the Dashboard section is executed.
If the check box is not selected, the Embedded Browser control is hidden. The default value is checked.

8 Select the Locked check box to prevent the Embedded Browser control from being moved or deleted in the
Dashboard Design mode. The default value is unchecked.

9 Select a scrolling option from the Show Scrollbar drop down to indicate when scroll bars get displayed on the
Embedded Content control.

Available scroll bar options are:


Always Never Automatic

Automatic is the default scroll bar option.

10 To explicitly define the URL of the content to be displayed in the Embedded Browser, type the URL address in
the URL field.

When the embedded browser is rendered, the URL is used as is (the server information is not prepended in any circumstance). You can reference Hyperion System 9 BI + Repository content by entering an explicit URL. In this case the URL is treated like any other external reference (there is no special authentication support). It is important to plan how well the content of the URL is displayed in the Embedded Browser. It is possible that an action from within the embedded content could result in the entire browser being replaced rather than just the contents of the Embedded Browser control.

11 To select a repository document (and associated properties) or object to be displayed in the Embedded
Browser control or HyperLink object, select the Repository check box and specify the following:

Document Use the document text box to manually enter the path and name of the desired Repository document. Browse Click the Browse button to interactively browse the Hyperion System 9 BI + Repository for the desired document by way of the Browse dialog box. To manually enter the path and name of the desired Repository document, use the Document text box. Options Launches the Document Options dialog box so that you can select display properties for a selected Hyperion System 9 BI + Workspace document. For more information, see Document Options.

12 Click OK.

Referencing a Name with a Single-byte Character


If you are using the Embedded Browser control of the Dashboard section to embed content from the repository, and it references a name (for example, file name, directory, section, parameter) that contains a single-byte character with a value greater than 127 (for example, accent characters), and the SmartCut encoding for URLs is set to default, then the characters display as scrambled and the embedded content may not display properly.

External Content in Dashboards

23

To change the encoding property for SmartCuts:


1 Log in to Workspace with a user ID that has an Administrator role. 2 Select Administration on the Module menu. 3 Click the System tab and navigate to SmartCut. 4 Change the Encoding for URLs property to UTF8.

Browsing the Repository


With the proper authentication, you can select a desired document to embed from the Hyperion System 9 BI + Repository dialog box. Authentication is provided through an Authentication Service, which checks a users credentials at login time, and enables a user to connect. In addition, it determines the users group membership, which along with the users roles, affects what content and other system objects (resources) the user can view and modify. If a user is already authenticated to a Global Service Manager (GSM), then no additional dialog box are displayed, and the Foundation Browse dialog box is displayed automatically. Authentication is assumed for Interactive Reporting Web Client and Workspace documents since they receive a URL stamp when created, which provides the necessary access to a GSM If a Designer/Explorer user has not been authenticated, then the user is prompted to enter a valid server address on the Connect to Server dialog box (Tools/Connect to Foundation). When the user selects Connect (and the connection succeeds), the server address is persisted in the Windows registry. This server address can be used as the default server address if no valid address can be gleaned from the session or the Interactive Reporting document. Once a valid server address is determined, the Interactive Reporting Studio (Designer/Explorer) application contacts the data access servlet and the user is presented with an authentication dialog box. Once the user's credentials are validated, the user is authenticated and the Hyperion System 9 BI + Repository dialog box is displayed.

To login into the Hyperion System 9 BI +Repository:


1 Select the Repository checkbox on the Objects dialog box. 2 Click the Browse button.
The Connect to Server dialog box is displayed.

3 Enter a valid server address on the Connect to Server dialog box and click Connect.
The Hyperion System 9 BI + Login dialog box is displayed.

4 Type your user id and password and click Login.


Once the user has been successfully authenticated, the Browse Listing is displayed.

5 Navigate to the folder which contains the repository object that you want to embed. 6 Double-click the object to select it.
Make sure that the full path name and object name display to the right of the Selection field.

7 Click Apply.
The document name is displayed in the Document text entry field of the Object dialog box.
24
Dashboards

Document Options
Use the Document Options dialog box to select display properties for a selected document to be viewed in the Workspace. The parameters you enter here prepare a Smartcut (a URL reference to a Hyperion System 9 BI + Repository object, for example Interactive Reporting document or job). There are six document types available for display in the Workspace:

Interactive Reporting document Interactive Reporting job Production Reporting SPF file Web Analysis document Financial Reporting report Other

Note: If a Hyperlink control display type is New Window or Current Window, then the Document Options dialog box looks and behaves as described in the Embedded Browser control section.

If the Interactive Reporting Studio or Interactive Reporting Web Client can determine the document type prior to displaying this dialog box, then this field presets to the appropriate document type, and no other document type choices are available. Otherwise, the default is Other, and you can switch to one of the other five options. Depending on the document, specific options are available as shown below:
Table 3

Interactive Reporting document Document Type Display Options Description Select Interactive Reporting document for Interactive Reporting Studio and Interactive Reporting Web Client Interactive Reporting document documents. Specify which Interactive Reporting document section should be displayed. This option is only available for Interactive Reporting document documents. If the Designer/Explorer and the web client application is able to determine the list of (Workspace enabled) sections prior to displaying the options dialog box, then the list is displayed in a drop-down list. The default section name should match the Interactive Reporting documents default (i.e. whatever section is displayed if the user opened the Interactive Reporting document by way of the Workspace icon in the browse application).Interactive Reporting document If the section list can not be determined, then a blank text entry field is displayed. In this case, you can enter the name of the desired section manually. If the field is left blank, then the default section is displayed when the Browse Window control is executed.

Option Document Type Section

External Content in Dashboards

25

Table 3

Interactive Reporting document Document Type Display Options (Continued) Specify which Workspace toolbar is displayed. Valid choices are:

ToolbarS

Standard- The Standard toolbar contains all of the icons for commonly used operation, such as the Open and Save commands. The presence of each toolbar item depends on the active section, Paging The Paging toolbar consists of the section paging controls (First Page, Previous Page, Next Page, Last) and the current page indicator text (Page X of Y). None

Smartcut Parameters

Specify any key value pairs for the document. This set of controls enables a you to add additional parameters to the URL. To add a URL parameter, enter the parameter into the edit control, and click Add. When the URL is formed this parameter is tacked onto the end of the URL as is (except that special character substitution is done). It is recommended that you understand the proper URL syntax for these parameters. To remove a parameter from the list the user may select the target parameter(s), click Remove.

Table 4

Interactive Reporting document Job Document Type Display Options Description Select Interactive Reporting document Job for an Interactive Reporting Studio and Interactive Reporting Web Client Interactive Reporting document Job. Specify which Interactive Reporting document section should be displayed. This option is only available for Interactive Reporting document documents. If the Designer/Explorer or the web client application is able to determine the list of (Workspace enabled) sections prior to displaying the options dialog box, then the list is displayed in a drop-down list box. The default section name matches the Interactive Reporting documents default (that is, whatever section is displayed if the user opened the Interactive Reporting document by way of the Workspace icon in the browse application). If the section list can not be determined, then a blank text entry field is displayed. The user can enter the name of the desired section manually. If the field is left blank, then the default section is displayed when the Browse Window control is executed.

Option Document Type Section

Toolbar

Specify which Workspace toolbar is displayed. Valid choices are:

Standard- The Standard toolbar contains all of the icons for commonly used operation, such as the Open and Save commands. The presence of each toolbar item depends on the active section, Paging The Paging toolbar consists of the section paging controls (First Page, Previous Page, Next Page, Last) and the current page indicator text (Page X of Y). None

Run Job Smartcut Parameters

Specify if the job should be executed. This option is only available when the Document Type field is a Interactive Reporting document Job or SQR Job. The default value is unchecked. To add a URL parameter, enter the parameter into the edit control, and click Add. When the URL is formed this parameter is tacked onto the end of the URL as is (except that special character substitution is done). It is recommended that you understand the proper URL syntax for these parameters. To remove a parameter from the list the user may select the target parameter(s), click Remove.

26

Dashboards

Table 5

Production Reporting (SQR Job) Document Type Display Options Description Select SQR Job for a Production ReportiJob. Specify if the job should be executed. This option is only available when the Document Type field is Interactive Reporting document Job or SQR Job. The default value is unchecked. Specify any key value pairs for the document. This set of controls enables a user to add additional parameters to the URL. To add a URL parameter, enter the parameter into the edit control, and click Add. When the URL is formed this parameter is tacked onto the end of the URL as is (except that special character substitution is done). It is recommended that you understand the proper URL syntax for these parameters. To remove a parameter from the list the user may select the target parameter(s), click Remove.

Option Document Type Run Job Smartcut Parameters

Table 6

Other Display Options Description Select Other as a document type to add additional parameters to the URL. Add any additional parameters in this field. For example, you could add SQR Job parameters, or Interactive Reporting document limits. To add a URL parameter, enter the parameter into the edit control, and click Add. When the URL is formed this parameter is tacked onto the end of the URL as is (except that special character substitution is done). It is recommended that you understand the proper URL syntax for these parameters. To remove a parameter from the list the user may select the target parameter(s), click Remove.

Option Document Type Other Parameters

Table 7

Web Analysis (Hyperion Analyzer) Document Type Display Options Description Select Analyzer for a Web Analysis. document Interactive Reporting- only Web Analysis templates are installed by the Analyzer installer for Web Analysis documents embedded in Dashboards.

Option Document Type

Toolbar

Specify which Web Analysis toolbar to display with the document. Valid option are Standard or None. The second and third Analyzer toolbars are made an option for display within the Interactive Reporting Dashboard section; however, both toolbars are treated as a single unit. Either both are shown, or both are hidden. The default setting is Standard. Add any additional parameters in this field that apply to the Web Analysis document. These parameters are not processed. To add a URL parameter, enter the parameter into the edit control, and click Add. When the URL is formed this parameter is tacked onto the end of the URL as is (except that special character substitution is done). It is recommended that you understand the proper URL syntax for these parameters. To remove a parameter from the list, select the target parameter(s), click Remove.

Smartcut Parameters

External Content in Dashboards

27

Table 8

Financial Reporting (Hyperion Reports) Document Type Display Options Description Select Reports for a Financial Reporting (Hyperion Reports) document. Specify the type of format in which to display the report. Valid options are HTML or PDF. The default value for this option is HTML. Specify which Financial Reporting (Hyperion Reports) toolbar to display with the document. The first and second Financial Reporing toolbars (Help/Preferences/LogOff/Help and Repository->MyReport) do not display for Financial Reporting populating a Interactive Reporting document external content control. The third Financial Reporting toolbar, Point of View (POV), is made an option for display within the Interactive Reporting Dashboard. The default setting is the third POV toolbar not to be shown. The HTML/PDF radio buttons displayed in Financial Reporting behave in accordance to the third POV toolbar setting; if the POV toolbar is shown, the HTML/PDF radio buttons are shown, and if POV toolbar is hidden, the HTML/PDF radio buttons are hidden. Add any additional parameters in this field that apply to the Financial Reporting document. These parameters are not processed. To add a URL parameter, enter the parameter into the edit control, and click Add. When the URL is formed this parameter is tacked onto the end of the URL as is (except that special character substitution is done). It is recommended that you understand the proper URL syntax for these parameters. To remove a parameter from the list the user may select the target parameter(s), click Remove.

Option Document Type Display Format Toolbar

Smartcut Parameters

HyperLink Control
A hyperlink control behaves in much the same manner as a Embedded Browser control except that its URL based content is displayed in the:

current window top window new window named window no window

Depending on your display window selection and the type of application, the following behavior occurs:
Target New Window Current Window Designer Launches new window Launches new window Web Client Launches new window Replaces current window Workspace Launches new window. Replaces content of the Workspace tab if the content is derived from the Hyperion System 9 BI + Repository. Otherwise, the hyperlink object is opened in a new window.

28

Dashboards

Target Top Window

Designer Launches new window

Web Client Replaces current window

Workspace Opens in a new Workspace tab if the content is derived from the repository. Otherwise, the hyperlink object is opened in the top window. Launches new named window

Named Window

Launches new named window

Launches new named window

The HyperLink control has additional properties that are similar to a Text label graphic, and the OpenURL method. A hyperlink control is added in much the same manner as a Embedded Browser control, except that the control in the Catalog pane is named Hyperlink.

To create a new instance of an hyperlink control:


1 Choose Insert > New Dashboard to add a new Dashboard section to the document.
Inserting a new Dashboard section changes the document to Design mode. The Content is blank and the Catalog pane is displayed the sections, graphics, and control objects available for embedding in an Dashboard.

2 Expand the Controls folder in the Catalog pane. 3 Drag the Hyperlink control from the Catalog pane to the Content pane. 4 Double-click the control object to display the Objects dialog box. 5 Type a new entry in the Name field.
Enter a name that identifies the unique name of the embedded browser object. The default for the name is Hyperlink.

6 Type a new entry in the Title field.


The title field is only used when the dashboard section in printed.

7 Select the Visible check box to display the hyperlink control when the Dashboard section is executed.
If the check box is not selected, the hyperlink control is hidden. The default value is checked.

8 Select the Locked check box to prevent the hyperlink control from being moved or deleted in the
Dashboard Design model. The default value is unchecked.

9 Select where to display the contents of the hyperlink control from the Display drop-down list.
Valid Display I options are:

New Window A new pop-up window is created every time the hyperlink is pressed. This is the default setting. All browser menus and toolbars are hidden. This maps to the OpenURL OM method "_blank" target.

External Content in Dashboards

29

Current Window If the execution application is the web client, or the Workspace, then the content replaces the entire Workspace content area (i.e. excluding surrounding browse application panes). In Designer a pop-up window is displayed. Top Window If the execution application is the web client, or Workspace, then the content replaces the top-most HTML window. This maps to the OpenURL OM methods "_top" target. Named Window A Named pop-up window is created. If the named window is already present, then the URL replaces the existing content of the named window. When this option is selected, a Target window edit control is displayed below the drop-down in which the user can enter the desired window name. This maps to the OpenURL method user specified target name option.

10 To explicitly define the URL of the content to be displayed in the Hyperlink control, type the URL address in
the URL field.

When the Hyperlink control is rendered, the URL is used as is (the server information is not prepended in any circumstance). You can reference Repository content by entering an explicit URL. In this case the URL is treated like any other external reference (there is no special authentication support). It is important to plan how well the content of the URL is displayed in the Hyperlink control. An action from within the hyperlink content can result in the entire browser being replaced rather than just the contents of the Hyperlink control.

11 To select a repository document (and associated properties) to be displayed in the Hyperlink, select the
Repository checkbox and specify the following:

Document Use the document textbooks to manually enter the path and name of the desired Repository document. Browse Click the Browse button to interactively browse the repository for the desired document by way of the Foundation Browse dialog box. To manually enter the path and name of the desired Repository document, see the Document text box. Options Launches the Document Option from which a user can select display properties for a selected Workspace document. If the display type is New Window or Current Window, then this dialog box looks and behaves as described in the Embedded Browser control section. For more information, see Document Options.

12 Click OK.

Embedded Pivot Section Interactivity


Pivot tables embedded as active sections in a Dashboard can be scripted to enable users to double pick on a cell and build interactivity around that cell. This feature is available on any individual fact cell in the Pivot. When the fact cell is double-clicked, the OnCellDoubleClick event is fired and any JavaScript associated with the event can be executed. The event is associated with the object in the Dashboard, not with the Pivot section itself. Embedded Pivot Section Interactivity is available for Interactive Reporting Studio and the Interactive Reporting Web Client. It is not available for documents to be deployed in the Workspace.
30
Dashboards

Prior to executing the script associated with the OnCellDoubleClick event, certain properties of the object tree set. Once set, these properties are valid from anywhere within the object model that the object is accessible, such as document startup and shutdown scripts. If the Pivot is recalculated, these properties are reset to their initial, default state; as if no double click action had previously occurred. This properties include:

OnCellDoubleClick (Method) on page 89, FactName (Property) on page 106, CellValue (Property) on page 50, TopLabelValues (Array) on page 225, SideLabelValues (Array) on page 208

For information on the OnCellDoubleClick event, see Object Level Events on page 41.

Setting Dashboard Properties


Use the Properties box to set properties for an entire Dashboard section or for specific objects within an Dashboard section. Many Dashboard objects have unique properties. For instance, a radio button has a Radio Group property and a list box has a Multiple Selection property. Taborder properties are section-wide, but are accessible in the Properties dialog boxes for both the overall Dashboard section as well as for the individual objects.

To set properties in an Dashboard section:


1 Verify that no objects are selected in the Dashboard Content pane. 2 For specific object properties, select the object in the Dashboard Content pane. 3 Select Dashboard > Properties
The Properties dialog box is displayed. The active tab depends on the selection made prior to invoking the dialog box.

4 Click through the tabs to set properties for the selected object. 5 Click OK to apply the selected settings and close the Properties dialog box.
Available properties include:

Alignment Horizontal and vertical alignment, and text wrapping and rotation Border and Background Border color, width, style, and shadow, and background color and pattern Font family, style, size, effects (underline, overline, double overline), and color Object name, title, visible, enable (control objects only), locked, scroll bars always shown, and auto-size. For embedded sections, view-only, active, or hyperlink Picture file name, size, and effects for Dashboard background and graphic object pictures Tab Order object path that end users follow when they press the [Tab] in Run mode

Setting Dashboard Properties

31

Accessibility user defined and auto generated descriptive 508 text for each embedded section or graphic Values user-defined values that populate list box, drop down, or text box controls

Detailed information on each of these properties is presented in the online help.

Using Design Tools


Interactive Reporting Studio gives you complete control of your Dashboard section setup and provides a number of layout and navigation tools that assist you in designing effective, highquality custom applications. These tools include:

Design Guides Grids Rulers

Layout Tools
A rich set of layout aids is available to help you easily create professional looking Dashboard sections. All the layout tools are available from the Dashboard Menu or the Dashboard Section Toolbar.

Design Guides
Design guides are horizontal and vertical lines that you place in your report to help you line up objects. Design guides are similar to grids in that objects automatically snap to align to the design guides. If rulers are visible, click the ruler and drag one or more design guides from both the horizontal and vertical rulers.

To toggle the display of design guides, select Dashboard > Design Guides.
A check mark is displayed next to Design Guides to indicate they are visible. Choose the option again to clear the check mark and remove the design guides.

Grids
Interactive Reporting Studio and the web client provide a layout grid that automatically snaps all objects to the closest grid spot.

To toggle the display of the grid, select Dashboard > Grid.


A check mark is displayed next to Grid to indicate the grid is visible. Select this option again to clear the check mark and remove the grid from view.

32

Dashboards

Rulers
Horizontal and vertical rulers help you line up items based on precise units of measure. Available units of measurement include inches, centimeters, and pixels. You select a unit by clicking the measure indicator at the intersection of the top and left rulers.

To toggle the display of the ruler, select Dashboard > Ruler.


A check mark is displayed next to Ruler to indicate the ruler is visible. Select this option again to clear the check mark and remove the ruler from view.

Dashboard Section Toolbar


The Dashboard Section toolbar provides icons that enable you to quickly maneuver multiple Dashboard objects.

Design/Run Mode Align Make Same Size Layer

Design/Run Mode Toggles between Design and Run modes. Align Aligns several objects at the same time. Objects are aligned to the first object you select. Select the first object, then hold down [Ctrl] and select the remaining objects. Click the arrow on the Align icon and choose an alignment option: left, center, right, top, middle, or bottom. Make Same Size Resizes the selected objects to the same size. Objects are resized to match the first object you select. Select the first object, then hold down [Ctrl] and select the remaining objects. Click the arrow on the Make Same Size icon and choose a resizing option: width, height, or both. Layer Stacks a single object in relative position to other objects. Layer include four rearrangement options: Bring To Front, Send To Back, Bring Forward, and Send Backward. Use this feature to layer multiple objects so that only the sections of the objects you want visible are shown.

Using Design Tools

33

Navigation Toolbar
Use the Navigation toolbar to return to an Dashboard section from another section when the Section catalog, Section title bar, toolbars, and menus have been turned off. The Navigation toolbar is hidden by default, but you can use scripts to enable it. When activated, it is available in all sections and includes the Back, Forward, and Dashboard Home buttons. Use the following scripts to work with the Navigation toolbar. The first script turns on the Navigation toolbar. The second script turns on all toolbars with the exception of the Navigation toolbar. The third script turns off all toolbars.
//Syntax for turning on Navigation toolbar Toolbars["Navigation"].Visible=true; //Syntax for turning on all toolbars except the Navigation toolbar j=Toolbars.Count for (i=1; i<=j; i++) { if (Toolbars[i].Name != "Navigation") {Toolbars[i].Visible=true} } //Syntax for turning off all toolbars j=Toolbars.Count for (i=1; i<=j; i++) { Toolbars[i].Visible=false }

34

Dashboards

Dashboard Menu Command Reference


Table 9 provides a quick reference to the commands available on the Dashboard menu and lists any related shortcuts.
Table 9

Dashboard Menu Commands Keyboard Shortcut Shortcut Menu

Command Design Guides Grid Rulers Insert Graphic Insert Control Remove Selected Items Scripts Properties Home Dialog box

Description Toggles the design guides on and off. Toggles the grid on and off. Toggles the rulers on and off. Enables you to insert a graphic element. Enables you to insert a control button or box. Deletes the selected item. Displays the Script Editor. Displays the property menu for the selected item. Enables you to designate a particular Dashboard section as the home Dashboard section. The default is the Dashboard section first created. Toggles between the design and run mode.

[F8]

Design Mode

[Ctrl+D]

Dashboard Menu Command Reference

35

36

Dashboards

Chapter

Interactive Reporting Object Model

The object model is the cornerstone for scripting a customized interface, or Dashboard, to enterprise data with JavaScript. The object model and the built-in Script Editor provide quick and easy access to all levels of the Interactive Reporting interface. This section describes the object model and the scripting tools available to the application designer, and explains how to automate Dashboard sections using Interactive Reporting events.

In This Chapter

Understanding the Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Understanding Interactive Reporting Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Using the Script Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Sample JavaScript Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Testing Scripts Using the Execution Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Checking Errors Using the Console Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Finding/Replacing Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Interactive Reporting Object Model

37

Understanding the Object Model


The object model is a hierarchical representation of Interactive Reporting and the web client objects and the actions and attributes used to manipulate those objects. It consists of a collection of objects, each of which has its associated methods (actions) and properties (attributes). Objects can include the application, documents, sections, limits, connections, graphics, controls, catalog items, topics, request lines, results columns, chart labels, pivot side labels, facts, menu bars, status bars, toolbars, and so on. Methods include create, activate, open, close, save, add, copy, remove, process, export, recalculate, and so on. For example, a data results object (the results of a query to a database or a table containing results data) has a recalculate method. This method (or action) refreshes (or recalculates) data based on updated parameters in the document. Properties are the attributes of an object. A property can include an object name, value, alignment, color, and so on. You can view properties or set (modify) the value of a property. For example, all graphics objects have a visible property. You can check to see if the property is set to true, suggesting that the object is visible. Or, you can set the property to false, making the object invisible. Table 10defines basic terminology for the object model.
Table 10

Object Model Terminology Interactive Reporting Example Application, section, document Activate, Copy, Add Active, Visible, Type Documents Constants

Term Object Method Property Collection Constant

Definition Something that is perceived as an entity and referred to by a name. What it can do; action that is executed when an object receives a message. Characteristic quality or distinctive feature; attribute. Group of objects. A value that does not change or vary.

Example Tree, leaf, fruit Grow, bear fruit, drop leaves Name, color, growing pattern Grove Number

Typically, the object model is manipulated by the JavaScript language from inside an Dashboard section to build self-contained analytic applications. On Windows systems, the object model is also accessible by way of the Automation Interfaces (OLE Automation) that enable the Interactive Reporting application to be controlled by external applications such as Excel, VB, C++, Delphi, or any application capable of making OLE Automation calls.

38

Interactive Reporting Object Model

Understanding Interactive Reporting Events


Custom applications (that is, Dashboard sections) developed using Interactive Reporting and the web client are event driven. An event is an action recognized by a Interactive Reporting document, section, or Dashboard object. Interactive Reporting and the web client event-driven applications execute scripts in response to an event, such as clicking a button or opening a document. When an event occurs, Interactive Reporting and the web client invoke the script attached to the event. The order in which your application executes events depends on what the user does; there is no set sequence of actions.
Note: Interactive Reporting and the web client use JavaScript as its scripting language since the release of Interactive Reporting version 6.0. Documents scripts created using the older Brio scripting language are automatically converted to JavaScript when the document is first opened.

Interactive Reporting and the web client have a set of predefined events. You determine how these events respond by attaching a script to the event. For example, if you want a button to perform an action when clicked, you attach a script that defines your action to the OnClick event associated with the button. Interactive Reporting predefines events as follows:

Object Level Events Events associated with Dashboard objects. Section Level Events Events associated with Dashboard sections. Document Level Events Events associated with Interactive Reporting and the web client documents.

Object Level Events


Table 11 describes the predefined events associated with Dashboard objects (embedded sections, graphics, and controls).
Note: All events starting with OnClient are executed in the client browser, and not on the server. For more information, see Client-Side JavaScript on page 117.

Understanding Interactive Reporting Events

39

Table 11

Object Level Events Objects Supporting Event Section: Dashboard section containing a Pivot Embedded Section Object (ESO) in Active mode.
Note: Executing the OnCellDoubleClick Event itself does not dirty the document. Actions invoked by the OnCellDoubleClick Event may dirty the document. Which action is invoked determines whether the new state persists or not with either the document or the application.

Event
OnCellDoubleClick

Action That Invokes Event Double clicking a fact cell in a Pivot Embedded Section Object (ESO) in Active mode. The ESO must be in the Designer or Web client. It can also be invoked through the OnCellDoubleClick () method.
Note: Double-clicking on a label value does not fire the OnCellDoubleClick event.

OnClick

Sections: Hyperlinked embedded section (not applicable for view-only or active embedded sections) Graphics: Line, horizontal line, vertical line, rectangle, round rectangle, oval, text label, picture Controls: Command button, radio button, check box, list box, drop-down list, text box

Clicking on a section, graphic, or control.

OnDoubleClick

Controls: List box Controls: List box, Drop-down list Controls: Text box (not available for the Hyperion System 9 BI + Workspace) Controls: Text box Controls: Text box Sections: Active embedded Results or Table sections (not for view-only or hyperlinked sections) Controls:command button, radio button, check box, list box, text box, drop-down list Controls: list box Control: Text Box Control: Text Box

Double-clicking on a value in the list box. Selecting a value in a list box or dropdown list. Changing data in a text box. Entering a text box. Leaving a text box. Double-clicking on a row from an active embedded Results/Table section. Clicking on a section or control. Double-clicking on a value in the list box. Entering a text box. Leaving a text box.

OnSelection

OnChange

OnEnter OnExit OnRowDoubleClick

OnClientClick

OnClientDoubleClick

OnClientEnter OnClientExit

In addition to the overall object level events, graphic objects and control objects have specific predefined events with which they are associated, as shown below:

40

Interactive Reporting Object Model

Table 12

Events Associated with Graphic Objects Event


OnClick OnClick OnClick OnClick OnClick OnClick OnClick OnClick

Graphic Object Line Horizontal Line Vertical Line Rectangle Round Rectangle Oval Text Label Picture

Active Section Level Events


Active Section level event are events associated with Dashboard sections. The predefined section level events and the actions that invoke the events are:

OnActivate Entering a Dashboard section. OnDeactivate Exiting a Dashboard section.

Document Level Events


Document level events are events associated with Interactive Reporting and the web client documents. The predefined document level events and the actions that invoke the events are:

OnStartUp Opening an Interactive Reporting document (.bqy) OnShutDown Closing an Interactive Reporting document (.bqy) OnPreProcess Before a query is processed. OnPostProcess After a query is processed.

The execution of document events can be enabled or disabled by using options on the Script Editor programmatically through the Object Model.
Note: The Save and Save As commands in Interactive Reporting Studio, Interactive Reporting Web Client, and Workspace do not execute the document shutdown scripts when saving the document. These scripts only execute when a document is closed.

Caution! OnShutDown events execute before any prompts in the Save dialog box.

Understanding Interactive Reporting Events

41

Associating a Document Level Event


By default the desktop and the web client application invoke the script attached to a document level event when the event is triggered. For example, the OnStartup document event is triggered when an Interactive Reporting document (.bqy) is opened. On the other hand, the Hyperion Scheduler does not invoke the script attached to a document level event until the user sets the document level event for the Interactive Reporting document (.bqy) manually. The option to set the document level event is a user preference and can be set based on how the document is to be deployed (on the desktop, on the Hyperion System 9 BI + Workspace or in the Interactive Reporting Web Client).

To associate a document level event:


1 Choose File > Document Scripts.
The Script Editor is displayed. Document is selected by default in the Object drop-down box and OnStartup is selected by default in the Event drop-down box.

2 In the Event Trigger drop-down box, choose the document level event that you want to associate with the
Interactive Reporting document (.bqy)

OnStartup is selected by default in the Event Trigger drop-down box.

3 In the Enable For drop-down box, check the type of document the event is to be associated with.
Available types of document include: All Clients (Designer/Explorer), Thin Client (Workspace), Plug-in Client (Scheduler), SmartView (Workspace). To remove a document level event association, leave the check box blank next to the selected type of document.

Using the Script Editor


Use the built-in Script Editor to add scripts to events. You can open the Script Editor for a selected object, an active Dashboard section, or a document.

To add a script to a document event, select File > Document Scripts to open the Script Editor
from any section other than the Dashboard section.

To open the Script Editor from within the Dashboard section, in Design mode, select
Dashboard > Scripts.

To open the Script Editor for a selected object:, select Dashboard > Scripts.
The Script Editor contains the Object browser, the Description pane, the Events drop-down menu, and the Scripting pane.

42

Interactive Reporting Object Model

Object Browser
The Script Editor provides an Object browser in the left pane, where it displays the object model, listing all available objects, properties, and methods. At the top of the object model hierarchy is Application, which represents the entire Interactive Reporting application and contains application-wide settings and options, methods, and properties. (For a compete flowchart of the object model, see Chapter 5, Object Model Map.) Clicking any object or collection in the Object browser displays methods and properties, as well as internal objects. Double-clicking a method or property automatically generates scripts in the scripting pane of the Script Editor. The Application object contains a Documents collection as well as an ActiveDocument collection. In the active document Sample1.bqy, methods and properties are available in two places in the object model hierarchy:

Application > Documents > Sample1.bqy Application > ActiveDocument

A script that accesses multiple open documents should use the Documents path to the methods and properties of a specific document. A script that affects only the currently active document can use the ActiveDocument path.

Scripting pane
Use the Scripting pane to enter scripts that are attached to specific object events (such as mouse clicks, button clicks, and so on.). Use JavaScript to control the logic and flow of your application. Use the object model to access objects, properties, and methods. Double-click an item in the Object browser and a reference to the object, property, or method automatically is displayed at the cursor location in the Script Editor. Above the Script Editor area is a drop-down menu that includes all available events associated with the selected document, section, or object. Beside the drop-down menu is the Event Trigger drop-down menu. This menu displays the events for the control object, which is recognized as the action that invokes the script attached to the event. After selecting the appropriate event, you can start typing in JavaScript and referencing the object model. If you need to see or edit the script that extends beyond the boundaries of the Scripting pane, use the horizontal and vertical scroll bars. Use the Cut icon to take out selected script from the editor and send it to the Clipboard (a temporary storage place). With each subsequent copy or cut, the Clipboard contents are overwritten.

Use the copy icon to place a copy of the selected scripted on the Clipboard. Use the Paste icon to place the contents of the Clipboard at the insertion point. Script, which already exists at the insertion point, is moved. Selected script is replaced when the Paste command is used. Use the Find/Replace icon to search for and replace script and all instances of a word, for example, you can replace Chart with Pivot.

You can cut, copy, and paste embedded sections, controls, or graphic objects in an Dashboard section.
Using the Script Editor

43

Description pane and Online Help


When you select an item in the object model hierarchy, a brief description of the item is displayed in the Description pane. For example, selecting the Active Document Properties item displays the description Object/Document ActiveDocument.

To display Help text for specific items in the object model, select the item, then click Help.
The online help dialog box opens and displays information on the specific method or property selected, such as the type of argument expected. Online help is also accessible from the Help menu.

Sample JavaScript Script


Each level of the object model has a Methods folder that contains actions (methods) applicable to an object at that level. You can write a script using these methods by finding the object in the Object browser and double-clicking the associated method.

Testing Scripts Using the Execution Window


You can immediately test a script by adding it to the Execution window. For example, instead of closing and re-opening a document to test its OnStartup script, copy and paste the script into the Execution window and press [Enter].

Checking Errors Using the Console Window


The Console window records all error messages that occur from the time Interactive Reporting starts until the application is closed or the window is cleared (with Edit > Clear).

Finding/Replacing Script
The Script Editor Find/Replace function enables you to search an entire script for strings, punctuation marks, and numbers. You can retrieve matches by treating each word as a prefix or as whole word only. Further differentiation can be made by applying a case-sensitive constraint (upper and lower case word matches). The replace component of this function enables you to replace the first or multiple occurrence(s) of a string, punctuation mark.

44

Interactive Reporting Object Model

Table 13

Find/Replace Definitions Definition Enter the search criteria that you wish to search on. The search criteria can either be a string, punctuation mark or number. When you make an entry in this field without matching the whole word or case, search criteria acts as a prefix. That is, report matches reporting, reporter and reported. This function does not support wildcats. Enter the replacement text for match. Instructs the Find/Replace feature to match only the entire text that matches exactly your search criteria. For example, report matches only report. It does not match report reporting, reporter and re-ported. Instructs the Find/Replace feature to match only the text that matches the uppercase or lowercase letters of your search criteria. For example, if you specify Chart, then an entry must match the word Chart with a capital C. that is, Chart matches only Chart. Specify the direction from which to initiate the search be-ginning at the insertion point. You can start the search in an upward or downward direction. By default, the direction is from downward. Finds, then replaces the first occurrence of a match. This enables you to confirm whether or not you want to make the replacement. Replaces all occurrences of a match Closes the Find/Replace window.

Field Find What

Replace With Match Whole Word

Match Case

Direction

Replace ReplaceAll Close

To find and replace:


1 Click anywhere in the Find What field and enter your search text.
To replace the matched search text with other text, click anywhere in the Replace With field and enter the replacement text. You can either type the entry or paste it.

2 To match the entire search text entirely, click the Match Whole Word Only field. 3 To match the exact case of the search text, click the Match Case field. 4 Select the direction from which to initiate the search in the Direction field. 5 To find and replace the next occurrence of the search text, click Replace.
To find and replace all occurrences of the search text, click ReplaceAll. When the Find/Replace feature has finished executing, the following message is displayed: "Reached the end of the script. All instances of search item replaced" or Reached the end of the script. Cannot find Search item

Finding/Replacing Script

45

46

Interactive Reporting Object Model

Part

II

Scripting Reference

Scripting Reference

47

48

Scripting Reference

Chapter

Dashboard Scripting Reference

4
This chapterprovides reference information on using JavaScript with Hyperion Intelligence Clients and the web client.
In This Chapter Scripting Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Understanding Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Using JavaScript Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Manipulating Objects with JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Microsoft Automation Interfaces and the Object Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 OLE Automation Controller within JavaScript (JOOLE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Exporting Scripts to Text Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Troubleshooting Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

Dashboard Scripting Reference

49

Scripting Applications
When you use Hyperion Intelligence Clients to create a Dashboard, you can include one or more Hyperion Intelligence Clients documents, and one or more of the components listed below.
Component Startup/Shutdown Scripts Description Scripts that run when a document is opened or closed. To prevent a startup script from running, hold down [Ctrl] while opening the document.
Note: The Save and Save As commands in Interactive Reporting Studio, Interactive Reporting Web Client, and Workspace do not execute the document shutdown scripts when saving the document. These scripts only execute when a document is closed.

Dashboard Shapes and Controls Computed Columns Custom Menu Items

User Interface components that enable users to interact with the application. Scripts that run within the context of a Results or Table section column. Special menu items that allow scripts to run from any section.

On Windows platforms, you can launch script commands from the command line. Script commands launched from the command line require the -jscriptcmd flag. For example, to launch the Hyperion Intelligence Clients application, you would type:
brioqry.exe jscriptcmd "Application.Documents.Open ("c:\\temp\\hyperiondoc.bqy")"

Understanding Functions
Functions are one of the fundamental building blocks of JavaScript. A function is a JavaScript procedure: a set of statements that performs a specific task. To use a function, you must define it before your script can call it.

Defining Functions
A function definition consists of the function keyword, followed by:

The name of the function A list of arguments to the function, enclosed in parentheses and separated by commas The JavaScript statements that define the function, enclosed in curly braces { }

For example, to define a simple function named square, enter:


function square(number) { return number * number; }

50

Dashboard Scripting Reference

The function square takes an argument called number. The function consists of one statement that indicates to return the argument of the function multiplied by itself. The return statement specifies the value returned by the function, for example:
return number * number

All parameters are passed to functions by a value. The value is passed to the function, but if the function changes the value of the parameter, the change is not reflected globally or in the calling function. If you pass an object as a parameter to a function and the function changes the objects properties, that change is visible outside the function. For example:
function myFunc(theObject) { theObject.make="Toyota" } mycar = {make:"Honda", model:"Accord", year:2004} x=mycar.make // returns Honda muffin (mycar) // pass object mycar to the function y=mycar.make // returns Toyota (property was changed by the function)

Calling Functions
In a Hyperion Intelligence Clients analytical application, you can call any function that is defined in the current script context. You can also use functions that have been defined globally or at a higher scope than the current context.
Note: Use caution when working with global variables. These are visible throughout Hyperion Intelligence Clients, including to computed column calculations and Report section expressions.

Defining a function does not execute it. Defining the function simply names the function and specifies what to do when the function is called. Calling the function actually performs the specified actions with the indicated parameters. For example, you would call the function square as follows:
square(5)

The preceding statement calls the function with an argument of 5. The function executes its statements and returns the value 25. The arguments of a function are not limited to strings and numbers. You can also pass whole objects to a function. A function can be recursive, that is, it can call itself. For example, here is a function that computes factorials:
function factoring) { if ((n == 0) || (n == 1)) return 1 else { result = (n * factorial(n-1) ) return result } }

Understanding Functions

51

You could then compute the factorials of 1 through 5 as follows:


a=factorial(1) b=factorial(2) c=factorial(3) d=factorial(4) e=factorial(5) // // // // // returns returns returns returns returns 1 2 6 24 120

Function Scope
Functions are accessible within the scope in which they are created unless they are explicitly defined in a different scope. This means that a function which is defined in the OnClick() event handler of a command button can only be called by other statements in the same event handler. Example 1 shows two command buttons in an Dashboard section, MyButton and YourButton.

Example 1

// MyButton function square(value) { return value*value; } Alert (The square of 3 equals + square(3)) // YourButton var retVal = square(3) // generates a runtime error Alert (The square of 3 equals + retVal)

The square function is only visible in the context of MyButton. As a result, a call to the square function from YourButton generates a runtime error.

Defining Functions in Different Scopes


To make your functions visible to other scripts throughout the application, you must explicitly define the scope in which your function is visible. This can be accomplished a number of different ways: 1. Using the with statement to set the current scope of a script. 2. Dynamically adding methods to objects. 3. Assigning a function to a global variable. When you use the with statement to set the current scopes, functions defined within the with statement become visible for that object. Example 1 shows one method for expressing the two command buttons.

Example 1 // MyButton With (YourButton) { function square(value) {

52

Dashboard Scripting Reference

return value*value; } Alert (The square of 3 equals + square(3)) } // YourButton var retVal = square(3) Alert (The square of 3 equals + retVal)

By explicitly defining the square function within the context of the YourButton object, you make the function visible to the scripts that are running behind that button. Using this syntax is not restricted to objects within Dashboard. Any object from the object model can be used in conjunction with the with statement. Example 2 shows another way to accomplish the same behavior as Example.

Example 2 // MyButton Function square(value) { return value*value; } Alert (The square of 3 equals + square(3))YourButton.square = square;
// YourButton var retVal = square(3) Alert (The square of 3 equals + retVal)

In Example 2, a new method is added dynamically to the YourButton object. Any scripts running in the context of this object have access to the dynamically created square function. Taking this one step further, you could create a global variable that is associated with the function as shown in Example 3.

Example 3 // MyButton Function square(value) { return value*value; } Alert (The square of 3 equals + square(3)) MyGlobalFunction = square;
// YourButton var retVal = MyGlobalFunction(3) Alert (The square of 3 equals + retVal)

In Example 3, creating a variable named MyGlobalFunction without using the var statement places that variable in the topmost scope. This makes it global.

Understanding Functions

53

Summary of Function Types


There are several ways to create function components:

Global variable Document Variable Section Variable

Global variable
When you declare a function at the top level of a script, other functions can read and modify it. It is treated as universally accessible since other functions can read and change it (the global variable stays in memory when you close the document). You must carefully consider how and where you use a global variable in your script. A change made to a single component of the variable carries over to all other variables which reference it. To call a function using a global variable, type:
glMyFunction(myParam)

Document Variable
Document variables belong and depend on the document script in which they are included. That is, a document variable is erased when the document is closed or you define another value for the variable. You can call a function in one of two ways from the same document:
myFunction(myParam)

or
ActiveDocument.myFunction(myParam)

Section Variable
Section variables exist in the section and document in which they are included. Use a section variable when you need to specify elements defined from different Dashboard section, each of which declare functions with the same name. You can call a function in this way by typing:
ActiveDocument.Sections["Dashboard"].myFunction(myParam)

The (myParam) can be defined in two ways:


this.Parent.myFunction=myFunction

In this example, this.Parent is the parent object of the this which could be a Fields or Shapes object. This is the object to which the script belongs. or
this.myFunction=myFunction

In this example the object belongs to the OnActivate or OnDeactivate method of the section and this is the section object.
54
Dashboard Scripting Reference

Using JavaScript Statements


This section explains how JavaScript uses conditional and loop statements to allow the execution order of a script to change based on the state of objects or the user selection. It also discusses how to use break statements to alter the execution of these control structures. It includes the following topic:

Conditional Statements Loop Statements break Statements for...in Statement with Statement

Conditional Statements
A conditional statement is a set of commands that executes if a specified condition is true. The conditional statements supported by JavaScript are:

if...else Statements inline if Statements switch Statements

if...else Statements
If a logical condition is true, use the if statement to perform certain actions. If a logical condition is false, use the optional else clause to perform another action. Example 4 shows a typical if statement.

Example 4 if (condition) { statements1 } else { statements2 }

The condition can be any JavaScript expression that evaluates to true or false. The statements to be executed can be any JavaScript statements, including deeper nested if statements. If you want to use more than one statement after an if or else statement, you must enclose the statements in curly braces {}. Do not confuse the primitive Boolean true and false values with the Boolean object true and false values. Any object whose value is not undefined or null, including a Boolean object whose value is false, evaluates to true when passed to a conditional statement, for example:
var b = new Boolean(false); if (b) // this condition evaluates to true

Using JavaScript Statements

55

Note: The words if and else must be in lowercase. If you type an uppercase i or e, you get a missing syntax error. A then statement is implied for values enclosed in the curly braces { }. If you type the word then in a statement, an error message is returned.

You can also use an if...else statement to stop a script if it encounters a selected condition, for example:
if(cellvalue==0){ Alert("Cell has no value") } else{ (execute remainder of code here) }

inline if Statements
The inline if statement is an alternative to the if...else statement. It uses the conditional operator (?) to represent the if portion of the statement; the (:) implies the else portion. It takes these three operands:
condition ? expr1 : expr2

where:

condition An expression that evaluates to true or false expr1, expr2d Expressions with values of any type.

If condition is true, the operator returns the value of expr1; otherwise, it returns the value of expr2. You should place the condition in () (parentheses), with each expression in single or double quotes:
((condition == value)?'expr1':'expr2')

Note: You can eliminate the condition parentheses as shown below, but omitting the quotes for strings may lead to problems: (condition?'expr1':'expr2')

It is not necessary to place quotes around numbers.


(condition?2:10)

For example, to display a different message based on the true or false value of the isMember variable, you could use this statement:
( isMember ? 'Member' : 'Not a member')

In this case, if the isMember variable evaluates to true, then the operator returns the string Member. If isMember does not evaluate to true, then the operator returns the string Not a Member. You can also use the comparison operator:
((isMember == 'Yes' ) ? 'Member' : 'Not a member')

In this case, if the value of the variable isMember evaluates as equal to the string Yes, then the operator returns the string Member. If isMember does not evaluate as equal to the string Yes, then the operator returns the string Not a Member.

56

Dashboard Scripting Reference

If you want to nest inline if statements, (that is, use an inline if statement as an expression for another inline if statement), enclose the nested inline if statements in parentheses:
(1 != 1 ? 'Not Equal' : (1 < 1 ? 'Less Than': 'Equal') )

In this case, if 1 evaluates as not equal to 1, the second inline if statement is evaluated as part of the first inline if statements else clause. If 1 evaluates as less than 1, the operator returns the string Less Than. Since 1 is equal to 1, the operator returns the string Equal from the else clause of the second inline if statement.
Note: When you open a version 5.5 document in the 6.x version of Hyperion Intelligence Clients and the document contains computed columns with nested if...else statements, the Interactive Reporting JavaScript engine converts the if...else syntax to the inline if statement syntax. The conversion process does not alter the meaning or value of the original if...else statement.

switch Statements
A switch statement enables a program to evaluate an expression and attempts to match the expressions value to a case label. If a match is found, the program executes the associated statement. Example 5 shows an example of a switch statement.

Example 5 switch (expression){ case label : statement; break; case label : statement; break; ... default : statement; }

The program first looks for a label matching the value of the expression and then executes the associated statement. If no matching label is found, the program looks for the optional default statement. If a matching label is found, the program executes the associated statement. If no default statement is found, the program executes at the statement following the end of switch. The optional break statement associated with each case label ensures that the program breaks out of switch once the matched statement executes and continues execution at the statement following switch. If break is omitted, the program continues execution at the next statement in the switch statement. In Example 6, if expr evaluates to Bananas, the program matches the value with case Bananas and executes the associated statement. When break is encountered, the program terminates switch and executes the statement following is also be executed.

Example 6 switch (expr) { case "Oranges" : Console.Writeln("Oranges are $0.59 a pound."); break; case "Apples" : Console.Writeln("Apples are $0.32 a pound.");
Using JavaScript Statements

57

break; case "Bananas" : Console.Writeln("Bananas are $0.48 a pound."); break; case "Cherries" : Console.Writeln("Cherries are $3.00 a pound."); break; default : Console.Writeln("Sorry, we are out of " + i + "."); } Console.Writeln("Is there anything else you'd like?");

Loop Statements
A loop is a set of commands that repeatedly executes until a specified condition is met. JavaScript supports the following Loop statements:

for Statements do...while Statements while Statements label Statements continue Statements

Note: label is not itself a looping statement, but is frequently used with these statements. In addition, you can use the break and continue statements within loop statements.

Note: The for...in statement executes statements repeatedly but is used for object manipulation. For more information, see Manipulating Objects with JavaScript on page 62

for Statements
The for loop repeats until a specified condition evaluates to false. The JavaScript for loop is similar to the Java and C for loop.
for ([initialExpression]; [condition]; [incrementExpression]) { statements }

When a for loop executes, the following occurs: 1. The initializing expression initialExpression, if any, is executed. This expression usually initializes one or more loop counters, but the syntax allows an expression of any degree of complexity. 2. The condition expression is evaluated. If the value of condition is true, the loop statements execute. If the value of condition is false, the for loop terminates. 3. The statements execute. 4. The update expression incrementExpression executes and control returns to Step 2 on page 58.

58

Dashboard Scripting Reference

do...while Statements
The do...while statement repeats until a specified condition evaluates to false. A do...while statement looks as follows:
do { statement } while (condition)

The statement executes once before the condition is checked. If the condition returns true, the statement executes again. At the end of every execution, the condition is checked. When the condition returns false, execution stops and control passes to the statement following do...while. In the following example, the do...while loop iterates at least once and reiterates until it is no longer less than five.
do { i+=1; Console.Writeln(i); } while (i<5);

while Statements
A while statement executes as long as a specified condition evaluates to true, for example:
while (condition) { statements }

If the condition becomes false, the statements within the loop stop executing and control passes to the statement following the loop. The condition test occurs before the statements in the loop are executed. If the condition returns true, the statements are executed and the condition is tested again. If the condition returns false, execution stops and control is passed to the statement following while. In Example 7, the while loop repeats as long as n < 3:

Example 7 n = 0 x = 0 while( n < 3 ) { n ++ x += n }

With each iteration, the loop increments n and adds that value to x. Therefore, x and n take on the following values:

After the first pass: n = 1 and x = 1 After the second pass: n = 2 and x = 3 After the third pass: n = 3 and x = 6

Using JavaScript Statements

59

After completing the third pass, the condition n < 3 is no longer true, so the loop terminates. In Example 8, the while loop is an infinite loop that never terminates; that is, it executes forever because the condition never becomes false.

Example 8 while (true) { Alert("Hello, world") }

label Statements
A label provides a statement with an identifier that lets you refer to it elsewhere in your program. For example, you can use a label to identify a loop, and then use the break or continue statements to indicate whether a program should interrupt the loop or continue its execution. The syntax of the label statement looks like this:
label : statement

The value of label may be any JavaScript identifier that is not a reserved word. The statement that you identify with a label may be any type. In Example 9, the label markLoop identifies a while loop.

Example 9 markLoop: while (theMark == true){


doSomething(); }

continue Statements
The continue statement can be used to restart a while, do...while, for, or label statement. In a while or for statement, continue terminates the current loop and continues execution of the loop with the next iteration. In contrast to the break statement, continue does not entirely terminate the execution of the loop. In a while loop, it jumps back to the condition. In a for loop, it jumps to the increment expression. In a label statement, continue is followed by a label that identifies a label statement. This type of continue restarts a label statement or continues execution of a labeled loop with the next iteration. The continue statement must be in a looping statement identified by the label used by continue. The syntax of the continue statement looks like this: 1. continue 2. continue [label] Example 10 shows a while loop with a continue statement that executes when the value of I is three. Thus, n takes on the values one, three, seven, and twelve.

60

Dashboard Scripting Reference

Example 10 i = 0 n = 0 while (i < 5) { i++ if (i == 3) continue n += I }

In Example 11, a statement labeled checkiandj contains a statement labeled checkj. If continue is encountered, the program terminates the current iteration of checkj and begins the next iteration. Whenever continue is encountered, checkj reiterates until its condition returns false. When false is returned, the remainder of the checkiandj statement is completed, and checkiandj reiterates until its condition returns false. When false is returned, the program continues at the statement following checkiandj. If continue had a label of checkiandj, the program would continue at the top of the checkiandj statement.

Example 11 checkiandj : while (i<4) { Console.Writeln(i + ""); i+=1; checkj : while (j>4) { Console.Writeln(j + ""); j-=1; if ((j%2)==0); continue checkj; Console.Writeln(j + " is odd."); } Console.Writeln("i = " + i + ""); Console.Writeln("j = " + j + ""); }

break Statements
Use the break statement to terminate a loop, switch, or label statement. When you use break with a while, do...while, for, or switch statement, break terminates the innermost enclosing loop or switch immediately and transfers control to the following statement. When you use break within an enclosing label statement, it terminates the statement and transfers control to the following statement. If you specify a label when you issue the break, the break statement terminates the specified statement. The syntax of the break statement looks like this: 1. break 2. break [label] The first form of the syntax terminates the innermost enclosing loop, switch, or label; the second form of the syntax terminates the specified enclosing label statement.

Using JavaScript Statements

61

Example 12 iterates through the elements in an array until it finds the index of an element whose value is theValue.

Example 12 for (i = 0; i < a.length; i++) { if (a[i] = theValue); break; }

Manipulating Objects with JavaScript


JavaScript uses for...in and with statements to manipulate objects. Review the following for information on:

for...in Statement with Statement

for...in Statement
The for...in statement iterates a specific variable over all of the properties of an object. For each distinct property, JavaScript executes the specified statements. A for...in statement looks like this:
for (variable in object) { statements }

The function in Example 13 takes as its argument an object and the objects name. It then iterates over all the objects properties and returns a string that lists the property names and their values.

Example 13 function dump_props(obj, obj_name) { var result = "" for (var i in obj) { result += obj_name + "." + i + " = " + obj[i] + "" } result += "<HR>" return result }

For an object car with properties make and model, the result would be:
car.make = Ford car.model = Mustang

62

Dashboard Scripting Reference

with Statement
The with statement establishes the default object for a set of statements. JavaScript looks up any unqualified names within the set of statements to determine if the names are properties of the default object. If an unqualified name matches a property, then the property is used in the statement; otherwise, a local or global variable is used. A with statement looks like this:
with (object){ statements }

In Example 14, the with statement specifies that the Math object is the default object. The statements following the with statement refer to the PI property and the cos and sin methods without specifying an object. JavaScript assumes the Math object for these references.

Example 14 var a, x, y var r=10 with (Math) { a = PI * r * r x = r * cos(PI) y = r * sin(PI/2) }

Manipulating Objects with JavaScript

63

Microsoft Automation Interfaces and the Object Model


The object model is typically manipulated by the JavaScript language from inside an Dashboard section to build self-contained analytical applications. Because Hyperion Intelligence Clients is an OLE Automation server, on Microsoft Windows systems, the object model can be addressed by Microsoft Automation Interfaces. You can use Microsoft Automation Interfaces to control Hyperion Intelligence Clients in external applications such as Excel, Visual Basic, C++, or any application that can make OLE Automation calls. The object model is exposed through the BrioQuery.tbl file located in the system32 directory.

Figure 1

Using the Interactive Reporting object model from the Visual Basics for Applications editor within Excel 97

OLE Automation Controller within JavaScript (JOOLE)


Hyperion Intelligence Clients is an OLE Automation controller. On Windows systems, Hyperion Intelligence Clients can control external applications (that is, programmable ActiveX objects) that are OLE Automation servers. By making OLE Automation calls, Hyperion Intelligence Clients can access functionality exposed by other OLE Automation Servers. Examples of OLE Automation Servers include MS Excel and MS Visual Basic. To write a JOOLE object reference you can define it with the following syntax:
var <variableName> = new JOOLEObject(<ProgId>)

64

Dashboard Scripting Reference

<ProgID> is a string that shows the installed object that you want to reference and which the Interactive Reporting Studio or Interactive Reporting Web Client passes as a reference to the object, such as Excel.Application. <ProgID> is stored in the registry and consists of a string defined as Project.ClassName. It is recommended that JOOLE calls stored in plug-in scripts be implemented on Internet Explorer. JOOLE is Windows operating systems inclusive only.
Tip: You cannot embed OLE objects inside a Hyperion Intelligence Clients document. Likewise,

Interactive Reporting Studio or Interactive Reporting Web Client is not an OLE Server that produces OLE objects you can embed in OLE Containers. Example 15 shows you how to invoke a new Excel Worksheet from a command button

created in an Dashboard section and write "Hello World" to rows 2 and 3 in column B.

Example 15 Excel = new JOOLEObject("Excel.Application"); Excel.Visible = true; Excel.Workbooks.Add; Excel.Sheets.Item(1).Cells.Item(2).Item(2).Value = "Hello"; Excel.Sheets.Item(1).Cells.Item(2).Item(3).Value = "World"; Print(Excel.Sheets.Item(1).Cells.Item(2).Item(2).Value);

Example 16 shows you how to invoke Outlook from a command button created in an Dashboard section, and write Mail generated automatically in the body of the email. Note that Outlook launches a message that warns a program is trying to automatically send an email to the user. The user can either accept or decline the email.

Example 16 var olApp = new JOOLEObject("Outlook.Application") var olNote = olApp.CreateItem(0) olNote.To = "yourname@Hyperion.com" olNote.Subject = "JOOLEObject mail Example" olNote.Body = "This is an automatically generated note." //olNote.Attachments.Add (filepath) olNote.Send

If you are using JOOLE to start Outlook on Windows XP, use the following script:
var obj = Application.Shell("c:\\program Files\\outlook express\\msimn.exe")

Example 17 shows you how to invoke an existing Word document called Hello.doc from a command button created in an Dashboard section, display it and then print it

automatically.

Example 17 /Create Word Object word = new JOOLEObject("Word.Application"); // Make is Visible


OLE Automation Controller within JavaScript (JOOLE)

65

word.Visible = true; //Open the desired file word.Documents.Open("c:\\Hyperion\\Hello.doc"); // Set Options word.Options.PrintBackground = false; //Start Printing word.ActiveDocument.PrintOut();

Example 18 shows you how to create and write text to a text file (.TXT) from your

Interactive Reporting document file. The text file assumes the name of the Interactive Reporting document but appends the characters _trace and replaces the Interactive Reporting document extension with a .TXT extension. For example if your Interactive Reporting document is name DashboardText.bqy, then the Interactive Reporting Studio or Interactive Reporting Web Clientcreates the text file named DashboardText_trace.txt.

Example 18 var oleApp = new JOOLEObject("Scripting.FileSystemObject") var myPath=ActiveDocument.Path.slice(0,-4)+"_trace.txt" var traceDoc=oleApp.CreateTextFile(myPath) traceDoc.WriteLine("hello from Hyperion") traceDoc.Close()

Exporting Scripts to Text Files


Use the Export Scripts To Text File feature to export JavaScript code and associated events contained in a Interactive Reporting document file into a text file (.TXT). Hyperion Intelligence Clients categorizes the text file by object name and events, and includes document and custom menu item scripts.

To export a script to a text file:


1 Choose File > Export > Scripts To Text File.
The Export Script dialog box is displayed.

2 Specify the file name and location, and click Save.

66

Dashboard Scripting Reference

Troubleshooting Scripts
When a script fails to execute due to a syntax or runtime error, you need to debug the code. Finding errors may take time depending on the length and complexity of the code. One way to prevent errors is by observing the protocols that JavaScript requires. This section explains what you need to know to help prevent and locate errors in your scripts. This section includes the following topics:

Space-Saving Variables Case-Sensitive Code Assignment Operators Versus Comparison Operators Conditional Tests Syntax Reference Recalculating Results Designing Your Script Code Entry Bypass Errors Getting Help with a Problem Script

Space-Saving Variables
One exception to the Code Entry rule is: if you plan to repeatedly use an object model path, define it as a variable to save space and keep your script compact. For example, instead of typing:
ActiveDocument.Sections["Query"].DataModel.Connection.Username = "hyperion" ActiveDocument.Sections["Query"].DataModel.Connection.SetPassword("hyperion")ActiveDo cument.Sections["Query"].DataModel.Connection.Connect

try this:
DMPath = ActiveDocument.Sections["Query"].DataModel.Connection DMPath.Username = "hyperion" DMPath.SetPassword("hyperion") DMPath.Connect

You must remember to treat space-saving variables like the actual object model paths. That is, insert periods between object model segments and do not add unnecessary spaces. Also, it is generally a good idea to only include objects as part of the path. That is, make sure that your variable does not have any methods or properties segments for the object with which you want to work. For example:
LPath = ActiveDocument.Sections["Query"].Limits LPath.Activate()

is incorrect because ActiveDocument.Sections["Query"].Limits does not have an Activate() method.

Troubleshooting Scripts

67

However, this script is correct:


LPath = ActiveDocument.Sections["Query"] LPath.Activate()

Case-Sensitive Code
JavaScript is case sensitive and distinguishes between uppercase (capital) and lowercase (small) letters. Rules to remember include:

All JavaScript statements (for example, var, ifelse, while, switch, and so on) start with a lowercase letter. This script fails because var is capitalized: Var StringName = "John Smith"

All JavaScript core operators start with an uppercase letter, for example new Date(). This script fails because Date is in lowercase.
new date()

All object model Path segments start with a capital letter, for example ActiveDocument.Sections["Dashboard"].Activate(). Both of these commands cause the script to fail because the ActiveDocument segment is not properly capitalized.
activeDocument.Sections["Dashboard"].Activate() Activedocument.Sections["Dashboard"].Activate()

You must refer to variables exactly as you define them. If you define a variable as:
var StringName

then you must always refer to it as StringName, not Stringname or stringName or stringname.

Assignment Operators Versus Comparison Operators


JavaScript makes a distinction between Assignment and Comparison Operators. This is an assignment operator:
myvar = 5

This is a comparison operator:


if (myvar == 5)

A common error is to switch the two. Keep them separate. Be particularly careful when you are assigning argument values to methods.
DMPath = ActiveDocument.Sections[Query].DataModel.Connection //This works DMPath.SetPassword(hyperion) //This does not!!!! DMPath.SetPassword = "hyperion"

The last line of script assigns the value hyperion to DMPath.SetPassword, which is probably not what you want to do.
68
Dashboard Scripting Reference

Conditional Tests
When using if statements, avoid impossible conditional tests. For example, the following script always returns myvar is not 5! even though myvar is 5. This is because the condition always evaluates to false. In this case, 5 is not the same as five.
var myvar = 5 if ( myvar == "five") { Alert("myvar = 5!") } else { Alert("myvar is not 5!") }

It is especially important to know exactly how a variable reports in your condition. The Console.Writeln() and Alert() methods are especially useful in diagnosing problems like this. The JavaScript core operator String is used only to format myvar for the Console window:
var myvar = 5 Console.Writeln(String(myvar)) if ( myvar == "five") { Alert("myvar = 5!") } else { Alert("myvar is not 5!") }

If you are comparing the value you selected in a list box or a drop-down box to another value, make sure you know what value you are getting back before you compare it to something else. You especially want to avoid mixing up the placement of the item you selected in the control with the items actual value. Sometimes it is a bit tricky to get the value you want back from one of these control boxes. Remember that list boxes have selected lists that may contain multiple values, while drop-down boxes have a selected that can contain only one value. For example, if you have values of 4, 9, 15, 25, and 36 in your drop-down box, and you select 36, the script below returns myvar is 5!, which seems wrong. This happens because the DropDown1.SelectedIndex returns the placement in the drop-down box of the item you selected. Your choice of 36 is the fifth item in the drop-down box. Note that the console window reports 5.
var myvar = DropDown1.SelectedIndex Console.Writeln(String(myvar)) if ( myvar == 5) { Alert("myvar = 5!") } else { Alert("myvar is not 5!") }

Troubleshooting Scripts

69

Now lets say you have a drop-down box that contains the values of: one, two, three, four and five. The script below returns myvar = five! when you select five. However this is only because your choice five is the fifth choice in the drop-down box. However, the fifth choice is not necessarily equal to five. You can end up comparing the wrong things.
DropDown1 = ActiveDocument.Sections["Dashboard"].Shapes.DropDown1 var myvar = DropDown1.SelectedIndex Console.Writeln(String(myvar)) if ( myvar == 5) { Alert("myvar = five!") } else { Alert("myvar is not five!") }

The script below returns the actual value you see in the drop-down box. Lets assume again that you have a drop-down box that contains the values of: one, two, three, four and five:
DropDown1 = ActiveDocument.Sections["Dashboard"].Shapes.DropDown1 var myvar = DropDown1[DropDown1.SelectedIndex] Console.Writeln(String(myvar)) if ( myvar == "five") { Alert("myvar = 5!") } else { Alert("myvar is not 5!") }

Syntax Reference
On the bottom left of the Script Editor, directly above the Help button, is the Description pane. The Description pane shows you the necessary syntax for any item you select in the Object browser. For example, in the Object browser, navigate to Application > ActiveDocument > Sections > Query > Methods, then select the Activate(). The Description pane reads:
void Activate()

This indicates that the Activate() method does not take any arguments. Now click on the Export() method. The Description pane reads:
void Export(String Filename, BqExportFileFormat FileFormat, [optional] Boolean IncludeHeaders)

This indicates that the Export() takes three arguments, two required arguments and an one optional. For more detailed information, click Help to open the online help for the Export() Method topic.

70

Dashboard Scripting Reference

Recalculating Results
A script that includes limits may execute slowly because it has to recalculate a complete data set each time there is a modification. You can use the SuspendRecalculate property to prevent a Results limit from recalculating after each modification. In the following example, limit values are dynamically selected at a list box, but the recalculation occurs only after the last value is selected.
Sections[sect_name].Limits[limit_col].SuspendRecalculation = true; Sections[sect_name].Limits[limit_col].SelectedValues.RemoveAll(); for(I = 1; I <= ListBox2.SelectedList.Count;I++) { NewLimitValue = ListBox2.SelectedList[I]; newname += ListBox2.SelectedList[I] Sections[sect_name].Limits[limit_col].SelectedValues.Add(NewLimitValue); } Sections["Results"].Limits["1"].SuspendRecalculation = false; Sections[sect_name].Limits[limit_col].Ignore=false; // Trigger recalculation now

Designing Your Script


JavaScript is an interpreted, not a compiled, language and it evaluates and runs each line of code in sequence. If JavaScript finds a problem with a line of code as it attempts to run it, it simply stops. Although the Hyperion Intelligence Clients Script Editor syntax checker catches some obvious syntax errors, many errors may go unnoticed until run time. You should identify whether each line of code executes or fails. While it may seem like a lot of work to identify each line of code in this fashion, it pays off in time saved developing your scripts. It is also an essential technique for identifying problems in your scripts. You can check the legitimacy of your scripts using the Console window. The Console window is used to display error messages and alert values generated by the JavaScript interpreter. During a script debugging cycle, you can write messages to the Console window to track the state of variables and the progress of the script. If a syntax error is detected (and not a runtime error), the error and the line number in which it has occurred appear in the console window. Use the line number to move directly to the line where the error has occurred in the Script Editor. You can access the Console window from any section within the document; it remains open until you close it. The Console window also displays the buffer of all error messages that occur from when Hyperion Intelligence Clients is started. Thus, the Console window may display information that is no longer of value to you. You can choose Edit > Clear to clear the buffer contents. When the Console window is closed, the buffer size is 1,000 bytes. When the Console window is open, the buffer size is 641 bytes. There are two major techniques to write to the Console window: the Console.Write()/ Console.Writeln() methods, and the Alert() method.

Troubleshooting Scripts

71

The Console.Write() and Console.Writeln() methods are essentially identical. Both write to the Console window, which you can open by choosing View > Console Window. Console.Write() does not add a carriage return at the end of a line, while Console.Writeln() does add a carriage return.
Note: Console.Writeln() is spelled with a lowercase L and N, which is an abbreviation for Write Line.

Console.Writeln() is the preferred technique for most users. It allows the script to run

without user interaction, and the Console windows keeps a record of each line as it is written to the Console. In some cases, the Console.Writeln() method is less desirable. Additionally, the web clients Console window must be closed when a script runs. If you wish to step through a tricky section of code in your script, you should use the Alert() method. Whichever method you use, you need to identify the beginning and end of each script as well as each line of code before it executes. In the following example, the script moves to the Query section and removes any limits.
Console.Writeln("Start Query Script") Console.Writeln("Step1") ActiveDocument.Sections["Query"].Activate() Console.Writeln("Step2") ActiveDocument.Sections["Query"].Limits.RemoveAll() Console.Writeln("Step3") Console.Writeln("End Query Script")

Based on the above script, the Console window displays:


Start Query Script Step1 Step2 Step3 End Query Script

Code Entry
Whenever possible, use the Object browser click to add code to the Script Editor, rather than manually typing in the JavaScript. Sometimes errors occur because you have typed an extra space or a period instead of a comma. You can also use cut-and-paste to enter code. For example, if you define a variable as DashboardName, and then later retype it as Dashboardname (see Case-Sensitive Code on page 68 for more information), the difference in case causes a failure. Avoid such problems by carefully cutting and pasting whenever possible.

72

Dashboard Scripting Reference

Bypass Errors
The try-catch block is borrowed from Java and is used to bypass errors. The general syntax for a try-catch block is:
try {do something} catch(errorname) {do something with the error} finally {do something else}

For example:
QPath = ActiveDocument.Sections["Query"].Limits try {QPath.Activate()} catch(e) {Alert(e.toString())} finally {Alert("We're Done!")}

The try-catch block generally does not catch definition errors, but shows an error in the Console window at the lowercase d in date():
try {Alert(new date())} catch(e) {Alert(e.toString())} finally {Alert("We're Done!")}

Getting Help with a Problem Script


If you have followed all the practices described in this section and you are still not able to get your script to do what you want it to do, consider opening a call with Hyperion Solutions Customer Support at 1-877-901-4975 or email Hyperion at http://www.hyperion.com. Hyperion Solutions Customer Support engineers does need to see your actual Interactive Reporting document that contains the script at issue. This is necessary due to the possibility of typos, and because of the relationship between a script and an individual Interactive Reporting document. If your data is confidential, consider duplicating your Interactive Reporting document file using the sample script that ships with Hyperion Intelligence Clients. Alternatively, you might consider saving the file without results, or if results are necessary to the function of the script, you may consider limiting your results sets to only a few rows. To set this option, choose Query > Query Options. The sooner you can locate the problem and the exact point of failure in your script, the sooner Hyperion Solutions Customer Support can analyze the issue and suggest solutions. Be sure to specify in which section of the Interactive Reporting document the problem script resides, and within which control it can be found.

Troubleshooting Scripts

73

Remember that a problem in one script may be as a result of something defined in a different script. Hyperion Solutions Customer Support may need to evaluate your document start up scripts and your Dashboard section scripts, as well as the script in the particular control that is causing the problem. For this reason, we strongly recommend you use the Console.Writeln() method to identify each of your lines of code in each of your scripts to the Console window. This may make the problem self-evident.

74

Dashboard Scripting Reference

Chapter

Object Model Map

5
This chapter provides a detailed map of how objects relate to one another within the Hyperion Intelligence Clients object model. The object model map is divided according to these levels and/or sections of the object tree:
In This Chapter Object Model Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Application Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Active Document Level. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Query Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Dashboard Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Chart Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Results, Report, and Pivot Sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Table and OLAPQuery Sections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Object Model Map

75

Object Model Hierarchy


The object model map is an expanded view of selected objects in the object model hierarchy, as seen in the Dashboard Script Editor. It starts at the highest levelthe Application leveland drills down through the object hierarchy. The top levels of the object model hierarchy include:

Application Level Active Document Level Sections

Application Level

ActiveDocument Level

Sections

Expanded Query Section

76

Object Model Map

Application Level
The following illustration shows the objects following the Application level.

Application

Documents

DocName

Sections Active Document LastSaved

Active Section Standard

Formatting Toolbars Sections

Navigation Recent Files Item Number

Console

URL Session Form

Cookies

Application Level

77

Active Document Level


The following illustration shows the objects following the Active Document level.

Application

Active Document (Doc Name)

Sections

Dashboard

Report

Query

Results

Table

Chart

Pivot

DataModel

OLAPQuery

Last Saved

78

Object Model Map

Query Section
The following illustration shows the objects following the Query Section level.

Application

Active Documents Connection MetaData Connection Catalog Query Section Topics Joins Limits Data Model Local Results Local Joins Results CatalogItems TopicName JoinNumber TableName TopicItems TopicItemName

Sections

TopicItem1 TopicItem2

Requests

RequestNum AvailableValues

Limits

LimitNum

CustomValues SelectedValues

LimitValue

SortItems

Query (base) AppendQuery Query (append)

Requests Limits LimitNum

RequestNum AvailableValues CustomValues SelectedValues LimitValue

Query Section

79

Dashboard Section
The following illustration shows the objects following the Dashboard Section level.

Application

Active Document CheckBox RadioButton Sections CommandButton TextBox Dashboard DropDown ListBox Font SelectedList Fill Fill Font Font

Shapes

TextLabel HorizontalLine

Font

Fill

Line

Line VerticalLine

Line

Picture Fill Oval Line Rectangle EmbeddedSection

80

Object Model Map

Chart Section
The following illustration shows the objects following the Chart Section level.

Application XCategories(C) XCategories(O)

Facts(C) Active Document ZCategories(C)

Fact(O) ZCategories(O)

XLabels Sections YLabels LabelValues

ZLabels Chart BarChart BarLineChart PieChart AreaChart LineChart XAxis

LabelAxis ValueAxis

YAxis LeftAxis

RightAxis Legend Items Item Line

Fill

Chart Section

81

Results, Report, and Pivot Sections


The following illustration shows the objects following the Results, Report, and Pivot Section levels.

Application

Active Document

Sections

Columns

Column AvailableValues

Results

Limits

Limit

CustomValues

LimitVa

SelectedValues SortItems SortItem

Reports

TopLabels PivotLabel Pivots SideLabels

Facts DataLabels

PivotFact

CornerLabels

82

Object Model Map

Table and OLAPQuery Sections


The following illustration shows the objects following the Table and OlapQuery Section levels.

Application

Active Document

Section Columns Table Limits

SortItems

SortItemName

Connection TopLabels TopLabelNum

OLAP Query

SideLabels Measures

SideLabelNum TopLabelName

Slicers

SlicerNumber

Table and OLAPQuery Sections

83

84

Object Model Map

Chapter

JavaScript Examples

6
This chapter provides sample JavaScript scripts for Designer and Explorer tasks.
In This Chapter Displaying and Entering Values in a Text Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Retrieving and Setting the Properties of an Object. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Enabling and Disabling Controls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Controlling the Visibility of Graphics and Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Creating an OCE (connection file). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Displaying a Connection Login Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Downloading Data Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Displaying a Table Catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Adding Topics to a Data Model Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Setting up Topic Object Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Adding Joins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Adding Items to the Request Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Adding a Computed Column to a Query Request Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Creating and Setting Variable Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Using a BrioQuery 5.5 Limit Dialog Box and Storing Selected Value in Text Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Turning off the Page Headers for the First Page in the Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Turning off the Prompt To Save Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

JavaScript Examples

85

Displaying and Entering Values in a Text Box


An Intelligence Clients text box provides users a way to display output to and gather input from the application. You can write values to a text box or read values from a text box. There are three events associated with a text boxOnEnter, OnChange, and OnExit. Uses for a text box in Run Mode include:

Entering values Displaying values Displaying read-only information Validating data Calculating data

Example 1, Example 19, and Example 20 show you how to attach JavaScript scripts to the various text box events.

Example 1

/* OnEnter Eventenables CommandButton */ var sect_name=Dashboard; var ctrl_name=CommandButton1; ActiveDocument.Sections[sect_name].Shapes[ctrl_name].Enabled = true;

Example 19 /* OnChange Event- validates changes*/ var sect_name=Dashboard; var ctrl_name=TextBox1; if (ActiveDocument.Sections[sect_name].Shapes[ctrl_name].Text==Hello) { Alert(Hello is an Invalid Entry); }

Example 20 /* OnExit Event- increments variable counter */ var sect_name=Dashboard; var ctrl_name=TextBox1; if (ActiveDocument.Sections[sect_name].Shapes[ctrl_name].Text==2) { x=x+1; }

Retrieving and Setting the Properties of an Object


Interactive Reporting objects have associated properties. The properties represent attributes of an object. Some examples of properties include name, visible, enabled, and text. Many of the properties can be set using the Properties dialog box in the Dashboard section. Example 21, Example 22, and Example 23 show you how to use JavaScript to get and set properties for controls.

86

JavaScript Examples

Example 21 /* Get the value of the ListBox MultiSelect property*/ var sect_name=Dashboard; var ctrl_name=ListBox1; TextBox1.Text = ActiveDocument.Sections[sect_name].Shapes[ctrl_name].MultiSelect;

Example 22 /* Set the value of the CheckBox Checked property */ var sect_name=Dashboard; var ctrl_name=CheckBox1; ActiveDocument.Sections[sect_name].Shapes[ctrl_name].Checked = true;

Example 23 /* Get the value of the RadioButton Group property */ var sect_name=Dashboard; var ctrl_name=CheckBox1; TextBox1.Text = ActiveDocument.Sections[sect_name].Shapes[ctrl_name].Group;

Enabling and Disabling Controls


Dashboard graphics and control objects have an enabled property that determines whether the object is enabled or disabled in Dashboard Run mode. When an object is enabled, users can access the control and trigger events that can perform actions. When an object is disabled, the object appears dimmed and does not recognize events when a user attempts to access the control. The enabled property is available from the Object page of the Properties dialog box for graphics and control objects. Example 24 and Example 25 show how to programmatically enable or disable a control.

Example 24 /* Enables controls */ var sect_name=Dashboard; var ctrl_name=TextBox1; ActiveDocument.Sections[sect_name].Shapes[ctrl_name].Enabled = true;

Example 25 /* Disables controls */ var sect_name=DashboardDashboard; var ctrl_name=TextBox1; ActiveDocument.Sections[sect_name].Shapes[ctrl_name].Enabled = false;

Controlling the Visibility of Graphics and Controls


Dashboard graphics and control objects have a visible property that determines whether the object is displayed in Dashboard Run mode. When an object is visible, users can access the control and trigger events that can perform actions. When an object is invisible, the object is not displayed. The visible property is available from the Object page of the Properties dialog box for graphics and control objects. Example 26 and Example 27 show you how to programmatically make a control visible or invisible.

Controlling the Visibility of Graphics and Controls

87

Example 26 /* Makes control Visible */ var sect_name=Dashboard; var ctrl_name=TextBox1; ActiveDocument.Sections[sect_name].Shapes[ctrl_name].Visible = true;

Example 27 /* Makes control Invisible */ var sect_name=Dashboard; var ctrl_name=TextBox1; ActiveDocument.Sections[sect_name].Shapes[ctrl_name].Visible = false;

Creating an OCE (connection file)


Example 28 shows the script to use to create an OCE (connection file).

Example 28 // try to create sample.oce from scratch. // create SQLNet-Oracle8 oce - save as sample.oce MyConnection = ActiveDocument.Sections["Query"].DataModel.Connection MyConnection.Open("c:\\OCEs\\Sample.oce") MyConnection.Username = "hyperion" MyConnection.SetPassword("hyperion") MyConnection.Connect() MyConnection.SaveAs("c:\\temp\\sample.oce")
ActiveDocument.Sections["DataModel"].DataModel.Connection.Open("c:\\temp \\astro8.oce") // need to connect ? ActiveDocument.Sections["DataModel"].DataModel.Connection.UserName = "hyperion" ActiveDocument.Sections["DataModel"].DataModel.Connection.SetPassword("h yperion") ActiveDocument.Sections["DataModel"].DataModel.Connection.Connect()

Displaying a Connection Login Box


Example 29 shows the script to use to display a connection login box. You can use the Report Designer to modify Detail reports created in documents prior to version 6.0. Version 6.0 and later opens Detail reports in read-only mode. To work with the contents of a Detail report, first convert it to the new Report Designer format.
Note: You can convert Detail reports to Report Designer format only if the results set is saved with the document. If your results set is not saved with your document, reprocess the query and then select File > Save Results With Document.

To convert a Detail report to Report Designer format:


1 In the Section catalog, select the Detail report.
The detail report is displayed in the Content pane and a Detail menu is displayed on the menu bar.
88
JavaScript Examples

2 Select Detail > Convert To Report.


Detail report is converted to the new Report Designer format and inserts a new Report section into the document. The original Detail report is left unchanged. While every effort has been made to make the converted report as close as possible to the original Detail report design, you may need to clean up some reports, especially those that use computed items, multiple page headers/footers, or complex formatting. Detail reports can be exported from the current version of the product to all of the previously supported formats, including Excel (.xls), Lotus 1-2-3 (.wks), tab-delimited text (.txt). comma-separated text (.csv), and HTML (.htm).

Display Differences
The page margins of a report created by the conversion process may be displayed smaller than in the original Detail report. This is because the new Report section is a WYSIWYG display that includes the unprintable area that exists outside of report margins. In version 5.x, Detail reports did not display or store information about the unprintable area. You can manually adjust the margin sizes in the converted report if needed. If a Detail report contains multiple page header and footer sections, the current version of the product resolves these to a single page header and footer section during the conversion process. The height of the headers and footers in the converted report is equal to the combined heights of all headers and footers in the original Detail report. This may cause graphic and text objects in the headers and footers to overlap. You should manually adjust the properties, size, and/or position of these objects as necessary.

Conversion of Detail Report Categories


Detail Report categories from Detail reports are converted into report groups in the new Report section. The converted report displays Report Group Header and Footer sections if the corresponding category header and footer bands are visible in the original Detail report. The height of these header and footer sections remains the same. Detail report category labels are converted into JavaScript-based computed fields. Display properties remain unchanged.

Conversion of Data Area


To preserve as much of the original data and layout as possible, the conversion process translates the Detail report body information to a single table object in the body section of the converted report. This may lead to a loss of fidelity when converting complex or non-tabular style Detail reports.

Displaying a Connection Login Box

89

Conversion of Facts
During report conversion, Detail report facts are added to the right of the dimension columns in the body section table. Number formats applied to Detail report facts are migrated to the converted report. If no number format exists, then the default number formats are applied to date, time, and number fields. Because version 6.x uses JavaScript as the scripting, the conversion process does not automatically convert any computed facts contained in the Detail report. For computed items located in the Detail report body, the expression is omitted from the version 6.x table object. The conversion process may attempt to replace the computed column with another fact. If that occurs, simply delete the extraneous column. For computed items located in a group header or footer, the code of the old scripting language expression is placed in a text field in the associated header/footer area to aid in manual conversion. Before you correct these placeholder items, Hyperion displays an error message in the field which reads <string>(1):unterminated string literal. The Detail reports Surface Math option has no equivalent in the converted report and is ignored.

Conversion of Smart Reports


Version 6.x is able to convert Detail reports containing multiple smart charts and pivot tables. Some converted smart charts may look different or even invisible once converted and displayed in the 6.x Report section. This is due to some changes in the chart section that affect the way that charts are plotted within a given sized area. As a result, embedded charts may need to be resized manually by the user.

Conversion of Graphic Objects


Certain graphic object properties are no longer supported and are ignored during the conversion process. These properties include the shadow, sunken button, and raised button fill effects. The width of line objects in Detail reports is expressed in whole pixels. When a report is converted, the pixel line widths are converted to the nearest point equivalent.

Downloading Data Models


Example 29 shows the script to use to download a data model, standard query, or standard query with report from the repository.

Example 29 //download a data model, standard query or standard query with reports //from a local repository //(document name to gain the download), (type of document), (repository //owner) (group with access), (name of document) ExecuteBScript("download doc root, 'SQR', 'ts', 'PUBLIC', 'Sales")

90

JavaScript Examples

Displaying a Table Catalog


Example 30 shows the script to use to programmatically show a listing of the available tables on your database.

Example 30 // display table catalog ActiveDocument.Sections["DataModel"].DataModel.Catalog.Refresh()

Adding Topics to a Data Model Section


Example 31 shows the script to use to add topics to a data model section.

Example 31 // add topics to DataModel section CatItem = ActiveDocument.Sections["DataModel"].DataModel.Catalog.CatalogItems["PCW _ITEMS"] ActiveDocument.Sections["DataModel"].DataModel.Topics.Add(CatItem)

Setting up Topic Object Variables


Example 32 shows the script to use to set up topic object variables.

Example 32 // setting up topic objects variables... PCWItems = ActiveDocument.Sections["DataModel"].DataModel.Topics["PCW_ITEMS"] PCWSales = ActiveDocument.Sections["DataModel"].DataModel.Topics["PCW_SALES"] PCWCustomers = ActiveDocument.Sections["DataModel"].DataModel.Topics["PCW_CUSTOMERS"] PCWPeriods = ActiveDocument.Sections["DataModel"].DataModel.Topics["PCW_PERIODS"]

Adding Joins
Example 33 shows the script to use to add a join.

Example 33 // add join between PCW_PERIODS (Day) and PCW_SALES (Order_Date) PCWPeriods_Day = PCWPeriods.TopicItems["Day"] PCWSales_OrderDate = PCWSales.TopicItems["Order_Date"] Day_OrderDate_Join = ActiveDocument.Sections["DataModel"].DataModel.Joins.Add(PCWPeriods_Day, PCWSales_OrderDate, bqJoinSimpleEqual)

Adding Joins

91

Adding Items to the Request Line


Example 34 shows the script to use to add items to the request line.

Example 34 // add items to the request line ActiveDocument.Sections["Query"].Requests.Add("PCW_CUSTOMERS", "Store") ActiveDocument.Sections["Query"].Requests.Add("PCW_SALES", "Store_Id") ActiveDocument.Sections["Query"].Requests.Add("PCW_SALES", "Order_Date") ActiveDocument.Sections["Query"].Requests.Add("PCW_SALES", "Delivery_Date") ActiveDocument.Sections["Query"].Requests.Add("PCW_SALES", "Units") ActiveDocument.Sections["Query"].Requests.Add("PCW_SALES", "Amount") ActiveDocument.Sections["Query"].Requests.Add("PCW_CUSTOMERS", "City") ActiveDocument.Sections["Query"].Requests.Add("PCW_CUSTOMERS", "State") ActiveDocument.Sections["Query"].Requests.Add("PCW_PERIODS", "Year")

Adding a Computed Column to a Query Request Line


Example 35 shows the script to use to add a computed column to a query request line.

Example 35 // add computed column to Query request line - Amount/Units ActiveDocument.Sections["Query"].Requests.AddComputedItem ("CompItem","Amount/Units",3)

Creating and Setting Variable Limits


Example 36 shows the script to use to create and set variable limits.

Example 36 // create and set variable limit - Store_Id mylimit = ActiveDocument.Sections["Query"].Limits.CreateLimit("PCW_SALES.Store_Id" ) mylimit.Operator = bqLimitOperatorLessThanOrEqual mylimit.CustomValues.Add(10) mylimit.SelectedValues.Add(10) ActiveDocument.Sections["Query"].Limits.Add(mylimit) mylimit.VariableLimit = true

Using a BrioQuery 5.5 Limit Dialog Box and Storing Selected Value in Text Box
The script in Example 37 shows how to use an Interactive Reporting Filter dialog box and store the selected value in a text box.

92

JavaScript Examples

Example 37 ExecuteBScript("modify limit root.'Pcw Customers'.'Store Type'.'Store Type'") var limit = ActiveDocument.Sections["Query"].Limits["Store Type"] var TextBox = ActiveSection.Shapes["TextBox1"] if (!limit.Ignore) { TextBox.Text = limit.SelectedValues[1] } else { TextBox.Text ="" }

Turning off the Page Headers for the First Page in the Report
The script in Example 38 shows how to turn off page headers for the first page in the report.

Example 38 if ( PageNm==1) {' '} else {"Query Processed:

"+ Format(new Date(), "d-mmm-yyyy")}

Turning off the Prompt To Save Dialog Box


The script in Example 39 shows how to shut down the Interactive Reporting application on an OnShutdown event.

Example 39 Application.Quit(false)

Turning off the Prompt To Save Dialog Box

93

94

JavaScript Examples

Chapter

TroubleShooting Scripts

7
When a script fails to execute due to a syntax or runtime error, you need to debug the code. Finding errors may take time depending on the length and complexity of the code. One way to prevent errors is by observing the protocols that JavaScript requires. This section explains what you need to know to help prevent and locate errors in your scripts.

In This Chapter

Space-Saving Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Case-Sensitive Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Assignment Operators Versus Comparison Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Conditional Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Syntax Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Recalculating Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Designing Your Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Code Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Bypass Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Getting Help with a Problem Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

TroubleShooting Scripts

95

Space-Saving Variables
One exception to the Code Entry rule is: If you plan to repeatedly use an object model path, define it as a variable to save space and keep your script compact. For example, instead of typing:
ActiveDocument.Sections["Query"].DataModel.Connection.Username = "hyperion" ActiveDocument.Sections["Query"].DataModel.Connection.SetPassword("hyperion")ActiveDo cument.Sections["Query"].DataModel.Connection.Connect

try this:
DMPath = ActiveDocument.Sections["Query"].DataModel.Connection DMPath.Username = "hyperion" DMPath.SetPassword("hyperion") DMPath.Connect

You must remember to treat space-saving variables like the actual object model paths. That is, insert periods between object model segments and do not add unnecessary spaces. Also, it is generally a good idea to only include objects as part of the path. That is, make sure that your variable does not have any methods or properties segments for the object with which you want to work. For example:
LPath = ActiveDocument.Sections["Query"].Limits LPath.Activate()

is incorrect because ActiveDocument.Sections["Query"].Limits does not have an Activate() method. However, this script is correct:
LPath = ActiveDocument.Sections["Query"] LPath.Activate()

Case-Sensitive Code
JavaScript is case sensitive and distinguishes between uppercase (capital) and lowercase (small) letters. Rules to remember include:

All JavaScript statements (for example, var, ifelse, while, switch, and so on) start with a lowercase letter. This script fails because var is capitalized: Var StringName = "John Smith"

All JavaScript core operators start with an uppercase letter, for example new Date(). This script fails because Date is in lowercase.
new date()

All object model Path segments start with a capital letter, for example ActiveDocument.Sections["Dashboard"].Activate(). Both of these commands cause the script to fail because the ActiveDocument segment is not properly capitalized.
activeDocument.Sections["Dashboard"].Activate() Activedocument.Sections["Dashboard"].Activate()

96

TroubleShooting Scripts

You must refer to variables exactly as you define them. If you define a variable as:
var StringName

then you must always refer to it as StringName, not Stringname or stringName or stringname.

Assignment Operators Versus Comparison Operators


JavaScript makes a distinction between Assignment and Comparison Operators. This is an assignment operator:
myvar = 5

This is a comparison operator:


if (myvar == 5)

A common error is to switch the two. Keep them separate. Be particularly careful when you are assigning argument values to methods.
DMPath = ActiveDocument.Sections[Query].DataModel.Connection //This works DMPath.SetPassword(hyperion) //This does not!!!! DMPath.SetPassword = "hyperion"

The last line of script assigns the value hyperion to DMPath.SetPassword, which is probably not what you want to do.

Conditional Tests
When using if statements, avoid impossible conditional tests. For example, the following script always returns myvar is not 5! even though myvar is 5. This is because the condition always evaluates to false. In this case, 5 is not the same as five.
var myvar = 5 if ( myvar == "five") { Alert("myvar = 5!") } else { Alert("myvar is not 5!") }

It is especially important to know exactly how a variable reports in your condition. The Console.Writeln() and Alert() methods are especially useful in diagnosing problems like this. Note that the JavaScript core operator String is used only to format myvar for the Console window:
var myvar = 5 Console.Writeln(String(myvar))

Conditional Tests

97

if ( myvar == "five") { Alert("myvar = 5!") } else { Alert("myvar is not 5!") }

If you are comparing the value you selected in a list box or a drop-down box to another value, make sure you know what value you are getting back before you compare it to something else. You especially want to avoid mixing up the placement of the item you selected in the control with the items actual value. Sometimes it is a bit tricky to get the value you want back from one of these control boxes. Remember that list boxes have selected lists that may contain multiple values, while drop-down boxes have a selected that can contain only one value. For example, if you have values of 4, 9, 15, 25, and 36 in your drop-down box, and you select 36, the script below returns myvar is 5!, which seems wrong. This happens because the DropDown1.SelectedIndex returns the placement in the drop-down box of the item you selected. Your choice of 36 is the fifth item in the drop-down box. Note that the console window reports 5.
var myvar = DropDown1.SelectedIndex Console.Writeln(String(myvar)) if ( myvar == 5) { Alert("myvar = 5!") } else { Alert("myvar is not 5!") }

Now lets say you have a drop-down box that contains the values of one, two, three, four and five. The script below returns myvar = five! when you select five. However this is only because your choice five is the fifth choice in the drop-down box. However, the fifth choice is not necessarily equal to five. You can end up comparing the wrong things.
DropDown1 = ActiveDocument.Sections["Dashboard"].Shapes.DropDown1 var myvar = DropDown1.SelectedIndex Console.Writeln(String(myvar)) if ( myvar == 5) { Alert("myvar = five!") } else { Alert("myvar is not five!") }

The script below returns the actual value you see in the drop-down box. Lets assume again that you have a drop-down box that contains the values of one, two, three, four and five:

98

TroubleShooting Scripts

DropDown1 = ActiveDocument.Sections["Dashboard"].Shapes.DropDown1 var myvar = DropDown1[DropDown1.SelectedIndex] Console.Writeln(String(myvar)) if ( myvar == "five") { Alert("myvar = 5!") } else { Alert("myvar is not 5!") }

Syntax Reference
On the bottom left of the Script Editor, directly above the Help button, is the Description pane. The Description pane shows you the necessary syntax for any item you select in the Object browser. For example, in the Object browser, navigate to Application > ActiveDocument > Sections > Query > Methods, then select the Activate(). The Description pane reads:
void Activate()

This indicates that the Activate() method does not take any arguments. Now click on the Export() method. The Description pane reads:
void Export(String Filename, BqExportFileFormat FileFormat, [optional] Boolean IncludeHeaders)

This indicates that the Export() takes three arguments, two required arguments and an one optional. For more detailed information, click Help to open the online help for the Export() Method topic.

Recalculating Results
A script that includes limits may execute slowly because it has to recalculate a complete data set each time there is a modification. You can use the SuspendRecalculate property to prevent a Results limit from recalculating after each modification. In the following example, limit values are dynamically selected at a list box, but the recalculation occurs only after the last value is selected.
Sections[sect_name].Limits[limit_col].SuspendRecalculation = true; Sections[sect_name].Limits[limit_col].SelectedValues.RemoveAll(); for(I = 1; I <= ListBox2.SelectedList.Count;I++) { NewLimitValue = ListBox2.SelectedList[I]; newname += ListBox2.SelectedList[I] Sections[sect_name].Limits[limit_col].SelectedValues.Add(NewLimitValue); }

Recalculating Results

99

Sections["Results"].Limits["1"].SuspendRecalculation = false; Sections[sect_name].Limits[limit_col].Ignore=false; // Trigger recalculation now

Designing Your Script


JavaScript is an interpreted, not a compiled, language and it evaluates and runs each line of code in sequence. If JavaScript finds a problem with a line of code as it attempts to run it, it simply stops. Although the Intelligence Clients Script Editor syntax checker catches some obvious syntax errors, many errors may go unnoticed until run time. You should identify whether each line of code executes or fails. While it may seem like a lot of work to identify each line of code in this fashion, it pays off in time saved developing your scripts. It is also an essential technique for identifying problems in your scripts. You can check the legitimacy of your scripts using the Console window. The Console window is used to display error messages and alert values generated by the JavaScript interpreter. During a script debugging cycle, you can write messages to the Console window to track the state of variables and the progress of the script. If a syntax error is detected (and not a runtime error), the error and the line number in which it has occurred appear in the console window. Use the line number to move directly to the line where the error has occurred in the Script Editor. You can access the Console window from any section within the document; it it remains open until you close it. The Console window also displays the buffer of all error messages that occur from when Intelligence Clients is started. Thus, the Console window may display information that is no longer of value to you. You can choose Edit > Clear to clear the buffer contents. When the Console window is closed, the buffer size is 1,000 bytes. When the Console window is open, the buffer size is 641 bytes. There are two major techniques to write to the Console window: the Console.Write()/
Console.Writeln() methods, and the Alert() method.

The Console.Write() and Console.Writeln() methods are essentially identical. Both write to the Console window, which you can open by choosing View > Console Window. Console.Write() does not add a carriage return at the end of a line, while Console.Writeln() does add a carriage return.
Note: Console.Writeln() is spelled with a lowercase L and N, which is an abbreviation for Write Line.

Console.Writeln() is the preferred technique for most users. It allows the script to run without user interaction, and the Console windows keeps a record of each line as it is written to the Console.

In some cases, the Console.Writeln() method is less desirable. Additionally, web clients Console window must be closed when a script runs. If you wish to step through a tricky section of code in your script, you should use the Alert() method.

100

TroubleShooting Scripts

Whichever method you use, you need to identify the beginning and end of each script as well as each line of code before it executes. In the following example, the script moves to the Query section and removes any limits.
Console.Writeln("Start Query Script") Console.Writeln("Step1") ActiveDocument.Sections["Query"].Activate() Console.Writeln("Step2") ActiveDocument.Sections["Query"].Limits.RemoveAll() Console.Writeln("Step3") Console.Writeln("End Query Script")

Based on the above script, the Console window displays:


Start Query Script Step1 Step2 Step3 End Query Script

Code Entry
Whenever possible, use the Object browser click to add code to the Script Editor, rather than manually typing in the JavaScript. Sometimes errors occur because you have typed an extra space or a period instead of a comma. You can also use cut-and-paste to enter code. For example, if you define a variable as DashboardName, and then later retype it as Dashboardname (see Case-Sensitive Code on page 96 for more information), the difference in case causes a failure. Avoid such problems by carefully cutting and pasting whenever possible.

Bypass Errors
The try-catch block is borrowed from Java and is used to bypass errors. general syntax for a trycatch block is:
try {do something} catch(errorname) {do something with the error} finally {do something else}

For example:
QPath = ActiveDocument.Sections["Query"].Limits try {QPath.Activate()} catch(e) {Alert(e.toString())} finally {Alert("We're Done!")}

Bypass Errors

101

The try-catch block generally does not catch definition errors, but shows an error in the Console window at the lowercase d in date():
try {Alert(new date())} catch(e) {Alert(e.toString())} finally {Alert("We're Done!")}

Getting Help with a Problem Script


If you have followed all the practices described in this section and you are still not able to get your script to do what you want it to do, consider opening a call with Hyperion Solutions Customer Support at 877-901-4975 or email http://hyperion.com. Hyperion Solutions Customer Support engineers does need to see your actual Interactive Reporting document that contains the script at issue. This is necessary due to the possibility of typos, and because of the relationship between a script and an individual Interactive Reporting document. If your data is confidential, consider duplicating your Interactive Reporting document file using the sample script that ships with Hyperion Intelligence Clients. Alternatively, you might consider saving the file without results, or if results are necessary to the function of the script, you may consider limiting your results sets to only a few rows. To set this option, choose Query > Query Options. The sooner you can locate the problem and the exact point of failure in your script, the sooner Hyperion Solutions Customer Support can analyze the issue and suggest solutions. Be sure to specify in which section of the Interactive Reporting document the problem script resides, and within which control it can be found. Remember that a problem in one script may be as a result of something defined in a different script. Hyperion Solutions Customer Support may need to evaluate your document start up scripts and your Dashboard section scripts, as well as the script in the particular control that is causing the problem. For this reason, we strongly recommend you use the Console.Writeln() method to identify each of your lines of code in each of your scripts to the Console window. This may make the problem self-evident.

102

TroubleShooting Scripts

A N P E X D I

8
In This Appendix

Designing for the Hyperion System 9 BI + Workspace

As the designer of an Dashboard section to be deployed in the Workspace, you have a rich variety of tools to create a professional looking Dashboard dashboards. This section contains aids and known limitations for deploying an Dashboard section on the Workspace.

Architecture of the Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 Highlights of the Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Summary of Design Considerations by Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Chart Sizing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Graphics Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Embedded Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Borders and Background/Font . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 Events. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Client-Side JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Alert Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Guided Analysis and Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Object Model Exclusion List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 User Embedded HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Designing for the Hyperion System 9 BI + Workspace

103

Architecture of the Workspace


The Workspace generates dynamic HTML, providing users with interactive capabilities to their Interactive Reporting documents from a browser interface. Performing actions such as drilling into data, processing for new data, changing chart types, and swinging pivots, instructs the Workspace to generate new HTML pages on demand.

Components
The Workspace is comprised of the following components:

Hyperion Interactive Reporting HTML Servlet This servlet acts as a broker of information between the browser and the Intelligence Service. Hyperion Interactive Reporting Service The Hyperion Interactive Reporting Service is the back-end component that opens and manages Interactive Reporting document documents and renders HTML versions of the documents to send back to the Hyperion Interactive Reporting HTML Servlet. Data Access Service (DAS) The Data Access Service is responsible for and manages all database requests.

Performance
The Workspace offers several performance benefits. With the exception of HTML Pregeneration, the other additionsPartial Document Loading, Multithreading, Distributed Components, and Disk Cachingare transparent and cannot be configured by the end-user. This topic includes the following sections:

HTML Pregeneration Partial Document Loading Multithreading Distributed Components Disk Caching of Interactive Reporting document Documents

104

Designing for the Hyperion System 9 BI + Workspace

HTML Pregeneration
Users are offered an option to pregenerate HTML. Pregeneration of HTML is used to enable higher performance. Instead of opening a Interactive Reporting document file and generating the entire document in HTML on-demand, the HTML for specified sections is retrieved from the repository. The gains in performance are apparent on initial access. This is very useful for frequently accessed pages (however, this feature should not be used when row-level security is used unless care is taken to pre-generate reports appropriate for all users who can access the document). Configuration of this option is available from the Export dialog in Designer/Explorer/web client and the Hyperion System 9 BI + Browse Servlet Workspace Options.

Partial Document Loading


Instead of requiring an entire Interactive Reporting document to always load into memory, only the required sections of a Interactive Reporting document are loaded.

Multithreading
Instead of a single process executing serially on a single thread or several processes executing on multiple individual threads (requiring greater memory overhead), a single process is split up to execute in parts concurrently on multiple threads (in a multitasking or multiprocessing environment) to achieve the same end result.

Distributed Components
Instead of a centralized software system, software components are modularized and deployed anywhere within a network with communication coordinated by messages passed between the components.

Disk Caching of Interactive Reporting document Documents


Instead of requiring disk access for every request of a Interactive Reporting document document, recently read data from disk is stored in memory for faster access.

Highlights of the Workspace


Interactive Reporting features supported in the Workspace:

Drill down, and drill into (Chart and Pivot) Drill anywhere (Chart, Pivot) Swing a Pivot Add and remove totals (Pivot) Add and remove items (Results, Chart, and Pivot)

Highlights of the Workspace

105

Data functions (Chart, Pivot) Add, remove, and modify cume (cumulative) (Chart, Pivot) Surface values (Pivot) Show and hide items in all sections Sorting in all sections Grouping labels (Chart, Pivot) Add and remove grand and break totals (Results) Specify chart type (Chart) Set Legend on XYZ Axis (Chart) Show values (Bar, Pie, Line Charts) Processing of relational and OLAP queries Recognition of document events, Dashboard section events, and most Dashboard object events Interaction with Dashboard controls Most Dashboard embedded section objects Most Dashboard and Report graphics objects Most of the Interactive Reporting Object Model Definition and manipulation of Limits through the Object Model Most web client Adaptive States (only four of the six adaptive states apply to the Workspace product). The Adaptive States Query and Analyze and Data Model and Analyze are not completely available, since only the view, process, and analyze portions of those adaptive states are honored. Also note that Adaptive States override Roles when Roles are defined. When Process All occurs (for Dashboard and Report section) or when the ProcessAll() method is called (for all other sections), the user is prompted for all connection information up front and prior to processing (instead of prompted for connection information following each query process). All error handling goes to log filesthere is no console window equivalent, but most errors are displayed to user. When there are no data items supplied for a section, the browser popup menu is overwritten with a single add item pop-up menu. When a section is empty, a blank content area is displayed.

106

Designing for the Hyperion System 9 BI + Workspace

Summary of Design Considerations by Section


Though much of the functionality in the Interactive Reporting products are available in the Workspace, there are features that are not present either as a result of specification or limitations of the HTML standard. Select a section from the list below to view a summary of features available in the Interactive Reporting that are not available or behave differently in the Workspace, including:

General Features Design and Use Query and Data Model Sections Design and Use Results and Table Sections Design and Use Pivot Section Design and Use Chart Section Design and Use Dashboard Section Design and Use Report Section Design and Use

General Features Design and Use


The Workspace:

Does not support document creation capabilities. Does not support layout definition capabilities. Does not support formatting capabilities (whatever is defined in the published document is displayed, but formatting capabilities are available by way of the object model). Cannot hide/show, insert/delete, duplicate, or rename sections (but this functionality is available by way of the object model). Cannot set or read tools options (i.e. default formats) Does not export to Text, Excel, Lotus, or JPEG formats. Does not support export of Scripts to Text. Does not support native print capabilities, but can print using the browser, Acrobat (PDF format), or by way of the Scheduler. Does not support password-protected documents. Does not support custom menus. Cannot insert, delete, or show page headers/footers. Limited support for the OLAP section from the user interface only support for sort, drillup/drill-down, auto-size width (but additional OLAP functionality is available by way of the object model).

Summary of Design Considerations by Section

107

Query and Data Model Sections Design and Use


The Workspace:

Does not support access to the Data Model section from the user interface (but a user can access sections by way of the object model). Variable limits can be applied, but not programmatically. Defaults automatically to first Join Path when there is more than one Join Path in a Query. Does not support canceling a query. The Query Log and Custom SQL options are not available. A subquery is indented in the Section pane, but it is displayed as a regular query in the Content pane. A subquery cannot be added through the Hyperion System 9 BI + Workspace. If a Interactive Reporting document contains a union query, the first query is displayed. The Request and Filter panes in the Outliner for the union query are read-only. In addition, there is no Union Controller line. A new Union Query section cannot be created. Local Results can be displayed, but a new local result table cannot be created. Derived queries can be displayed, but a new derivable query cannot be created.

OLAPQuery Section Design and Use


The Workspace:

Does not support drill through. Does not support ad-hoc OLAPQuery capabilities from the user interface (but OLAPQuery building is available by way of the object model). Does not support access to OLAPQuery sections from the user interface (but can access sections by way of the object model). Does not support any kind of limits from the user interface (but can access by way of the object model). Variable limits can be applied, but not programmatically. Does not support canceling a query.

Results and Table Sections Design and Use


The Workspace:

Does not support importing of Results sets. Does not support sorting of computed columns based on order functions. Cannot show or hide row numbers. Cannot insert, delete, or modify computed columns (but can do by way of the object model). Does not support column-grouping capabilities.

108

Designing for the Hyperion System 9 BI + Workspace

Does not support suppression of duplicates. Does not support setting of spotlighter conditions (whatever is defined in the published document is displayed, but formatting capabilities are available by way of the object model). Does not support enabling of grid lines, borders, or background (whatever is defined in the published document is displayed, but formatting capabilities are available by way of the object model).

Pivot Section Design and Use


The Workspace:

Does not support drill-to-detail. Cannot insert, delete, or modify computed columns (but can access sections by way of the object model). Cannot change or restore pivot label names. Does not support manual refresh of data (but can access sections by way of the object model). Cannot enable pivot data label or corner label. Does not support Chart-This-Pivot function. Cannot set or remove pivot page breaks.

Chart Section Design and Use


The Workspace:

Does not support drill-to-detail. Does not support resizing of individual Chart components. Cannot insert, delete, or modify computed columns (but can access sections by way of the object model). Does not support manual refresh of data (but can access sections by way of the object model). Does not support Pivot-This-Chart function. Cannot select the chart legend. Cannot specify chart legend location in chart. Cannot reorder items in chart. Cannot change or restore chart label names. Cannot rotate pie chart.

Summary of Design Considerations by Section

109

Dashboard Section Design and Use


The Workspace:

Cannot access Dashboard design mode. Cannot define Dashboard tab order (whatever is defined in the published document is the order). Does not support Dashboard embedded section objects that are active; they behave like hyperlink property. Does not support Dashboard embedded section objects that are view-only with AutoSize=OFF; they behave like hyperlink property. Does not support the following events: OnRowDoubleClick (Active ESOs), DoubleClick (ListBox), OnChange (TextBox), OnEnter (TextBox). Does not support the following graphics objects: diagonal line, round rectangle, or oval. An automatic substitution of graphics objects occurs: diagonal line is replaced with line, round rectangle is replaced with rectangle, and oval is replaced with rectangle. Does not support text label object alignment and rotation properties. When using the DropDown control, the OnSelection event is not executed if the first selection made by the user is the first item on the listthis is an HTML limitation. To resolve the problem, select any other item prior to selecting the first item, or make the first item in the DropDown a blank entry. Command Button text wrap is only available when using Internet Explorer; it is not available when the 508 Accessibility feature is enabled or when using other web browsers.

Report Section Design and Use


The Workspace:

Does not allow an end user to build or layout reports. Does not support the following graphics objects: diagonal line, round rectangle, or oval. An automatic substitution of graphics objects occurs: diagonal line is replaced with line, round rectangle is replaced with rectangle, and oval is replaced with rectangle. Does not support text label object alignment and rotation properties. Data Path field is set to local path.

Creating a Pre-Defined Drill-Down Path


You can set up predefined drill-down paths for use in the Workspace to proceed directly to the next level of detail as defined in the Data Model. A drill-down path is associated with a dimensional table, which consists of numerous attributes about a specific business process, such as a product line or geographical location. As the designer, you specify the order or relation of items that users drill down into when performing Chart or Pivot analysis.

110

Designing for the Hyperion System 9 BI + Workspace

Topic items in a dimensional table become part of the pre-defined drill-down path based on the order they appear in the dimension. You can flag any individual item as a fact value which excludes it from the drill-down path. Unlike the equivalent feature in Designer, there is no option to include a missing item in the Pivot and Chart items if it has not been defined in the drill-down path. In the Hyperion System 9 BI + Workspace the drill-down path is accessed by the shortcut menu item: Drilldown into (ITEM_NAME). Any drill-down path deployed in the Workspace is not context-sensitive from a label (unlike the Designer version of the drilldown path). When an end user selects the drill-down from the shortcut menu, all available drill-down paths are displayed. Each drill-down path shows the topic item which is being drilled down into, and the label item from which it was drilled. An item that has been drilled into adds the returned value as a new Pivot or Chart label item automatically. The definition of the drill-down path originates in the Data Model or Query tables. You can modify topics items to identify them as are dimensional or fact values. Dimensional values can be used in a drill path; fact values can not. All Pivots and Charts sections derived from a Data Model that includes a drill- down path, also inherit the definitions. This feature may be used to augment the existing Drill Anywhere option in the Interactive Reporting Studio and Interactive Reporting Web Client, or the administrator can choose to disable Drill Anywhere, and leave users the ability to drill up and down this pre-defined path only.

To define a drill-down path in the Query or Data Model section:


1 Click the topic window header to select it. 2 Choose View > Properties.
The Topic Properties dialog box is displayed. By default, topic items display in the order in which they are defined in the underlying table. You can modify topics to hide selected items, or you can change the item order.

3 Define the drill path:


Click Sort to sort all items alphabetically. Click Hide All and Show All to toggle the display of all items in the topic.

4 Click Set as Dimension to establish the item order in which a user can drill-down during Chart or Pivot
analysis.

The order of the drill path is defined under Items to Display. Click the Up and Down buttons to move selected items up or down in the topics list.

5 When you have defined the drill-down path, click OK.

To eliminate an item from the drill-down path:


If you intend to use a topic item on the Request line, but eliminate it from the drill down path, be sure to add the topic to the Request line before completing the steps below.

1 Select the table to which the item belongs and click Properties on the shortcut menu.
The Topic Item Properties dialog box appears.

2 Select the item from the Items to Display list and double click the item
The asterisk (*) displayed to the left of the topic item is removed.

3 Click OK.
Creating a Pre-Defined Drill-Down Path

111

Chart Sizing
When working with Charts in Interactive Reporting, there are multiple rectangular regions. By default, there is one "global" rectangular region, referred to as the "size object." Normally the "graphic object," which contains the Chart itself, fits inside the size object, as do other objects (such as those holding the Chart legend and the Chart labels). By manipulating the relative sizes of these objects, it is possible to affect the rendering of the chart in HTML format (in the Workspace, export the section as HTML or JPEG), causing clipping of the elements. To avoid clipping the HTML-rendered chart, ensure that all the chart elements fit inside the global object. (You can see the rectangular outline of these objects by clicking on various portions of the chart.)

Locating Errors
When a script fails to execute due to a syntax or runtime error, it becomes necessary for you to debug the code. Finding errors may take time depending on the length and complexity of the code. One way to reduce the number of errors is prevention. You prevent errors by observing the protocols that JavaScript requires. For more information, see TroubleShooting Scripts on page 95.

Console Window
The Console window, which is used to display the buffer of all errors and is often used as a means for debugging, is not available from the Workspace user interface.

Error Logs
The Workspace displays errors to an.HTML dialog box or generates an entry to one of the error logs. The error logs included the following:

Hyperion Interactive Reporting BI1 [server] log Hyperion Interactive Reporting Data Access Service [server] log Hyperion Interactive Reporting DAServlet log Hyperion Interactive Reporting HTMLServlet message log

For information about interpreting any of the above logs, consult with the Hyperion Solutions Customer Service Department.

try-catch block
You can also test the usefulness of syntax or isolate a sequence of steps in a complicated script, by using the try_catch block. See Bypass Errors on page 101 for more information.

112

Designing for the Hyperion System 9 BI + Workspace

Controls
Control objects can be inserted into an Dashboard section to provide users with a way to interact with the application dynamically. Interactive Reporting document documents created for displaying support the following controls:

Command Button Radio Button Check box List Box Drop Down Text Box Embedded Browser object Hyperlink object

Control Object Properties


Basic object properties such as name, visible, auto-size, etc., are accessible through the Object Model, but not through the Workspace user interface. Some limitations do apply to control properties as described in Table 14.
Table 14

Special Considerations for Control Objects Control Object Property Behavior Text wrap is only available in the Internet Explorer browser. Text wrap in a command button is not available when the 508 Accessibility feature is enabled.
Note: In Netscape7, a command button with a multi-line title property is not text wrapped when viewed through the browser using the Workspace.

Control Object Command Button

Drop Down

The OnSelection event does not fire when the first selection from the dropdown is the first item on the list. It is recommended that you enter a blank entry for the first item or instruct users not to select the first item of the list as a first selection. The OnEnter and OnChange events do not fire from the Workspace.
Note: A dashboard text box with the password property set to TRUE and viewed in the Workspace displays only the bottom half of the cursor in the very top of the text box. It should display an asterisk (*) for each character typed. All functionality remains intact. This is a visual issue and behaves incorrectly only with Netscape browsers.

Text Box

Graphics Objects
End users can display graphics in a document from the Workspace, but cannot insert them into an Dashboard section from the Workspace As a designer the following graphics are available for you to use in the Workspace document as shown in the. If you have existing object that is not supported in the Workspace, either substitute or omit altogether these graphics altogether.

Graphics Objects

113

Table 15

Special Considerations for Graphic Objects Properties Overline effect, doubleoverline effect, vertical and horizontal rotation, vertical and horizontal rotated up and down rotation. n/a n/a n/a n/a n/a Picture Clip Effect (upper left corner clip of the image), Picture Tile Effect

Graphic Object Textlabel Line Horizontal Line Rectangle Round Recanted Oval Picture

Note: All graphics support the OnClick event.

Borders and Background/Font


The Workspace enables you to apply the border and background and font properties for graphic objects in the object model, but these properties cannot be modified by the end user viewing the document on the Workspace.

Embedded Objects
A Results, Pivot, Chart, Table and OLAP section can be embedded in any Interactive Reporting document intended for viewing in the Workspace. Embedding inserts the display of that section directly into the work area, and keeps live with the data content that the original section is based. Currently, there are two properties which define the level of end user interaction with an embedded section:

View only Enables viewing of static reports only. A static report is the visual drawing of the report. It is displayed as currently defined in the native report section, but it is a visual display only (it is displayed as a thumbnail in the Dashboard section). The user has no interaction capabilities with the report. Hyperlink Enables users to easily navigate to the original section from the embedded section by clicking the thumbnail in the Dashboard section

The Active property, available in the Designer/web client, is not enabled for an embedded section in the Workspace. If the embedded section has the view only property set, the following object properties apply:

114

Designing for the Hyperion System 9 BI + Workspace

If the "Scrollbars Always Shown" property of the embedded section is enabled, vertical and horizontal scrollbars display adjacent to but outside the defined object's container boundary and does not obstruct the object. Vertical and horizontal scrollbars are always present. If the scrollbar property for the embedded section object is not set, vertical and horizontal scrollbars display only when the object has focus (when the user selects the object). The scrollbar is adjacent to but outside the defined object's container boundary and not obstruct the object. The scrollbars continue to show until the user applies focus to another object, selects a toolbar button (other than the Workspace paging toolbar buttons) or until the Dashboard section is exited. Scrolling of the object using either of the object's scrollbars (vertical or horizontal) scroll only the current page of the parent section. If Auto-Size is enabled, the object data is scaled to fit within the object's container boundary and no scrolling of the object is enabled.

For each of the following sections below, the view only embedded section object behaves accordingly:

Results/Table Selection of any columns, rows or column titles is not permitted. No Workspace speed menu options which typically display for the Results/Table section are available for the object. OLAPQuery/Pivot Selection of any report cells or handles is not permitted. No Workspace speed menu options which typically display for the OLAPQuery and Pivot section selections are available for the object. Chart Selection of any labels, bars, lines or pie slices is not be permitted. No Workspace speed menu options which typically display for the Chart section selections are available for the object.

Embedded section objects use the following paging standards:

If the parent section has multiple pages and the embedded section object has focus, the Workspace toolbar paging buttons become enabled so that you can use paging feature. Selection of these toolbar buttons cause the updated page view to display within the embedded section object borders. This paging of the embedded section is independent of the parent section paging. The paging of each embedded section is also independent of other embedded section objects in the same dashboard section which share the same parent section. Hyperlink objects cannot have page view updated. Hyperlink objects are displayed in a new tab in the Workspace if the content of the object is derived from the repository and you set the object to display in the top window. If you select the current window and the content is from the repository, the repository content replaces the content of the current tab. Otherwise, the content is displayed in a new window. If an action is performed on the parent section which causes the current page view of the embedded section object to be no longer valid, the embedded section object view returns to the next valid page.

Embedded Objects

115

Other actions performed on the parent section which are not related to paging, such as column modification, or formatting, are always propagated to all of the child embedded section objects (regardless of active page or embedded section object mode). The embedded section object in these cases keep their current page views. Because the display of the embedded section object scrollbars can display outside of the object's defined boundary, designers including the embedded section objects in their Dashboard sections need to take care in placing other objects or controls in the area where these scrollbars are drawn to avoid obstructing them. When you connect to a machine to start the BI Service on Windows, make sure the color property setting for the display is 16-bits or higher. If the color property setting is less than 16-bits, users may encounter extremely long response times when opening Chart sections of Interactive Reporting document documents. This is an important pre-startup step, especially when starting the services remotely (for example using VNC, Terminal Services, Remote Administrator or Timbuktu, etc.), because many remote administration clients connect with only 8-bit colors by default.

Events
The Interactive Reporting Studio and Interactive Reporting Web Client have events that can fire in an Interactive Reporting document, generally as the result of user activity. These events are defined within three groups: Document, Dashboard Section, and Dashboard Objects. When deploying a document for use on the web, consider the specific characteristics of each of the events you intend to add to your document. Specifically, you need to evaluate how the event behaves with a Interactive Reporting document which contains pre-generated sections. For example, a document section may have pregenerated html. Typically, a designer pregenerates the html for a section to improves the initial response of a section (since the BIService is not accessed).

Document Events
All Document Events are supported including:

OnStartUp (Document) Event OnShutDown (Document) Event OnPreProcess {Document) Event OnPostProcess (Document) Event

Document events can be explicitly turned on or off. For more information, see Document Events on page 116.

116

Designing for the Hyperion System 9 BI + Workspace

Dashboard Section Events


All events associated with the Dashboard section are supported, including the OnActivate and OnDeActivate Events.

Dashboard Object Events


Dashboard object events which are supported include:

OnClick OnExit (TextBox control only. The OnExit event does not execute when a user navigates from a TextBox to a neutral region. A neutral region is defined as any content area that is not a control or graphic). OnSelection (DropDown control only)

Non-supported events include:


OnRowDoubleClick (Active Embedded objects) OnDoubleClick (ListBox) OnChange (TextBox) OnEnter (TextBox)

Note: The OnRowDoubleClick Event is not supported at this time since Active embedded objects

display only as hyperlinked embedded sections in the Workspace.

Client-Side JavaScript
Client-side JavaScript enables you to designate scripts that run in the clients browser session. It is a useful tool when you need to validate form information, enabling a fast response to a mouse click, form input and page navigation. For example, you can script a JavaScript function on the HTML page to confirm that users have typed valid information such as an address and telephone number. The embedded JavaScript checks the information and can display a dialog if the information is invalid without any server response. The server is still tasked to validate non-scriptable browser functions; however; client-side JavaScript enables you to avoid form redrawing, server processing and the download of data especially if an HTML page has high traffic.
Note: Non-supported Object Model methods and properties associated with OnClientXXX event scripts are ignored by MicroSoft Internet Explorer and Safari. When Netscape7 and Mozilla encounter non-supported Object Model methods and properties, the remainder of the script does not execute. Only the following methods and properties in the Object Model can be associated with OnclientXXX scripts:

TextBox.Text TextBox.Enable TextBox.Visible

Client-Side JavaScript

117

TextBox.Font TextBox.Scrollable TextBox.Name TextBox.Password TextBox.Type

Client Status
Client-side JavaScript instructs the server code to run or not by the following status indicators:

ActiveSection.ClientScriptStatus Object.ClientScriptStatus

For example, if the client-side JavaScript (which might be activated by a command button) determines that a user did not check an option or entered alphabetic data instead of numeric, the server side JavaScript does not run until the user types the correct data. Use the ActiveSection.ClientScriptStatus status indicator when you need to coordinate an action between objects. This indicator takes a Boolean value. Use the Object.ClientScriptStatus status indicator to initiate an action for an independent objects. The object in the Object.ClientScriptStatus status indicator is replaced with the objects name such as CommandButton1.ClientScriptStatus (object does not exist on its own). This indicator also takes a Boolean value. Note that an independent object is still subject to the script status settings of the ActiveSection The behavior of the status indicators settings is shown below.
Table 16

Status Indicator Settings ActiveSection.ClientScriptStatus Initialization occurs when a server side script completes. For client-side script run in the Workspace, this occurs when the browser page is refreshed. For client-side script run in the Interactive Reporting Studio and Interactive Reporting Web Client, this occurs at the conclusion of a server side scripts execution, even if the page is not redrawn. Object.ClientScriptStatus Initialization occurs when the client-side script for the object starts to run.

Indicator Value True

False

No server side script is executed.

No server side script is executed.

For example, consider a dashboard with a user ID, password, Submit, and a Cancel button. The password text field contains a client-side script that enforces at least a 6 character long, alphanumeric password.

118

Designing for the Hyperion System 9 BI + Workspace

If the ActiveSection.ClientScriptStatus were set to false, and if the user clicks Submit without typing the correct password, the client-side script does not send the invalid password to the server. However, the Cancel button could reset the ActiveSection.ClientScriptStatus to true and enables any cancel logic which has been implemented at the server level to run.

Client-Side Events
The Client-side events display in the Event Trigger dropdown of the Script Editor. All events shown below are executed in the Workspace browser, and not on the server.
Table 17

Client-Side Object Level Events Objects Supporting Event Controls:command button, radio button, check box, list box, drop-down list, text box Controls: List box Control: Text Box Control: Text Box Control: Drop Down Action That Invokes Event Clicking a control. Clicking a control. Entering a text box. Leaving a text box. Selecting an item in a drop down

Event
OnClientClick

OnClientDoubleClick OnClientEnter OnClientExit OnClientSelection

Table 18

Client-Side Events Associated with Control Objects Event


OnClientClick OnClientClick OnClientClick OOnClientClick, OnDoubleClick OnClientClick, OnClientSelection OnClientClick, OnClientEnter, OnClientExit,

Control Object Command Button Radio Button Check Box List Box Drop Down Text Box

Text Box Events and Properties


Designers can use the events and properties of a Text Box when creating client-side JavaScript. Events that have both client and server side components both run, but the server side events of Text Boxes do not execute in the Workspace. Both client and server side events of text box run in Interactive Reporting Studio and Interactive Reporting Web Client. The properties of Text Boxes that are exposed to Client-Side JavaScript are:

TextBox.Text TextBox.Enable

Client-Side JavaScript

119

TextBox.Visible TextBox.Font TextBox.Scrollable TextBox.Name TextBox.Password TextBox.Type

Alert Dialog
The Workspace supports the use of an alert dialog box. This dialog box is a modal window that displays a message to the end user. It includes an OK button for the user to close the dialog. Before the user can continue with other work on the browser, the dialog box must be dismissed. In the Workspace, the alert dialog box is displayed as a full web page. The Alert() method can be called from any supported event, with the exception of OnStartUp and OnShutDown events. Up to three buttons can be displayed on the dialog with custom names. When the user selects a button, an integer is returned corresponding to the number of the button. If the user selects button #1, the number 1 is returned and so on. The syntax used to create the alert dialog in the object model is:
Expression.Alert(Prompt As String, [Title As String], [Button1Text As String], [Button2Text As String], [Button3Text As String]) As Integer

Toolbars
Control of what toolbars display for the Workspace versions of an Interactive Reporting document is governed by the Toolbars collection in the Interactive Reporting Object Model. Toolbars can be hidden from view to limit the users ability to control the Interactive Reporting document or displayed as needed. For example, the Standard and Format toolbars can be hidden when the Interactive Reporting document is opened. Toolbars can also be added to the display to extend the users ability to navigate should other navigation means be restricted. This feature is available by way of the Navigation toolbar. All methods and properties, including all individual collection object properties, of the Toolbars collection are at your disposal for displaying or hiding toolbars in the Workspace. Note the Toolbar collection objects do not have any associated methods.

120

Designing for the Hyperion System 9 BI + Workspace

Excluded Objects
The Toolbars collection objects which are not necessary for use in the Workspace session include:

Toolbars["Formatting"] Toolbars["Section"] Toolbars["Navigation"]

If any of the Toolbars collection objects have their associated properties accessed from the Workspace, the script command is ignored, no exceptions are thrown, and the script continues.

Interactive Reporting Toolbar


The Interactive Reporting toolbar is specific to those features used exclusively for Interactive Reporting documents and includes the following icons.

11 10 9 8 7 6 5 4 3 2 1

Table 19

Interactive Reporting Toolbar in the Workspace

Element Number 1 2 3 4

Element Name Data Layout Dashboard Home Current Page Page Left

Description Enables the Data Layout feature for the document. Displays the Dashboard Home section. The Dashboard section is a streamlined, push button approach to viewing business intelligence reports. The tooltip shows the current page of the document. Moves one page in the left direction in the report sections. To move to the first page in the left direction, select [Shift] + Click + left arrow. In the Chart section, this icon enables you to move one view in the left direction. Moves one page in the up direction in the report sections. To move to the top view, select [Shift] + Click + Up arrow. In the Chart section, this icon enables you to move one view up. Moves one page in the down direction in the report sections. To move to the bottom page, select [Shift] + Click + Down arrow. In the Chart section, this icon enables you to move one view down.

5 6

Page Up Page Down

Toolbars

121

Table 19

Interactive Reporting Toolbar in the Workspace (Continued) Page Right Moves one page in the right direction in the report sections. To move to the first view in the right direction, select [Shift] + Click + right arrow. In the Chart section, this icon enables you to move one view right. Refreshes only the current section against the database server to dynamically retrieve the most current data set, with the exception of the Dashboard and Report sections. When the Refresh command is selected in the Dashboard and Report sections, all queries in the document are refreshed. Queries are refreshed in the order in which they are displayed in the section catalog of the full client. For example, in a document with three queries, Query1, Query2, and Query3, the queries are executed in that order when Refresh All is pressed. Exports a section to Portable Document Format (PDF) and launches it inside your browser if the PDF MIME type is set in your browser. The PDF format is created by Adobe and can be viewed outside of your browser if you have Adobe Acrobat Reader installed. Adobe Acrobat Reader can be downloaded from Adobes web site at http://www.adobe.com/products/acrobat/readstep.html. If the PDF MIME type is not set in the browser, the browser Save As dialog is invoked. Exports a section to MS Excel and launches it inside your browser if the mime type has been set to recognize the XLS file extension Thereafter, saving the file locally or manipulating the file is all done by way of the MS Excel application. If the mime type is not set to recognize the XLS file extension, you are prompted with a Save As Dialog and must specify a local destination to save the XLS file for future viewing of the data with the MS Excel. Saves the file locally and launches the document in the Interactive Reporting Web Client so that you can view and save the Interactive Reporting document t to your desktop for offline viewing. The Interactive Reporting document can only be viewed by the full desktop or web client. If the web client has not been installed, the browser is launched automatically.
Tip: If you want to save the document to the Repository, use the File > Save or File > Save As command.

Refresh

Export to PDF

10

Export to XLS

11

Save

Paging Icons
Depending on how a report was designed, you may see an abbreviated version of the Interactive Reporting toolbar referred to as the Paging toolbar. This version of the Interactive Reporting toolbar contains the appropriate navigation controls for moving around the report. The Toolbars collection Standard object has the associated Properties:

Toolbars["Standard"].Visible Toolbars["Standard"].Name Toolbars["Standard"].Type

Paging Toolbar
The Paging toolbar is an abbreviated version of the Workspace standard toolbar and consists of the section paging controls (First Page, Previous Page, Next Page, Last Page) and the current page indicator text (Page X of Y). The buttons behave in the same manner and become active just as the like buttons of the Workspace Standard toolbar. The Paging Toolbar looks as follows:

122

Designing for the Hyperion System 9 BI + Workspace

Page Left Page Up Page Down Page Right

The Toolbars Collection Paging object has the associated Properties:


Toolbars["Paging"].Visible Toolbars["Paging"].Name Toolbars["Paging"].Type

The Paging toolbar type is available as a constant value in the BqToolbars group. If you try to access the Paging toolbar in Designer or web client, the script command is ignored, no exception thrown, and the script continues.

Event Controls for Toolbar Display


The Object Model commands for toolbar display have full control on which toolbars display in an Workspace document or are defined for an embedded section in the Personal Pages. The following script commands can be executed using any of the Object Model supported trigger events within the Workspace for the display of toolbars:

Document Scripts Trigger Events (OnStartup, On Shutdown, OnPreProcess, OnPostProcess) Dashboard Section Display Trigger Events (OnActivate, OnDeactivate) Dashboard Object Trigger Events (OnClick, OnSelection, OnExit)

The Workspace Document Display


The general rules governing the display of the Standard and Paging toolbars are:

Only one of the two Workspace toolbars can be displayed at any given time. If any scripts are executed which set both toolbar Visible properties equal to true, only the latter script execution is reflected in the display, and the visible property of the former is returned to false. It is possible that no toolbars are displayed in the Workspace. The Page X of Y field displays the current page of the section with an unknown Y value until the you navigate to the last page of the section. If you use the SHIFT + toolbar button combination to navigate to the last page, all pages are generated and the Page # tooltip icon shows the correct page position and total page value. Subsequent navigation continues to show the current and total page numbers, and persists for the entire session.

Toolbars

123

If the section has fields in the section that show the 'Page x of y' value, these fields match the page # toolbar icon tooltip.If the Interactive Reporting document file is saved without the Results from which the section is derived and the Interactive Reporting document file is process, only the first page is generated. This icon is informational only. These rules are consistent with the current rules enforced by the Personal Page Display Properties radio buttons (see below).

Personal Pages
The display of toolbars for Personal Pages using the Interactive Reporting Object Model script commands supersede any toolbar display settings which are specified by the Personal Pages owner. The document designer, and not the Personal Pages owner, should determine which functionality and options of the document are available to the end user. Script commands to show or hide toolbars for the embedded Interactive Reporting document sections within the Personal Pages are executed even if these script commands alter the Personal Pages owner's toolbar display selection. If no Object Model script commands governing the toolbar display are contained in the Interactive Reporting document, the Personal Pages toolbar display selections are enforced.

Pre-Generated HTML
Changes in the toolbar display are not supported when Interactive Reporting document documents are published and pre-generation of the section HTML is selected. Since the Object Model script commands which would govern the display of the toolbars are not executed at publish time, the pre-generated HTML for each of the sections contain the Standard toolbar.

Section 508 Compliance


The following Section 508 Compliance behavior exists for toolbars in the Interactive Reporting document:

The first page line (invisible link) is reached by the Alt+H keystroke regardless of the toolbar present on the page or which toolbar is shown. The invisible link enables a user to skip the entire Paging toolbar. ALT text for all toolbar buttons on the Paging toolbar is included. When in 508 Compliant mode, the Toolbar Collection Object Property Visible must show/hide the correct version of the Standard or Paging toolbar.

124

Designing for the Hyperion System 9 BI + Workspace

Accessibility
The Accessibility property enables designers of Dashboard section to display an alternate Dashboard section and. or object which can be more accessible to disabled user. This Accessibility property is a read-only boolean (true/false) and exists as a Document Collection Object property as shown below:
Document[<collection index value or document file name>].Accessibility ActiveDocument.Accessibility

The setting of this property is determined by the '508 Compliance Preferences' user setting set in the Browse Publish application and persists for the duration of the Interactive Reporting document session. The property is not persisted with the document.

Primary Use Case


The Accessibility property is set when a user with the Accessibility option enabled ('508 Compliance Preferences' setting) selects a document link from the document list for display in the Workspace. The rules governing which boolean value applies to the property are cited below: If you select a document from his/her document list and:

The Accessibility option is enabled in the Browse Publish application, the property is set to TRUE The Accessibility option is disabled, the property is set to FALSE

The default value for this property is FALSE. The property is not set when selections are made on the web client document link, regardless of the user's Accessibility status as web client is not Section 508 compliant.

Guided Analysis and Reporting


Guided Analysis and Reporting enables you to select a point-of-view (POV) context from one Hyperion product and seamlessly pass that same context for immediate use in another Hyperion product. Guided Analysis and Reporting eliminates the need for you to launch the secondary product and drill down to the same POV context by placing the secondary product in the context selected from within the first product. For example, if you are navigating through a bar chart in Hyperion Analyzer and require comparable information from a relational data source, you can select a bar on the chart (as the POV) and choose the Related Content option. Depending on the type of link established at design time, an Interactive Reporting document Interactive Reporting document is launched or you are prompted navigate to a specific Interactive Reporting document. In either case, the Workspace launches the Interactive Reporting document and shows a relational chart depicting the POV sent from Web Analysis.

Guided Analysis and Reporting

125

In another case, you might review a published report and need further analysis. Again using the POV from a grid, you can select the Related Content option and view related information display POV sent from Reports, such as OLAP or relational data sources. Behind the scenes on the Hyperion Analyzer and Hyperion Reports, a direct or embedded link is defined, and the designer selects a Interactive Reporting document to which to send the POV. When a Interactive Reporting document is selected, a SmartCut is created and the Workspace client is invoked. A SmartCut is a link in the form of a special URL to an item in the Hyperion Foundation Repository. In this case, the Smartcut includes parameters defining the POV.
http://Aserver.hyperion.com/Hyperion/browse/get/AFolder/Test.bqy?store=2 1&product=A&year=2003

Processing the Point of View (POV)


As a designer of POV linked Interactive Reporting document documents, you provide a script to parse the SmartCut, identify the relevant POV information, navigate the Interactive Reporting Object Model, and apply the POV values where and if appropriate.

To process a POV:
1 Get the SmartCut for the Hyperion Analyzer or Hyperion Reports document. 2 For all known Interactive Reporting document documents published to the Repository (and thus, exposed
to Hyperion Analyzer and Hyperion Reports to select as documents to pass POV information), provide an OnStartUp script that does the following:

Parse the SmartCut using JavaScript and the Object Model Sessions object. Identify the POV parameters and assign to global variables. Traverse the Object Model tree and apply applicable values where and if appropriate.

Parsing a SmartCut
3 Use Sessions object in the Object Model to parse the SmartCut. 4 Extract all relevant data and store in global variables.
Here is an example of using the Session object to extract values from the sample SmartCut above:
var store_id = Session.URL.Item(store); var product_id= Session.URL.Item(product); var year_id= Session.URL.Item(year);

Traverse the Object Model Tree


5 Starting from the root of the Object Model Tree, traverse relevant branches/nodes. 6 Apply values to relevant properties.

126

Designing for the Hyperion System 9 BI + Workspace

Best place for this is code is the OnStartUp event/script. Here is an example of traversing a Query section branch in the Object Model tree and then applying storied as the limit on a query:
//gets the store id value from the SmartCut var A_Limit=Session.URL.Item('store_id'); //identifies query section to work with var QuerySect=ActiveDocument.Sections["Query"]; //checks all limits till the appropriate one is found and applies limit for (i=1; i<=QuerySect.Limits.Count; i++) { if (QuerySect.Limits[i].Name=="Store") QuerySect.Limits[i].SelectedValues.Add(A_Limit) } ActiveDocument.Sections["Query"].Process()

Object Model Exclusion List


This section provides a list of those objects, methods and properties that you cannot reference when you design a Interactive Reporting document for use with the Workspace. The objects methods and properties below have no affect in the Workspace environment. When a method or property on this list is encountered in a script, a warning is entered in an error log file and execution of the script continues if possible. If you need to include the syntax shown below, be sure to include it in a Interactive Reporting document designed for desktop viewing.
Note: The Object Model Exclusion list applies to any operation dependent on the BQ Service, which includes Interactive Reporting document jobs as well.

ActiveDocument.Close() ActiveDocument.SetODSPassword() ActiveDocument.ODSUsername (Set only) ActiveDocument.Save() ActveDocument.SaveAs() ActiveDocument.Sections[SectionName].Copy() ActiveDocument.Sections[SectionName].PrintOut() ActiveDocument.Sections[Chart].XLabels.DrillInto() ActiveDocument.Sections[Dashboard].Shapes[TextBox1].OnChange() ActiveDocument.Sections[Dashboard].Shapes[TextBox1].OnEnter() ActiveDocument.Sections[Dashboard].Shapes[ListBox1].OnDoubleClick() ActiveDocument.Sections[Dashboard].Shapes[Results1].OnRowDoubleClick()

Object Model Exclusion List

127

ActiveDocument.Sections[OLAPQuery].Slicers.Add() Only the case where the last argument VariableSlicer=TRUE. Ignores the last argument, always defaulting to VariableSlicer=FALSE ActiveDocument.Sections["Query"].DataModel.Connection.DBLibAllowChangeDatabase ActiveDocument.Sections["Query"].DataModel.Connection.DBLibApiSeverity ActiveDocument.Sections["Query"].DataModel.Connection.DBLibDatabaseCancel ActiveDocument.Sections["Query"].DataModel.Connection.DBLibPacketSize ActiveDocument.Sections["Query"].DataModel.Connection.DBLibServerSeverity ActiveDocument.Sections["Query"].DataModel.Connection.DBLibUseQuotedIdentifiers ActiveDocument.Sections["Query"].DataModel.Connection.DBLibUseSQLTable ActiveDocument.Sections["Query"].DataModel.Connection.SaveWithoutUsername ActiveSection.Shapes["Pivot1"].CellValue Application.CreateConnection() Application.DoEvents() Application.LoadSharedLibrary() Application.Shell() Application.Quit() Console.Write() Console.WriteLn() Document.Close() Documents.Modified Documents.Open() Documents.PromptToSave JOLE Objects Session.Active Session.Form.Add() Session.Form.Item() Session.URL.Add() Session.URL.Item() Session.Cookies.Add() Session.Cookies.Item() Dashboard Export to HTML (Dashboards only exports .JPG in other client applications)

The following properties do not have any user interface effect in the Workspace, but the values set must be retained as part of the Interactive Reporting document.

128

Designing for the Hyperion System 9 BI + Workspace

In the event that the Interactive Reporting document is saved locally for use with other Interactive Reporting applications, any changes made from the Workspace should be reflected. When encountered in a script, the methods and properties on this list do not cause an entry in an error log file and execution of the script continues.

ActiveDocument.ShowSectionTitleBar ActiveDocument.Sections["Query"].DataModel.Connection.SaveWithoutUsername ActiveDocument.Sections["Query"].DataModel.Connection.ShowMetadata ActiveDocument.Sections["Query"].DataModel.Limits["Year"].VariableLimit ActiveDocument.Sections["Query"].DataModel.MetaDataConnection.SaveWithoutUsernam e ActiveDocument.Sections["Query"].DataModel.MetaDataConnection.ShowMetadata ActiveDocument.Sections["Query"].DataModel.ShowIconJoins ActiveDocument.Sections["Query"].Limits["Quarter"].VariableLimit ActiveDocument.Sections["Query"].SaveResults ActiveDocument.Sections["DataModel"].DataModel.AutoJoin ActiveDocument.Sections["DataModel"].DataModel.Connection.SaveWithoutUsername ActiveDocument.Sections["DataModel"].DataModel.Connection.ShowMetadata ActiveDocument.Sections["DataModel"].DataModel.Limits["Year"].VariableLimit ActiveDocument.Sections["DataModel"].DataModel.MetaDataConnection.SaveWithoutUser name ActiveDocument.Sections["DataModel"].DataModel.MetaDataConnection.ShowMetadata ActiveDocument.Sections["DataModel"].DataModel.ShowIconJoins ActiveDocument.Sections["Dashboard"].Shapes["EmbeddedSection"].ScrollbarsAlwaysShow n ActiveDocument.Sections["Dashboard2"].Shapes["EmbeddedSectionResults"].ShowOutliner ActiveDocument.Sections["Dashboard2"].Shapes["Embedded"].ShowRowNumbers Application.ShowMenuBar Application.ShowStatusBar Application.StatusText Application.Visible Application.WindowState BqFontEffectOverDouble BqFontEffectOverLine BqFontEffectStrikeThru BqFontEffectSuperScript BqFontEffectSubScript Toolbars["Formatting"].Name

Object Model Exclusion List

129

Toolbars["Formatting"].Type Toolbars["Formatting"].Visible Toolbars["Sections"].Name Toolbars["Sections"].Type Toolbars["Sections"].Visible Toolbars["Navigation"].Name Toolbars["Navigation"].Type Toolbars["Navigation"].Visible

Some methods in the Object Model invoke (or can be set to invoke) a dialog. The Workspace suppresses most dialog prompts and assumes the default selection. Three dialogs are supported in 8.2Logon, Variable Limit, and Alert. For object model methods where local path information is required, the user must provide the absolute network path. The user name and passwords associated with .OCEs are used regardless of scripted values if an explicit prompt for the information from the user (i.e. Connect()) is not called. If an explicit prompt is called, the user supplied scripted values are used. If scripted values are not available when an explicit prompt is called, the process should behave as if no user name or password is provided.

User Embedded HTML


You can embed images such as GIFs or JPEGs, and hypertext links in table and pivots cells. Embedded data can be viewed in Workspace, and documents to be exported to HTML pages. User embedded HTML is written as is in the Workspace source code wherever the corresponding text would normally display using the function wrapper @HTML(<html image/link>). How the function wrapper gets added to the text is a customer implementation choice. For example, if the HTML you want to use is stored in an Oracle database column entitled HTMLDATA, you might add the following computed item to their Request line: @HTML( || HTMLDATA || ) where || is Oracles string concatenation operator. This method could also generate a computed item in Results. If you want a report header or an Dashboard page to contain a hard coded link, such as one to their corporate home page, you could type in the following literal string into a Text Label Field: @HTML(<a href=http://www.hyperion.com>Company Web site</a>) Hyperion reserves the right to change the format of the Workspace source code in future releases, but continue to support the following features:

an embedded hyperlink in a table/pivot cell an embedded image in a table/pivot cell

130

Designing for the Hyperion System 9 BI + Workspace

In addition the Interactive Reporting Studio and Interactive Reporting Web Client cannot guarantee the format or appearance of a cell data adjacent to a cell in which the HTML has been defined by the user. If you define HTML in a cell to be viewed in a non-HTML context (such as web client, Designer or Explorer), any embedded information is displayed as text.

To embed your own image or hyperlink into a table or pivot cell:


1 Select the cell in which to embed the image or hyperlink. 2 Type the following wrapper information in the cell:
@HTML(<HTML image/link>)

When the Interactive Reporting Studio and Interactive Reporting Web Client encounters the @HTML wrapper, it is stripped from the cell and the content up to but not including is exported as is, without any character substitutions. The parentheses () also gets stripped.

User Embedded HTML

131

132

Designing for the Hyperion System 9 BI + Workspace

Glossary

Adaptive Report Level The level of privilege that a user can interact with an Interactive Reporting document. The adaptive report levels are View Only; View and Process; Analyze; Analyze and Process; Query and Analyze; and Data Model, Query, and Analyze. When a document is published, groups of users are granted access to it with specific Adaptive Report level privileges. ADR (also called as sync) See automatic distributed refresh. aggregate filter filters placed on aggregated request line items or aggregated meta topic items. API Application Programmer Interface API Socket (DaAPISock) The API (such as ODBC, SQL Net, and so on) or protocol level information used when connecting to a database that has been abstracted in an API Socket. Interactive Reporting have one API socket for each supported API/communication protocols. application aerver A panework for developing applications that provides fundamental capabilities required by many applications such as session and resource management, and security. auditing The monitoring of Interactive Reporting Repository objects to determine usage patterns. automatic distributed refresh The process of synchronizing locally saved documents and the version in the repository. auto-join An administrator can configure a connection file to cause joins to occur automatically for users using the Auto-Join feature. Auto-Join can be configured one of three ways: Best Guess, Custom, and Server-Defined. auto-process The automatic processing of a query.

axes Straight lines on a chart used for measurement and categorization. Typically the X-axis and the Z-axis are both used for categories while the Y-axis is used for quantification (for example, Facts/Values). Pie charts only use the X-axis for its categories and the Y-axis for its Facts/Values. catalog A collection of database tables and local results. This is the information the user can use in a data model or query. Catalog pane Shows a list of elements available to the active section. For example, if Query is the active section, the Catalog pane displays a list of database tables. If Pivot is the active section, the Catalog pane displays a list of results columns. If Dashboard is the active section, the Catalog pane displays a list of embeddable sections, graphic tools, and control tools. categories Groupings by which the data is organized (for example, month). CGI See Common Gateway Interface. chart A graphical representation of data. Users create charts to convert raw data into eloquent, visual information. Chart section With a varied selection of chart types, and a complete arsenal of OLAP tools like group and drilldown, the Chart section is built to support simultaneous graphic reporting and ad-hoc analysis. client/server A network architecture in which each computer or process on the network is either a client (requests information) or a server (delivers requested information).

Glossary

133

clustered bar charts Occurs when the categories are viewed side by side within a given category, useful for side by side category analysis. Clustering is only done with vertical bar charts. Common Facilities One of the four categories of objects defined by the Object Management Architecture (OMA). The Common Facilities is a collection of services that many applications may share, but the services are not as fundamental as Object Services. For example, Print Facility and Mobile Agent Facility. computed item A virtual column (as opposed to a column that is physically stored in the database or cube) that can be calculated by the database during a query, or by an Interactive Reporting in the Results section. They are calculations of new data based on functions, data items, and operators provided in the dialog box. They can be included in reports or reused to calculate other data. connection file See interactive reporting database connection file. Controls Folder Contains prebuilt items that can be added to your Dashboard section, such as list boxes, radio buttons, and command buttons. You can then attach scripts to the controls embedded in the Dashboard section to execute actions. correlated subqueries Subqueries that are evaluated once for every row in the parent query. A correlated sub query is created by joining a topic item in the subquery with one of the topic items in the parent query. cross join Creates a query where none of the tables is joined. Every row in one table is joined to every row in another table. cube The data in OLAP databases (MS Plato, Hyperion System 9 BI + Analytic Services, MetaCube) is stored in 3dimensional cubes, which is different from standard relational databases (2-dimensional). Cubes are made up of dimensions and measures. A cube may have dozens of dimensions. DaConnect (aka DaConn) An Interactive Reportings main connectivity class. Contains all the connectivity specific information. Instance of a connection class is made whenever Interactive Reporting needs to connect to any database.

Daemon-mode BQ The Hyperion client/server executable. It is spawned in daemon mode by node JREs. The role of the daemon-mode BQ is simply to execute database queries and return results. Dashboard Allows you to build and deploy analytic applications. Analytical applications focus on delivering significant prepackaged business content that is encapsulated within an application. With Interactive Reporting, customers and independent software vendors can leverage their knowledge of industry specific best practices and assemble their own analytical applications for deployment to end users using the Web. Combining embeddable Report sections with enhanced Dashboard controls into a visual workspace and hooking up interactivity between these controls and the native Brio Software application, an application designer can quickly create a variety of robust applications. Dashboard Home A button that returns you to the
Dashboard section designated as the Dashboard Home section. If you have only one Dashboard section,

Dashboard Home returns to that section. If you have several Dashboard sections, the default Dashboard Home is the top Dashboard section in the Catalog pane. In Design mode you can specify another Dashboard section to be the Dashboard Home section. DaSession When a client needs to perform an operation such as select, insert, update on a database, a session is created. The life time of a session synchronizes with the operations duration. Sessions are created when a client needs to perform operations on the database and are destroyed when the operation is considered complete. data function Computes aggregate values, including averages, maximums, counts and other statistics, which summarize groupings of data. You can use data functions to aggregate and compute data from the server before it reaches the Results section, or compute different statistics for aggregated totals and items in the other analysis sections. data model A representation of a subset of actual database tables that acts as a menu for the query-builder. Data models are the sources for building the Request, Filter, and Sort lines in a query section. You create a data model by dragging database tables from the Catalog pane into the Content pane. The data model displays database tables graphically as topics when they are in the Content pane.

134

Glossary

Data models can be distributed through the Hyperion System 9 BI + repository and used by end users to create their own queries. database function A predefined formula in a database. database server A computer that stores database management system software (DBMS, for example, Oracle, Sybase, Hyperion System 9 BI + Analytic Services, and a database shared by a network of computer clients. Most databases are used in a client/server environment. By storing data on a single, powerful machine on a network, the data is centralized and accessible to many users. The server ensures that the data is maintained correctly and serves as a traffic cop to regulate client machine access to the data. The servers computing power is also useful in computing and filtering data from the database before it reaches your workstation. For small or localized databases, your own computer can act as both database server and client. datatype The type of data stored in a specific column in a database. For example, data can be stored as a numeric datatype. date group A feature in the Results and Table sections that separates a date into Year, Quarter and Month columns. The display format for the new Month column is automatically set to mmm so that the month names sort chronologically (as opposed to alphabetically) in the report sections. Quarters are based on the calendar year, beginning January 1. designer A client/server-based tool that delivers query, analysis, and reporting capabilities and centralized solution administration for developers, database administrators, and system administrators. design guide Design guides are similar to grids in that objects automatically snap to line up with the design guides. Design guides are placed at user-specified locations in the work area. There are horizontal and vertical design guides. The design guides will draw as a blue line across the work area, with the ability to drag the guide to any new location. design mode A toggled environment used to build and modify Dashboard sections. In Design mode, you build Dashboard sections with an array of prebuilt control items and graphic items.

Designers can switch out of design mode to test Dashboard features and deploy them to end users. Design mode is only available in Dashboard sections. Interactive Reporting Navigator users cannot switch to Dashboard Design mode. detail view Displays a topic as a database table. When you select Detail view, the database returns ten sample rows from the associated table. Each topic item displays as a database field. Detail view enables users to browse a sample of the raw data, which is useful when unfamiliar with the data model or the underlying data. Users cannot view a meta topic in Detail view. dimension In an OLAP database cube, categories of information are called dimensions. Examples of dimensions may be Location, Products, Stores, and Time. In an Interactive Reporting, related, nonquantifiable items in a topic are also referred to as dimensions, such as Contact or Store Name. dimension (legend dimension) The current axis categorization or grouping method. This can be set to the X, Y, or Z-axis for most chart types. For line and area charts it can only be set to the Y or Z-axis. For pie charts it is always set to the X-axis. When you change the Legend Dimension the color is distributed along the new axis you change to. dimension tab In the Pivot section, the tab that enables you to pivot data between rows and columns. dimension table Consists of numerous attributes about a specific business process. Each row in a dimension table is unique. drill anywhere Allows you to drill into and add items to pivot reports residing in the Results section, without having to return to the Query section or trying to locate the item in the Catalog pane. Drill Anywhere items are broken out as new pivot label items. drill to detail Allows you to retrieve items from a data model that are not in the Results section, without having to rerun the original query. This feature provides the ability to interactively query the database and filter the data that is returned. Drill to Detail sets a filter on the query based on the users selection and adds the returned value as a new pivot label item automatically. drilldown Allows you to progressively narrow your focus on a selected chart category. Very useful when you have too many categories on a particular axis.

Glossary

135

embedded section A Interactive Reporting section that is embedded in a Smart report or other Interactive Reporting section. All embedded sections maintain live data content and formatting from the original section. Reprocessing the query, or modifying the original section automatically updates the embedded section display. Explorer A client/server-based tool that delivers query, analysis, and reporting capabilities for power users who need to directly access data sourcesor to explore the information organized in prebuilt data models stored in the repository. Expression Line Displays displays the JavaScript syntax for each item displayed in a report. Use this line to build equations in the Report section. For ease of use, it can be undocked and resized. extranet An intranet that is partially accessible to authorized outsiders. Extranets are secured by user names and passwords. fact table A table that stores business activity measures. Most fact tables are extremely large. Each row in a fact table contains numeric measures (fully additive measures, nonadditive measures and/or semiadditive measures) and foreign keys to each dimension table. facts The numeric values that are broken up in the body of the Pivot section. To add facts to the Pivot, put Results columns from the Catalog pane into the Outliners Facts pane. Facts are the numeric values in a relational database that are available to analyze. In an OLAP Query, they are called measures. facts/values The data that is being visually represented, usually a numeric amount (for example, $15,000) file server A computer and storage device dedicated to storing files. filter (Relational) Constraints placed on topic items or request line items to filter them to a certain set of values. Filters appear on the Filter Line in Interactive Reporting. For example, although the database may display worldwide sales figures for all stores, you may only want to see sales for stores in Germany. Filters make data sets retrieved through a query more efficient and manageable by filtering out unnecessary information.

filters (Multidimensional) Filters enable you to define and apply filters to the query once Top or Side Labels have been added to the query. You set a filter by applying comparison operators on the values for a specific member. Additional server-specific functions are available based on the selected OLAP database cube. Filters are built to include or exclude data according to specific criteria. Filters can be set on any level in a dimension. However, they must be one of the labels in the Outliner. Filters can be made of members of one of the dimensions or selected by a measure. OLE DB for OLAP has other filter operator types (Top N, Top Sum, Top N %, Bottom N, Bottom N %, Bottom Sum.) Hyperion System 9 BI + Analytic Services and MetaCube have their own operator types. In Hyperion System 9 BI + Analytic Services and MetaCube, filters can be done on measures. In OLE DB for OLAP, filters cannot be placed on measures. foreign key A database column or set of columns included in the definition of a referential integrity constraint. fully additive measure Attributes in a table that can have their values added together across any dimension. grain The level of detail at which measures in a table are recorded is referred to as the grain. grouping columns This feature, in the Results and Table sections, creates a new column in a dataset by grouping data from an already existing column. Grouping columns consolidate nonnumeric data values into more general group values and map the group values to a new column in the dataset. hardwire mode In hardwire mode whenever the OLAP Query is changed, the database is queried to fetch new cube data. In contrast, process mode is manually controlled. You add or remove several items to the Outliner, and then press Process to query the database. When determining whether to use hardwire mode or process mode, consider the size of the cube in which you are working. hierarchy In an OLAP database cube, a hierarchy organizes a dimensions levels and corresponding members into parent and child relationships. For the levels in a Location dimension, the hierarchy would have Country as the parent of the child City and City as the parent of the child Address.

136

Glossary

home Abstract base interface that some Lightning interfaces derive from. Provides basic methods to manipulate and create Bean objects. HTML See Hypertext Markup Language. Hypertext Markup Language A programming language used to create World Wide Web pages, with hyperlinks and tags that explain how to format the information on the screen. icon view Shrinks a selected topic to an icon in the Content pane. The topic remains part of the data model, but is deactivated and can not be accessed by the query. Associated items are removed from the Request line when a topic is made into an icon, and the topic is not recognized as joined to other topics. Icon view is helpful in restricting the use of server time when a topic is infrequently used, and does not have to be active at all times. imported Files Excel, Text, or CSV files imported into Interactive Reporting. The information in the file goes into a table or a results object. Imported results can be used in other queries (like regular results) for local join purposes. Indexes Indexes are created in a database to increase the performance of data retrieval. Just as book indexes help to locate specific information faster, database indexes provide a faster access path to table data. Indexes are created on one or more columns of a table. integrity constraints Constraints on tables that guarantee the data adheres to certain business rules. Integrity constraints are defined with a table and are stored as part of the table definition, central to the database data dictionary, so that all database applications adhere to the same set of rules. internal function Built-in formulas, defined in the Interactive Reporting application.

interactive reporting database connection file Encapsulate and store connection information used to connect Hyperion applications to a database. Interactive Reporting Database Connection file specify the database API (ODBC, SQL*Net, etc.), database software, the network address of the database server, and your database user name. Once created, a user can specify the Interactive Reporting Database Connection file and database password and logon. An Interactive Reporting Database connection file is required for a Interactive Reporting document to use a database. the file extension is .oce. Interactive Reporting Repository A specific group of tables created using Interactive Reporting on a database server and used to store Interactive Reporting document objects, including data models and standard queries. Administrators can use the Designer client to upload these objects to the repository for end-users to download, providing a template for query and report building. Documents built from repository objects can be versioncontrolled or audited through a link to the repository. internet A global network connecting millions of computers. Unlike online services, which are centrally controlled, the Internet is decentralized by design. Each Internet computer, called a host, is independent. interval Equal subdivisions within a given scale. The interval can be set manually or to best fit. intranet A network belonging to an organization, usually a corporation, accessible only by organization members, employees or other authorization users. Intranet Web sites look and act just like any other Web site, but the firewall surrounding an intranet fends off unauthorized access. ISAPI This is a shared library that implements HTTP using Microsofts Web server plug-in API (ISAPI). Thus it is appropriate for customers with Microsoft Web servers. Functionally it is equivalent to our CGI. Its advantage is that it is far more scalable than a CGI executable. item A visual representation of a database column that is a member of a topic in the Query section. Items are used to create queries and reports. For example, the Customer Topic may have items including Name, Address, and Phone. You select items from data model topics to build the Request, Filter, and Sort lines in the query section.

Glossary

137

JavaScript The scripting language for Interactive Reporting products. Interactive Reporting 8.0 include the Netscape JavaScript interpreter (version 1.4). JavaScript and Dashboards Object Model allow application developers to use the full functionality of the industrystandard scripting language to control Interactive Reporting applications. job repository A set of database tables that store a queue of scheduled jobs. There can be multiple job repositories in an organization. join A relational database concept indicating a link between two topics. A join typically occurs between identical or similar items within different topics. Joins allow row records in different tables to be linked on the basis of shared information in a column field. For example, a row record in the Customer table is joined to a related record in the Orders table when the Customer ID value for the record is the same in each table. This allows the order record to be linked with the record of the customer who placed the order. If you request items from unjoined topics, the database server has no way to correlate the information between the two tables and leads to awkward datasets and run-on queries. Interactive Reporting display joins visually in the workspace between topics to indicate joins between database tables. Users can also create new joins that are not already specified in the database. join path A predetermined join configuration for a data model. Administrators create join paths for users to select the type of data model needed in a user-friendly prompt upon processing a query. Join paths ensure that the correct tables in a complex data model are used in a query. JRE (Java Runtime Environment) This is the Java interpreter used to run the Java Server. legend box An informative box containing color-keyed labels to identify the data categories of a given dimension. layer Stacks a single object in relative position (sends back and front, or brings forward or backward) to other objects.

level Similar types of members in an OLAP database cube are grouped at the same level. For example, using the members listed in a Location dimension, France, the USA, and Japan belong to the Country level. Paris, Palo Alto, and Tokyo belong to the City level. 35 Main Street belongs to the Address level. limit joins Joins between a database table and a local results object. The topic item being joined is limited by the values of the column being joined in of the local results object. A limit join is one of the options that you can choose in a Modify Join operation between a topic item and a local results item. linked data model Documents that are linked to a master copy in a repository. When changes are made to the master, users are automatically updated with the changes when they connect their duplicate copy to the database. local computed meta topic items Computed item definitions evaluated by the Interactive Reporting results engine. Local computed items are created to be meta topic items. They can be dragged to the request line like regular topic items. The only difference is that the results engine evaluates these items as opposed to the database. local joins A join between a local results object and a database table or another local results object. Interactive Reporting perform the actual join in this case. local filters filters placed on the local dataset in the Results section, as opposed to the Query section. Filters in the Query section restrict the data retrieved by the query to the desktop. Local filters screen data from view in the Results set; although it is still there, you cannot see the data that has been excluded or use it in reports unless the filter is removed. local Results Results of other queries within the same data model. These results can be dragged into the data model to be used in local joins. Local results are displayed in the catalog when requested. locked data model Data Models that are locked cannot be modified by a user. Manager See Server.

138

Glossary

master data model A Data Model that exists independently and has multiple queries that reference it as a source. When using a master data model, the text Locked Data Model appears in the Content pane of the Query section. This means that the data model is linked to the master data model displayed in the Data Model section, which may be hidden by an administrator. MDX (Multi Dimensional eXpression) The language used to give instructions to OLE DB for OLAP- compliant databases (MS Plato), as SQL is the language used for relational databases. When you build the OLAPQuery sections Outliner, Interactive Reporting translate your requests into MDX instructions. When you process the query, MDX is sent to the database server. The server returns a collection of records to your desktop that answer your query. See SQL. measures Numeric values in an OLAP database cube that are available for analysis. Measures may be margin, cost of goods sold, unit sales, budget amount, and so on. See Facts. members In an OLAP database cube, members are the content values for a dimension. In the location dimension, they could be Palo Alto, Paris, Tokyo, 35 Main Street, USA, France, Japan, and so on. These are all member values for the location dimension. metatopic A customized, virtual topic, built from regular topics that reflects the exact topic and item structure of database tables. Metatopics allow items from disparate topics to be consolidated in a single topic, simplifying its appearance and reducing its conceptual resemblance to the underlying database structure. You can choose to view a data model in terms of its original topics, metatopics, or a combination of both. metadata Data about data. Stored in database tables, metadata describes the history, content, and function of database tables, columns and joins in understandable business terms. Metadata can overcome the awkward names or ambiguous abbreviations often used in a database. For example, in a table named CUST_OLD, metadata may use a descriptive business name, such as Inactive Customers.

mime type A browser mapping of a file type to either a helper application or a plug-in. When a browser attempts to open a file of a particular mime type, it either loads the associated plug-in or launches the associated helper application. A files mime type is determined either by a) the file extension or b) the HTTP header. Plug-ins tell browsers what mime types they support and what file extensions correspond to that mime type. Hyperions web based products support the following mime types: application/x-brioquery mime type (for .bqy files). This is the default mime type our web based products support and are ordinary Hyperion files. application/x-brioquerydata (for .bqd files). These are data files in text or Excel format, whose extension has been changed to .bqd. When a Hyperion Web client is launched to open a BQD file, it imports the data and executes any Interactive Reporting Studio or Interactive Reporting Web Client script or JavaScript the file contains. morphing Mechanism by which Hyperions web based products provide document security. multidimensional database A database that stores data in a format often referred to as a cube, such Hyperion System 9 BI + Analytic Services, MS OLAP, MetaCube, and so on. See also Relational database and OLAP database. nonadditive measure Attributes in a table that cannot be added across any dimension, such as a percentage value (for example, margin rate). NSAPI A shared library that implements HTTP using Netscapes Web server plug-in API (NSAPI). It is equivalent to our CGI. Its advantage is that it is far more scalable than a CGI executable. Nesting Nesting means that one set of data values appears as a sub-division within each of the data values at a higher level of data. For example in the Pivot section, if you place more than one data label in an Outliner panel, the Pivot report displays the second set of labels inside each of the labels of the first data items. The second labels are nested within the first. This means they represent sub-divisions with another "higher level" category. null value A null value is absent of data. Null values are not equal to zero. OCE See interactive reporting database connection file.

Glossary

139

OCE Wizard Wizard or set of screens used to create a new OCE or modify an existing OCE. OLAP database A database that stores its information in cubes. Cubes contain dimensions and measures. A cube can have dozens of dimensions. Cubes are built to hold aggregated data, which anticipate how users think about business models. Cubes deliver this information efficiently and quickly. OLAPQuery section Analyzes and interacts with data stored in an OLAP cube. When you use Interactive Reporting to connect to an OLAP cube, the document immediately opens an OLAPQuery section. The OLAPQuery section displays the structure of the cube as a hierarchical tree in the Catalog pane. Queries are built by dragging measures and dimension levels or members directly into the Outliner panes. OOA Object Oriented Analysis. OOA&D Object-Oriented Analysis & Design. IOpen Client DBLib API to connect to Sybase, Redbrick, SQL Server, and so on. Open Metadata Interpreter The Tables, Columns, Joins, Lookups and Remarks tabs available in the connection wizard when you edit a custom metadata source. These tabs allow Hyperion administrators to specify a customer source of metadata that can be accessed through SQL statements, and provided to end users with data models. Outliners Drag-and-drop command lines used in the Pivot, Chart, OLAPQuery and Report sections. Each Outliner pane corresponds to a specific layout element of the report. When an item is dragged to an Outliner pane, the item assumes the layout attributes of the respective report element. Data appears simultaneously in the Content pane with the appropriate formatting. pivot dimension row or column of labels that corresponds to an item in the Catalog pane. Pivot section The section used to create crosstab reports and analyze data. pivot table Analytical tools that resemble spreadsheets or crosstabular reports. A pivot table overlays a dynamic datacube, which allows data to be sliced and diced for adhoc, interactive, and multidimensional analysis.

pivoting In the Pivot section, the ability to change a label from a top to a side (or a side to a top) orientation with a simple click and swing of the labels Dimension tab. plot area The area bounded by the X-, Y-, and Z-axis. For pie charts, it is the rectangular area immediately surrounding the pie. predefined drill paths Enables a user to drill directly to the next level of detail, as defined in the data model. primary key A database column or set of columns included in the table definition of the PRIMARY KEY constraint. Primary key values uniquely identify the rows in a table. Only one primary key is defined per table. query A set of database instructions to return an answer set to a specific question. Each row returned in the Results section of a document is an answer to the question posed in the Query section. query computed items Item definitions created by the user. This can include other request line items or topic items and or database functions. The definition is sent to the database and the database evaluates them. Query Log Log of all SQL statements sent to the database (also referred to as SQL Log). relational database A database that stores its information in tables related or joined to each other by common pieces of information called keys. Tables are subdivided into column fields that contain related information. Column fields have parents and children. For example, the Customer table may have columns including Name, Address, and ID number. Each table contains row records that describe information about a singular entity, object, or event, such as a person, product, or transaction. Row records are segmented by column fields. Rows contain the data that you retrieve from the database. Database tables are linked by Joins. (See also join) report Group In the report section, embedded reports and tables are grouped by other data items. Items placed in the Groups Outliner break information into these dimensional groupings. For example, your table may include the name, contact information, and sales for each of your distributors. This table gains in clarity when broken into groupings that classify the stores by geographical region, year, or both.

Glossary

140

Report section A dynamic, analytical report writer, that provides users with complex report layouts and easy to use report building tools. Pivot tables, tables, and charts can be embedded in a report. The report structure is divided into group headers and body areas, with each body area containing a table of data. Tables are created with dimension columns and fact columns. These tables are elastic structures. Multiple tables can be ported into each band, each originating from the same or different result sets. repository Central location used to store data models, queries and queries with reports. Repository is usually a database chosen by the user. Request Line Holds the list of items requested from the database server and that will appear in the users results. Request Line items Columns listed in the request line. Results section A section in an Interactive Reporting document that contains the dataset derived from a query. Data is massaged in the Results section for use in the report sections. run mode A toggled environment used to test Dashboard sections. It simulates a Navigator users view of the section. In Run mode, you can not add any features, but you can use features that are part of the deployed Dashboard sections. See also Dashboard and design mode. scalar function Scalar functions (in contrast to data functions) do not aggregate data or compute aggregate statistics. Instead, scalar functions compute and substitute a new data value for each value associated with a data item. scale The range of values that allow you to gauge how much each category represents. This range can be either at equal intervals or at logarithmic interval. The scale can be set manually or to best fit. script A series of instructions for a computer. Scripts are activated when an event occurs, such as clicking a button or selecting an item from a drop down list. Interactive Reportings scripting language is JavaScript. Section pane Lists all the sections that are available in the current Interactive Reporting document. Section Title Bar A navigational aid under the toolbars that provides a means of moving between sections and toggling section-specific tools and gadgets, such as the outliner.

semiadditive measure Attributes in a table that can be summarized across some dimensions, but not all. server computed meta topic items Metatopic item definitions created by the user. These items can use any of the database functions available, or any of the other topic items in the data model. These items are evaluated by the database. Session Socket (DaSessionSocket) Abstracts session information specific to each database or API. simple join Retrieves rows to create a query where the values in joined columns match. slicer An axis that filters the data in an OLAPQuery. Only individual members can be used in a slicer. A slicer can be thought of as a third axis in a OLAP Query. The other axis are the Side Labels and the Top Labels. Every dimension folder contains a members subfolder named Values for that dimension. This subfolder contains the members that are eligible for the slicer. snapshot A a local (readonly) copy of table data that originates from one or more remote master tables. spring A tool which allows you to maintain O relative verticalspacingbetweendynamic objects. That is, you can "spring" one object to another so that if the first object is moved, increased or diminished, the second object moves in the same flow. sort Conditions placed on request line items to sort the results in ascending or descending order. These are displayed in the sort line in an Interactive Reporting. SQL See Structured Query Language. SQL Net Oracles native API to connect to an Oracle database. stacked charts A chart where the categories are viewed on top of one another for visual comparison. This type of chart is useful for subcategorizing within the current category. Stacking can be used from the Y- and Z-axis in all chart types except pie and line. When stacking charts the Z-axis is used as the Fact/Values axis. Stored Procedure Precoded queries in languages other than SQL. This is a feature available in some database software. Interactive Reporting can run stored procedures and retrieve the Results.

Glossary

141

Structure View A view that displays a topic as a list of component items allowing users to see and quickly select individual data items. Structure view is the default view setting. Structured Query Language The language used to give instructions to relational databases. When you build the query sections Request, Filter, and Sort lines, Interactive Reporting translate your requests into SQL instructions. When you process the query, the SQL instructions are sent to the database server. The server returns a collection of records to your desktop that answers your query. This reply is displayed as the Results section. You can look at the SQL generated by a query in the Query Log, or code a query directly in SQL using the Custom SQL window. subquery A query embedded within another query. surface values A setting in the Pivot section to base aggregate calculations on the values in the report, rather than the values in the Results section. synonym An alias for a database table or view. It is a direct reference to a table view. table The basic unit of data storage in a database. Database tables hold all of the user-accessible data. Table data is stored in rows and columns. Table Catalog Displays tables, views, and synonyms to which users have access. Users drag tables from the Table catalog to the Content pane to create data models in the Query section. Table section Used to create tabular-style reports. It is identical in functionality to the Results section, including grain level (table reports are not aggregated). Other reports can stem from a Table section. top and side labels In the Pivot section, labels are the column and row headings on the top and sides of the pivot. These define categories by which the numeric values are organized. topic A a visual representation of a database table in the Content pane. Topics are part of data models displayed in the Query section and can contain one or more items. topic items Individual items in a topic or metatopic. topics Visual representation of tables in the database, related by joins that link certain items in each topic. Each topic title bar displays the topics name. The topic shows a list of items, one for each column in the database table.

underlying values Another name for Results values. When Use Surface Values is disabled in a Pivot section, aggregate calculations are based on values in the Results section. Union/Intersection/Minus Queries Queries created to perform set operations such as Union, Intersection, and Minus. These queries are created by the Append Query option. variable filters Filters that prompt users to enter or select filter values before the queries are processed on the database. view A custom-tailored presentation of the data in one or more database tables. Views do not actually contain or store data; rather, they derive their data from the tables on which they are based, referred to as the base tables of the views. web client A Web tool that delivers query, analysis, and reporting functionality for intranet, Internet, or extranet access to information. Based on user profiles or reportlevel security, the client environment adapts in six stages from full query, analysis, and reporting with data refresh to static report viewing. Weighted averages Weighted averages can also be used to apply different levels of importance to a given item. To calculate a weight you take the expected amount divided by the actual amount. World Wide Web (WWW) A system of Internet servers that support specially formatted documents. The documents are formatted in a language called HTML (HyperText Markup Language) that supports links to other documents, as well as graphics, audio, and video files. zoom Sets the magnification of a report. Sets the magnification of the report. The report can be magnified to fit the whole page, page width or a percentage of magnification based on 100%.

Glossary

142

Index

Symbols
.bmp, 20

check boxes definition, 20 checking errors, Console window and, 44 code entry, 72, 101 code, case-sensitive, 68, 96 collection, definition, 38 command buttons definition, 20 commands, EIS section, 35 commands, Help menu, xi conditional statements, 55 conditional tests, 69, 97 connection files, scripting, 88 Console window, using to check errors, 44 constant, definition, 38 consulting services, xiii Content toolbar, 121 continue statements using, 60 control events, 119 control objects events associated with, 119 list of, 20 controller, OLE automation, 64 controlling graphics and controls visibility, example, 87 controls enabling and disabling, 87 converting detail reports, ?? to 90 creating Dashboard sections, 18 OCEs (connection files), 88 variable limits, 92 Cutting Script, 43

A
active document level, 78 adding items to the request line, 92 joins, 91 topics to a data model section, 91 application level, 77 assignment operators versus comparison operators, 68, 97 automation controller, OLE, 64

B
background and border properties, 25 to 28 BMP files, 20 boxes, 20 break statements using, 61 browser, Object, 43 buttons command, 20 radio, 20 bypassing errors, 73, 101

C
calling functions, 51 case-sensitive code, 68, 96 Catalog pane in Design and Run modes, 19 Chart section, 81

Index Symbols

143

D
Dashboard section control objects, 20 creating, 18 default mode, 19 events, 41 graphic objects, 20 layout tools in, 32 menu commands, 35 properties, 31 renaming, 19 Dashboards, 17 data models, downloading, 90 default mode, 19 defining functions, 50, 52 deleting Dashboard sections, 19 objects, 21 Description pane, 44 design guides, 32 Design Guides command, 35 Design mode, 19 Design/Run Mode command, 35 designing scripts, 71, 100 Detail reports, converting, 88 disabling controls, 87 display differences, 89 displaying connection login boxes, 88 rulers, 33 Table catalog, 91 values in text boxes, 86 do...while statements using, 59 document level active, 78 documents conventions used, xii feedback, xiv documents, accessing Hyperion Download Center, xi Hyperion Solutions Web site, xi Information Map, xi online help, xi

downloading data models, 90 drop-down boxes definition, 20

E
education services, xiii EIS section enabling and disabling controls, 87 object model map, 80 toolbar, 33 Embedded Pivot Section Interactivity, 30 embedding objects, 21 enabling controls, 87 entering code, 72, 101 errors bypassing, 73, 101 checking using the Console window, 44 events, 39 example scripts, 87 Execution window, using to test scripts, 44 Export to XLS, 122 exporting scripts, 66

F
files BMP, 20 text, exporting scripts to, 66 Finding/Replacing Script, 44 for statements using, 58 for...in statements using, 62 functions calling, 51 defining, 50

G
getting help with problem scripts, 73, 102 graphic objects events associated with, 41 list of, 20 graphics and controls, controlling the visibility of, 87

144

Index D

graphics, inserting, 35 Grid command, 35 grids, 32 guides, design, 32

JOOLE, 64 -jscriptcmd, 50

L
labeled statements, 60 using, 60 labels, text, 20 layout tools, 32 lines, 20 list box definition, 20 loop statements, 58

H
headers, page, turning off, 93 Help menu commands, xi help, online, 44 hierarchy, object model, 76 Home Dialog command, 35 horizontal lines, 20 Hyperion Consulting Services, xiii Hyperion Download Center accessing documents, xi Hyperion Education Services, xiii Hyperion product information, xiii Hyperion support, xiii Hyperion Technical Support, xiv

M
manipulating objects with JavaScript, 62 map, object model, 75 member, OLAP, 139 menu commands, EIS section, 35 methods definition, 38 Microsoft automation interfaces, 64 models, data, downloading, 90 modes, switching between Design and Run, 19 MS Excel, 64 MS Outlook, 64

I
if statements, inline, 56 if...else statements using, 55 including limit values in URLs submitted to ODS, 93 inline if statements, 56 Insert Control command, 35 Insert Graphic command, 35 inserting Dashboard sections, 18 EIS objects, 21 Intelligence Clients scripting applications in, 50 Interactive Reporting object model See object model

N
naming Dashboard sections, 19 Navigation toolbar, 34 navigation, object model, 75

O
Object browser, 43 object level events, 39 to 40, 119 object model description pane, 44 hierarchy, 76 map, 75 Microsoft automation interfaces, 64 navigating, 75 online help, 44 terminology, 38 object properties setting with JavaScript, 86 objects

J
JavaScript case-sensitivity, 68, 96 entering syntax, 72, 101 examples, 85 improving performance, 71, 99 manipulating objects with, 62 OLE automation controller within, 64 sample, 44 troubleshooting, 67, 95

Index H

145

control, 20 definition, 38 deleting, 21 embedding, 21 graphic, 20, 41 in Catalog pane, 19 inserting, 21 manipulating with JavaScript, 62 section, 19 OLAP, member, 139 OLAPQuery section, object model map, 83 OLE automation controller, 64 OnCellDoubleClick, 40 OnChange, 40 OnClick, 40 OnClientClick, 40 OnClientDoubleClick, 40 OnClientEnter, 40 OnClientExit, 40 OnDoubleClick, 40 OnEnter, 40 OnExit, 40 online help, 44 OnRowDoubleClick, 40 OnSelection, 40 ovals, 20

R
radio buttons definition, 20 recalculating results, 71, 99 rectangles, 20 references syntax, 70, 99 Remove Selected Items command, 35 renaming, Dashboard ections, 19 renaming,Dashboard sections, 19 Report section object model map, 82 toolbar, 33 reports, turning off page headers for first page in, 93 Results section, object model map, 82 results, recalculating, 71, 99 retrieving object properties, 86 round rectangles, 20 rulers, 33 Rulers command, 35 Run mode, switching to, 19

S
sample scripts Add a Computed Column to a Query Request line, 92 Add Items to The Request line, 92 Add Joins, 91 Add Topics to a Data Model Section, 91 Create an OCE, 88 Display a Table Catalog, 91 Setup Topic Objexts Variables, 91 Turn off page headers for the first page in the Reporter, 93 Using a BrioQuery 5.5 Limit Dialog Box andStoring Selected Value in Text Box, 93 script commands, launching, 50 Script Editor Description pane, 70, 99 using, 42 scripting applications, 50 Scripting pane, 43 scripting, finding and replacing, 44 Scripts command, 35 scripts, exporting to text files, 66

P
page headers, turning off for first page in reports, 93 pictures, 20 Pivot section, object model map, 82 processing queries using prompt for database logon, 93 Prompt To Save dialog box, turning off, 93 properties background and border, 25 to 28 definition, 38 retrieving object, 86 setting Dashboard, 31 setting object, 86 Properties command, 35

Q
Query section, object model map, 79

146

Index P

scripts, testing, Execution window and, 44 scripts, troubleshooting, 67 section level events, 41 section objects, 19 sections Chart, 81 EIS, 80 Query, 79 setting Dashboard properties, 31 object properties, 86 topic object variables, 91 space-saving variables, 67, 96 statements break, 61 conditional, 55 continue, 60 do...while, 59 for, 58 for...in, 62 if...else, 55 inline if, 56 label, 60 loop, 58 switch, 57, 127 while, 59 with, 63 stopping a script, 56 switch statements using, 57 switching between Design and Run modes, 19 syntax reference, 70, 99

page headers, 93 Prompt To Save dialog box, 93

U
understanding functions, 50 Interactive object model, 38 Interactive Reporting events, 39 User Embedded HTML, 130 using BrioQuery 5.5 Limit dialog box, 92 Console window, to check errors, 44 design tools, 32 Execution window, to test scripts, 44 JavaScript statements, 55 ODS user name as limit, 92 Script Editor, 42

V
variables space-saving, 67, 96 vertical lines, 20 Visual Basic, 64

W
while statements using, 59 windows Console, 44 Execution, 44 with statements using, 63 working with Dashboard objects, 19 with Dashboard sections, 18

T
Table section, object model map, 83 technical support, xiv testing scripts, Execution window and, 44 tests, conditional, 69, 97 text box, 20 text files, exporting scripts to, 66 text labels, 20 toolbar, Navigation, 34 tools, layout, 32 troubleshooting scripts, 67 turning off

Index T

147

148

Index W

S-ar putea să vă placă și