JASPERSERVER USER GUIDE

RELEASE 3.7

http://www.jaspersoft.com

JasperServer User Guide © 2010 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft logo, JasperAnalysis, JasperServer, JasperETL, JasperReports, iReport and Jasper4 products are trademarks and/or registered trademarks of Jaspersoft Corporation in the United States and in jurisdictions throughout the world. All other company and product names are or may be trade names or trademarks of their respective owners. This is version 0110-JSP37-10 of the JasperServer User Guide.

2

Table of Contents

TABLE OF CONTENTS
1 Introduction to JasperServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1 1.2 1.3 Logging In . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 The Home Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Searching the Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 Searching by Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Navigating the Folder Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Refining With Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Changing the Search Expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Interacting With the List of Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2

Working with Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1 2.2 Viewing a Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Creating a Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.3 2.4 Dashboard Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Creating a Simple Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Adding Controls to a Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Adding a Custom URL to a Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Refining a Dashboard’s Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Tips for Designing Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 About Screen Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Editing a Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Designing Reports for Dashboards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3

Running Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1 3.2 3.3 Running a Simple Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Running a Flash Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Running a Report with Input Controls or Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3.1 3.3.2 3.4 Simple Input Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Cascading Input Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Scheduling Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3

. . . . . .4. . . . . . . . . . . . . . . . . . . . . . . 84 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Understanding the Ad Hoc Editor . 45 Formatting the Appearance of a Table . . . . . . . . . . .1 5. . . . . . . . . . . . . . . . . . . . . .7 Topics and Domains . . . . . . . . . . .2. . . . . . . . . . . 41 4. . . . . . . . . . . . .2 4. . . . . . . . . 80 Uploading the Main JRXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Switching Groups . . . . . . . .4. . . . . . . . . . . . . . 73 Designing an Ad Hoc Report . . . . . . . . . . . . . .2 Limits on Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Creating a Report from a Domain . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . .1 4. . . . . . . .2 Overview of a Report Unit . . . . . . . . . . .7 Viewing Scheduled Jobs . . . . . . . . . .3. . . . . . . . . . . . 45 Exploring and Analyzing Data in the Ad Hoc Editor .3 4. . . . . . . . .4 5. . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Uploading a Topic . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Defining the Query . . . 51 Focusing on Specific Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7. . . .2 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . 78 5 Adding Reports Directly to the Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Sorting Tables . . . . . . . . .1 5. . . .4 4. . .1 4. . . 79 5. . . . . . . .2 4. . . . . 52 Refining the Crosstab . .4. . . . . . . . . . . . . . .6 3. . 38 Running a Job in the Background .2. . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Working with Crosstabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . 80 Adding Report Units from JRXML Files . . . . . . . . . .3 4. . . . .4. .3 5. . . . . . . . . . . .6 4. . . . . .5. . . .JasperServer User Guide 3. .3 4. . . . . . . . . . . . . . . . . . . . .2 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Using the Choose Ad Hoc Data Wizard . . . . . . .2 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4 Working with the Ad Hoc Editor . . . . . . . . . . . 78 Data Policies . . . . . . . . . . . . . . . . . .2 5. . . . . . . . . . . . . 78 4. . . . . . . . . .1 4. . . . . . . . . .5 Simple Report Example . . . 65 Choosing Ad Hoc Data From a Domain . . . . 34 Scheduling a Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . .6 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Tables. . . . 48 Viewing and Running a Report in the Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 4. . . . . . . 50 Additional Features of the Ad Hoc Editor . . . . . . . . 41 4. . . . . . . . . . . . . . . . . . . . . . 54 Creating Custom Fields . . . . . . . . . . . . . . . . . . . . . 80 5. . . .4. . . . . . . . . . . . . . . . . . . . . . .5 4. . . . . . . . . . . .4. . . . . . . . . 43 Selecting the Content of a Report . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Specifying Job Recurrence . . . . . . . . . . . . . . . . . . . . . . . . . . .2 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Using Input Controls and Filters . .5. . . . . .2 4. . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 3. . . . . . . . . . . . . . . 81 Defining the Data Source . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . .1 4. . . . . . . . 38 Stopping a Job from Running . . . . . . . . . . . . . . . . . . . 76 Configuring System-level Ad Hoc Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 4. . . . . . . 39 Other Report Parameters . . . . .1 4. . . . . . . . . . . . . . . . . . . . 62 Working with Charts . . . . . . . . . . .3 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 4. . . . . . . . Charts. . . . . . . . 71 Creating Topics from Domains .4 3. . 35 Changing Job Schedules . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Creating an Initial Layout . . . .5 4. . . . . . . .3 4. and Crosstabs . . . . . 41 The Ad Hoc Editor Tool Bar . . 80 Uploading Suggested File Resources . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . .5 3. . . . . . . . . . . . . . . . . . . . . . .7. . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . .4. . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Table of Contents 5. . . . . . . . . . . . . . . . . . . . . . . . . . 117 Using the Add New Domain Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Sample Domains . . . . . . . . .5. . . . . . . . . . . . . . . . . . . 90 Completing the Complex Report Example . . . . . . . . . . . . . . . . . . . . . . .1 Introduction to Domains . . . . .10 5. . . . . . 129 Calculated Fields Tab . . . . .6 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Filters Tab . . . .7 Connecting to JasperServer from iReport . . . . . . 127 6. . . . . . . . . . . 101 Default Fonts in JasperServer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . 136 6. . . . . . . . . . . . . . . . . . . . . . . 115 6. . . . . . . . . . . . . . . . . . . . . . . . 112 6 Creating Domains . . . . . . . . . . . . . . . . .7 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Designer Tool Bar .3 5. . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 Creating Reports in iReport Based on a Domain in JasperServer . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . 116 Components of a Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 6.4. . . . . . . . . .4. . . . . 101 Editing JRXML Report Units . . . .3 Domain Use Cases . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6. . . . . . 117 Example of Creating a Domain . . . . . . . . . . . . . .1.2 5. 107 Running a Report from iReport . . . . . . . . . . . . . 116 Terminology . . . . . . .3 The Data and Design Page . . . . . .2. . . . . . . . . . . . . . . . . .2.1. 103 5. . . . . . . . . . . . . .4 Using the Domain Designer . . . .5 6. . . . .5 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . .1 6. . . . . . . . . . . . . . 129 Joins Tab . . . .2 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 More about Datatypes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . .10 6. . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 5. . . . . . . . . . . . . . . . . . . . . . . . . 128 Derived Tables Tab . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . .1 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Uploading Undetected File Resources . . . . . . .2 6. . . . . . . . 127 Tables Tab . . . . . .9 6. . . . . . . . . . . . . . . . . . . .2 5 . . . . . . . . . . . . . . . . . . . . .1 5. 100 Localizing JRXML Reports . .4 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 6. . . . . . . . .4. . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 Managing Resources in the Repository from iReport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 6. . . . . . . . . . . . . . . . . . 125 6. . .4. . . . . . . . . . . . . . . . . . . . . .13 5. . . . . . . . . . . .2 6. . . . . . . .4 Validating the New Report Unit . . . . . . .5 5. . . . . . . . . . . . . . . . . . . . . . . . .3 6. . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . .3 5. . . . . .4. 131 Display Tab . .4. . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . 125 The Resources Page . . . . . . . . . 103 Creating a Report Unit in the Repository from iReport . . . . . 106 Editing a Report in the Repository from iReport . . . . . 132 The Properties Table . . . . .8 5. . .6 5. . . . . . . . . . . . . . . 102 Using the JasperServer Plug-in for iReport . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 5. . . .2. . . . . . . . . . . .4. . . . . . . . . . . 117 Overview of Creating a Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . 133 Domain Design Validation . . . . . . . . . . . . . . . .4 6. . . . .2. . . . . . . . . . . . . . . . . . . .1 6. . . . . . . . . . . .1 6. . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . 88 Adding Input Controls . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . .3 6. .5 Editing a Domain . . . . . . . . . .4 5. . . . . . . . . . . 134 Maintaining Referential Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Domain Validation . . . . . . . . . . . . . . . . . . .2 6. . . . . 86 Complex Report Example . . . . . . . . . . .12 5. . . . . 108 Creating Chart Themes in iReport . . . . . . . . . . . . . . . . . . .2. .4. . . . . . . . . . . . . . . . 136 Fixing Referential Integrity . . . . . . . .11 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Manage Data Source . . . . . .

. 153 The Domain Security File . . . . . . . . . . . . . . . . . 155 7. . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 8 Utilities . . . . . . . . . 165 8. . . . . . . . . . . . . . . . .2 7. . . . . . . . . . . . . . . . . . . . 162 Creating Locale Bundle Files . . . . . . . . . . . . 166 iReport Plug-ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Message List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 Defining the Internationalization Keys . . . . . . . . 150 Datatypes . . . . . . . . . . . . . . . . . . . 166 Domain Plug-in . . . . . . . . . . . .1 7. . . . . . . . . . . . . . . . . . . 165 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 7. . . . .2. . . . . . . . . .1 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 7. . . . . . . 166 Glossary . . . . . . . . . 173 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 8. . . . . . . . . . . . . .2. . . . . . . . . . . 140 Working With a Design File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . .4 Exporting the Design File from a Domain . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . .2. . 151 Field References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 7. . . . . . . . . . . . . . . . . . . . . 153 The DomEL Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Resources of a Domain .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 7. .5. . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 7. . . .4. . . . . . . . . . . . . . . .3 7. . . . . . . . . . . . 139 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . .4 7. . . . . . . . . . . . . . . . . . . . . . . . .1 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Index . . . . . . . . . . . . . . . .1 7. . . . . 140 Structure of the Design File . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . 165 JasperServer Plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Operators and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 The Domain Design File . . . . . . . . . . . . . . . . . 141 Uploading a Design File to a Domain .2 Row-Level Security . . . . . . . . . . 157 Column-Level Security . . . . . .2 7. . . . . 152 Return Value . . . . . . . . . . . . . . . . . . . . . . .5 Locale Bundles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 7. . . . . . . . . 161 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .JasperServer User Guide 7 Advanced Domain Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . .4 7. . . .2 Messages . . . . . . . . . . . . . . . . . . . . . . . . . .

Introduction to JasperServer

1

INTRODUCTION TO JASPERSERVER

JasperServer builds on JasperReports as a comprehensive family of Business Intelligence (BI) products, providing robust static and interactive reporting, report server, and data analysis capabilities. These capabilities are available as either standalone products, or as part of an integrated end-to-end BI suite utilizing common metadata and providing shared services, such as security, a repository, and scheduling. JasperServer exposes comprehensive public integration interfaces enabling seamless integration with other applications and the capability to easily add custom functionality. The heart of the Jaspersoft BI Suite is JasperServer, which provides the ability to: Easily create new reports using an intuitive web-based drag and drop Ad Hoc reporting interface. Efficiently and securely manage many reports. Interact with reports, including entering parameters and drilling on data. Arrange reports and web content to create appealing, data-rich dashboards that quickly convey business trends. For business intelligence users, Jaspersoft offers JasperAnalysis, which runs on JasperServer. This optional component is described in its own user guide. While the Ad Hoc Editor lets users create simple reports, more complex reports can be created outside of JasperServer. You can either use iReport (or iReport) or manually write JRXML code to create a report that can be run in JasperServer. Jaspersoft recommends that you use iReport unless you have a thorough understanding of the JasperReports file structure. See 5, “Adding Reports Directly to the Repository,” on page 79 and 8.2, “iReport Plug-ins,” on page 166. If you want to extend your knowledge of Jaspersoft BI software, our Ultimate Guides document advanced features and configuration. They also include best practice recommendations and numerous examples. The guides are available as downloadable PDFs. Community project users can purchase individual guides or bundled documentation packs from the Jaspersoft online store. Professional and Enterprise customers can download them freely from the support portal. This chapter contains the following sections: Logging In The Home Page Searching the Repository

7

JasperServer User Guide

1.1

Logging In

To protect the data that you can access through JasperServer, all users are required to log in with a password.
To login to JasperServer:

1.

Enter http://hostname:8080/jasperserver-pro in your web browser (where hostname is the name of the computer where JasperServer is installed). The Login page appears:

Figure 1-1

JasperServer Login Page

2. 3.

Before logging in, you may want to review the links on the login page, such as the link to the Online Help. To login, enter your user ID and password. If you installed the sample data, you can use any of the user names and passwords shown, as well as your own. The default administrator user is jasperadmin and the password is the same; you should change it after installation.

4. 5. 6. 7.

If the Organization field appears, enter the ID or alias of your organization. If you don’t know it, contact your administrator. Click Show locale & timezone. The Locale controls appear in the Login pane. Select your locale and time zone from the drop-downs. Click Login.
If the Change Password feature has been implemented on your system, you can change your password by clicking Change password. For more information about this configuration option, refer to the JasperServer Administrator Guide.

If all information is valid, you are logged in, and JasperServer displays the home page.

1.2

The Home Page

The Home page lets you quickly access the most-used features of JasperServer:

8

Introduction to JasperServer

Figure 1-2

JasperServer Home Page

The Home page for standard users has three icons that are linked to the basic functions of JasperServer:
view your reports – Displays a list of the reports that you can view and run. create a report – Launches the Ad Hoc Editor in which you can design reports interactively. analyze your results – Displays a list of analysis views. Available only if you implement JasperAnalysis.

The three menus in the menu bar and the links to the Online Help and Log Out link in the upper right appear on all JasperServer pages. The search field is described in section 1.3.1, “Searching by Name,” on page 11. The menus offer these options: Menu
Home View

Description
Returns to this Home page. Repository – Displays the repository’s folders and the resources they contain, including reports, report output, data sources, images, and other files used in reports. Access to repository folders and objects is always subject to permissions set by administrators. Reports – Displays all the reports in the repository that you can view, run, and edit, depending on permissions. Same as clicking view your reports. Analysis – Displays all the analysis views in the repository that you can view, run, and edit, depending on permissions. Same as analyze your results. Available only with JasperAnalysis. Messages – Displays system messages, such as an error in a scheduled report.

Create

Ad Hoc Report – Launches the Ad Hoc Editor in which you can design reports interactively. Same as clicking create a report. Dashboard – Launches the Dashboard Designer in which you can lay out multiple reports and their supporting input controls, labels and images.

For administrators, the Home page has additional options and menu items for managing user, roles, organizations, and settings. Administrator functions are documented in the JasperServer Administrator Guide.

9

Instead of viewing resources by folder alone. filters. List of resources – The resources in the repository that meet the search criteria. JasperServer stores all objects and files in a private database that is otherwise inaccessible. JasperServer remembers your settings so that your most commonly needed resources stay visible when you return to the repository page. All of the controls on the repository page make it easy to refine or enlarge your set of results. or if Include subfolders is cleared. but once you are familiar with the search interface. select View > Repository from any page of JasperServer. By clearing the check box to Include subfolders. you can often find resources with fewer clicks. The following sections explain how to use the search features of the repository page. The new repository interface is designed to help you find resources faster by using intuitive search criteria. except to administrators. or deleting multiple resources at once. Bulk operation controls – For selecting and copying. analysis views and related files. you can still browse folder by folder. cutting (moving). Click or right-click a resource in the list to view it or see what actions are available. Filters for refining results – Provide a quick way to find resources based on other criteria such as type or access time. However. lets you browse individual folder contents. Folder tree – Lets you restrict search results to branches of the tree. the repository now provides many other filters such as who modified the resource and when. much like a file system. This release of JasperServer introduces a search interface for the repository. folders. The repository is organized as a tree structure of folders containing resources. grouped by resource type when appropriate. As shown in Figure 1-3. To access the repository. Search expression and sorting – An interactive status bar showing the search criteria.3 Searching the Repository The repository is JasperServer’s internal storage for all reports. 10 . the repository page has the following features: Search controls – Let you find resources by searching for text in their names or descriptions. as well as lists of reports and analysis views. In addition. dashboards. Figure 1-3 Repository Page The repository page is also where search results are displayed. and sorting criteria.JasperServer User Guide 1.

1 Searching by Name Use the search field at the top of every JasperServer page to begin a search at any time. the search uses the current settings on the page. even word fragments. Include subfolders is checked.3. This mode works best when you clear the search term and select All types so that the results are exactly the contents of the selected folder. If you enter a search term and click Search at the top of any other page. anywhere it appears in the display name or description string of a resource. This mode mimics a file system browser. the search uses the default settings: Include subfolders Start at the top-most folder visible to your user Filter for visualization types only Sort alphabetically by name To refine the search. 1. it opens the repository page with the same search term and displays the results. letting you explore folder by folder. If you enter multiple words. Do not enter quotes around terms or any symbols between terms. JasperServer does not match folder names or display folders in the results.3. JasperServer searches for resources that match all words. When you click Search. Use the icons to expand the tree and view all nested folders. select a folder or filter as explained in the following sections. Browse – Clear the box next to Include subfolders to restrict the scope of any search to the resources directly contained in the selected folder. 11 . selecting a folder searches the entire branch of the tree starting at that folder. There are two ways to navigate the folder tree: Search – When Include subfolders is checked. Search terms are not case-sensitive. To cancel search by name.Introduction to JasperServer 1. By default.2 Navigating the Folder Tree The folder tree shows the folders in the repository that your user has permission to view. click the icon in the search field to clear the search term and update the search results according to the remaining settings. Figure 1-4 shows the results of a search for the term “account” in the sample data. Figure 1-4 Search Field and Search Results JasperServer matches the search term. allowing you to search by name or by resource type across the entire repository or a specific branch of it. but not necessarily in order. This mode is most useful in combination with other search settings. If you enter a search term and click Search on the repository page. Click a folder name to select it.

both JRXML reports and Ad Hoc reports. and other files that only administrators may add to the repository. You can set each filter independently of the others. Report output can be any of the supported export types (HTML. This filter not only applies to visualization types. Resources viewed or modified since the previous midnight. but also to resources that are included in reports such as images. Displays only data sources. For example. etc). The access time filter has the following settings. including today. views. Only reports that have scheduled jobs. Selects only resources that have been run and viewed by the currently logged in user. The default filter that includes reports. Displays all types except reports. This includes input controls. Displays only the output from reports that were scheduled or run in the background. 12 . data types. Resources viewed or modified during the past 30 days. dashboards. The user filter has the following settings: Filter Setting Changed by anyone (default) Changed by me Viewed by me Description Does not take into account user access to the resource. including today. Displays only reports. The resource type filter has the following settings: Filter Setting All types Visualization types (default) Reports Report outputs Dashboards Analysis views Domains Data sources Other types Description Does not take into account the resource type.3. Displays only Domains. Resources viewed or modified during the previous day ending at midnight. report output. The scheduled report filter has the following settings: Filter Setting Any schedule (default) Scheduled Description Does not take into account the existence of scheduled jobs.JasperServer User Guide 1. dashboards. Resources viewed or modified during the past 7 days. and data sources. these filters can help you find your most recently viewed reports. Selects only resources that have been last modified by the currently logged in user. These are the resources that can be viewed by anyone who has read access. as a result. Domains. every type is displayed.3 Refining With Filters The filters below the folder tree let you refine your search using several other resource attributes. All times are relative the user’s effective timezone: Filter Setting Any time (default) Today Yesterday Past week Past month Description Does not take into account the last modification time of a resource. images. and analysis views. Displays only analysis views (if you implement JasperAnalysis). PDF. Displays only dashboards.

Introduction to JasperServer Filter Setting
Scheduled by me Not scheduled

Description
Only reports that have jobs scheduled by the currently logged in user. Only reports that do not have scheduled jobs, and all other resource types.

1.3.4

Changing the Search Expression

Above the list of resources, the search expression shows you all of the criteria that contribute to the search. It contains the following elements, always in this order from left to right: The search term, if any, or the word All. The folder selected, if any. Any and all filter settings. The search expression provides a quick visual summary of the search criteria for the list of results that appear right below it. The search expression is also interactive, allowing you to easily remove some of the filters. It supports the following actions: If there is more than one filter, clicking any one of them removes all those to the right of it. If there is a folder selected that is nested more than one level, you can click any parent folder to select it instead. You can click the search term or the word All to remove any and all folders and filters to the right of it.
To remove the search term, click the icon in the search field. The search expression then displays All.

After any one of these actions, the search controls displayed on the left are refreshed, and the results are updated. To the right of the search expression, the sort criteria let change the order of the results. The following sorting is supported: Click Name to sort alphabetically (A at the top). This is the default sort order. Click Modified Date to sort by the latest modified time and date (most recent at the top).

1.3.5

Interacting With the List of Resources

The list of resources is always the set of results determined by the current search criteria. Because search results can be quite large, the list of resources has two modes: Multiple Types Condensed – When there are more than two types of resources listed, the number of resources of each type is limited to a certain number, by default 5. When there are more resources of that type, there is a link to see all of that type. You can quickly scroll through the condensed results and find the type of resource you want. Click the See all... link to display the results of that type. Single Type Expanded – When there is a single type of resource in the results, either by circumstance, by clicking a See all... link, or because a single-type filter is selected, all resources are listed, with a scroll bar if necessary. If the list of results is still too long, enter or refine the search term, or select additional filters.
When you click See all... for a type that has a single-type filter, for example Domains, that filter is automatically applied. The filter display and the search expression refresh to reflect this. Use the search expression to remove the filter if necessary. When no filter exists for that type, for example input controls, the filter display and search expression are not updated. Use the type filter drop-down to change the types displayed.

Once the resource or resources you want are displayed, there are several ways to interact with them: Click the name of a report or dashboard to run and view it. Right-click the name of a resource to access other operations on the context menu, for example Open in Designer... Items appear on the context menu according to the permissions granted to your user. Check the box beside the resource name or click anywhere in the row to select it. Check several boxes or Control-click anywhere in the rows to select multiple resources. You can drag and drop selected items to move them or press Control while you drag and drop items to copy them. When you have multiple resources selected, you can also used the bulk operation buttons above the results list: Copy, Cut (move), or Delete. You must have the appropriate permissions on the selected items and the target folder to move, copy, or delete resources. For more information about permissions and repository operations, see the JasperServer Administrator Guide. 13

JasperServer User Guide There are two icons that may appear between a report name and its check box: + indicates that the report has saved options for its input controls. Click the + icon to list the saved options below the report. For more information, see section 3.3, “Running a Report with Input Controls or Filters,” on page 30. indicates that the report has been scheduled to run or that it is currently running in the background. Click this icon to view the list of jobs scheduled for the report. For more information, see section 3.4, “Scheduling Reports,” on page 34.

14

Working with Dashboards

2

WORKING WITH DASHBOARDS

A dashboard displays several reports in a single, integrated view. A dashboard can also include input controls (that determine the data displayed in one or more frames), other dashboards, and custom frames that point to URLs to any other content. By combining different types of related content, you can create appealing, data-rich dashboards that quickly convey trends.

Figure 2-1

Dashboard with Ad Hoc Table, Chart, and Crosstab

This chapter contains the following sections: Viewing a Dashboard Creating a Dashboard Editing a Dashboard Designing Reports for Dashboards 15

If a dashboard includes a Print View button. Keep these points in mind when viewing a dashboard that has input controls: Figure 2-2 SuperMart Dashboard Example 16 . depending on your web browser. controls appear for that individual report. or a calendar icon.1 Viewing a Dashboard You can view an existing dashboard if you have the proper permissions. All three reports update to display data for the months you indicate. and click to open the report in a new window. When done. 2. multi-select list box. JasperServer displays the dashboard. By default. 6. Click Reset to set the input controls to the last values saved and return the dashboard to its initial view. An input control may appear as a text field. 4. click it to display the dashboard without JasperServer’s header and footer. 3. Only reports that refer to the input control reflect the change.JasperServer User Guide 2. the repository includes the /Dashboards folder where dashboards might be saved. Click to refresh the report’s content. a check box. the changes take effect immediately when you change the input control’s value. right-click the name and select View from the context menu. 5. If the dashboard does not include a Submit button. which includes three reports. Alternatively. a drop-down. In the Search field. click View > Repository to go back to the repository page. enter supermart and click Search. Select new values from the Start Month and End Month drop-downs and click Submit to change the data displayed. When you mouseover each report. Click the name SuperMart Dashboard in the list of results. If one of the frames in a dashboard does not refer to an input control. that frame does not update when you change that input control’s value. this also opens your browser’s Print window. To view a dashboard: 1. The search results are displayed in the repository.

if multiple reports include the same parameter. JasperServer dashboards can point to any web content. JasperServer automatically adds a text label for it. Applies the values in the dashboard’s input controls to the reports that refer to each input control.Working with Dashboards 2. If the dashboard doesn’t include a Submit button. the font size in the label is fixed. Text Label. Reset. and (depending on your browser) opens your browser’s Print window. Controls can also be manually mapped to custom URL frames. JasperServer automatically adds a label for it as well.2 Creating a Dashboard Any user can create a dashboard. Multiple controls are those used by more than one report.2. 17 . the corresponding control is automatically mapped to each of those reports when you add the input control to the dashboard. For example.1 Dashboard Overview A dashboard can include any of the following: Reports in the repository. A label for an input control. Use free text items to add titles and instructional text to your dashboard. Special content: Custom URL. Free Text. This section includes: Dashboard Overview Creating a Simple Dashboard Adding Controls to a Dashboard Adding a Custom URL to a Dashboard Refining a Dashboard’s Layout Tips for Designing Dashboards About Screen Sizes 2. you might include a frame that points to the logo on your corporate website. Resets the values of the input controls to the last value selected when the dashboard was saved. Displays the dashboard without buttons or JasperServer’s header and footer. you can add them to the dashboard. When you add a control. When you add an input control to the dashboard. The input control can be mapped to one or more frames. Single controls are those that correspond to parameters included in a single report. If a report on the dashboard refers to input controls or filters. Resizing this type of item only changes the size of the label itself. Standard controls: Submit. Print View. JasperServer refreshes these reports to display the new set of data. Any URL-addressable web content. though a user’s permissions in the repository may limit the content they can add and the location where they can save it. when that logo changes. Resizing this type of item changes the size of the font in the label. changes to input control values are reflected immediately. A more complex example is described in “Creating a Dashboard” on page 17. Controls (Single or Multiple). For example. so this feature has nearly-limitless possibilities. A free-form text entry field. your dashboard will automatically update to reflect the branding change.

The report appears in a frame in the upper left corner of the dashboard area. 4. 6. To create a simple dashboard: 1. The end user view of the dashboard appears. JasperServer indicates this by displaying a red guide line that appears over the Accounts report. 18 .2 Creating a Simple Dashboard This section walks you through the creation of a dashboard. Resize the frame containing the Accounts report to fit its width. click the arrow to the left of the Accounts report to move the report to the dashboard area. In fixed sizing mode. 7. To add a report to a dashboard. you must have permission to view the report. 3. Next to it. Hover your cursor over the bottom of right-hand edge of the frame containing the Freight report. depending on your browser. With both frames sized for their reports. Click Create > Dashboard.2. Click Preview. the user may have to scroll across or down to see the entire dashboard. This is because the dashboard area is meant as a guide: if the content fits in the dashboard area without showing the red guideline. you can be sure that a user with the selected resolution will be able to view the entire dashboard without using the browser’s scroll bars. In the Available Content list. JasperServer shows an outline that indicates where the next frame will be added if you click a field’s arrow. The dashboard designer appears. when your cursor changes to a resizing icon ( ) click and drag the edge of the frame to resize it.” on page 24. the dashboard is wider than the specified screen size. JasperServer allows you to save the dashboard even when its contents hang over the edge of the dashboard area. 2. if your content hangs over the edge. it may appear in a new tab or a new window.JasperServer User Guide Figure 2-3 List of Available Content in the Dashboard Designer 2. 5. For more information. Adjust the width and height of the frame to display the default data returned by the Freight report. In the Available Content list. displaying the list of available content and the dashboard area. navigate to the /Reports/Samples folder.7. “About Screen Sizes.2. see 2. and click the arrow to the left of the Freight report to move the report to the dashboard area.

Working with Dashboards 8. Return to the designer and click Save. You are prompted for the name and location where the dashboard should be saved. By default, the dashboard is saved in the /Dashboards folder with the name New Dashboard. 9. Accept the default location, and specify the name Freight Dashboard. 10. Click Save. The dashboard is saved to the repository.

Figure 2-4

Creating a Simple Dashboard with Sample Reports

2.2.3

Adding Controls to a Dashboard

Since the Freight report refers to input controls that determine the data it returns, those controls can be added to the dashboard.
To add controls to the dashboard:

1. 2. 3. 4.

If it isn’t open, locate the Freight Dashboard created in section 2.2.2, typically in the /Dashboards folder. Right-click the dashboard name and select Open in Designer... from the context menu. The Freight Dashboard appears in the designer, as shown in Figure 2-4. In the Available Content list, open the Special Content > Single Report Controls folder. The three input controls associated with the Freight report appear. Click the arrow to the left of the Country input control to move the control to the dashboard. The Country input control and its label appear in the upper-left corner of the dashboard area, nudging the Freight report down to accommodate the new control. If you wanted to place the input control in another location, you could drag it from the Available Content list to the desired location. Note that the input control and label are independent; you can delete one or the other and resize them individually.

5. 6. 7. 8. 9.

Select a new value from the Country input control, and notice that the data displayed in the Freight report changes; the Account report does not update because it does not refer to an input control named Country. Use the arrows to add the OrderID and RequestDate controls, as well. Click just above and to the left of the Country label, and drag the mouse to draw a selection rectangle. Draw the rectangle across the three input controls and their labels to select them. Click one of the selected input controls, and drag down to move them below the Freight report’s frame. Draw a selection rectangle to select the OrderID input control and its label, and drag them directly beneath the Country input control.

19

JasperServer User Guide 10. Draw a selection rectangle to select the RequestDate input control and its label, and drag them directly beneath the OrderID input control. 11. Click the OrderID label, and select Edit Label form the context menu. The label becomes editable and its text is selected. 12. Type Order and press Return. 13. Change the RequestDate label to Date. 14. In the Available Content list, navigate to Special Content > Standard Controls, and drag the Submit and Reset buttons so they are underneath the input controls in the dashboard area. By default, a dashboard automatically updates when you change the values in its input controls. When the dashboard includes the Submit button, JasperServer doesn’t update the dashboard until you click the Submit button. 15. Click Save. The dashboard is saved to the repository.

2.2.4

Adding a Custom URL to a Dashboard

You can create a frame that displays any URL-addressable content. Such mashups can help you leverage data from many sources in a single, integrated view.
To add a custom URL:

1. 2. 3.

If it isn’t open, locate the Freight Dashboard saved in section 2.2.3, typically in the /Dashboards folder. Right-click the dashboard name and select Open in Designer... from the context menu. The Freight Dashboard appears in the designer, as shown in Figure 2-4. In the Available Content list, select Custom URL (in the Special Content folder), and drag it to the lower-left corner of the dashboard. You are prompted to enter the URL of the web page you want the frame to display. In the URL field, enter news.google.com. Click the check box next to Country to select that input control, and in the URL Parameter Name field, replace the default text (Country) with the letter q. Note that this field is case-sensitive. This tells JasperServer to map the dashboard’s Country input control to Google’s q (query) parameter. Now, when you select a value in the Country input control, JasperServer passes that value to news.google.com, so that the news displayed in the frame relates to the selected country. Note that the other two input controls also appear in the URL definition window; if news.google.com accepted a parameter that was compatible with these input controls, you could check their check boxes to associate the URL with these input controls, as well.

4. 5.

Figure 2-5

Defining a Custom URL Frame

6.

Click OK to close the custom URL dialog.

20

Working with Dashboards 7. 8. 9. Select a new value from the Country input control, click Submit, and notice that the news displayed in the custom URL frame changes. Resize the custom URL frame so that only the first article’s synopsis appears. Drag the custom URL frame to the left so that its left edge is aligned with the right edge of the input controls. The menu expands to display options for how frequently JasperServer should refresh the frame’s content. Smaller values make JasperServer update the frame more often. By default, a frame is never automatically refreshed (that is, its Autorefresh Interval is set to Manual Only). 11. Click 5 Minutes beneath the Auto-refresh Interval on the context menu. Auto-refresh only affects the end user view of the dashboard. In the designer, the frame is never auto-refreshed. 12. Click Save. The dashboard is saved to the repository.

10. Click the custom URL frame, and click Auto-refresh Interval on the context menu.

2.2.5

Refining a Dashboard’s Layout

Once your overall layout is complete, you can refine the look and feel of your dashboard.
To refine the dashboard’s layout:

1. 2.

If it isn’t open, locate the Freight Dashboard saved in section 2.2.4, typically in the /Dashboards folder. Right-click the dashboard name and select Open in Designer... from the context menu. The Freight Dashboard appears in the designer, as shown in Figure 2-4. Note the gap at the top left when you moved the input controls to a new location, as described in 2.2.4, “Adding a Custom URL to a Dashboard,” on page 20.

3. 4.

Click in the upper-left corner and draw a selection rectangle around all the frames, click one of the selected frames, and drag up to reduce the unused space at the top of the dashboard. Click Preview. The end user’s view of the dashboard appears; if the dashboard is already open in your browser, JasperServer updates that page rather than opening a new window or tab.

5. 6. 7. 8. 9.

In the Country field, select a new value. Note that the Freight report and custom URL frames do not update; this is because the dashboard includes the Submit button. Return to the dashboard designer and, in the dashboard area, hover your cursor over the Submit button, and when the hover border appears, click it. From the context menu, click Delete Item. The Submit button disappears. Reposition the Reset button to so it’s centered in the available space. Click in the Dashboard Selector, and select Add Title Text in the context menu. The title becomes editable.

10. Enter Orders and Current Events by Country. 11. Click Preview. The end user view of the dashboard appears. 12. Change the value in the Country input control, and note that the dashboard reflects the change immediately. 13. Return to the dashboard designer and click Save. The dashboard is saved to the repository.

21

When you delete a report with input controls from the dashboard. when you select multiple frames. This disables the default snap-to-grid behavior. the context menu only includes the Delete Items option. You can use the arrow keys to move selected content one grid space at a time. display the list again by clicking . if you select a frame and a button. keep these tips in mind: You can drag items from the Available Content list and drop them to add them to the dashboard. If you select multiple items or frames. For example. For example. depending on whether you selected a button or a frame.6 Tips for Designing Dashboards When you are creating or editing a dashboard. You can’t resize buttons or input controls. Delete them manually. such as Hide All Scroll Bars and Auto-refresh Interval. This is especially helpful for charts and small crosstabs. but their labels remain.2. the context menu only includes options that apply to all the selected items. it might include the Delete Item or Delete Frame option. so long as this doesn’t create a circular dependency. the context menu includes several options that can apply to frames. the controls are also deleted. JasperServer shows the default URL without passing the parameter. To create a new version of a dashboard. you can’t add a dashboard to itself. A dashboard can include other dashboards. Use Ctrl-click to select multiple frames and items in the dashboard area. Press the Ctrl key to move the selected content a single pixel at a time. Use the Hide Scroll Bars option on the frame context menu when you can size the frame to exactly match its content. or use the Available Content context menu Add to Dashboard option.JasperServer User Guide Figure 2-6 Dashboard with Sample Reports and Special Content 2. Drag an item from the Available Content list and drop it on an existing frame to replace the existing content. If a custom URL frame is mapped to one of the input controls that was deleted. 22 . Click to hide the Available Content list. open it in the designer and click Save As on the Dashboard Selector context menu. The context menu changes depending on your selection. Put another way. Press the Ctrl key while dragging or resizing items and frames for smoother cursor movement.

and looks for the file you specify in the JasperServer’s WEB-INF directory. For more information. Adding the same dashboard twice to a parent dashboard can create a compelling comparison. users can set the input controls separately for each set of reports. Select multiple frames to change their sizes all at once. Figure 2-7 A Dashboard Comparing Data from Two Countries 23 .Working with Dashboards If a report displayed in a dashboard is moved to a new location in the repository or if it is deleted entirely. When you drag the edge of one frame. create two dashboards that each refer to the input control. JasperServer uses the FILE protocol. In this case. in particular. The dashboard designer may seem unwieldy if you design for a screen size as big as or larger than your own.2. horizontal scrolling can be awkward. and then select Use Proportional Sizing from the Dashboard Selector context menu. Now. Not all web pages support the technology underlying JasperServer’s dashboards (IFrame). However. then create a dashboard that includes those dashboards. JasperServer assumes that you want to use the HTTP protocol for custom URL frames.7. you can specify that it use the FILE protocol by entering file:// at the beginning of the value in the URL. You can also design the dashboard for your resolution. it is deleted from the dashboard.” on page 24. or using a larger monitor. By default. the URL frame’s behavior may be inconsistent. see 2. This is helpful for including images. If you have multiple reports that refer to the same input control. In such cases. “About Screen Sizes. the other frames change size as well. but you do not want them to be controlled by a single input control. Try hiding the content pane.

7 About Screen Sizes When you create a dashboard. 2. its margins are stripped. the dashboard designer supports five standard screen resolutions. The reports should be small..4 Designing Reports for Dashboards When defining reports for a dashboard.JasperServer User Guide 2. By default. Note that frames do not resize automatically in the designer. the repository includes the /Dashboards folder where you can store your dashboards. By default. select Save As from the Dashboard Selector context menu. and specify a new name. you can set the dashboard area to 800 by 600 pixels to emulate your end users’ screen size. resizing. In particular. Select View > Repository and search or browse for the Dashboard you want to modify. When an Ad Hoc report is displayed on a dashboard. dashboards support proportional sizing.” on page 17. Edit the dashboard by adding.. When you are satisfied with the dashboard. 4. its frames do not resize automatically when the window size changes. 2. or dragging content. Jaspersoft recommends that you design dashboards using fixed sizing mode. you can set the screen size to change the dashboard area to match a particular screen resolution. When a dashboard uses fixed sizing. To create a new version of the dashboard. if you are designing a report for end users who use laptops that only display a screen resolution of 800 by 600 pixels. click Save. However. proportional sizing is only evident in the end user’s view of the dashboard. 2. its frames resize relative to the size of the browser window. note that: You can resize free text items to a smaller size. since dashboards typically contain multiple reports. but you can’t make them bigger. Put another way. Jaspersoft resizes the frames so that they all appear in the window without requiring the user to use the browser’s scroll bars. “Creating a Dashboard. 3. keep these hints in mind: Charts and small crosstabs are best suited to dashboards. For example. you don’t need to strip the margins manually when designing the report. removing. your reports shouldn’t be too wide.2. then. when the dashboard is viewed. For more information about working with dashboard content. To edit a dashboard: 1. or when you select a new screen size in the designer. switch to proportional sizing before you save. you can design table reports that work well in the dashboard. which are available under the Screen Size option in the Dashboard Selector context menu.3 Editing a Dashboard You can edit a dashboard if you have the proper permissions. In addition to fixed screen resolutions. which calculates frame sizes using percentages of the total window size. Right-click the dashboard and select Open in Designer. from the context menu. as horizontal room is always at a premium in a dashboard. when a dashboard uses proportional sizing. 5. rather than using fixed values. The designer appears. Such reports tend to be very narrow and typically refer to input controls to limit the number of rows they return. If a dashboard that uses proportional sizing is bigger than the specified screen size. displaying the dashboard. In proportional sizing.2. 24 . This may result in a change to the shape of the frames. see section 2. The grid turns red when any content hangs over the edge of the dashboard area.

JasperServer may be unable to retrieve the correct data from the external URL. give it a meaningful name that can be reused in other reports. it is instead displayed as drop-down. When defining a parameter in a report.” on page 20. the value you enter in the URL Parameter Name field is also casesensitive. If a report’s input control is set to display as a radio button set. If you want to pass a value to an external URL. when two reports that include this parameter are added to the dashboard. 25 .Working with Dashboards If you want a single input control on the dashboard to control the data displayed in multiple reports. the URL Parameter Name you specify for the input control must match the name of a parameter that URL can accept. the name of the parameter may be case-sensitive. “Adding a Custom URL to a Dashboard. Note that this is the case for Google’s q parameter that is referenced in 2. For example. you might have a query-based list of employee names that can be used in both sales reports and human resources report. in this case. the value of the input control must also be a value the URL can accept. the target URL is likely to have requirements and limitations. their input controls appear as Special Content in the Available Content list.4. Storing such input controls in the repository encourages their reuse when reports are designed and added to the repository. Otherwise.2. For example. the reports themselves need parameters with the same name as the input control. In addition. Then. Beyond these requirements. It is essential that the input control pass data that the URL can accept.

JasperServer User Guide 26 .

Running Reports 3 RUNNING REPORTS JasperServer makes it easy to run reports that help you understand and present your data to their best effect. so long as you have proper permissions. click view your reports. For more information. On the Home page. This means you can view other users’ reports. as in this report that simply lists accounts. “Searching the Repository.3.” on page 10. To run a report: 1. This chapter contains the following sections: Running a Simple Report Running a Flash Chart Running a Report with Input Controls or Filters Scheduling Reports 3. The Repository page appears with a filter showing all reports that your user account has permission to view. You can also search on partial names or for words in the report’s description. The tutorials in this section and throughout the user guide assume that you have installed the sample data that is provided with JasperServer. refer to section 1.1 Running a Simple Report Some reports are simple tables with rows and columns of data. you can enter its name in the Search field and click Search to locate it in the repository. If you know the name of the report you want to run. 27 .

The report appears. or CSV). JasperServer displays a message indicating that it is retrieving the data. click an export icon: . and OpenDocument Spreadsheet (ODS). XSLX. Use the arrows at the top of the page to view the whole report. Alternatively. OpenDocument Text (ODT). Figure 3-2 Output of the Accounts Report 3. To view and save the report in other formats. 2. Microsoft Word (DOCX or RTF). you can click Cancel to stop the report from running.JasperServer User Guide Figure 3-1 Viewing All Reports in the Repository Use the scroll bar at the right of the page to view the entire list of reports. right-click anywhere in the report row and select View from the context menu. containing accounts and contact information. The output can be exported to a file in these formats: Adobe Acrobat (PDF). click the Back icon . You can view the file in its application and save it. Adobe Flash (SWF). Click the name Accounts Report to run the report. 4. To return to the reports listing. If necessary. Microsoft Excel (XLS. 28 .

Flash charts are also interactive.2 Running a Flash Chart This release of JasperServer supports Flash charting. and Flash Widget Report. These components are based on Fusion libraries and generate Flash output that is embedded in the HTML and PDF output. Charts. Widgets Pro – Non-standard charts such as gauges. see chapter 5. Charts Pro. Flash Map Report. Charts Pro – Standard and stacked charts with animation and interactivity. However. 29 .” on page 79. including Flash Chart Report. see the iReport Ultimate Guide. To view Maps. The repository displays the search results. spark lines. The sample data installed with JasperServer includes a very simple example of each Flash chart: 1. the space used by the element remains blank. and interactive reports: Maps Pro – Color-coded maps covering all countries and regions of the globe. Flash charts are JRXML reports that are created in iReport Pro and uploaded to the repository as a report unit. type flash into the search field. JasperServer cannot create Flash charts. then click any of these report names. or Widgets Pro element is exported in a format other than HTML or PDF. the value for that state. JasperServer Professional and Enterprise editions include the Maps Pro. To interact with the map in JasperServer. To view these elements in PDF output. The reports launch in the same manner as any other reports. a new feature implemented in JasperReports Pro. “Adding Reports Directly to the Repository. mouseover any of the states on the map to see the full state name and. animated. as explained in the following examples: Figure 3-3 Output of the Sample Flash Map Report The color-shaded states correspond to value ranges given by the legend. and press Enter or click Search. and Gantt charts. 2. For information about creating flash charts.Running Reports 3. When a report containing a Maps. From any page in JasperServer. funnels. To upload JRXML reports. Make sure Flash is enabled in your browser. and Widgets Pro elements in JasperServer. and Widgets Pro component libraries that create visually appealing. Flash must be installed and enabled on your browser. Flash charts can be animated as they are drawn. Charts. giving them greater visual appeal. you must use a Flash-enabled PDF viewer such as Adobe Reader 9. when data exists.

you may need to enable links in order for them to work. 2. Charts Pro. You can then display the controls and run the report with new values. see the iReport Ultimate Guide. Click the name Freight Report in the list of results. Depending on the security settings in your Flash player. Chart elements. they are rendered as input controls when running the reports based on the Domain Topics. or Widgets Pro components. The Open Flash Charts Report listed in the search results is an experimental report that uses a different Flash library. When you view the report at first. click a segment to separate it from the others. and Widgets Pro components are fully supported by Jaspersoft.3 Running a Report with Input Controls or Filters Input controls and enable you to select the data returned when you run the report. Flash charts have many features that are not illustrated in these sample reports. and widget segments are clickable and can be linked to more detailed reports. and Order ID. the report runs with default values. Charts. These are simple examples with unrealistic data. Request Date.3. To run a report with simple input controls: 1. 30 . 3. 3. For more information about uploading resource bundles for Maps. even map labels. The report appears. The search results are displayed in the repository. among them: As with any JRXML report.JasperServer User Guide Figure 3-4 Output of the Sample Flash Widget Report To interact with the pyramid widget in JasperServer. enter freight and click Search. text appearing in the report can be localized. or Widgets Pro components can present several layers of information in compelling ways. Charts. map regions. When filters are defined in Domain Topics to be prompted.1 Simple Input Controls The Freight Report example has three input controls: Country. The Maps Pro. In the Search field. but they show how Maps.

and click OK.Running Reports Figure 3-5 Shipping Report with Country = Mexico by Default In the report as it was saved. 3. Figure 3-6 Setting Country = USA in the Report Options Dialog The report appears with USA as the country instead of Mexico. . To run the report with other values. click the Report Options icon The Report Options dialog appears. the country is Mexico. and so the postal codes and customer IDs are for Mexico. All order IDs are above 10600 and all order dates are after June 1. 4. 31 . and the postal codes and customer IDs are for the US. Figure 3-7 Shipping Report With Country = USA You can also click Apply in the Report Options dialog to refresh the report but keep the dialog open. Select USA in the Country field. This allows you to interact with the report and easily find the data you need. 1997.

The new USA version of the sample report is listed beneath the report’s original version. To make USA the default country. enter USA as the new name. Figure 3-8 Naming the Saved Values The Report Options dialog now has a drop-down list showing USA as a set of saved values. In the window. 6. Figure 3-9 Report Options With a List of Saved Values If you click Reset. Figure 3-10 Report With Saved Values in the List of Reports 9. and click OK.. then click Save Values. You can open the report directly with the saved values for the input controls by clicking on the name of the saved version. 7.. in this case Mexico. Right-click the saved version and select Properties. 10.JasperServer User Guide 5. the values of the report options revert back to the original values stored in the report. 32 . click to display the Report Options page again. 8. Click the Back icon to display the search page. You are prompted to name the new set of default values. You can add a description to the saved version of the report. from the context menu. Click the + icon next to the Freight Report to display all saved versions of the report.

Figure 3-11 Adding a Description to a Saved Version of a Report 11. 2. For example. Select a different state. In the Search field. Reports can also be designed with cascading input controls. see 5. the choice of a country determines which states or regions are available to choose from.3. Mexico. Figure 3-12 Adding a Description to a Saved Version of a Report 3. you can click Cancel and select different values. Instead of running the report. and in the case of long queries. The new description will appear in the repository. 4. Enter a description and click OK. JasperServer displays an activity monitor while the query is running. “About Cascading Input Controls. The search results are displayed in the repository. in which case you must enter values before running the report. every value chosen is independent of the others. you are prompted to enter new values for them. in this example. Cascading input controls are implemented as queries that access your database to retrieve the new values. enter cascading and click Search. where the choice for one input determines the choices for the other input.” on page 98. for example Guerrero. 3. Click the name Cascading multi select example report in the list of results. To run a report with cascading input controls: 1.2.Running Reports The Resource Properties dialog appears. Select a different country in the first field.2 Cascading Input Controls With simple input controls. For more information.9. The other fields are automatically updated to reflect the state and names associated with Mexico in your data. The following example also demonstrates required inputs.7. 33 .

JasperServer returns whatever data is passed to it from the data source. as well as data sources authenticated by security frameworks other than the Acegi framework used by JasperServer (see the JasperServer Administrator Guide). right-click it and select Schedule. The report will contain all requested data in the data source. Figure 3-13 Jobs Scheduled Page for a Sample Report Standard users see only the jobs that they have defined themselves. Jobs that you define in the scheduler run the reports in the background and save the output in the repository.. The report creates a list of all account names in the chosen states of the chosen countries. Be careful when you schedule a job as an administrative user with no data restrictions. “The Domain Security File. For example. Label – A short description provided when creating the job. In the figure above. The scheduled jobs page appears for the chosen report. Owner – The user who created the job. from the context menu. You can also have the output sent to you and others as email attachments. External data sources might be subject.4.4.. The chosen name is listed at the top of the report. Some data sources can pass access grants along with their data. Any number of jobs can be scheduled for the same report. Standard data sources in the repository are not subject to access permissions. Permission to edit a schedule is simpler. The other values are updated to reflect your choices. It is up to the user to configure whatever is passed to JasperServer. Click OK to run the report with your chosen values. 5. In these latter cases.” on page 35).2. Click the icon to see the jobs scheduled for the report. some cannot. “Scheduling a Report. 3. reports with scheduled jobs have a small icon beside the report name. 3. use controlclick to select multiple values in each lists. The list shows the following information for each job: ID – The internal ID number of the job. You can view the output there. Joe User has scheduled three jobs for the Freight Report. the other users need to schedule the report themselves.4 Scheduling Reports The report scheduler enables you to run reports at prescribed times. locate the report in the repository. Only the user who created the schedule or a user with the administrator role can change or delete it. and any user that receives the report can view all the data regardless of the user’s access restrictions. administrators see the jobs defined by all users. Reports that she schedules only show data from that region even when the report is viewed by users in other regions. If a report does not have the schedule icon. your options vary depending on whether the report has scheduled jobs: In the repository.JasperServer User Guide The names field updates to reflect the choice of state.4. accompanied by a link to edit the job details.” on page 155). but Domains are (see 7. If the report’s data source is subject to access permissions.1 Viewing Scheduled Jobs To view the jobs that are currently scheduled for a report. Scheduled reports run as the user who defines the job (see 3. To see the data for their own regions. The country and state inputs are defined as multi-select. Gloria has access only to inventory data from the Southeast US region. the report contains the data that the user has permission to see. 34 .

If the report already has a schedule that you want to add. “Running a Job in the Background. 35 . The Scheduled Jobs page appears. Last ran at – The last time the report was run. modify.” on page 39. 3. 2. for example to see if a job has finished running. This does not include cases where the job is successfully triggered. as shown in Figure 3-13 on page 34. The Job Details page appears. See section 3. Right-click the report and select Schedule. The description is optional. Click Schedule Job. In the Label field. 3.Running Reports State: Normal – The job is scheduled. the report is completed before the job is deleted.. Running – The job is currently running. click View > Reports. or delete.6. Use the search field or browse the list of reports to find the report you want to schedule. Complete – The job is complete. Checkbox – Select for removal. click view your reports. Refreshes the list of jobs. allowing you to continue working in JasperServer. Opens the Job Details page to define a new job.2 1. Figure 3-14 Job Page for Scheduling a Report 5. from the context menu. Runs the report in the background. click the small icon beside the report name. JasperServer deletes completed jobs automatically. When a job is deleted while it runs. Next run time – The next time the report will run. but an error occurs while it runs.. 6.4. Deletes all the jobs selected with a check mark.4. or from any page. Error – The scheduler encountered an error while scheduling or triggering the job. Buttons on the page include: Button Back Schedule Job Run Now Refresh Remove Description Returns the user to the repository manager or the list of reports. 4. Click Next. enter a name for the job. Scheduling a Report To schedule a report: On the Home page.

JasperServer User Guide The Schedule page appears. In this example. for example a weekday report that you want to start next week. 10. For details. If you have saved values. or weekly interval. Start – Immediately or in the future. “Specifying Job Recurrence. we used the saved values for USA. 9. 36 . The fields that appear are the input controls defined for the report you are scheduling. or if specified. If you specify recurrence. If the report you are scheduling has input controls that prompt for user input. In this example. additional controls appear on the page. the time zone you entered at log in. they appear in a drop-down list at the top. Click Next. 8. the start date and time define when the report will run. If you do not specify recurrence below. You can always set the input values directly. Calendar Recurrence – Schedule the job to recur on days of the week or days of the month. The default time zone is the that of the server. see section 3. set this field accordingly so that the report is scheduled at the exact time you intend. Click the calendar icon to select a future start date and time. Figure 3-15 Schedule Page for a New Job 7.” on page 38. Set the following schedule attributes: Time Zone – Specify the time zone in which you wish to define the schedule.4. Recurrence – Choose one of the following: No Recurrence – Run the report once. daily. Simple Recurrence – Schedule the job to recur at an hourly. as well as save them as a named set of values. or set the input controls as desired. the new job will start on a fixed date and run only once.5. the Parameter page appears. Figure 3-16 Parameters Page for Scheduling a Report This dialog is identical to the Report Options dialog. Click Next. If you select Simple or Calendar Recurrence. you may still want to delay the first report date. If you are in a different time zone. Choose a set of saved values.

By default.SimpleDateFormat. based on the java. each format will be stored as a separate file in the repository and attached as a separate file to the email notification. select this option to avoid attaching the empty files. specify these attributes as needed: Base output file name – The name of the file as it appears in the repository.Running Reports The Output page appears. This field is required and you must have write permission to the folder. as described in the JasperServer Administrator Guide. Output description – The output file is stored in a repository object.<extension>. no mail server is configured in a JasperServer installation.html Overwrite files – If you do not have sequential filenames or if you specify a timestamp pattern that may lead to identical filenames. Skip Empty Reports – In case of an error and the report is empty.” on page 153). “Resources of a Domain.com/j2se/1.sun. for example 200906150601. When the timestamp is used. Output formats – Select at least one. valid patterns for report output files can only contain letters. The timestamp pattern can be added to the base name. and the format extension is added automatically.text. Be careful when sending reports containing sensitive data via email. underscores and periods. 37 . numbers.3. Subject – Subject line of the notification email. the output filename is <basename>-<timstamp>. The report must support locales. On the Output Details page. not including the file extension. specify the Temp folder. enter one or more email addresses separated by commas. When you select more than one. For more information on the valid patterns for this field. To – For email notification. However. Sequential file names – Appends a timestamp to the names of files created by the job. To send notifications. your administrator must configure one. The default pattern is yyyyMMddHHmm. dashes.4. refer to: http://java. Attach Files – Select this option to send the output of the report with the email. choose whether newer files overwrite the older ones. Locale – Locale for generating the report. Useful for the output of recurring jobs or for time-sensitive reports where the output must be dated. Figure 3-17 Output Page for Scheduling a Report 11. and this is the optional description for the object. for example a report based on a Domain with language bundles (see section 7. If you email the report and do not wish to save it.2/docs/api/java/text/SimpleDateFormat. Message Text – Content of the notification email. Timestamp pattern – Specify an optional pattern for the timestamp. Folder – Select the folder where the report output will be saved.

X times – Runs the specified number of times. you should create a new job rather than changing the past one. according to the chosen interval. as described in section 3. To delete a scheduled job: 1. The job appears in the list of scheduled jobs (see 3. 3. Parameters. or weekly interval that is quick to set up. hours. For example. Figure 3-18 Schedule Page With Simple Recurrence Simple recurrence supports these options: Start – With simple recurrence. Every – The interval between jobs.4.1. days. 2. For each. Occur – Determines how many times or for how long the job will repeat. verify that the next run time for the job is the new date and time you want. and when it ends. Until – Runs until a calendar date is reached. “Viewing Scheduled Jobs.4.4. 38 . Open the Jobs List page for the report.5 Specifying Job Recurrence Simple recurrence and calendar recurrence allow you run reports automatically on a regular basis. the start date and time determines the date and time of all occurrences.” on page 34. Schedule. Open the Jobs List page for the report. 5. Indefinitely – Runs until you delete the job.4. “Viewing Scheduled Jobs.4. 4. 3. Click edit in the row of the job you want to change. Select the check box in the row of the job you want to delete and click Remove.1. Make your changes on the Job Details. To edit a scheduled job: 1.1. daily. you specify when the job starts. In the list of jobs. In the list of jobs. set the start date to the first Monday.JasperServer User Guide 12. 3.4.” on page 34. Click the calendar to select the date. as described in section 3. Your update applies immediately.3 Changing Job Schedules When the start date for a job is in the past. if you want to run the job every Monday.” on page 34). 2. how often it repeats. “Viewing Scheduled Jobs. delete it. verify that the next run time for the new job is the date and time you want. Click Save.4 Stopping a Job from Running To stop a job from running. or weeks. 13. Simple recurrence makes the job repeat at an hourly. 3. in minutes. and Output pages of the dialog. Click Save.

including the time of day. Month Days – Enter dates or date ranges separated by commas. days of the week or days of the month. You can also enter multiple minutes or hours. 3. 0.. For example. Running a job in the background is equivalent to scheduling the report to run immediately without recurrence. 45 for the minutes and 9-17 for the hours will run the report every 15 minutes from 9:00 a. 39 .6 Running a Job in the Background Running a job in the background lets you generate a report. To run a job in the background: 1. from the context menu. It also has the option to export the report directly to any format and save it in the repository. click view your reports. potentially a long-running one.m. 15. Week Days – Choose the days of the week. and months of the year. If your servers recognize Daylight Savings Time (DST).m. 2. Days – Choose the days when the report should run: Every Day. 3. Figure 3-19 Schedule Page With Calendar Recurrence Calendar recurrence supports these options: End date – Calendar recurrence runs until a calendar date is reached.4. use calendar recurrence.Running Reports Calendar recurrence enables you to define a job’s recurrence at a higher level of detail. separated by commas. and keep working in JasperServer.. Right-click the report and select Run in Background. for example: 1. or from any page. On the Home page. Enter an asterisk (*) to run the job every minute or every hour. click View > Reports. You can also send the generated report by email. which is quick way to share a report with others. to 5:45 p. 30. The hours use 24-hour format. 15 Months – Choose the months during which the report will run. jobs scheduled using simple recurrence may seem to occur one our later (when DST ends) or one hour earlier (when DST begins). If you want your jobs to recur at the same time of day and respect DST adjustments. Minute and Hour – Set the time of day when the job should run. Click the calendar to select the date. Use the search field or browse the list of reports to find the report you want to run. as well as ranges.

4. or set the fields one at a time. 40 .4. Click Save. Click Next. when finished. “Output Page for Scheduling a Report. In the meantime. The report begins to run immediately and.7 Other Report Parameters When the report scheduler runs a report.” on page 35. “Scheduling a Report.Date"/> Use the _ScheduledTime value to display the date the report was run. Choose a set of saved values. as in Figure 3-16. The Output page appears as in Figure 3-17.2. 6.JasperServer User Guide 4.” on page 36. 3. You can use this parameter in a report by declaring it in the JRXML using this syntax: <parameter name="_ScheduledTime" class="java. 5.util. the Parameter page appears. “Parameters Page for Scheduling a Report.” on page 37. stores or sends the output as directed on the Output page. a built-in parameter named _ScheduledTime can pass the date and time the report was scheduled to the report. you can continue working in JasperServer. Enter the information as described in step 11 in 3. If the report you are running has input controls or filters that prompt for user input.

6. administrators and iReport users create Topics as JRXML files. add fields. and select summaries and data formats for each field. JasperServer may load a Topic or Domain’s entire result set into memory when you edit or run the report. Domains give JasperServer administrators and business analysts flexibility to filter the data and create input controls and control the list of available fields.” on page 74.3. While Topics contain the fields used directly in a report. which are repository objects defined by data analysts or server administrators to provide a prepared view of a data source. Depending on your configuration. You can select report types. refer to section 4.” on page 78.1 4. If the data policies are disabled. you can change the data loading policy. You can edit reports in the Ad Hoc Editor if they were created there originally.” on page 76 and 4.7.2. A Topic can also be created from a Domain. 41 .1.Working with the Ad Hoc Editor 4 WORKING WITH THE AD HOC EDITOR The Ad Hoc Editor creates tables. refer to 4. You can also use the editor to explore and analyze your data interactively. For more information. Alternately.2. and charts as you drag and drop elements. define groups.5. select labels and styles. For more information. “Uploading a Topic. This chapter contains the following sections: Understanding the Ad Hoc Editor Designing an Ad Hoc Report Exploring and Analyzing Data in the Ad Hoc Editor Additional Features of the Ad Hoc Editor Creating a Report from a Domain Uploading a Topic Configuring System-level Ad Hoc Options 4. “Data Policies. The Ad Hoc Editor loads data from Topics or Domains.1 Understanding the Ad Hoc Editor Topics and Domains Generally. but you can’t edit reports in the editor if they originated in iReport. “Saving Domain Settings as a Topic. ensure that each Topic or Domain’s query returns a manageable amount of data. crosstabs. given your environment’s load capacity.

After you click Undo All. click this icon. click the Styles icon and choose a different style. Click this icon to undo the most recent action.” on page 62. “Switching Groups. Save Run Undo Redo Undo All Sample Mode Pivot or Switch Group Click this icon to change the way groups are displayed. This icon is only available immediately after you have clicked the Undo icon. To work with the complete data set. “Sorting Tables. JasperServer only loads a subset of the data in your data source. and other changes that require JasperServer to process your data. Table: displays the alternate grouping.4. The full data set gives you an accurate view of the your report and is helpful for exploring the data itself. Save the report with the current name and location or save it with a new name and location using the Save Report As option. For more information. you could change the dates the report includes. for example. Note that you can’t undo a style selection. Click this icon to redo the most recently undone action. the subset is helpful in visualizing how your groups will look and for setting summaries. When you run a report. For example. you can select new values to change the data displayed in the report. Chart: displays the alternate grouping. clicking this icon removes the field from the report area.2. you can change summaries and datatypes for all report types. you can change the chart type. Description Click this icon to hide the editor interface and view the report by itself. and display options in charts.JasperServer User Guide 4. you can change its filter and input control values but you can’t change its layout. For more information.” on page 59.” on page 61.2 Table 4-1 Icon The Ad Hoc Editor Tool Bar Ad Hoc Editor Tool Bar Icons Name Presentation Mode The tool bar at the top of the editor provides access to many of the Ad Hoc Editor’s functions:. if you added a field to a table. By default. This icon is only available when input controls are defined for a JRXML-based Topic. legends. Sort When working with tables. refer to 4.1. In tables. click this icon to view the current sorting (if any) and to select fields by which to sort your data. In some cases. since the summary context menu appears at the bottom of the column. you can define sorting and the order and size of columns for tables. Depending on the tab you’re viewing. you can click the redo icon to recreate the steps you took before you clicked the Undo All icon. Click this icon to view the input controls applied to this report. Click this icon to select a style that determines the fonts and colors in your report. “Using Input Controls. This view opens in a new window or tab.1. For more information. Click this icon to run the report and view its HTML preview. The words Sample Data appear to the right of the Crosstab tab when you are working with a subset of the data. This mode provides a subset of the Ad Hoc Editor’s full feature set. For example. Click this button to revert the report to its state when you last saved.4. changing grouping.3. refer to 4. the behavior differs: Crosstab: pivots the column groups with the row groups. refer to 4. Input Controls Styles 42 . click this icon to load the full set of data. Instead.4. which improves performance when adding fields. taking any other access disables the Redo icon. those filters can be changed or removed. If the report includes filters created in the editor. When working with a table or crosstab. and provides export options to formats such as XLS and PDF. Place your cursor over this icon to open a menu of save options.4.

charts. each column might contain one measurement of the orders. Date Placed City A Product 01 Date Date Date Date Date Product 01 totals: Product 02 Date Date Date Date Date Date Count Date Date Date Date Product 03 totals: Date Date Date Date Date Count Date Date Date Date Date Date Count Date Date Date Date Count Amount Amount Amount Amount Amount Sum Amount Amount Amount Amount Amount Amount Sum Amount Amount Amount Amount Sum Date Filled Payment Received Product 02 totals: Product 03 City A totals: City B Product 01 Date Date Date Date Date .. For instance. You can: Change whether to display the filter pane.. Rows can be grouped by their properties. and the rows could be grouped by city and product.Working with the Ad Hoc Editor Table 4-1 Icon Ad Hoc Editor Tool Bar Icons Name Page Properties Description Place your cursor over this icon to open a menu of page-level options...1. In tables.3 Tables. and Crosstabs The Ad Hoc Editor provides three modes for working with your data—tables. Amount Amount Amount Amount Amount .. each row represents a something being measured. Columns can include both properties and measures. Charts. Change the page size. in a report on orders. 4.. Count Sum Date Date Date Date Date . Change the page orientation. This option is only available if the table includes grouped columns. Change whether to display the title. you can also hide or show the detail rows when the data is summarized. 43 . and crosstabs: Table – Use tables to view all the data in the report or to summarize the data across one set of related fields.

Crosstabs are more compact representations than tables.... rows grouped by city and product. Filled Payment Manager Totals Filled Payment Filled Payment Filled Payment Filled Payment Filled Payment . you could configure the chart in a number of ways: you could group the bars by region or city. cells contain the summarized measurements.. or use a completely different chart type. With the exception of time series and scatter charts... each type of chart compares summarized values for a group. Filled Payment 2008 Filled Payment Filled Payment Filled Payment Filled Payment Filled Payment . Filled Payment Year Totals Filled Payment Filled Payment Filled Payment Filled Payment Filled Payment . Filled Payment Year Totals Filled Payment Filled Payment Filled Payment Filled Payment Filled Payment .. Charts summarize data in a graphical representation that can highlight your successes and challenges. Tom 2007 City A Product 01 Product 02 Product 03 Product Totals City B Product 01 . the example above could be displayed in a crosstab with columns grouped by sales managers and year. and two data measurements in each cell. City Totals Filled Payment Filled Payment Filled Payment Filled Payment Filled Payment .. For instance.... such as a pie chart in which each slice depicts the payment received grouped by product or city.. you could click the Chart tab to view the data in a bar chart that showed the sum of payment received for each of the products in each of the cities. Crosstab – Use crosstabs to summarize data across multiple sets of related fields. Filled Payment 44 . Filled Payment Harriet 2007 Filled Payment Filled Payment Filled Payment Filled Payment Filled Payment ... For example..JasperServer User Guide Chart – Use charts to compare one or more measures across multiple sets of related fields.. Total Payments Received City A Product 01 City B Product 02 Product 03 City C Depending on your needs. Columns and rows specify properties that are used as dimensions for grouping. Filled Payment 2008 Filled Payment Filled Payment Filled Payment Filled Payment Filled Payment .

The fundamental areas in the editor are: The tool bar. 45 . “Exploring and Analyzing Data in the Ad Hoc Editor. including: Selecting the Content of a Report Formatting the Appearance of a Table Viewing and Running a Report in the Editor The Ad hoc Editor is also helpful in exploring and analyzing your data. this table might be used to analyze whether shipments could be combined to save on costs. the concepts and procedures apply more broadly to Domains and Domain Topics when used as the basis of Ad Hoc reports. The Domain or Topic and its list of available fields. The report type tabs (Chart. see 4. It is typically in Ad Hoc Components/Topics. To design a table in the Ad Hoc Editor: 1. select the demo for adhoc Topic. On the Topics tab. for more information. and click Open Report.3.2.2 Designing an Ad Hoc Report While many users think of the Ad hoc Editor as a report designer. click Create > Ad Hoc Report. While the example in this section is based on a JRXML Topic.1 Selecting the Content of a Report In the following example. The location of this Topic may depend on your system configuration. click Table.Working with the Ad Hoc Editor 4. This section discusses some of the editor’s basic functionality. The Ad Hoc Editor appears. Figure 4-1 Topics and Domains Window 2. 4.” on page 50. The Topics and Domains window appears. you’ll create a table that shows the ship date and shipping charge of orders. After logging into JasperServer. Table. and Crosstab).

With the new ordering. right-click Name and select Add as Group from the context menu. and select Add as Group from the context menu. Drag the top-most Country heading upwards above the City group and drop it. The report area refreshes and displays your selected data grouped by city. In the list of fields. 7. 9. Review the data in the Buenos Aires group. The report area refreshes and displays the data grouped by both city and country. Remove the column from the table by dragging the column heading out of the report area. You can also drag to add fields from the list of fields and to rearrange columns in the table. In the list of fields. 4. The order of the groups is determined by the order in which you added them to the report. When you create a new report. 5. and the report area is empty. However. while others show data for Rancho grande or Océano Atlántico Ltda. right-click the City field. The report area refreshes and displays the rows grouped by country and then city. some show data for Cactus Comidas por llevar. The field context menu also provides this option. 8. and notice that the rows are mixed. In the list of available fields. 6. click Country and drag it to the Group Control icon .JasperServer User Guide The report area. The field context menu also provides the option to add fields. Notice that the Shipped via column displays a list of numbers that seem irrelevant. you can change the order to correct it if it doesn’t make sense. click Date ordered Date shipped Order ID next to the following fields to add them to the report: Name Postal code Shipped via Shipping charge Data for each field appear as you add the columns to the table. the editor displays rows that describe stores in Argentina. the available fields appear. In the list of fields. Figure 4-2 New Report in the Ad Hoc Editor 3. Drag the Name column out of the report area to remove it from the table. 46 .

The Ad Hoc Editor displays the totals (sum) for each name. the words Sample Data disappear and the total for Argentina changes from $597. city. Note that. Working with the full set of data gives you a clearer understanding of the final report. Accept the default value for Location Folder. Also note that it is easier to work with summaries in tables when only the subset is shown. In the Report Name field. 12. Click to include the entire data set in your table. this is because the summary context menu appears at the bottom of the column. 14. 15. city.Working with the Ad Hoc Editor The report area refreshes and displays the data grouped by country. Right-click the Shipping Charge column heading and select Add Summary from the context menu. enter Ad Hoc Demo Report. 17. or click Browse to select a new location. Above the report area. This is because. and displays a context menu where you can change or remove the summary function if necessary. Figure 4-3 Unformatted Table 11. Place your cursor over and select Save the Report. In the Description field. 10. You have created a basic report that shows the ship date and shipping charge recorded for orders in the sample data. 13. 16. and name. by default. click Chart to view this same data as a chart. the editor only displays a subset of your data when working with a table. enter This report was created with the Ad Hoc Editor. Above the report area. to the right of the Crosstab tab. and country. working with a subset of the data may improve the performance of the Ad Hoc Editor. click the Table tab to return to the table view. The default location depends on the permissions granted to your user account. Right-click the chart and select Chart Type > Pie to view a pie chart of the data. 18. 47 .00 when the full set of data is displayed.00 to $600.

Right-click the first Name group (Cactus comidas por llevar) and select Edit Label from the context menu. 10. Enter Orders and Fees by Customer. Click to choose the report’s style. 7. but you can’t edit reports in the editor if they originated as JRXML files. In the Search field. You can edit reports in the Ad Hoc Editor if they were created there originally. The Search page appears. 4. 11. click the text Click to Add a Title. Above the table. Right-click the Date ordered column and select Edit Label from the context menu: 48 . The Ad Hoc Demo Report appears.2. or the Search field. enter ad hoc demo and click Search. 2. the main menu. 6. Note that you can select a different Topic or Domain for your report. All data and formatting are lost when you select a new Topic or Domain and click Open Report. 5. The Styles window appears: 8. Note that your changes are preserved if you select the current Topic or report once again. 3. right-click the Ad Hoc Demo Report and select Open in Designer from the context menu.JasperServer User Guide 4. The title becomes editable. In the Repository pane. Click change to the right of Topic to select a different Topic or Domain. Click Cancel to return to the editor without changing the Topic. Your changes are also lost if you navigate to another page. Enter Customer for the group label.2 Formatting the Appearance of a Table Next you’ll change the appearance of the table. To format a table in the Ad Hoc Editor: 1. Your changes are lost when you use the browser navigation buttons. The group label becomes editable. displaying objects that match the text you entered. This option is only available for reports that were created in the Ad Hoc Editor. 9. Select the Ocean style and click Close.

Drag the 16. Use Ctrl-click to select both the Order ID field and the spacer to its right. You could also add the spacer to the farthest right position by clicking its arrow icon . Dollars data format is applied to the Fee column. In the list of fields. 24. The label isn’t used in the report itself. 5/01/08. Adding some space might help. 15. 13.S. The U.Working with the Ad Hoc Editor The column label becomes editable. The dates in the columns now appear in the short date format. Resize the column again until it is as narrow as the data. You have now created and formatted an Ad Hoc report. Drag a Spacer to the right edge of the table. drag the Spacer into the table between each of the columns. Right-click the Ordered on column. Place your cursor over menu. Enter new labels for these columns as well: Date shipped – Shipped on Shipping charge – Fee 12. it is only displayed in the Ad Hoc Editor. Place your cursor over and select Hide Detail Rows to show only the summarized totals for each group. 14. for example. click Change Data Format. select Change Data Format. 17. drag the column edge to the left until the heading is no wider than the data in the column cells. as well. When your cursor changes to the resize icon ( ). The Ad Hoc Editor applies a summary to each field depending on its datatype and inserts a spacer in the leftmost position to improve the table’s formatting.56). 49 . The last few columns are now difficult to read because they are crowded together. 21. and select the short date format. The Save Report As option creates a new copy of the report. Type Ordered on as the new label. Make all columns as narrow as possible. as well. If space is at a premium. 20. Right-click the Postal code column heading and click Delete Label from the context menu. Spacer to left edge of the table. 18. Accept the existing values in the dialog by clicking Save. you can remove labels from the report and make the column only as wide as the data. Spacers can also be used to create margins. 19. and select Save the Report. Apply the short date format to the Shipped on column. 22. Click the Ordered on column heading and place the cursor over its right-hand side.234. and click Change Data Format > ($1. Display the detail rows again from the 23. Drag the field and spacer to the left-most position in the report and drop them. Right-click the Fee column. The name of the column in the database is displayed with a different font and background color.

When you run the report. Run the report by clicking . chart. The following example explores the state sales data in the Foodmart sample data that can be installed with JasperServer. Click and select a page size (Letter. you can: View the report in presentation mode by clicking .1. This section describes: Creating an Initial Layout Focusing on Specific Data Refining the Crosstab 50 .” on page 27. or crosstab. A4. as described in 3. you can also run the report directly from the repository. 4. 4. or Actual Size) if your table fits one of these formats better. In the Ad Hoc Editor.3 Viewing and Running a Report in the Editor When you have created a compelling table. you can save it in the repository for future use. “Running a Simple Report.2.JasperServer User Guide Figure 4-4 Formatted Table Any unused space at the right of the report area is retained when you run the report. it is displayed as a Jasper Report.3 Exploring and Analyzing Data in the Ad Hoc Editor You can use the Ad Hoc Editor to delve into your data and recognize trends and outliers by exploring and analyzing your data.

and click Open Report. click Create > Ad Hoc Report. The Topics and Domains window appears. where both the Store State column group and the Customer State row group are BC. Store State into the Column Group area. every cell shows a zero except for the first. 7. 51 .Working with the Ad Hoc Editor 4. It is typically in Ad Hoc Components/Topics. Right-click the Store Country column group label and select Expand Members. 4. For example. 8. and specify a location. 3. Use the scroll bars if necessary. click Crosstab. On the Topics tab. You can make the crosstab more readable and compact by pivoting the Customer State row group so that all geographical groups are on the same axis of the crosstab. Create a crosstab. in the BC column group. Review the data in the crosstab.3. Store Sales as Measure.56). Click Save > Report enter a name. Drag: Store Country into the Column Group area. 6. Right-click Customer State and select Switch to Column Group. The location of this Topic may depend on your system configuration. Figure 4-5 Crosstab of Foodmart sales totals by state and product family Note that zeroes appear in many of the cells. 2. This indicates that most customers shop in their home state (the store state recorded for their purchases is the same as the customer’s home address state). Product Family into the Row Group area. Creating an Initial Layout To set up the crosstab and define its initial layout: After logging into JasperServer. 5. The non-zero values mainly appear in cells where the Store State column group intersects a Store Customer row for the same state. Right-click the Product Family row group label and select Expand Members. Set the data format: right-click Store Sales in the measure label area and click Change Data Format > ($1234.1 1. but they are obscured by all the zero values. The Ad Hoc Editor appears. select the foodmart data for crosstab Topic. There are a exceptions. Customer State into the Row Group area.

The crosstab is redrawn without data regarding the US or Canada. First. many customers cross state lines to shop. save the crosstab. 7. Figure 4-6 Streamlined crosstab of Foodmart sales Two column groups now show state names.select Save the Report. and the crosstab is more streamlined. 52 . Right-click Customer State and select Expand Members Right-click Mexico and click Keep Only. Next. 3. focus on the data from Mexico. one shows the stores’ locations. locate and edit the Foodmart Crosstab report created in the last example. Why are customers willing to drive hundreds of miles to visit this location? Since the crosstab only includes a single country now. this may be another important outlier.2 1. If the filter pane is displayed. The same is true in the US. but notice a similar issue in Guerrero: the Guerrero store is selling to customers in Sinaloa. BC is the only province that appears in either the Store State or Customer State: all the Canadian customers live in the the same province as the store they frequent. The crosstab is getting easier to read. 5. and Zacatecas. Ctrl-right-click Yucatan. Figure 4-7 Crosstab of Foodmart in Mexico 4. In the next procedure.3. Note that in Canada. the two column group summaries show identical data.JasperServer User Guide 9. and specify a name (Foodmart Crosstab) and location (/reports). Right-click Store Country and select Delete Column Summary. Any cases where a customer made a purchase in another state is more evident. take a look at the sales in stores nearer to Sinaloa: Distrito Federal. 11. Jalisco. Note that fewer cells show zero values. and select Exclude. exclude the others. That seems trivial. 6. But in Mexico. Focusing on Specific Data To focus on specific group members and measures: If it isn’t open. Given that Sinaloa is 1000 miles from Guerrero. Right-click Store State and select Expand Members. which border each other. This seems like an important outlier. Place your cursor over . Several stores are much closer to Sinaloa than Guerrero. 10. If the filter pane is displayed. place your cursor over and select Toggle Filter Pane to hide it. 4. 2. Hide the Store Country column group summary. place your cursor over and select Toggle Filter Pane to hide it. Stores in DF (Distrito Federal) sell to customers in two states: DF and Mexico. Select Veracruz. the other shows the customers’ locations.

and select -1234. click Change Data Format. or 65% of the CA sales LA sold $350. Consider this example: The total for the Snack Department sales is $5000. the percent of row group parent for snacks is 61% and is 29% for Batteries. or 20% of the Snack sales. in this case the total for the inner group is expressed as a percent of the outer group total. the crosstab shows a sales total for all products in the Food product family. It compares values in column groups to their parent values and expresses each measure value as a percent of the containing column group. To continue the above example: The total for all states is $3000 The total for CA is $1000. Right-click the measure’s label. Figure 4-9 Crosstab of Foodmart sales and Percent of Column Group Parent 53 . Sodas sold $4000. and Zacatecas For each customer state. Right-click the new custom field and click Add as Measure. Batteries). Consider this example: The total for CA sales is $1000. You can change the data format of the new measure to make it more readable. or 35% of the CA sales These calculated fields can be used in crosstabs that include nested column and row groups. or 33% of the US sales The total for WA is $2000. If the store also sold $2000 in another department (for example. 9. Figure 4-8 Crosstab of Foodmart sales in DF. It compares values in row groups to their parent values and expresses each measure value as a percent of the containing row group. You can automatically compare them against each other and against the total for each store state. Chips sold $1000. note its abbreviated name: % CGP (Store Sales): CGP means column group parent. 10. or 66% of the US sales. The measure appears in the crosstab. Jalisco. In available fields. A new field appears. or 80% of the Snack sales. 8. % Column Group Parent can also be used in tables with more than one group. RGP means row group parent.Working with the Ad Hoc Editor The crosstab now shows sales values for Sinaloa and the four nearest states. it’s similar to CGP but applies to row groups rather than column groups. SF sold $650. right-click Store Sales > Create Custom Field > Special Functions > % of Column Group Parent (value). Note that dropping such percent of parent calculated fields in the row or column group area has no affect.

At first glance. your options are Alphabetical Ascending (the default) and Numeric Ascending and Descending. $420. 3. In the current view: The measures show detail only for the Guerrero store. Instead. Note that clicking the editor’s scroll bars causes JasperServer to remove focus from groups selected in the crosstab.04 is 13% of all Mexican sales occurred in Guerrero. these numbers may seem incorrect. 7. Review the data in the crosstab. In the Customer State total column. so you can start working with the full data set. Use the scroll bars if necessary. The data in the crosstab is now filtered to a narrow view of the foodmart data. Sort by % CGP (Store Sales).3 1. one might be expecting the % CGP values for Sinaloa and Guerrero customer state CGP values to roll up and equal the Guerrero CGP store state value. Click the arrow next to DF. The percent of column group measure shows that a third of the people that shop in Guerrero live in Sinaloa. Click . right-click Hygiene. 4. The crosstab shows two categories where more than 50% of the sales in the Guerrero store were made to residents of Sinaloa: Cold Remedies and and Hygiene. In particular. the crosstab is sorted by both columns groups and row groups. click to change the sorting to Numeric Figure 4-10 Crosstab of Foodmart sales When you sort a crosstab. Right-click Non-consumable and select Keep Only. in Guerrero the detail for Sinaloa and Guerrero customers (47% and 53% respectively of all sales in Guerrero). put another way. 4. Note that the words Sample Data disappear to indicate that you are working with all the available data. the non-consumable product family seems to have many customers from Sinaloa. Select a member and use the mouse scroll button to scroll to the next member. Place your cursor over and select Save the Report. the Guerrero store state shows 54 . the measures are sorted across both axis. Click the column group labels and select Expand Members to restore the view of the crosstab shown in Figure 4-9 on page 53. locate and edit the Foodmart Crosstab report. for the other states. Take a closer look. 6. 5. Click Cold Remedies. the % CGP is 13 . and Zacatecas to collapse them. Refining the Crosstab To refine the crosstab while viewing the full data set: If it isn’t open.JasperServer User Guide 11. Click the Ascending to change the sorting to Numeric Ascending ( ). Add Product Category as a row group for more detail. 8. 2. and click Keep Only. Jalisco. the crosstab shows summarized values. 9.that is.3. For the % CGP measure. Right-click Product Family and select Expand Members from the context menu.

“Creating Custom Fields.Working with the Ad Hoc Editor its percent of all of Mexico. Faux Products Multi-Symptom Cold Remedy. that’s because these products have never been sold in Jalisco. Click to undo the last action.” on page 57. Several cold remedy brands sold mostly to Sinaloans (above 50% CGP) are selling poorly in Jalisco. Notice that Jalisco disappears. 12. 14. 55 . Figure 4-12 Jalisco disappears from the crosstab 15. For more info see 4. The discrepancy is slightly greater in the Cold Remedies group member. Hygiene is removed from the crosstab. and click Keep only. 10. You can continue to refine the crosstab to understand why the Guerrero store is selling to customers in Sinaloa. Figure 4-11 Cold Remedy sales in DF.1. Jalisco. 11. and Steady Multi-Symptom Cold Remedy. focus on it first. and Zacatecas 13. Note the cold remedies that are selling well to Sinaloans but not selling at all in Jalisco: Faux Products Childrens Cold Remedy. right-click Product Category and select Expand Members from the context menu. shift-click Faux Products Multi-Symptom Cold Remedy and Steady MultiSymptom Cold Remedy. Right-click Cold Remedies and select Keep Only.4. Click Faux Products Childrens Cold Remedy. Guerrero. Add Product Name as the inner-most row group. and each of its customer states show the percent of store state.

and a change takes too long.JasperServer User Guide and (Undo All) are only available when you have made a change in the editor since saving. To continue further analysis. the values JasperServer retrieved are used to filter the report. If the filter pane is hidden. For more information. Jalisco is restored to the crosstab. .4. Locate the Product Name filter and click the All check box to add all the cold remedies back into the crosstab. When you click the All check box. remove the filter. such as the age or gender of the customer? 56 . Figure 4-13 Crosstab of Cold Remedies sold in Mexico 18. In the above example. you explored the Foodmart data set and analyzed an interesting outlier: Sinaloans are willing to bypass a closer store (in Jalisco) in order to buy a few brands of cold remedy (Faux Products Childrens Cold Remedy. For example. shift-click Faux Products Multi-Symptom Cold Remedy and Steady Multi-Symptom Cold Remedy). Click Crosstab to continue data exploration or Chart to create a compelling visualization of your data. b. Undo can be used to cancel your last action if it JasperServer takes a long time to return. Note that JasperServer does not retrieve a list of new valid values at run-time. “Using Input Controls and Filters. To ensure that all values are included in a report at run-time.61) to open a new instance of the Ad Hoc Editor. . or is there a supply chain problem at this location? Are other factors contributing to the discrepancy. Further analysis might reveal an underlying cause: Are these brands being regularly stocked in Jalisco. switch to 16. place your cursor over and select Toggle Filter Pane to hide it. see 4. 17. click the Product Category total for Guerrero ($314. 19. Instead of clicking a. When the report is run.2. JasperServer retrieves all the values for the specified field and adds them to the filter. you can click the sample data.” on page 59. and make your edit again. the buttons are disabled when you save. If you are working with the full data set. Place your cursor over and select Save the Report. you can locate the Product Name filter and reset it to include all product names.

Create a custom field by selecting an existing field in the list of fields or in the report area of a table report. and seconds. percent of total. For example.4 Additional Features of the Ad Hoc Editor Creating Custom Fields Using Input Controls and Filters Switching Groups Sorting Tables Working with Charts Working with Crosstabs The Ad Hoc Editor offers many features that are described in the following sections: 4. or you can use them with multiple fields. When working with multiple fields: You can only select basic functions and date differences. You can use these functions with a constant (such as multiplying the cost by two to calculate a standard 50% markup). These functions don’t take constants. and rank. you can’t delete it until you delete the one that builds on it. In this case.Working with the Ad Hoc Editor Is this an isolated incident or a growing trend? If it’s a trend. subtraction. You could calculate the profit for each record by creating a custom field that subtracts the Cost field from the Revenue field. the columns’ borders change color to indicate that multiple fields are selected. what common characteristics of the customers or products are involved? Are the data for hygiene products similar to the data for cold remedies? Do any of the similarities shed light on the issue? You can use the same techniques discussed in this section to analyze and explore your own data in the Ad Hoc Editor. When a custom field is the basis of another field. You can multiply or add any number of fields. weeks. In the list of fields. For ordered operations.4. You can always change the order of fields using the context menu’s Swap Fields option. consider a report that includes both a Cost and a Revenue field. Date functions can calculate the difference between two dates in a number of intervals. Because custom fields can build upon one another. The Ad Hoc Editor supports three types of functions: Basic functions include addition. days. for example. but ordered functions (subtract and divide) and date functions can only be used with two fields at a time. multiplication. you could divide the Profit custom field in the previous example by the Revenue field to express each record’s margin as a percent. To use more than one function to create the field you need. such as years. as this may affect the results. the order in which you select fields matters. A custom field can only include a single function. 57 . For example. percent of group. When you right-click and select Create Custom Field > Subtract #. 4. pay special attention to the order in which you create the custom fields. Special functions include round. To create a custom field based on one field: 1. click Revenue first. and division. rounding then multiplying yields different results than multiplying then rounding. the Create Custom Field option appears on the context menu when you right-click a numeric field.1 Creating Custom Fields You can create new fields in a report by applying mathematical formulas to an Ad Hoc report’s existing numeric fields. create two custom fields. right-click a numeric field and select Create Custom Field from the context menu. you can create complex calculations. nor do they support multiple fields. For example. right-click to open the context menu and create a custom field. Select multiple fields using Ctrl-click. the Ad Hoc Editor assumes you are subtracting the Cost field from the Revenue field. with one building on the other. to calculate profit in the example above. then Ctrl-click Cost.

and select Add. The custom field appears in the list of fields. and then enter a number in the field that appears. You can then choose a different function. the function always returns 100. right-click it and select Edit Formula from the context menu. Ctrl-click two date fields. 2. Custom fields using the percent of group functions can’t be used as filters. or Divide. Note that you can toggle the order of the field and function from the context menu (Edit Formula > Swap Number and Field). select Add #. Click Create Field. when added to a table. this number is the constant to use in the formula. If you selected a basic function. refer to the JasperServer Administrator Guide. 1. in which decimal values greater than 0. click Date Difference. The percent of group functions are unique among the custom functions in that they calculate values based on the grouping defined in the report. right-click one of the selected fields. Subtract. To create a custom field based on two date fields: 1. Click Create Field. and click Create Custom Field from the context menu. Click Swap Fields from the context menu to change the order of the fields in the formula. it always returns the value 100. By default. and functions it includes. the following limitations apply: The percent of column group function aren’t meaningful in charts and tables. Click Create Field. In these contexts. for example. 4. and select a interval. The Round function uses the standard method of rounding (arithmetic rounding). You can only subtract dates when exactly two date fields are selected. 3. Subtract #. right-click. the Ad Hoc Editor supports only two decimal places. Multiply. or enter a different value (if you are editing a basic function). it appears at the bottom of the list. The summary functions for Custom fields using the percent of group functions can't be edited. click Basic Functions. 4. You can only subtract or divide when exactly two fields are selected. The percent of column group parent is meaningless in table. 2. If it is not expanded. you can add new masking options by editing configuration files. constants. This limitation also applies to the Percent of Total function.Store Cost. This limitation also applies to the Percent of Total function. Multiply #. Bear the following in mind when creating custom fields: To edit an existing custom field. If it is not expanded. Thus. When you create a custom field based on a field in the table. or Divide #. this is only useful in conjunction with ordered functions. To create a custom field based on multiple numeric fields: 5. If your custom fields return data that are significant to the third decimal place. A custom field’s label is determined by the fields. Depending on the type of function you want to create. The percent of group functions can’t be used as a group.JasperServer User Guide 2. click Swap Field and Number to put the constant before the field in the formula. Ctrl-click two or more numeric fields. For more information. the default label for the Profit field in the example above is Store Sales . 58 . Right-click the column and select Edit Label to enter a more compelling name. click Basic Functions or Special Functions. this is only useful in conjunction with ordered functions. the new field appears in the report area. The custom field appears in the list of fields. The custom field appears in the list of fields. In the list of fields. Custom fields using the percent of group functions can’t be the basis of other custom fields. 3. when you create it from a field in the list of fields.5 are rounded to the next largest whole number. 3. If you selected a basic function. and click Create Custom Field from the context menu. In the list of fields.

Domains (and Domain Topics) can be filtered by selecting fields in the Domain and specifying comparison values.4. Since this can result in a combination of input controls and filters that don’t return data. the Ad Hoc report has both input controls (displayed by clicking ) and filters (displayed in the filters pane). First remove the custom field from the report area and then delete it from the list of available fields.2.5. some combinations of filters and input controls may result in no data being returned. Click . for example. “Adding Input Controls. You can accept the queries’ default values or enter other values. Nevertheless. and you also create filters.” on page 67. For more information about: JRXML Topics and input controls. click > Toggle Filter Pane (if it is hidden) and click You may find a combination that explains an empty result set. . In the Ad Hoc Editor. If your results are empty but don’t understand why.2 Using Input Controls and Filters JRXML Topics and Domains use different mechanisms for narrowing down the data they return: JRXML Topics can contain parametrized queries. filters can also be defined. you can also define filters regardless of whether you are working with a Domain or Topic. Click this icon to select new 1. For more information about: JRXML Topics and input controls.9. JasperServer refreshes the editor against both the filters and the input controls. For example. 59 . “Choosing Ad Hoc Data From a Domain. you can display the input controls defined in the Topic as visible to users. if you have both a standard filter (set against a Country field) and a complex filter (set against both Country and State). Input controls and filters interact seamlessly.9.Working with the Ad Hoc Editor You can’t delete a custom field that is used in the report area.” on page 67. see 4. The filters can be configured to allow users to select the data to include.” on page 90. “Choosing Ad Hoc Data From a Domain. Domain Topic filters. see 5.2. when a JRXML Topic includes input controls that prompt users.1 Using Input Controls In the Ad Hoc Editor. they're never displayed in the editor or when the report is run. The Ad Hoc Editor indicates that the report has input controls by displaying values or to save values as the new defaults for this report. “Adding Input Controls.5. see 5.4. 4.” on page 90. Within the Domain design. To edit the values for a report’s input controls: as active. The parameters can be mapped to input controls that allow users to select the data they want to include. see 4. 4.1.2. Domain Topic filters.1.

it appears when you create a new filter. the check box is a shortcut to help you quickly select all the values currently available in the data set. If appropriate. 4. Note that the All check box doesn’t guarantee that all values will be selected every time the report is run. To create a filter: 1. For more information. On the Chart tab. the previous default values are used. 3. Click the All check box to select all values currently available in the data set. In the Ad Hoc Editor (even when the report is based on a JRXML Topic). you must rightclick the field in the list of those available. If the filter pane was hidden. 60 . 4. To ensure that all values appear in the report whenever it is edited or run.4. select the Set these values as defaults when saving report option. When creating a report from a Domain (in the Choose Ad Hoc Data wizard).2. 5. Depending on the datatype of the filed you selected. remove the filter entirely. 2. A new filter appears in the filter pane. the selected values are made the default values when you save the report. or from columns in tables. Select new values. Use the fields in the filter to change its value. 3. When this option is selected. You can also create a filter from groups in tables and crosstabs. The data that appears is determined by the new values. to hide the filter’s details. 6. 7. If you do not select the option.JasperServer User Guide A window listing the current values for the input controls appears. Figure 4-14 Input Controls in the Ad Hoc Editor 2. “Using Input Controls and Filters. to remove the filter. Click to display them once more. Right-click a field in the list of available fields and click Create Filter.” on page 59. the filter maybe multi-select. 4. The report appears.2. or text input.4. single-select. Click OK. Instead.2 Using Filters Filters can be defined at three levels: In the Domain Design. Click Click Click to expand the filter and change the filter’s operator. see 4.

4. For more information. JasperServer uses the new value to determine the data to display. Note that similar complex filters also appear in the Ad Hoc Editor if a Choose Ad Hoc Data wizard filter was created and set to not prompt for values. user data-level security instead.3.2. JasperServer doesn't apply the filter automatically. if they aren't displayed directly on the report page. Filters that aren't set to prompt are displayed in the editor but hidden when the report is run. the viewing.4. allowing them to see all the data unfiltered. Create a new report against a Domain. on the Controls and Resources page.9.Working with the Ad Hoc Editor When you change a filter. When you create a filter against an inner group. see 5.2. and on the Filters tab.3 Switching Groups icon lets you change how the groups are displayed. Input controls in a JRXML Topic or filters defined in the Domain design can also be used. Input controls that aren't set to prompt are always hidden in the editor and when the report is run. When a report is run. “Exploring and Analyzing Data in the Ad Hoc Editor. “Adding Input Controls. Filters defined in the domain design are always hidden in the editor and when the report is run. click the input control.3 Input Controls and Filters Availability Input controls and filters can appear in both the editor and when the report is run: Input controls can be set to be hidden or displayed: Input controls set to prompt are always displayed in the editor and when the report is run. see 4. “Focusing on Specific Data. Such filters can be helpful in improving the report's initial performance by reducing the amount of data the report returns by default.3. as they can be hidden from end users. Filters created in the editor are always available in the editor and when the report is run.” on page 90. To determine whether a filter defined in the Choose Ad Hoc Data wizard is editable: 1. click to view them. Filters defined in a Domain design are always hidden in the editor and when the report is run. The filter pane does not automatically open in this case. see 4. For more information. Click Next. Filters created in the Choose Data Wizard can be set to be hidden or displayed: Filters set to prompt are always displayed in the editor and when the report is run. the filter that appears may be created as a complex filter. press Enter or Tab to apply the new values.3. You can learn more about how filters and input controls interact in the editor by walking through the data exploration tutorial with the filter pane open. and skip step 6 in section 4. “Input Controls and Filters Availability. To the right of the new filter.” on page 52. the behavior varies: 61 .” on page 61. if your aim is to disallow users from seeing the full data set. allowing them to run the unfiltered report. and click the Visible check box to change whether the input control appears. Note that if you only change the the operator in a single-select filter.” on page 50. click the Prompt? box to remove the check if you don’t want users to edit this filter’s value in the editor. To determine whether an input control is displayed: 1. For more information. Edit the Topic and. If you don’t provide a default value for the input control.2. Depending on the type of report you are In the Ad Hoc Editor. 2. You can also click the current value to force the editor to update your view Filters are also created when you right-click a group member in a crosstab and select Keep Only or Exclude. You can’t change whether a Choose Ad Hoc Data wizard filter is displayed once the report is created. users are prompted to select a value when they create a report against the Topic. any input controls or filters that are set to prompt are available. 2.4. However.2. Note that users can still remove the filter while in the editor. a complex filter can’t be edited but it can be removed. 4. create a filter and click OK.4. Note that they can still remove the filter.

for this feature to be available for tables and charts. . you may want to note the sorting fields in the title.4. the Table tab displays the first group in the set (the outermost group). the report must have been edited on the Crosstab tab to add a column group. click to group it by the row group. “Working with Crosstabs. you could create a bar chart that showed your sales by region. you only have a row group defined. The Sorting window appears. The table updates to display the rows sorted by your selected fields. the Chart tab displays the outermost group. Create the table or chart with the most important grouping field. the Sorting window appears and you can define the sorting as above. 5. Down. In either case. Select one or more fields to sort by. Top. select it and click Click OK.4 Sorting Tables In the Ad Hoc Editor. This option is only available for crosstabs that have both a column group and a row group. If the table is already sorted. Click . see 4. To arrange the sorting precedence of the fields. Otherwise. For example. In charts. Put another way.4. 4. 3. 6. When sorting a table: You can click a field in the list of fields and select Use for Sorting from the context menu. and click OK.” on page 65. You can also sort crosstabs. and then click to display the alternate group. To sort a table: 1. To remove a field. When multiple row or column groups are defined.6. This option is only available for charts that have a column group. JasperServer displays the alternate group. 2. This comparison can help you identify trends and outliers in your data. 62 . This option is only available for tables that have a column group.JasperServer User Guide In crosstabs. Drag a field into the column group to complete the crosstab. By default. right-click the column and select Change Sorting from the context menu. In tables. The Fields window appears with a list of available fields. 4. Press Ctrl and click to select multiple fields. switch the groups to display the sales data grouped by Client Industry. By switching to the Crosstab tab. To sort a crosstab. you could add Client Industry as the column group. you can sort the rows of a table by one or more fields. Back in the Chart tab. then click Crosstab to add another compelling field as the column group. click the icon next to a measure’s label. This action is also referred to as pivoting. In this case. If a column is already being used and you want to stop using it or change the sorting. the window shows the fields that are used. The Sorting window reappears with your selected fields. or Bottom icon. When you design a table or chart and then view the Crosstab tab. It only lists fields that are not already used. there is no alternate group to switch to. click Add Fields. select each field in the Sorting window and click the Up. the table is sorted by a field that isn’t in the table. JasperServer moves the row groups to column groups and vice versa. the field you select is now available as an alternate group in the table and chart. For more information. When multiple row or column groups are defined. Click Table or Chart to return to your initial view. JasperServer displays the alternate group. a table or chart is grouped by the column group. To add a field. for more information see Figure 4-14 on page 65.

4. When creating a line chart. Bar Chart When creating a bar chart.4.2 Designing Charts Charts have different layout and format options than table or crosstabs. Pie. 63 . 4. Area. You can select a different type of chart at any time. and don’t support grouping: Scatter. two dimensional appearance or a three dimensional (3D) appearance. Whether to use a flat. which is three dimensional (3D Pie). Time Series. Note that the gradient doesn’t appear when you run the report. Whether multiple measures of each group are depicted as individual bars or as portions of a single bar. For each type of chart. They determine the length of bars. and height of areas. Stacked or Simple Series. you can indicate whether to use a Flat Pie (which is two dimensional). Keep these points in mind: By default. you can: Remove Gradient or Apply Gradient. the Ad Hoc Editor creates a bar chart. Compares values displayed as shaded areas. you generally indicate how to arrange the data by specifying: A group field. size of pie slices. The Ad Hoc Editor can create both summarized and unsummarized charts: Summarized charts show data grouped and summarized: Bar. the background is filled with a solid color. Whether the background should be filled. location of points (in line charts).4. Compares values displayed as slices of a circular graph. a chart’s group field determines how data are categorized.1 Working with Charts Chart Types Charts are graphical representations of your data. Measures are the other data in your chart. Pie Chart Line Chart When creating a pie chart. Compares values expressed as pairs of values that determine the position of a point on the chart. the context menu provides these display options: Type All Chart Types Description Regardless of the type of report. the context menu provides these options: Flat Bars or 3D Bars. Select Hide Lines or Hide Points to remove the indicators from the chart. Note that time series and scatter charts don't support grouping. in a pie chart it determines what each slice represents. Whether the bars are parallel to the width or height of the chart. Unsummarized charts show each data point individually. Note: A series chart displays multiple measures for each group value. each data point is mapped individually. Compares values displayed as bars. The data aren’t summarized.5. instead. When you create a chart. Compares values based on times or dates associated with the data. Remove Background or Fill Background. When the gradient is removed. Measure fields. the category field determines how the bars are grouped. The Ad Hoc Editor automatically hides all but the first measure if you change to a pie chart. Whether the background color should graded or solid. Similar to the table's grouping option. Compares values displayed as points connected by lines. Line.5 4. Horizontal Bars or Vertical Bars.5.Working with the Ad Hoc Editor 4. For example. you can indicate whether to display markers at each data point and lines that join them. in a bar chart. or the default. since pie charts can only show a single measure.

For time series charts. and you can save or run the report. Select Stacked Series to display the groups as solid areas arranged vertically. If you resize the chart to be larger. you can add a field as both a measure and a group. 64 . As compared to line charts. You can rename the measures displayed in your chart by right-clicking the measure’s label in the legend and selecting Change Legend Label from the menu that appears. which resizes the page to fit your chart’s dimensions. when you add a group to a pie chart. but the result is likely to be meaningless. In a time series chart. Time series charts plot your data against the passage of time. When you place your cursor over and click A4 Size or Letter Size from the menu. drag it to the group target to the left of the report area. refer to the JasperServer Administrator Guide. Click Hide Points to remove the marker at each data point. and the other must be numeric. the label updates to reflect the change. the pie displays the correct number of pie slices. the page is set to Actual Size. the horizontal axis must represent a date or time field. for example. you can indicate whether to display markers at each data point and lines that join them. click and drag the edge of the chart to increase or decrease its size. It plots paired values against one another. When creating a time series chart. Once you have added at least one group and one measure. place the cursor over and click Strip Margins. This option is also available on the chart context menu. You can see the change by setting the page size to Letter or A4. If space is at a premium in your chart. the Ad Hoc Editor limits the size of the chart to the selected page size. when you add a measure to a bar chart. When you place your cursor over the right-hand or bottom edge of the chart. By default. Click Show Lines to add lines that join the data points. Unsummarized charts (scatter and time series) can only be run or saved if the fields selected for the X and Y axis are appropriate: For scatter charts. both fields must be numeric. The Ad Hoc Editor removes the margins. You can increase a chart’s size to improve its legibility or you can decrease its size if it’s intended for use in a JasperServer dashboard or JSR-168 compliant portal. To add a field as a group. If you add a field to the horizontal axis that has a datatype other than a date/time. Click Hide Lines to remove the lines that join the data points. As you add groups and measures. Time Series Before any fields are added to the chart. Note that when you strip the margins of a chart set to the Actual Size page size. For more information about portal integration. Note that there is no for adding fields. you can indicate whether the groups should be displayed as transparent overlays or as solid areas. drag it into the report area or right-click it in the list of fields and select an option from the context menu. the Ad Hoc Editor displays a simple placeholder with the legend displaying a single entry: No Data. A scatter chart uses Cartesian coordinates to display values as points whose locations are determined by two variables you select. Scatter When creating a scatter chart. you can indicate whether to display markers at each data point and lines that join them. the mock-up is replaced by the chart. and you can add fields more than once. identify trends. If you change the summary function back. one field must be a date or date/time. the Y-axis units and values show the range of values in the measure you selected. giving your chart more horizontal and vertical room. the Ad Hoc Editor snaps the chart back to the maximum allowable size in either dimension (height or width). area charts emphasize quantities rather than trends. the resize arrow appears. The text you enter replaces the field’s name. or forecast future results. They can help you understand the nature and underlying context of your data. one on top of another. If you change the measure’s summary function. the mock-up changes to reflect the data in the chart. select Simple Series to display groups as transparent overlays. Fields can be added as groups or measures. such as Purchase Date. such as Liferay. One variable determines the horizontal position and the other determines the vertical position. the change isn’t reflected in the Ad Hoc Editor. For example. the last name entered for that measure with that summary function appears. To add a field as a measure. or if you want to use it in a portal. Click Show Points to add a marker at each data point. the Ad Hoc Editor renders the chart as best it can.JasperServer User Guide Type Area Chart Description When creating an area chart.

“Switching Groups. Adding this measure in place of the actual revenue measure yields a chart in which the two measures are depicted in closer scale.” on page 61. The row and column groups switch places. you could create a custom field that divided the revenue measure by 1000.4. for example. Click the arrow again to collapse the inner group once more. If the chart displays multiple measures. it is the list of groups). If the chart only displays a single measure. the list of measures in the chart. the chart may be difficult to read or understand. When you collapse a group. 4.000). To make the ranges of values more similar. The measures are listed in the order they appear within your groups. Pivot a single group: To pivot a single row group. The new measure appears in the correct location in the chart. and click Replace Group. You can also right-click a different field in the list of fields.6 Working with Crosstabs Crosstabs have different data. This can be helpful improving a chart’s legibility and visual appeal. To add a field in a specific position in a chart. create a custom field that multiplies or divides one of the measures. click the arrow in each heading cell to expand the inner group. right-click it and select Switch To Row Group. When the crosstab includes more than one row group or more than one column group. 65 . right-click its label. Keep these points in mind: Fields can be added as row groups. the group title (which identifies the name of the group field). This reorders the measures in each group. Note that there is no for adding fields. or you can show them to make the chart easier to understand. column groups. To edit a measure. and you can add fields more than once. or simply drag the new group field and drop it on the group control. You can pivot a crosstab in two ways: Pivot the entire crosstab. To pivot a single row group. its summary is automatically displayed. When working with a chart that displays two measures with very different ranges of values. and format options than tables or charts. Jaspersoft recommends that you note such changes in the legend label or title. this prevents invalid crosstab layouts in which there is nothing to display for some totals if the the summary has been deleted previously. and specify whether to display the legend (generally. Remove measures from the chart using the legend or chart context menu.4. and area charts that display multiple measures.Working with the Ad Hoc Editor You can hide legends and labels to allow the chart more space. and measures. It is available from the chart context menu as well as from the legend. The Measures menu also allows you to change the summary function and data format. you can add a field as both a measure and row group. the context menu lists them under the Measures menu option. the order of colors is not. or measure titles (which identifies the measures). for pie. Measure labels are displayed to the left of the first column group. In bar. click Legends and Labels. line. you can also right-click a heading and select a Move option from the context menu or press the cursor keys. you can change the order of measures by dragging the legend entry right or left. Remove a chart’s group by right-clicking the chart and selecting Remove Group from the context menu. While the order of measures is changed. rightclick the chart and select Remove Measure. click Measures > [Measure Name] > Remove Measure (where [Measure Name] is the name of the measure you want to remove). Consider the case where you are comparing the number of items sold (values ranging from 0-50) and the total sales revenue for each product (values ranging from 0-50. click . For more information. On the chart context menu. Right-click a measure in the legend to change its label. In the chart context menu. you can drop it in the legend in the desired location. Thus. refer to 4. layout. Row and column groups are arranged in hierarchies. drag it into the crosstab or right-click it in the list of fields and select an option from the context menu. The new chart is both easier to read and more appealing. right-click it and select Switch To Column Group.3. To add a field. Rearranging the groups may change the preview data in the editor. the measures change color as they are reordered. Drag the group headings to rearrange the hierarchy.

Only one measure can be used for sorting at any one time. The Expand Members and Collapse Members options are only available for outer-most groups or inner groups nested in an expanded outer group. To slice. Hover your cursor over a measure value or total and notice the underline that indicates a hyperlink. This new table is filtered to only show rows that were rolled up to create the hyperlinked value you selected. by default. This means that you can see the totals for the group. Exclude to remove this group from the crosstab. and filtering. the editor only displays a smaller. sample set of the data in your crosstab. the editor displays each row and column group in a collapsed state. either the outermost row group or the outermost column group). The icon changes to order is reversed. Distinct Count is the number of different items in the row or column.JasperServer User Guide You can use the slice menu to keep or exclude group members in a crosstab. see 4.” on page 50. and Percent of Row Group Parent). When a group’s members are expanded. and the crosstab is once again alphabetically sorted When you sort by a measure. This new instance of the editor is completely independent of the original crosstab: you can change it and save it without changing the crosstab. drag them in the measure label area. Measures are arranged in cells. Its columns are created from the fields used as measures in the crosstab. right-click any heading in the group and select Delete Row Summary or Delete Column Summary from the context menu. By default. On the Crosstab tab. Click to view the full set of data. by default. the inner groups are also sorted according to your selection. right-click the group label and select Expand Members. Use Ctrl-click and Shift-click to select multiple groups to keep or exclude.3. but not the measures for its individual members. You can sort it by any of its measures: Click to change the sort order from the default. if there are 3 widgets of type A and 3 widgets of type B.2. You can add any number of measures. To rearrange the measures. The icon changes to numeric order by its measure values.4. or press the up and down arrow keys on your keyboard. 66 . Average. The icon changes to by its group names. Many of the layout and formatting options set manually in tables are set automatically in crosstabs. All the measures appear together in every cell. For instance. Count All is the total number of items. When the crosstab includes more than one row group or more than one column group. drill to details. The summary functions for numeric fields are Maximum. For more information on working with crosstabs. Note that this option is only available for the outermost group on either axis (that is. for more information on filtering. Click the hyperlink to open the Table tab of the Ad Hoc Editor in a new window or tab (depending on your browser and its settings). To see measures for a group’s members. and the crosstab is sorted in ascending and the crosstab’s sort Click to switch the numeric order from ascending to descending. “Exploring and Analyzing Data in the Ad Hoc Editor. a crosstab is sorted in alphabetical ascending order according to its group member names. you can't slice by both row groups and column groups at once. right-click a group member and select: Keep Only to remove all groups except the selected one from the crosstab. Distinct Count. Compare slice to drill-through. Note that you can’t change the summary function on custom fields that calculate percents (Percent of Total. Click to return to the default sort order. Sum. To select the summary function and data format for a measure. Minimum. In particular. see the JasperAnalysis User Guide. and Count All. row and column sizes are fixed and no spacer is available. see 4. Note that you can select multiple row groups or multiple column groups. you can also right-click a measure label and select a Move option from the context menu. the entire crosstab is reordered: both columns and rows reflect are re-sorted within each group. “Using Input Controls and Filters.” on page 59. Percent of Column Group Parent. All row and column groups are summarized automatically: To turn off a group summary. For more information on drill-through. On the Crosstab tab. Distinct Count is 2 and Count All is 6. Collapsing an outer group also collapses its inner groups. select Collapse Members from the same menu to hide the measures. right-click the measure label and select from the context menu.

Click the Domains tab. 4.2.” on page 117. “Using the Choose Ad Hoc Data Wizard.1 Choosing Ad Hoc Data From a Domain When you create an Ad Hoc report based on a Domain. On the Home page. see 4. The Ad Hoc Editor opens to the Topics and Domains window. Figure 4-15 Topics and Domains Window With the Simple Domain Selected 3. “Example of Creating a Domain. if a Domain includes all sales data for a company.” on page 71. To create a basic report from a Domain: 1. Domains also allow you create reports that prompt the reader for input that determines what data is presented. and click Choose Data. the Choose Ad Hoc Data wizard leads you through the steps of choosing fields and filters. For report makers. The frame at the bottom shows you the description of the Domain currently selected in the list. Select the Simple Domain for your report. The following example shows how to use the wizard to create a simple report from a Domain. The Choose Ad Hoc Data wizard opens to the Data page. Domains are created by data analysts and JasperServer administrators for use by others to access data more conveniently. Domains differ in that they give more flexibility in choosing fields from the database and allow some filtering of the data before it is included in a report.Working with the Ad Hoc Editor 4.5. click Table. For complete information on all of the options and settings available for designing reports.5 Creating a Report from a Domain Like Topics. such as a US state. see section 6. 2. For a more complete description of how to create Domains.5. a report based on that Domain could present detailed information grouped by postal code and have an input control to let the reader select the geographic area. The tab opens with a list of the available Domains. For example. click Create > Ad Hoc Report. 67 .2.

even though another user can see them if he used the same Domain. The Choose Ad Hoc Data wizard shows the Filters page. Conversely. Other items might not be visible to you. you see only sets and items for which you have permission. A set appears in the Ad Hoc Editor as a set of fields that can be added together to a table. Figure 4-17 Selecting Item Sets 5. In this example. the fields that you can see might include ones that other users can’t see. 4. 68 .JasperServer User Guide Figure 4-16 Choose Ad Hoc Data Wizard: Data Page On the Data page. expand each set and drag the following fields into the Selected items list: Accounts set: Account Name field Opportunities set: Drag the whole set. you can set limits on the data that are retrieved and displayed in your table. so a set is duplicated in the list of selected list if any of its fields are moved. but then drag back the Sales Stage field Users set: First Name and Last Name fields Fields always appear within their set. Click Next. If a Domain is configured for secure access. select the fields that appear in the Ad Hoc Editor. You can select whole sets or individual items within a set.

9. The names in the Domain are often appropriate as is. Conversely. double-click the Amount item and change its display name to Opportunity Amount. the values that you can see might include ones that another user can’t see.000 or more.Working with the Ad Hoc Editor Figure 4-18 Defining a Filter on an Item 6. In the Condition Editor’s Comparison drop-down. even though other users see them if he used the same Domain. . the filter selects only the rows of data where the opportunity amount has a value of 10. 8. For this example. but this Display page gives you a final opportunity to change them. 10. The complete filter condition appears in the Current Conditions list. If a Domain is configured for secure access. Click OK. Other values might not be visible to you. 7. enter the value to compare the data against: 10000. you can edit the table and field names that will appear in the Ad Hoc Editor so that they are more appropriate for the report’s audience. 69 . The Choose Ad Hoc Data wizard shows to the Display page. On the Display page. select the operator for the comparison: is Greater than or Equal to. In this example. Click Next. 11. the values displayed in the condition editor are the ones for which you have permission. In the Values field. select Amount by clicking its arrow icon The item appears in the Condition Editor. For this example.

creating an Ad Hoc report based on a Domain gives you more flexibility in selecting data and can subsequently speed up the design of the report itself. as described in section 4. click Open Report.2. e. 70 . Expand the Users set and click the arrow next to the Last Name field. 12. 14. f. “Selecting the Content of a Report. you can save them as a Domain Topic.5.3. and the list of fields shows the item sets selected in step 4.JasperServer User Guide Figure 4-19 Changing the Display Name of an Item Note that the display names are shown on the left side of the page.” on page 45 and 4. as determined by the filter you defined. Click the arrow next to the Spacer item. They are added (with the display name) in the order you defined on the Display page in step 4.” on page 73. If you want to create different reports with the same settings. as described in section 4. In this example: c. “Creating Topics from Domains. Figure 4-20 Ad Hoc Editor with Fields Configured for Report As shown in this example. Expand the Accounts set and drag the Account Name item to the grouping icon.2. The Ad Hoc Editor appears. 13. “Formatting the Appearance of a Table.1. d. Notice that all amounts are greater than 10000. To confirm all the selections made in the Choose Ad Hoc Data wizard and begin creating a report. Design your report in the Ad Hoc Editor.2. Drag the Opportunities set to the report area to add all its fields as columns.” on page 48.

fields that are used in the report area. or selecting it and clicking an arrow button. You must first select some fields on the Data page. You can define a filter on a field that you do not plan to use in the report. Expand a table to see its fields. the unjoined sets aren’t available. When you remove a table. Click Done at any time to begin designing your report.5. or to compare fields. You can also drag individual fields to add or remove them. double clicking it. The Change Field Selection window appears. the comparison operator and value operand depend on the datatype of the field and on the actual data that exist for the field. The Topic Page – Save your settings as a Domain Topic. all the its fields are removed except those that are in use. Select a field in the left-hand list and click Create Condition to begin defining a filter on that field. The filter is still applied and only data that satisfies all defined filters will appear in the final report. Drag a table from the Selected list to the Available list to remove it from the report. You can move a field or set back and forth between the lists by dragging the item. 4. click to undo the change. Alternately.2 Using the Choose Ad Hoc Data Wizard This section gives more detail about the four pages of the Choose Ad Hoc Data wizard: The Data Page – Choose the fields to make available in the Ad Hoc Editor. in which case it doesn’t make sense for the Country field to appear as a row. with the option of prompting for user input. The Filters Page – Define a filter on any field.5. you can click the arrow next to the field name or double-click the field name. You can define filters to limit data that appears in a report and to define whether a report should prompt users for input on a given filter. For example. or for sorting appear gray to indicate that they can’t be removed from the report. 16. 4. 4.2. click select to change the fields used in the report. 71 . 17. When you select a field from one set. Note that you can only select tables in the join tree chosen when you created the report originally. but the other three pages are optional and can be completed in any order. If you add or remove a field accidentally. In top right corner of the list of available fields. You can change Domains on the drop-down list above. then click OK to define your filter. Use the controls in the tree to close or expand each set.2. you can filter data to select a single country. If you do not want sets. The list on the right-hand side shows you the items you have selected. In the Condition Editor. The Display Page – Change the order and names of fields that will appear in the Ad Hoc Editor. column. displaying two lists of tables. The tables on the right are those that were selected when the report was created. If you move an individual field out of a set. Drag a table from the Available list to the Selected list to add it to the report.2 The Filters Page The Filters page provides powerful functionality for designing reports within JasperServer. as filters.Working with the Ad Hoc Editor 15. it appears in a set of the same name. The left-hand list displays the sets of fields in the Domain. Some Domains define sets that are not joined. the ones on the left are the other tables available in the Domain. They are similar to input controls. Choose the operator and operand for comparison. Doing so removes all settings and updates the list of fields. as shown in Figure 4-17 on page 68. 18.1 The Data Page Use this page to choose fields and sets of fields to use in your report or make available in your Domain Topic. or group.5. use the settings on the Display page.

as explained in 4. they can’t edit it. the overall filter applied to your data is the logical AND of all conditions you have defined. you can also click Delete Condition to remove it from the list. users can click to enter a comparison value for this condition. “Changing the Display Name of an Item. For multiple value matching. The condition is available as a prompt even if the filtered field does not appear in the report.2. you can edit and delete it as with other conditions.1. the selected filter is available to end users when they run the report. column. The list of Current Conditions shows all the filters you have defined. The value defined here is the default. You can perform multiple searches and select values from each list of results. such a filter is hidden when the report is run. To define a filter that compares two fields of the same datatype. but users can only remove it. After you click OK.” on page 70. 72 . For example. double-click anywhere in the row and type the new name in the text box. “Using Input Controls. Note that when the is Prompt? check box isn’t checked. when the user clicks Apply or OK. Sets and the fields they contain appears in the list of fields in the Ad Hoc Editor. For details. The note at the bottom of the current conditions reminds you that data rows much match all conditions.2. A field name becomes the label for the row. On the report page. The maximum number of items that can be displayed in the list of values in the Condition Editor is configurable. but setting them here will make them available for reuse in a Domain Topic.4. 4. or measure that you create from the given field. use the search controls to the left and click to narrow your list of available values. down. but sets as a whole may be also be moved.3 The Display Page Use the Display page to change the default name and order of the fields as they should appear in the list of fields in the Ad Hoc Editor. double-click the available values to select them. the final report might present data for a single country. To change the display name of a field or set. After selecting a row. You can always change the field labels and ordering in the Ad Hoc Editor. See Figure 4-19. Once defined. In other words. the dialog displays a list of all existing values for the chosen field retrieved in real-time from your database. thereby speeding up report creation. the report preview refreshes with data that match the condition. but the country is chosen by the user.JasperServer User Guide Figure 4-21 Condition Editor on the Filters Page Text fields have both substring comparison operators such as “starts with” or “contains” and whole string matching such as “equals” or “is one of. Fields may be moved only within their set. to the top or bottom. This button is only enabled when two compatible fields are selected.5. select the second field using Ctrl-click. Sets are not used in reports but can be used to add all their fields at once. When the Prompt? check box is checked. the condition is still available in the Ad Hoc Editor. then click Create Condition. Click OK to save your changes. Not that such filters can’t be presented to your users when they run the report. Click a row in the list of Current Conditions to make it editable again in the Condition Editor. To change the order of fields. If there are more than 50 values to display. click once anywhere in a row and use the arrow buttons to move it up. filter prompts can be modified in the Ad Hoc Editor.” on page 59.” When you select a whole string matching operator. see the JasperServer Administrator Guide.

Domains provide advanced functionality such as table joins and derived fields based directly on a data source. This corresponds to the Ad Hoc Components > Topics location in the repository. users can run it repeatedly and be prompted for input each time if you defined filters with prompts. creating a Topic isn’t necessary. you can create different reports from this Domain Topic. 4. then format and run your report. JRXML Topics and Domain Topics in this folder appear on the Topics tab when you start a report. Enter an informative description that helps users identify this Domain Topic. Click Open Report after defining your settings in the Choose Ad Hoc Data wizard. see section 6. Domain Topics can be edited as described in section 4.5. Edit the Domain and save it with a new name. Run reports from the same repository data source but with different Domain settings.3.5. you can create reports based on the modified Domain Topic.3 Creating Topics from Domains In some circumstances. Before you click Open Report. By default. save your settings as a Domain Topic.5.” on page 75. They appear on the Topics tab when you start a report. save your settings as a Domain Topic on the Topic page of the Choose Ad Hoc Data wizard. “Formatting the Appearance of a Table.Working with the Ad Hoc Editor If you don’t want to use sets in the Ad Hoc Editor. After you save your changes. See section 4.” on page 48. you can give your settings a name and a description to be saved as a Domain Topic. select the check box Show items as simple list in designer above the table of display names. Domains usually require administrator permissions to create and modify. “Editing a Domain. and display settings on this Domain to create new reports with different formatting. such as derived fields and different joins to make new fields available in a report. it is saved when you click Create Report from any page in the wizard. Then do this Click Open Report after defining your settings in the Choose Ad Hoc Data wizard. Domain Topics are saved in the standard Topics folder. and display names you have defined. using all the same fields. Users with permissions may also open it again in the Ad Hoc Editor. You can also edit the Domain Topic to change any of the settings you made in the Choose Ad Hoc Data wizard. 4.5. You can now rename the fields and move them in any order. Do not modify this folder name.2.2. It is displayed at the bottom of the Topics tab and when browsing the repository. If you want to … Create a single-use report from the Domain with your settings. filter. Once you save a report. The following table explains your choices.” on page 74. Be able to modify one or more of the settings you made in the Choose Ad Hoc Data wizard.3.2. or make very similar reports in the Ad Hoc Editor. your field selections appear in the Ad Hoc Editor and you can create reports from them. it is important to create a Topic based on the Domain and data settings you chose. After you enter a name for your Domain Topic. Find your Domain Topic in the repository and open it in the Edit Domain Topic dialog.5. The description text is associated with the Domain Topic in the repository. Thereafter.” on page 135. Start a new report and choose your Domain Topic from the Topics tab. Reuse your field. In other circumstances. For more information. Domain Topics are saved in JRXML format in the repository. 73 . Before you click Open Report.2. Explanation When you click Done. See section 4. The main consideration is how reports based on the Domain will be used. Run a report repeatedly as is or with prompting for new input.4 The Topic Page On the Topic page. “Saving Domain Settings as a Topic. Then start a new report and choose your data from the new Domain. then format and save the report in the Ad Hoc Editor. filters. but the settings themselves are not saved.3. “Editing a Domain Topic.

4. When others run reports from the Topic. Anita does have permission to see more data than Tomas. For example. 74 . so when she opens or runs the report.” on page 155 for a technical explanation of data security for Domains. The default /adhoc/topics folder makes the saved Domain Topic available on the Topics tab when you select Create > Ad Hoc Report. Fields Tomas’s report from his Domain Topic Anita’s reports from the same Domain Topic BC C Data 123 2345 See section 7.3. in a Domain.3. Do not change the location folder. only the fields that you selected appear in the Domain Topic. there may be data that is hidden from you.4. 2. it is important to consider everyone’s access permissions.1 Access Permissions in Domain Topics If other users run reports from your Domain Topic and the Domain is configured for security. Enter a Topic name and description. There may be fields that can be seen only by other users. See the note in section 6. and in the fields that you can see. user Tomas can access fields B-C and data rows 1-3. However. they are not available to her because Tomas did not have access to them when he created the Domain Topic. they see those of your fields to which they have access and the data in those fields that they can access. “The Domain Security File. only the data that you can access in those fields appears.JasperServer User Guide 4. Tomas uses the Choose Ad Hoc Data wizard and saves a Domain Topic based on the Domain. Even though Anita has permission to see more fields.2 Saving Domain Settings as a Topic To save your settings in the Choose Ad Hoc Data wizard as a Domain Topic: 1. Anita can access fields C-E and data rows 25. they see different combinations of fields and the data in them. When you run a report from the Topic. the field she does see has more rows than when Tomas views the report.5. “Editing a Domain.5. You might not have access to all of the fields in the Domain nor to all the data in those fields.” on page 135 about the impact of editing a Domain or Domain Topic. When you save your Domain as a Topic. When Tomas and Anita run reports.5. navigate to the Topic page. While making selections in the Choose Ad Hoc Data wizard.

and display settings are complete as well.Working with the Ad Hoc Editor Figure 4-22 Entering Information Needed for Saving a Domain Topic 3. Your Domain Topic name and description are preserved.5. click Done. filter definitions. 75 . If your data selections. it appears when the Search page is filtered to show reports: Figure 4-23 Choose Ad Hoc Data Settings Saved as a Domain Topic 4. While its repository type is Domain Topic. and the Domain Topic is created when you subsequently click Done anywhere in the Choose Ad Hoc Data wizard. The new Topic appears in the Ad Hoc Components > Topics folder. navigate to the other pages to finish making your settings. You can also change the name and description by returning to this Topic page anytime before clicking Done in the wizard.3. Otherwise.3 Editing a Domain Topic Editing a Domain Topic modifies the settings that were defined in the Choose Ad Hoc Data wizard when creating it.

Log in to JasperServer as an administrator and select View > Repository. Right-click the Domain Topic and select Open in Designer. you can choose a different Domain for the Topic. When a user clicks Create > Ad Hoc Report on the Home page..5. In the Select a Domain drop-down menu on the Data page. for more information see section 4. can be used as a Topic in the Ad Hoc Editor. To save your changes to the selected Domain Topic. 76 .2.5. Right-click the Topics folder and select Add Resource > JasperServer Report from the context menu. that. navigate to the Topic page and enter identifying information for the new Topic. a Topic is an empty report. when associated with a data source in JasperServer. Topics are in the Ad Hoc Components > Topics folder. 3. Domain Topics are a type of Topic created in JasperServer from a Domain. click Save on any page. It is safer to save your changes as a new Domain Topic. Figure 4-24 Modifying the Sample Domain Topic in the Edit Domain Topic Wizard 3.” on page 73.3. The location of the Topics folder depends on your system configuration. Users who relied on the Domain Topic might receive unexpected data or errors. 2. Follow the guidelines in section 4. “Creating Topics from Domains. the list of Topics on the Topics tab is populated from that location. The Domain Topic opens in the Edit Domain Topic wizard. all the selections that you made with the current Domain are lost when you click Choose Data. If you select a different Domain. Typically. which has the same features as the Choose Ad Hoc Data wizard. Select View > Repository and search or browse for the Domain Topic you want to modify.” on page 71 to edit the Domain Topic as needed. then click Done.6 Uploading a Topic Topics can be created by uploading JRXML files to the proper location in the repository. 4. Domain Topics are usually kept in the Ad Hoc Components > Topics folder. 4. To save your changes as a new Domain Topic.JasperServer User Guide To edit the settings in a Domain Topic: 1. from the context menu. “Using the Choose Ad Hoc Data Wizard. Use caution when editing Domain Topics that may have been used to create reports. by default. 2. To upload a Topic: 1.. Regular Topics are created by administrators using iReport. Locate the folder where Topics are stored.

12. 6. click Next again. 7. there are no resources associated with this Topic.2. The Description field helps users know what the file is. The Name field is the internal ID of the object. The Topic appears in the repository. such as example_topic.display field property should have the following syntax: <property name="adhoc. 9. you can create input controls for it. a label.10. When you create a JRXML file that will be used as a Topic. On the Main JRXML page. such as Topic uploaded for User Guide example. starting with the Naming page. Give the Topic a name. select the radio button next to From the Repository. “Completing the Complex Report Example. 8. see 5.display" value="Any Name"/> For example. this JRXML code declares a StoreState field that will be displayed in reports as Store State: <field name="StoreState" class="java.display" value="Store State"/> </field> Topics also support the $R expressions for field names. Topics usually do not need a query or customization. click Browse to upload the topic from the file system.display for each field declared in the JRXML. To do so. 77 . On the Locate Data Source page. Because this is a simple Topic without parameters. you can specify the name to display for each field that the Topic returns. Such input controls can appear in the Ad Hoc Editor and when the report is run. the Example Topic appears on the Topics tab. When you select Create > Ad Hoc Report. then select the data source named datasources/JServerJdbcDS from the drop-down list. If you select it. the file is <js-install>/samples/adhoc/topics/adhoc_sample. click Next. The Label field is the visible name of the file in the repository. On the Validate page. In this example. you can create a report based on the database columns it contains and the data source selected in step 7. If your Topic has a parametrized query. such as Example Topic. “Localizing JRXML Reports. On the Resources List page. and an optional description.jrxml.String"> <property name="adhoc.2.lang. The adhoc. click Save to create the Topic in the repository. Click Finish. See 5.” on page 101. 4. but it is possible to define them. for more information. Topics must be associated with the data source that they were designed for.” on page 99. then click Next. When the upload is finished. 5.Working with the Ad Hoc Editor Figure 4-25 Topics Folder on the Search page The Report Wizard appears. define a field property named adhoc.

JasperServer limits the number of rows that it fetches: If the row limit is reached when starting the Ad Hoc Editor. These settings apply to reports created or re-saved in the Ad Hoc Editor (that is. changing the settings does not retroactively affect existing reports). If a filter is in effect. refer to the JasperServer Administrator Guide. the query and the report are cancelled. 4. you can also ask the system administrator to raise the limits. the report stops and a message about the row limit appears. If any one query reaches the time limit before returning data. Consider factors such as the number of users and report complexity when deciding how JasperServer should process data for Ad Hoc reports based on Domains data sources. The limits are defined in configuration parameters set by the system administrator. it may take a long time to start returning data. If the limit is reached when running an Ad Hoc report. By default. You can redefine the report so that it fetches fewer rows. Time Limit. You can redefine the report so that the query completes more quickly. JasperServer can be configured to process the data in memory. and aggregate data returned by queries based on Domains when this is feasible.7. For details. as is done by default for Ad Hoc reports based on Domains. and for nonDomain. For JDBC data sources. JasperServer relies on the database to group. it sends a query to the current data source to fetch data. For more information. JasperServer processes the data in memory by default. 4. Your system administrator can configure JasperServer to handle Domain-based and JDBC-based Ad Hoc reports differently: For Domain-based reports. There is also a limit on the length of time that a report can take to complete.JasperServer User Guide 4. Row Limit.2 Data Policies Data policies control whether certain processing occurs in JasperServer or in the application storing your data source. For JDBC-based reports. When the Ad Hoc Editor starts. non-JDBC data sources. 78 . These data policies are controlled on the Ad Hoc Options page.7 Configuring System-level Ad Hoc Options System administrators (users with ROLE_SUPERUSER) can control how JasperServer handles the data for Ad Hoc reports. It also limits the data it retrieves to the fields that appear in the report. When an Ad Hoc report with complicated queries runs. you might be able to reduce the number of rows by changing the filter values.1 Limits on Queries There is a limit on the number of rows that a report run from the Ad Hoc Editor can contain. sort. JasperServer can be configured to push the processing down to the database. In all cases. see the JasperServer Administrator Guide. change the limit.7. the editor starts but it displays a warning message about the number of rows being returned. instead.

You can add these reports in two ways: From within JasperServer. This chapter contains the following sections: Overview of a Report Unit Adding Report Units from JRXML Files Editing JRXML Report Units Using the JasperServer Plug-in for iReport 79 . upload a JRXML file to the repository. From iReport. When you upload the report.Adding Reports Directly to the Repository 5 ADDING REPORTS DIRECTLY TO THE REPOSITORY While the Ad Hoc Editor allows end-users to create reports from pre-defined Topics and Domains. a wizard guides you through each step. This section gives both a simple and a complex example of uploading a report using JasperServer’s wizard. you can create reports outside of JasperServer and add them to the repository. define the report and use the iReport JasperServer plug-in to upload it. as well as a discussion of using the using iReport plug-in for JasperServer. along with any other resources the report needs.

2 Uploading the Main JRXML The first tasks when creating a report unit is to give it a name in the repository and then upload the main JRXML file that references all other elements.jpg files on the JasperServer host. 5.jrxml and the <js-install>/samples/image/logo. Report Data Data Source Query Input Controls Main JRXML Resources * References Data Flow Figure 5-1 Elements of a Report Unit Report Output * Images. It can either define the other elements internally or refer to existing ones elsewhere in the repository. and input controls and various resources contribute to the output as needed. the main JRXML uses the repo: syntax to refer to the other elements. 5. In this case.2. one simple and one more complex.1 Overview of a Report Unit In JasperServer. The main JRXML file is the core of the report unit. resource bundles. 80 .JasperServer User Guide 5. fonts. You also need the sample data installed with JasperServer. and scriptlets The data source and query retrieve data for the report.1 Simple Report Example To create the simple report in this example. you need access to the <js-install>/samples/reports/AllAccounts. The simple example also includes a custom query to demonstrate how a report unit can modify the JRXML report it is based upon. that illustrate many aspects of uploading JRXML files to create a report unit. Each example is split into several sub-sections. The following figure shows how the various elements contribute to the report output.2 Adding Report Units from JRXML Files This section presents two examples. the main JRXML determines the layout. Each sub-section can be referenced individually when adding your own reports with different combinations of elements. a report unit is the collection of elements required to retrieve data and format output. 5. one for each of the different kind of element in the report unit.2. This simple report has file resources but no input controls.

On the Main JRXML page. in this example New Simple Report. you can skip to section 5.4. it processes the file to create a list of the resources that are referenced in the JRXML. The Report Wizard opens to the Naming page: Figure 5-2 Entering the Report Properties on the Naming Page of the Report Wizard 4. select From File System and click Browse to locate the file <js-install>samples/reports/AllAccounts. 7. “Defining the Data Source.” on page 83. The main JRXML file is the report you have created in another editor such as iReport. 5. 3. The Report Wizard continues to the Main JRXML page: Figure 5-3 Locating the Report on the Main JRXML Page of the Report Wizard 6. 81 .jrxml. in this example new_simple_report. Click Next to begin specifying the components of the report.Adding Reports Directly to the Repository To upload the main JRXML for the simple report example: 1. 2. in this example This is a simple example. If your report does not reference any file resources. Log in to JasperServer as an administrator and select View > Repository. Right-click the Samples folder and select Add Resource > JasperServer Report from the context menu. 5. and the Report Wizard displays the list of suggested resources.3 Uploading Suggested File Resources When JasperServer uploads the main JRXML file. You can either upload a new JRXML file or create a new report based on a JRXML file you have previously uploaded.2. The description is displayed in the repository and on the View > Reports page to help users determine the contents of the report. Description – Optional description. JasperServer uploads the main JRXML file.2. In this example. The Report Wizard displays the list of suggested resources on the Resources List page so you can add them to the report unit. Click Next. Locate the folder where you want to add the report. Enter the following properties for the new report: Name – ID of the report object in the repository. go to Organization > Reports > Samples. Label – Display name of the report in the repository.

Click Next. The file resource within the report unit has name. The first image in this example is found in the sample data that was created in the repository. Review the resource names on the Resources List page of the Report Wizard. click Add Now. 11. label. In this example. The resources list shows their name and has a link to add them to the report unit. These are visible only within the report unit. For LogoLink. Figure 5-6 Properties of a Resource From the Repository on the File Resource Page 12. 10. The Name field must match the resource name referenced in the main JRXML. 82 . In either case. there are two images needed in the report. Figure 5-4 Suggested Resources on the Resources List Page of the Report Wizard 9. and description properties. Accept the default property values for the image resource by clicking Next. The File Resource page appears. they do not redefine the properties on the repository object that was referenced. you can associate any image file you choose with the resource ID in the main JRXML. Click From the Repository and select images/JRLogo from the drop-down.JasperServer User Guide To upload the suggested file resources for the simple report example: 8. Figure 5-5 Selecting a Resource From the Repository on the File Resource Page File resources referenced in the main JRXML can either be chosen among existing images in the repository or be uploaded from a file. The Resources List page appears again and shows that the LogoLink resource was added. which it does by default.

For the second image resource. For AllAccounts_Res2. and cannot be defined in the main JRXML. 83 . in the process of creating a report unit. in this case JasperServer. 15. JasperServer uploads the file. The File Resource page appears again to locate the second image: Figure 5-7 Uploading a Resource From the File System on the File Resource Page 14. 5. The Report Wizard returns to the Resources List page where it shows that all resources referenced in the main JRXML have been added: Figure 5-9 Suggested Resources Added to the Simple Report on the Resources List Page 17. Therefore. click Add Now on the Resources List page of the Report Wizard. The Data Source page of the Report Wizard lets you choose the data source in the repository or define a new data source on-the-fly. Click Next to proceed to the Data Source page. you must define a data sources in JasperServer that the report can use.Adding Reports Directly to the Repository 13. Accept the default naming of the image by clicking Next. click Upload From File System and browse to the file <js-install>/samples/images/logo. Click Next.2.jpg. and the Report Wizard displays the properties page for the file resource Figure 5-8 Properties of an Uploaded Resource on the File Resource Page 16.4 Defining the Data Source Data sources belong to the report engine.

You will see an error if you run the report in this state. The AllAccounts. This allows you to create several different reports from the same JRXML file. Click Next to proceed to the Query page. 5. Proceed to the Locate Data Source page of the Report Wizard: Figure 5-10 Locate Data Source Page of the Report Wizard The three choices for the data source are: From the Repository – Select an existing data source from the repository. 20.” on page 80 already contains a query. None – Uses the query defined within the main JRXML. “Uploading the Main JRXML. 22. select From the Repository and choose /datasources/JServerJNDIDS that is created as part of the sample data in JasperServer. On the Locate Query page. The main JRXML may contain a query. 84 . Locally Defined – Lets you define a new data source that will only be available within the report unit.2. The simple report example defines a custom query that displays accounts from a single country. If there is no query in the main JRXML. This example overrides the existing query by defining a new query in the report unit. To define a custom query for the simple report example: 21. Proceed to the Locate Query page of the Report Wizard: Figure 5-11 Locate Query Page of the Report Wizard The three choices for the query are: From the Repository – Select an existing query object previously defined and stored in the repository. but their data will be different.JasperServer User Guide To define the data source for the simple report example: 18.5 Defining the Query The query in report unit determines what data will be retrieved from a data source. 19.jrxml file uploaded in section 5. but the Report Wizard also allows you to define a new query for the report unit. select Locally Defined and click Next.2. you will see an error when trying to run the report. the reports will look the same.2. if any. In this example. None – Lets you select or define the data source at a later time. Locally Defined – Lets you define a new query that will only be available within the report unit.

Select SQL in the Query Language field and enter the following Query String to retrieve only Canadian accounts: SELECT * FROM accounts WHERE billing_address_country = "Canada" ORDER BY billing_address_city 85 .4. Enter the following properties for the example: Name – CanadaAccounts. we create a query that retrieves only Canadian accounts. 23. 25. Label – CanadaAccounts. In this example.2. the Report Wizard gives you the opportunity to select a data source that overrides the one associated with the report unit. Description – Query for New Simple Report in User Guide. The Query Locate Data Source page appears: Figure 5-13 Selecting a Query Data Source on the Locate Data Source Page When specifying a local query for the report unit. As with the default data source.” on page 83. The Edit Query page appears: Figure 5-14 Entering a Locally Defined Query on the Edit Query Page 26.Adding Reports Directly to the Repository The Query page appears where you can enter the properties for you local query: Figure 5-12 Entering Properties of a Locally Defined Query on the Query Page The locally defined query and its properties are visible only within the report unit. Click Next. then click Next. Selecting None uses the default data source that you selected in section 5. “Defining the Data Source. 24. you can select one from the repository or define a new one. Select None to use the report unit’s existing data source.

Click the name of your new report to run it and view the output.JasperServer User Guide 5. As shown in the figure below.2.6 Validating the New Report Unit You may click Finish anytime in the Report Wizard to skip pages you do not need. you may be prompted to review your entries. Use the left-hand navigation buttons to jump directly to the pages where errors occurred. The report wizard validates all the elements of the report unit when done. 28. To validate the report unit of the simple report example: 27. 86 . The Validation page appears automatically. If you navigate to the last page of the report. It’s always a good idea to test the report and review the output. all the accounts listed are in Canada. with a message indicating whether the report was successfully validated: Figure 5-15 Validation Page of the Report Wizard If the report was not validated. Click Finish to skip to the end of the wizard. and saves the new report unit in the repository with the type Report. click Save. If the report is valid. you see the two logo images that were referenced as file resources. You could easily change the images in the report by referencing other file resources. The report appears in the repository with the properties given on the Naming page: Figure 5-16 New Simple Report Added to the Repository 29.

On the Resource List page. 6. Enter the following properties for this example on the Naming page: Name – new_complex_report. The following procedure assumes you are familiar with the Report Wizard and how to navigate between its pages. “Running a Simple Report. “Uploading the Main JRXML. including the SalesByMonth. see section 3.jrxml.jrxml file (the sub-report). 3.jrxml file. Label – New Complex Report.2.3.jrxml file) and a logo image. see sections 5. It may help if you are very familiar with the SalesByMonth. Click Add Now in the same row as SalesByMonthDetail. as well as a scriptlet class JAR file and resource bundles.” on page 27. “Uploading Suggested File Resources. The complex report also uses a datatype and an image in the repository that are part of the sample data installed with JasperServer.Adding Reports Directly to the Repository Figure 5-17 Output of the New Simple Report Showing the Image Resources For more information about running reports.jrxml file and the resources it requires.1. To upload the main JRXML and suggested resource files for the complex report example: 1. For detailed instructions.2. 5. 87 . b. Log in to JasperServer as an administrator and select View > Repository. upload the sub-report: a. Select Upload From File System and click Browse to locate the file <js-install>/samples/reports/ SalesByMonthDetail. you must have access to all its resources.” on page 80 and 5. Locate the folder where you want to add the report. select From File System and click Browse to locate the file <js-install>/samples/reports/ SalesByMonth.2. In this example. go to Organization > Reports > Samples. To create the report.2. This example uses these resources to create a report that behaves just like the SalesByMonth report found in the Reports > Samples folder of the repository.jrxml. On the Main JRXML page. The beginning of the complex example is similar to that of the simple example. the SalesByMonthDetail. Description – This is a complex example.” on page 81. 2.7 Complex Report Example This section describes the creation of a more complex report with a full set of input controls. The list of suggested resources indicates that you need a sub-report (the SalesByMonthDetail. 5. Right-click the Samples folder and select Add Resource > JasperServer Report from the context menu. 4. The report file and its resources are found in the <js-install>/samples directory.

TTF file extension. c. The complex report example needs a scriptlet JAR and two language bundles (Java properties files). When you upload a TrueType font as a resource. You must be aware of other file resources needed in your report and upload them from the Resources List page.8 Uploading Undetected File Resources The report wizard cannot detect every type of resource referenced in the main JRXML. 7. Click From the Repository and choose /images/JRLogo.2. the file must have the . On the next page. the name is referenced in the main JRXML file. a. On the Resource List page. so you must enter it exactly as shown: Name – Scriptlet. accept the default name.jar file. On the next page. On the Resource List page. b. Enter the following information. The next page indicates that the file was successfully loaded and automatically detected as a JAR. Label – Scriptlet JAR. click Add Resource. b. label. and description. Figure 5-18 Suggested Resources Added to the Complex Report on the Resources List Page 5. Description – Scriptlet JAR for complex example. Add and upload the English resource bundle with the following steps: a. Figure 5-19 Adding the Scriptlet JAR on the File Resource Pages 9. Click Add Now in the same row as Logo. 88 . Select Upload from File System and click Browse to locate the <js-install>/samples/jars/scriptlet. accept the default report name and label. c. Add and upload the scriptlet JAR file with the following steps: a. On the Resource List page again. In addition. you must know how they are referenced and give your file resources exactly the same name so they can be associated. To upload the undetected file resources for the complex report example: 8. upload the logo image resource: Both suggested resources in the list have been added. click Add Resource again.JasperServer User Guide c.

c. Label – sales_ro. Figure 5-21 Adding the Romanian Resource Bundle on the File Resource Pages 89 .properties. Figure 5-20 Adding the English Resource Bundle on the File Resource Pages 10. Description – Romanian resource bundle. On the Resource List page. Label – sales.properties.properties. click Add Resource again. Add and upload the Romanian Resource bundle with the following steps: a.properties file. Enter the following information.Adding Reports Directly to the Repository b. The next page indicates that the file was successfully loaded and automatically detected as a resource bundle (a Java properties file). c. the Name field must be exactly as shown: Name – sales. enter the Name field exactly as shown: Name – sales_ro. b. Enter the following information.properties file. Description – Default English resource bundle.properties. The next page indicates that the file was successfully loaded and automatically detected as a resource bundle (a Java properties file). Select Upload from File System and click Browse to locate the <js-install>/samples/resource_bundles/ sales_ro. Select Upload from File System and click Browse to locate the <js-install>/samples/resource_bundles/ sales.

you must create the input controls so that they return the exact type. Boolean – A yes/no value determined by a check box. maximum value. Check boxes to select multiple values. and number of values expected by your report.2. Text input can also be constrained by a matching pattern. Each input control is a different type to demonstrate how each can be added to the report unit. 90 .9 Adding Input Controls Input controls are standard graphical widgets that take user input in a pre-determined format and pass it into the report.jrxml file of the complex example has several parameters that require input controls. Once the list of values is determined. all three files appear in the Resources List. number. click the resource name/ID in the table and locate the new file or repository object. If there is a mistake in a resource name/ID. Figure 5-22 Undetected File Resources Added on the Resources List Page If you wish to upload a different file for a named resource. range. Multi-select list to select multiple values. Radio buttons to select a single value. the widget type can be: Drop-down list to select a single value. Input controls are complex objects that can be configured in many ways. Single value – A text. but the report may process the input value. you can make the input control read-only or invisible. there are two aspects to defining an input control: the data type (for example number or text) and the widget type (for example text field or radio button) that allows that input. Most components in the example are defined locally to demonstrate the use of the report wizard. JasperServer displays the input control widgets with the report and regenerates the report when the user changes the input values. click the X icon in the same row to remove the file resource and add it again. 5. date or date/time.2. Choice of multiple values – The choices offered to the user can either be a static list of values that you specify or a dynamic list of values returned by a separate query. Single values provide a text box for the user to enter a value. You can also change the label and description of the resource. All choices are presented and selected by their text representation.JasperServer User Guide When done. You must define an input control even when parameters have default values. for example to interpret a string of digits as a number. However. In general. The query in the SalesByMonth. or both. To prevent users from changing the default. When a report is designed and configured for input controls.9. meaning that JasperServer will verify that the user input is numeric. but date and date/time also provide a calendar icon. As with other elements of a report unit. a user can modify runtime selections. such as WHERE filter clauses in SQL parametrized queries. but not its name. input controls and the data types they rely on can either be locally defined or reused from the repository. the data type for the value is a number. 5. In this example.1 Adding a Text Input Control The most straightforward input control is a text box that allows the user to enter a value. optionally constrained by a minimum value.

select Locally Defined: Figure 5-25 Locating the Datatype for the Text Input Control 91 . For this example. but the they can also include range restrictions that JasperServer will enforce. Data types can be simple definitions of the expected input (numbers.Adding Reports Directly to the Repository To add a text input control to the complex report example: 11. you must create the input control in the repository. in this example Text Input Control. The Locate Input Control page appears. in this example TextInput. 14. For this example. On the Resource List page of the report wizard. click Add Control. you can locate a datatype already stored in the repository. Figure 5-23 Locate Input Control Page of the Report Wizard 12. If you have created input controls for similar reports. in this example Single Value. select Locally Defined. If you have a data type saved in the repository that you want to reuse. Mandatory. you can reuse them if they have the same parameter name in the report. so you must enter it exactly as shown: Parameter Name – The name of the parameter in the report that receives the user value. date. in this example use the default settings. Type – Determines the type of the input control. Prompt Text – The label that the user sees next to the widget for this input. 13. On the next page. or date/time). On the next page. text. Description – An optional description that only appears within the report wizard. make sure its type and range are compatible with the input control you want. Visible – Affect how the input control is displayed. you cannot reuse input controls that you defined locally in another report. Also. enter the naming properties for the input control as well as the type of the input: Figure 5-24 Entering the Properties of the Text Input Control The name is referenced in the main JRXML file. Read-only.

Type – Determines the format of the data that the user may enter. 16. in this example choose Number. 18. The number format allows users to enter both integers and decimals. Leave blank in this example. Figure 5-27 Added Controls in the Resources List of the Report Wizard 5. On the Locate Input Control page. select Locally Defined. leave blank in this example.9. On the Resource List page of the report wizard.2 Adding a Simple Check Box Input Control A simple check box provides a true/false (boolean) input that can be used to conditionalize some part of the report. Label – Integer Control. a strict maximum means the value itself is not allowed. To add a simple check box input control to the complex report example: 17. The Resources List page appears with the new TextInput control in the list of resources. but they are visible only when defining the input control: Name – integer_type. a strict minimum means the value itself is not allowed. Leave blank in this example. Click Save.JasperServer User Guide 15.2. On the next page. 92 . Your report must handle both kinds of values when processing the parameter that receives the number. Description – An optional description that only appears within the report wizard. enter the properties for the locally defined datatype associated with the input control: Figure 5-26 Defining the Properties of the Datatype for Text Input The name and label are required. click Add Control. Minimum value and Is strict minimum – The lower bound of the value the user may enter. Maximum value and Is strict maximum – The upper bound of the value the user may enter.

On the next page. On the Locate Input Control page. but use Checkbox Input Control in this example. Mandatory. enter the naming properties for the input control as well as the type of the input: Figure 5-29 Entering the Properties of the List Input Control The name is referenced in the main JRXML file. 5. enter the naming properties for the input control as well as the type of the input: Figure 5-28 Entering the Properties of the Check Box Input Control The name is referenced in the main JRXML file. On the Resource List page of the report wizard. Type – Boolean in this example. Multi-select controls can either be a multi-select list or a set of check boxes. Radio buttons and check boxes are usually appropriate if there are few choices. 22. 20. When creating the input controls you can select whether to present a single choice as a drop down list or a set of radio buttons. Prompt Text – The label for the input control is usually formulated as a question. On the next page. 23. select Locally Defined. Description – Leave blank in this example.Adding Reports Directly to the Repository 19. so you must enter it exactly as shown: 93 . This example only has three pre-determined but uses a drop-down list. The predetermined choices are defined in a list of values object. click Add Control. Read-only. The Resources List page appears with the new CheckboxInput control. To add a drop-down input control to the complex report example: 21.2. The design of the report determines whether you must create a single-select or multi-select list. Click Next. so you must enter it exactly as shown: Parameter Name – CheckboxInput in this example.3 Adding a Drop-Down Input Control Another type of input control gives the user a pre-determined list of choices to select from. usually five or less. You can either create one locally for the input control or reuse one that you have created beforehand in the repository.9. Visible – Use the default settings in this example.

Visible – Use the default settings in this example. 26. label. Label Third Item with value 3. Read-only. you can locate a list of values already stored in the repository. Mandatory. Prompt Text – List Input Control in this example. make sure its values are compatible with the parameter that receives this input. These properties are not visible outside of the input control: Figure 5-31 Defining the Naming Properties of the List of Values Enter the following values: Name – list_type in this example. The value itself is passed to the report. Description – Leave blank in this example. Each value has a label that is displayed instead of the actual value. For this example. On the next page. For this example. On the next page. enter: Label First Item with value 1. select Locally Defined: Figure 5-30 Locating the List Type for the List Input Control 25. Label – List Type in this example. and optional description for the locally defined list of values. then click +. check the box in the row you want to remove and click –. Label Second Item with value 2. The label for every item must be unique. Type – Single-select List of Values in this example. 24. 27. so you must ensure that its type and value match what is expected. If you have a list of values saved in the repository that you want to reuse. enter a name. On the next page. If you make a mistake. Click Save.JasperServer User Guide Parameter Name – ListInput in this example. Description – Leave blank in this example. enter its label and its value. The Resources List page appears with the new ListInput control. Figure 5-32 Defining the Values of the List of Values For each value that you want to add to the list. 94 . enter the values that the user will choose from.

2. Description – Leave blank in this example. On the next page. On the next page.9. To add a query-based input control to the complex report example: 33. Select /datatypes/date from the drop-down: Figure 5-34 Locating the Datatype for the Date Input Control 32. Prompt Text – Date Input Control in this example. On the Resource List page of the report wizard. JasperServer performs a query whose results are used to create the list of choices. 34. Read-only. On the Resource List page of the report wizard. as well as what value is passed as the corresponding parameter. On the Locate Input Control page. click Add Control.2. enter the naming properties for the input control as well as the type of the input: Figure 5-33 Entering the Properties of the Date Input Control The name is referenced in the main JRXML file.Adding Reports Directly to the Repository 5. You must configure the query and designate how the results are displayed in the input control.5 Adding a Query-Based Input Control This last example of an input control shows how the choices available to the user can be dynamically based on your data.4 Adding a Date Input Control In this example of adding a date input control. Click Next. select From the Repository. The drop-down automatically shows the data datatypes found in the repository. select Locally Defined. we use a data type that already exists in the sample data in the repository: To add a date input control to the complex report example: 28. so you must enter it exactly as shown: Parameter Name – DateInput in this example. 95 . 29.9. 30. Type – Single Value in this example. click Add Control. select Locally Defined. The Resources List page appears with the new DateInput control. Visible – Use the default settings in this example. 31. 5. On the Locate Input Control page. Mandatory.

we define a query that is local to the input control. For this example. Description – Leave blank in this example. enter testQuery in both the Name and Label fields. Prompt Text – Query Input Control in this example. 36.JasperServer User Guide 35. Figure 5-37 Defining the Properties of the Query for the Query Input Control 96 . enter the naming properties for the input control as well as the type of the input: Figure 5-35 Entering the Properties of the Query Input Control The name is referenced in the main JRXML file. Visible – Use the default settings in this example. Type – Single-select Query in this example. select Locally Defined. Mandatory. In this example. On the next page. For a query-based input control. with its own properties and query string. On the next page. so you must enter it exactly as shown: Parameter Name – QueryInput in this example. On the Locate Query page. Figure 5-36 Locating the Query for the Query Input Control 37. you can use a query stored in the repository. enter naming properties for the local query. Read-only.

On the Edit Query page. 41. check boxes). you can select a different data source from the repository or define one that is local to the input control. enter the following column names: Value Column Enter – user_name. Figure 5-38 Locating the Data Source for the Query Input Control 39. For each row in the results of the query. define the query that retrieves both the labels and the values to be displayed by this input control. Figure 5-40 Selecting Columns for the Query Input Control For this example. including the new input controls. first_name. In this example. Visible Columns – first_name and last_name. and enter the following Query String: SELECT user_name. enter its name. If you make a mistake. In your own reports. last_name FROM users Figure 5-39 Editing the Query String for the Query Input Control 40. check the box in the row you want to remove and click –. On the Locate Data Source page. For each column that you want to display in a choice. The column names must match those in the SELECT clause of the query string exactly. JasperServer will display one choice in the widget you chose as the input type (drop-down. Click Save. On the Query Information page. radio buttons.Adding Reports Directly to the Repository 38. then click +. select None to use the same data source you defined for the report. keep the default value in the Query Language field. The Resource List page displays all the resources. name the database column that will be used as the input value and those that will be presented to the user. 97 . mutli-choice.

For example. These cascading input controls use queries to determine the values to display in each input control field. This example uses the default pop-up window. a parameter is referenced using the following convention: $P{parameter name} Consider an example report that returns data identified by country and city. 5. When the user selects a state.2. consider a report that has input controls for country. To do so.6 Configuring the Display of Input Controls To complete the configuration of input controls. Check Always Prompt to force JasperServer to prompt the user even though none of the input controls are mandatory.” on page 33. see section 3.7 About Cascading Input Controls JasperServer JRXML-based reports can include input controls whose values are determined by user's selection in other input controls. Leave the field Optional JSP location blank for this example. By leveraging the cascading functionality. but you can also make the input controls appear in a separate browser window or at the top the report itself.2.9. the list of values includes only those in the selected state. The query used by the CITY input control retrieves city names from a table called accounts based on the value selected by the COUNTRY input control. It includes input controls called COUNTRY and CITY. The goal is to use input controls as parameters for a query that populates another input control. the input control's query must use a special syntax to reference a parameter name.2. enter the optional settings at the bottom of the Resources List page. the value selected is used by the query of the CITY input control.JasperServer User Guide Figure 5-41 All Added Controls on the Resources List Page 5. the options in the State input control are determined by the value selected in the Country input control. and city. They apply to all input controls simultaneously: The Controls Layout specifies where the input controls should appear. For an example of running a report with cascading input controls. state. This setting allows you to specify a different JSP file to change to appearance of the input controls. The syntax is identical to the JasperReports syntax used in report queries. for example: select city from accounts where country = $P{COUNTRY} When the user selects a country from the COUNTRY input control. For example. “Cascading Input Controls. The following settings appear whenever one or more input controls are defined. To configure the display of input controls in the complex report example: 42. the CITY input control is refreshed to show the result.9.3. Note that there are other ways to use a parameter in a query. 98 .

2. The pop-up dialog appears with all of the input controls you defined. Click the display name of your new report to run the report and view it. Figure 5-42 New Complex Report Added to the Repository 46. 45. If the report was not validated. select From the Repository and choose /datasources/JServerJNDIDS from the dropdown. If the report was validated.10 Completing the Complex Report Example To finish the complex report example and validate it: 43. Enter sample values as shown in left-hand figure below. 44. On the Locate Data Source page. click Save.Adding Reports Directly to the Repository 5. you may be prompted to review your entries. The report appears in the repository. Skipping the last steps of the wizard accepts the default values for those options. Click Finish to skip to the end of the wizard. The Validation page displays a message indicating whether the report was successfully validated. Make corrections and try to validate the report again. The left-hand figure also shows all the dynamic choices for the Query Input Control: Figure 5-43 Entering Input Controls When Running the New Complex Report 99 .

The actual data type. or Date-Time. Figure 5-44 Output of the New Complex Report Showing Values from the Input Controls You can open the Report Options widow at any time from the report by clicking the icon. It also includes validation criteria. If running the new report results in an error. JasperServer enforces the proper format defined for each input control. Number. Possible values are Text. edit the SalesByMonth sample report (in the repository at /reports/samples) and compare its settings to those you configured for your new report. only values greater than the minimum value are permitted. The number of decimal places allowed in the field. If you cannot identify the problem. The Text Input Control is defined as a numeric type and only accepts valid numbers.2. A regular expression that restricts the possible values of the field. 48. The datatype description page contains these fields: Name Label Description Type Max length Decimals Pattern Minimum value Is strict minimum Maximum value Is strict maximum The name of the datatype. The maximum number of characters allowed in the field. Date. The sample report includes a header that displays the value of each parameter received from the input controls. 5. Click OK or Apply to run the report with the selected input. the maximum value itself is not permitted. The lowest permitted value for the field. Any additional information you want to provide about the datatype. only values less than the maximum value are permitted. as shown in the righthand figure. If checked.11 More about Datatypes A datatype in JasperServer is more than just a classification of the data. clicking Apply keeps it open to easily change values and run the report again. 100 . The highest permitted value for the field. The label of the datatype. Clicking OK closes the Report Options window.JasperServer User Guide 47. Enter a number and click OK or Apply again. edit the report to review your settings. If checked. the minimum value itself is not permitted.

The DejaVu replace the Java logical fonts used in previous versions of JasperServer: SansSerif Serif Monospaced SansSerif. you must upload the resource bundle. but should be considered deprecated. and run the risk of text being cut when exported to PDF.2. the font is rendered as Serif. you don’t need to set any other font attributes (such as the pdfXXX attributes) in the JRXML. iReport can help you localize your report by creating the resource bundle as well. refer to its SourceForge project at: http://dejavu-fonts. the java logical fonts listed above aren't recognized by browsers and are substituted with other font families in some browsers. simpleTable is the name of the resource bundle file that contains the StoreState property. nor do you need to specify font mapping. When using the DejaVu fonts coming from JasperReports font extensions. as well. For example: <jasperReport name="StoreSales" pageWidth="595" pageHeight="842" columnWidth="515" leftMargin="40" rightMargin="40" topMargin="50" bottomMargin="50" resourceBundle="simpleTable"> In the above. In order for this localization to work properly. Serif. 101 . such expressions are used to localize reports into various languages. If you edit a resource bundle in iReport. 5. due to font metric mismatches.display" value="$R{StoreState}"/> </field> JasperServer looks for a label with the ID of StoreState. and declare the resource bundle in the header of the JRXML file. This is because these Java logical fonts map to different TTF files in different environments.13 Default Fonts in JasperServer By default.2. the filename must include the correct extension (. which in turn ensures the PDF will be pixel perfect every time.Adding Reports Directly to the Repository 5. you must create the resource bundle with the correct labels. when viewing a report that uses the SansSerif logical font in Firefox in a Windows environment. When you upload a TrueType font to the repository. All is taken care of in the font extension file that makes these fonts available. Also.php?title=Main_Page. For example. For more information on DejaVu. we might use this JRXML: <field name="StoreState" class="java. For example.12 Localizing JRXML Reports JRXML reports (including Topics) support the $R expressions for field names.String"> <property name="adhoc. you can right-click it in repository (using the JasperServer Plug-in) and select Replace with Current File. Each $R expression refers to an entry in a resource bundle properties file that you must create.org/wiki/index. JasperServer uses three fonts you can use in your reports: DejaVu Sans DejaVu Serif DejaVu Sans Mono Using the DejaVu fonts shipped with JasperServer ensures that the fonts are always available in all environments. Monospaced can still be used.lang. if we were to localize a field called StoreState.TTF). When you upload the report.

b. When the report has successfully validated. b. you can see the new prompt label for the text input control. The report wizard opens with all the settings of the saved report. Click Next until you reach the Datatype page where you can click Save.JasperServer User Guide 5. Change the Controls Layout to Top of Page. This example will modify the display text of the ambiguous Text Input Control. Enter values and click Run Report to modify the report output according to your input. On the Resources List page of the report wizard: a. the report can display with all input controls still blank. For this example: a. 8. If desired. 3. c. 2. as if you were creating the report unit.3 Editing JRXML Report Units Once a report unit has been added to the repository. you can go back and edit any of its elements. Clear the Always Prompt box. 7. or even change the data type to one from the repository. Search or browse the repository to locate the report. 5. In this example. To edit the complex report example: 1. click Save. go to Organization > Reports > Samples. Click Finish. don’t make any changes. The Locate Input Control page shows that this input control is locally defined. Run the New Complex Report again. Navigate to the page of the report wizard where you want to make changes. d. You can make modifications in the report wizard. Change the contents of the Prompt Text field to Enter a number. Figure 5-45 Output of the Modified New Complex Report In Figure 5-45. Right-click the New Complex Report and select Edit from the context menu. Because none of the input controls in this example are required. including the file resources and input controls. In this example. you could make changes on these other pages. 102 . 4. Click Next. Click the name of the TextInput control. Log in to JasperServer as an administrator and select View > Repository. 6. c. the input controls appear above the full report. in this example click Controls & Resources in the left-hand list. Instead of appearing in a pop-up before the report. The properties page shows the settings for this input control.

you cannot necessarily use a version of iReport or JasperReports that has a later version number than the version of JasperServer you use. Add. Jasper Server 3.4. and you can connect to multiple servers. Start iReport. and property files).7. refer to section 8. and JavaBean). For more information. Drag and drop images and sub-reports into the design page. in Windows select Start > Programs > JasperServer Pro > Start iReport on the computer hosting JasperServer. This can make it easy to access both test and production environments. reports. The plug-in uses the JasperServer web services to interact with the server. This section assumes that you installed iReport when you installed JasperServer. 103 .4 Using the JasperServer Plug-in for iReport The JasperServer plug-in for iReport provides report developers with a quick and easy way to access reports inside the JasperServer repository. and link controls to reports. Create. Access to Domains through the Domains plug-in for iReport. JAR files. For example. fonts.2. and input controls. For example. iReport appears. To access the JasperServer repository within iReport: 1. modify. and import data sources (JDBC. generic resources (including images. JRXML files. datatypes.1 Connecting to JasperServer from iReport You can connect to JasperServer (Professional or Enterprise) directly from iReport. The Repository Navigator tool bar appears: 2.Adding Reports Directly to the Repository 5. remove. Open the JasperServer Plug-in for iReport by clicking Window > JasperServer Repository.” on page 166. Jaspersoft keeps the release numbers of compatible versions consistent. and delete folders. The plug-in offers these features: Repository browsing.7 supports iReport 3. “iReport Plug-ins. list of values. JNDI. Create. This section includes these topics: Connecting to JasperServer from iReport Creating a Report Unit in the Repository from iReport Managing Resources in the Repository from iReport Editing a Report in the Repository from iReport Running a Report from iReport Creating Reports in iReport Based on a Domain in JasperServer Creating Chart Themes in iReport 5. modify.7 and JasperReports 3. JasperServer supports the version of iReport that ships with it.

In the default installation with a single organization. Organization – If there is more than one organization in the JasperServer instance. If you have multiple versions of the plug-in installed. the list includes all the servers configured for every version iReport (after 3. no servers are configured. 5. JasperServer URL – Full URL to the repository web service. Username – ID of the user account to use when accessing JasperServer. The view of the repository and any actions you take through iReport will use the permissions for this user. All fields are required: Name – An identifier for this JasperServer instance and its repository in the iReport Repository Navigator. Password – Password for the given user. then expand the repository tree in the Repository Navigator. Click Save. You can add any number of servers to this list. you must specify the ID or the alias of the user’s organization.1) that is installed on this computer. Figure 5-46 Connecting to JasperServer from iReport 4. the default URL is provided and you only need to change the hostname. To add a server. click the first button in the repository navigator tool bar. The JasperServer repository tree appears as it would to the user in the given organization. 104 .JasperServer User Guide 3. for example organization_1. When iReport starts for the first time. Note that you may experience problems when connecting to servers that are not compatible with your version of the plug-in. you can leave this field blank. Enter the information that the plug-in will use to access your JasperServer instance.

To add an image from the repository to a report. 5. 5. If you have a report open in the design area. 105 . see section 5. right-click the server name and select Refresh from the context menu. If it doesn’t. 3. drag the image into the design window from the repository tree. “Creating Reports in iReport Based on a Domain in JasperServer. 6.Adding Reports Directly to the Repository Figure 5-47 iReport Displaying a Report from the Repository Navigator 6. A report has a main JRXML file. you can: Browse the repository by double-clicking the server and folder icons. 2. You are prompted for the main JRXML file. a set of input controls (zero or more). and upload JRXML files. Download. Select a valid data source (either from the repository or locally defined) and click Finish. You are prompted for the data source. select Locally Defined and click Get source from current opened report to use it in the new report unit. Select a JRXML file in the repository or one saved on your hard drive. View the property information of the resources in the repository. you need a JRXML file. which you should create in iReport beforehand. Click Next. a data source. To create a report unit in the repository: 1. setting an expression that refers to the image’s location in the repository. 4.6. To create a report that returns data from a Domain.2 Creating a Report Unit in the Repository from iReport To add a new report unit. For each server to which you have configured access in the JasperServer Plug-in.4. Right-click the parent folder for the new report and click Add > Report Unit in the context menu. The report unit appears in the repository tree. and a set of resources (zero or more). edit.4.” on page 108. Download images and other files by clicking Export File on the Resources tab of the resource’s Properties window. The iReport plug-in adds the image element for you.

When cutting the object. Or if you are maintaining existing reports. you can modify the values and save them back to the Repository. 8. properties files for localized reports. 2. style templates (JRTX). drag the JRXML for the subreport from the repository into the detail band.3 Managing Resources in the Repository from iReport While creating reports that you intend to store in the JasperServer Repository. it will not be removed from its original location until pasted in the new location. The JRXML for the subreport must already be created and saved as a resource in the repository or in the report A sub-report element is created. or description of the repository folders. JRXML files. or use the keyboard shortcut Control-V. For more information. You must confirm you action to prevent accidental deletions. respectively. Locate the destination and right-click and select Paste.” on page 108. you will also need to create and manage the resources associated with them. You can also modify the location. In the dialog window that appear. 3. set the connection expression of the subreport to $P{REPORT_CONNECTION} in the Properties window’s subreport tab.4. 4. Browse the repository to the correct resource and click OK. or delete resources to the repository from iReport: 1. locate the object. JARs. there are one or more tabs depending on the type of resource. Figure 5-48 Editing General Properties of Repository Objects in iReport The other tabs. such as images. iReport prompts you to locate the resources. name. To change the location of a resource in the repository. locate the object. right-click the object and select Copy or Cut. To run the report. or use the keyboard shortcuts: Ctrl-C and Ctrl-X. If the logged in user has administrative privileges. When you upload a report that uses the repo: syntax to refer to resources in the repository. right-click it. To add. You cannot run a subreport directly on the server. and select Delete.JasperServer User Guide 7. then drag-and-drop it to the new location. modify. On the General tab. you can view the object’s repository label and description. select Add then click the desired object in the context menu. 5. then right-click the resource and select Properties. and an input control lets you edit its various parameters: 106 . If the main report uses a JDBC connection. you may need to access. Alternatively. right-click the folder that will hold the resource. modify. refer to 5. File-based resources have a Resource tab to replace or export the file. contain controls that are specific to each type of resource.5. an image resource shows the image itself. navigate the repository tree to find its folder. and data sources. 5. To add a resources in the repository navigator. To delete a resource from the repository. you must run the whole report unit. lists of values. and save changes to existing resources. To modify a resource. datatypes. As shown in the following figure. if any. and other repository objects have their own specific settings. To add a subreport to a report. right-click the report unit and select run Report Unit from the context menu. input controls.4. “Running a Report from iReport.

4. In the repository tree. You must upload it back to the repository when finished. and the Controls Layout determine where they appear. right-click the JRXML file in the report unit and select Open in Editor.Adding Reports Directly to the Repository Figure 5-49 Editing Resource-Specific Properties of Repository Objects in iReport 6. you must be aware that iReport operates on a copy of the file. Similarly. The JSP fields are for modifying the appearance of the controls. To save the file and upload it to the repository. To edit a Report Unit in the Repository from iReport: 1. either in the Designer or in the XML editor.” on page 105 for instructions on adding images or subreports to your JRXML file.4 Editing a Report in the Repository from iReport In the repository tree. change the repository name or description as appropriate. 2. A message confirms the operation’s success. Click Save in the Properties dialog to make your changes effective in the repository. On the General tab. 107 . The JRXML appears in the Designer window. See Figure 5-50 on page 108. See section 5.4. When working with JRXML files in the Repository from iReport. either by selecting one from the repository. 4. The JRXML is extracted from the repository and stored as a local copy in the <USER_HOME>/. 5.ireport/jstmp directory. you can select the data source from the repository or from iReport. or uploading one through iReport. On the Main Report and Data Source tab. you can set display properties for any input controls. On the Other tab. right-click it in the repository tree and click Replace with Current JRXML. as explained in the following procedure: To edit a JRXML file in the Repository from iReport: 1.2. In the repository tree. report units appear as special folders with this icon: . This directory is never automatically cleared out. 3. 2. Edit the file as needed. right-click the report unit and select Properties. 3. you can change the JRXML file for the report. They contain JRXML files with this icon: . “Creating a Report Unit in the Repository from iReport. Click Current Report to use the JRXML currently being edited in iReport.

see chapter 6.4. If the report has input controls. 2. The plug-in is installed in iReport by default.6 Creating Reports in iReport Based on a Domain in JasperServer A Domain is a virtual view of a data source that represents the data in business terms appropriate to your audience. Click Save Report Unit in the Properties window to make the changes effective in the JasperServer repository.4. and it limits the data to that which is appropriate for the audience. look for errors or messages in the Report Problems Window at the bottom of the iReport interface. 5. For more information about Domains. “Creating Domains.” on page 115. It relies on the JasperServer plug-in to access the repository. If the report does not display. 5. the Report Parameters window prompts you for values. Running a Report from iReport To run a report on the server using all the export options set in iReport: Right-click a report in the repository tree and click Run Report Unit.5 1.JasperServer User Guide Figure 5-50 Editing Parameters of a Report Unit in iReport 5. Figure 5-51 Report Parameters Window in iReport The report is displayed in the Report Viewer Window. 108 . The Domain plug-in enables iReport users to generate reports from Domains.

Configure iReport to access your JasperServer repository as described in section 5.4. Select a JasperServer connection to determine the server and repository containing the Domain you want. click File > New > Domain Report.Adding Reports Directly to the Repository To create a report in iReport based on a Domain in JasperServer: 1. then click Next. Figure 5-52 Domains Window in iReport 3. 2. “Connecting to JasperServer from iReport. Click Window > Domains.1. To start a report based on a Domain.” on page 103. The Domain Window appears docked on the left-hand side of the screen. Figure 5-54 Domain Step in the iReport Domain Report Wizard 109 . The Domain Report wizard opens to the Connection step: Figure 5-53 Connection Step in the iReport Domain Report Wizard 4.

JasperServer User Guide The Domain step displays a selector containing all the Domains within the repository visible to the user defined in the connection. 110 . not in the JasperServer Repository. see section 4. and you may select any field to prompt the user with an input control. For more information.5. Even if that field is not included in the report. Define any necessary filter conditions on the fields of the Domain. 6.2. 5. the filter will be active and will apply to the rows of data that will appear. 7. 8. which may correspond to fields and calculated fields in the Domain. Figure 5-56 Name and Location Step in the iReport Domain Report Wizard The Name and Location step determines the file name of your report in iReport. “The Filters Page. The Domain Window now shows the sets and items in the Domain. Filters will limit the data your report will return. This dialog is similar to the Filters page in the Choose Ad Hoc Data wizard within JasperServer. Select a Domain and click Next. If the user’s organization includes sub-organization. Figure 5-55 Filters Step in the iReport Domain Report Wizard The Filters step displays the Domain’s items. The report document appears in design area. See below to publish your report in the repository. Click Next and specify a name and a location on your hard drive to save the report. Click Finish.” on page 71. the list will include any Domains they define as well.2.

To add items from the Domain. 12. label. Enter a name (object ID). and description of the new report unit.= 10000</queryFilterString> </query>]]> </queryString> The query has two elements: queryFields and queryFilterString: Field IDs in both elements are specified as set_ID.Adding Reports Directly to the Repository 9. then click Publish Report in the Domain window. label (display name) and an optional description for the report in the repository. 10. drag them to the detail area of the JRXML in the designer. For the simple filter shown in step 6. “The DomEL Syntax.field_ID. 111 . Select a valid repository location and click Finish. With the report published to the server. If the report doesn’t appear in the repository tree. Figure 5-57 Designing a Report in iReport Based on a Domain in JasperServer If you want to change the filters on the Domain data. then click Next. right-click the server name and click Refresh. When you are satisfied with the report. save your report. you can test it by clicking The report output appears in the Report Viewer Window. Click XML next to Designer to view the XML. 13. Filters are defined as queryFilterString elements in the XML of the report. 11. 14. in the repository navigator window.” on page 150.amount"/> </queryFields> <queryFilterString>newSet2. You cannot run a Domain report until it has been published to JasperServer. You are prompted for a name. Edit your report to format its data and look and feel. the generated XML is the following: <queryString language="sl"> <![CDATA[<query> <queryFields> <queryField id="newSet2.amount &gt.2. The filter uses the Domain Expression Language described in section 7. You are prompted for location for the report unit. click Edit Filters in the Domains Window.

JasperServer User Guide

5.4.7

Creating Chart Themes in iReport

Using iReport, you can create new chart themes that give a custom look to any chart. You can easily set the fonts, colors, line widths, and other settings that determine the appearance of charts. You can then import the chart theme for use in reports generated in JasperServer, either on a report-by-report basis or as a global setting for all charts that do not provide their own theme.
To create a new chart theme in iReport:

1.

Select File > New > Chart Theme. The new file dialog opens with a default file name. Chart themes use the .jrctx file extension.

Figure 5-58

New Chart Theme in iReport

2.

Enter a name and location and click Finish. Alternately, open an existing chart theme file with the .jrctx extension. The chart theme editor appears in the Designer window.

3.

Use the following panes to work with your chart theme: Template inspector on the left . Contains the categories of properties that can be modified. Chart properties on the right. Lists the properties in each category and lets you modify their settings. These panes are shown in Figure 5-59 on page 113. The available options are based on the JFreeChart library used to generate charts. Note that iReport only supports the most common options provided by JFreeCharts.

4. 5.

Select each category in the template inspector and review the available option, which appear in the properties pane to the right. Select a property to change its value. Depending on the nature of the property, you might type text, select a color, check or clear a check box, or select a value from a dropdown. As you update the chart theme, the Designer shows your changes. For example, change the Series Color property in the Plot category to set the color of the data series in the chart. Selector different chart types from the dropdown at above the Designer to see how the theme appears with different types of charts. This is especially important if you are creating a theme that will be used with many reports, such as a corporate chart theme. To view the XML that defines the chart theme’s appearance, click XML above the Designer.

112

Adding Reports Directly to the Repository

Figure 5-59

Chart Theme Editor in iReport

6. 7.

When you are satisfied with the chart theme, click File > Save to save your chart theme. This saves the report to your local hard drive. In the template inspector, right-click Chart Theme and click Export as Jar from the context menu.

Figure 5-60

Exporting a Chart Theme

You are prompted to identify the chart theme. 8. 9. Enter the name of the theme and the name of the JAR file. The chart theme name is the text that appears in the Chart Theme dropdown in iReport’s properties pane. If you don’t want this theme to be available in iReport for some reason, clear the check box. 10. Leave the box checked if you want the JAR to be placed on iReport’s classpath. 11. Click Export. The chart theme is exported. It can be used at the report or server level in JasperServer. For more information, refer to the JasperServer Administrator Guide.
In iReport, you can upload the chart theme to JasperServer using the JasperServer plug-in; right-click the folder in the repository where the theme should reside, and select Add > JAR Archive.

113

JasperServer User Guide

114

1 Introduction to Domains Production databases typically contain data in tables that are optimized for storage and retrieval. “Creating a Report from a Domain. Typically. This chapter contains the following sections: Introduction to Domains Example of Creating a Domain Using the Add New Domain Dialog Using the Domain Designer Editing a Domain 6.4. In relational databases.” on page 108.5. and users create reports based on the Domains using either the Ad Hoc Editor or iReport. those who create Domains must have organization admin privileges. “Creating Reports in iReport Based on a Domain in JasperServer. see section 4. A Domain is a virtual view created and stored in JasperServer. Domains are similar to Topics in that they are used in the Ad Hoc Editor as a basis for designing reports. without modifying the data source. Ad Hoc reports. filtered and labeled for their business needs. Through a Domain. users see columnss that have been joined. 115 . a view can perform some of these functions. and labeled with user-friendly names. In JasperServer.6. a Domain performs all these functions and more such as the localization of report text and permissions based on data values. as described in section 5.” on page 67. Columns with data relevant to users need to be joined across several tables. It presents the data in business terms appropriate to your audience. They are different from Topics in several significant ways: Domains can be created directly through the JasperServer user interface. and the data values they can access are limited by security policies. filtered by business needs. Domains are created for end users by database administrators or business analysts who understand the structure of the raw data in the database.Creating Domains 6 CREATING DOMAINS A Domain is a metadata layer that provides a business view of the data accessed through a data source. secured against unauthorized access. Domains defined in JasperServer can be accessed through iReport as well. and it can limit the access to data based on the security permissions of the person running the report. For instructions on creating Domain Topics and reports based on Domains in the Ad Hoc Editor. and Domain Topics. This chapter covers the process of creating Domains and defining their contents. Administrators define Domains. In the default JasperServer installation. A Domain defined in JasperServer and can be used to create reports.

In this scenario. Users of the Domain might only see a single set of tables according to their security permissions. Once all these settings have been made.3. For example. On the other hand. and also save the settings in a Domain Topic so others can design similar reports. Users would have a wide variety of Domain Topics to choose from. a calculated field refers to a field in row that is computed from the field values in other columns. others to fields. The preceding examples illustrate two extreme cases. A small number of users who understand their database might be given administrator privileges to define complex Domains as an extension of the Ad Hoc report design process. filter data.5. The table in section 4. there might be many specific Domains. Domains and Domain Topics can give users great freedom in designing reports while the security features make sure they do not access inappropriate data. and select a small set of columns for specific users or specific types of reports. administrators will want to create Domains that help the users meet their business goals. there might only be one Domain within the organization but many Domain Topics that users have created for specific needs. This last point is a very powerful feature of Domains.1 Domain Use Cases The use of Domains. perform very little filtering.1. 6.3 Components of a Domain A Domain is saved as an object in the repository. a Domain could contain dozens of tables in several unjoined sets.” on page 73 gives individual use cases for Domains. so the administrator creates the corresponding locale bundles.” on page 73. operations such as joins and filters operate on designated field values in a row.JasperServer User Guide Domain creators can write SQL queries. When designing a report based on a Domain. they have to opportunity to further choose the data from within the Domain. optional description and folder location specified at creation time. but no opportunity to access the Domains to perform their own filtering. Conventionally. filter expressions and security files to specify exactly what data can be accessed. however the two terms refer to the same concept from different perspectives. with large numbers of users or less database proficiency.” on page 67 and 4. and more importantly create input controls on columns so that report readers can modify the filter values. joins. administrators could create very targeted Domains and Domain Topics.3. “Creating Topics from Domains. see sections 4. but when users create a report based on a Domain. In the other case. Users can filter the data for each column.1.2 Terminology This chapter refers to both columns and fields. Like other repository objects.1. In the first case. In this case. and saved reports in JasperServer depends on the complexity of your data and your business needs. But the effect of a calculated field in every row is to create a new caluculated column. then use repository access permissions to make sure users cannot modify them. They could then perform their own filtering. For more information. Report creators have the opportunity to further filter data and prompt for user input later when running the report.5. The number of users in your production environment and their level of proficiency will also determine your general use cases. have formulae for calculating new columns. it has a name.5. but they are defined by the columns that determine the fields involved. but define a strong data-level security policy. relabel columns for their own needs. “Creating a Report from a Domain. Some Domain operations refer to columns. Domain Topics. 6. JasperServer can optimize database access to allow editing of reports that access huge datasets. Similarly. users can save the report for others to run. Because an item may originate from derived tables or calculated fields. and each would have corresponding locale bundles and a single Domain Topic. and columns are composed of fields in each row. Perhaps reports also need to be internationalized. and save their settings as a Domain Topic for future reuse in Ad Hoc reports. Domain Topics. Administrators create Domains. each for a specific purpose. but there are many scenarios that combine some degree of both. as well as labels and locale bundles to specify how the data appears. Users can select a subset of columns to appear in the Ad Hoc Editor and give them custom labels. database tables are composed of columns. Domains can be used to perform complex joins. “Creating Topics from Domains. 6. On the other hand. Within a Domain. columns are called items. it may not correspond to a single column in the database. and reports based on Domains. A Domain references the following components: 116 .

“Creating Topics from Domains. creating or uploading the components of a Domain. joins to perform. as well as see complex reports based on Domains: Simple Domain – Demonstrates very basic features of Domains Based on the SugarCRM JNDI sample data source. sets you need. Locale bundles and security files are uploaded from external files.1. The new Domain is not created until you click Save in the Add New Domain dialog. 2. Data sources are selected from previously defined data sources in the repository. 6.1.” on page 139. You can export the Domain’s design file as described in section 7. Log in to JasperServer as an administrator and select View > Repository. Based on the Foodmart sample data source. Shows how report creator can see the items in a Domain through a Domain Topic. calculated fields. You also need to determine whether the users of your Domain need localized resources. Optionally define localization bundles or data-level security on the Resources page of the Add New Domain dialog. The Domain design is either created through a dialog or uploaded from an external XML file. Optional security file that defines row and column-level access privileges based on users or roles. 3.3.” on page 73. Optional locale bundles consisting of localized property files to give labels and descriptions in other languages.5 Overview of Creating a Domain In practice. queries for derived tables. For complete information on all of the options and settings available for designing reports. You can export the Domain’s design file as described in section 7. joins between tables.” on page 139. 5. SuperMart Domain – Demonstrates advanced features of Domains.1. On the Data and Resources page. 4. “The Domain Design File. The next section gives a detailed example of using these dialogs to create a Domain. as described in section 4. Launch the Domain Designer and step through its tabs to ultimately define the sets and items of your Domain. 6. see sections 6. “The Domain Design File. select Add Resource > Domain in the repository to open the Add New Domain dialog. As an administrator user. “The Domain Design File.” on page 127. Domain used to create Simple Domain Topic in the Organization > Ad Hoc Components > Topics folder. 6. To create a sample Domain: 1.4 Sample Domains Two sample Domains are provided in Organization > Domains in the default installation. you need to determine a security policy for the data retrieved through the Domain. The Domain design that specifies tables and columns in data source. “Using the Add New Domain Dialog.1. filters to define.” on page 125 and 6. “Using the Domain Designer.3. There are several dialogs involved in creating a Domain in JasperServer: 1. and item properties to expose to users. 117 . select a data source then enter a name and optional description for your Domain. You can use them to practice designing and using Domains. You should decide on the data source and define it in the JasperServer repository. You should know the elements of your design: tables and columns to choose.Creating Domains A JDBC or JNDI data source whose tables and columns will be presented through the Domain. you should plan your Domain’s features before you begin the creation process. Complex Domain with many tables and joins.5.1. The following sections describe the various dialogs for selecting. as described in section 7.2 Example of Creating a Domain The following example shows how to create a Domain. And finally.4. and labels to display the columns. You can download and inspect the Domain’s security file and locale bundles. such as translated labels and local formats.” on page 139.

the click OK. click Browse. The Domain Designer opens to the Tables tab showing the data source you selected in the previous step. The list of tables to choose from shows all the database tables found in the data source. The Add New Domain wizard opens to the Data and Design page. 3. Click Launch Domain Designer on the Create tab under the Design heading. In this example: Display Name is Example Domain Location is /Domains (unchanged) Description is Created in User Guide tutorial. repository location.JasperServer User Guide 2. Right-click the folder and select Add Resource > Domain from the context menu. enter a name. Figure 6-1 Data and Design Page of the Add New Domain Dialog 4. Under the Properties heading. You can expand each table to see its individual columns. 118 . Figure 6-2 Select a Data Source Dialog for a New Domain 6. Under the Data Source heading. expand and select Analysis Components > Analysis Data Sources > SugarCRM Data Source. and optional description of the Domain. for example Organization > Domains. In this example. Locate the folder where you want to place the Domain. 5.

accounts_opportunities. Double-click the following tables in the left-hand list to add them to the list of selected tables: accounts. the check box to Inspect new tables and automatically generate joins has no effect. Figure 6-4 Derived Tables Tab of the Domain Designer 119 . opportunities. cases.Creating Domains Figure 6-3 Tables Tab of the Domain Designer 7. so you may leave it checked or not. Click Next to display the Derived Tables tab. 8. users With the data source in this example.

In the left-hand list. 10. select a column in the left table list and a column in the right table list. For this example. 11. expand the tables to see column names. To specify a join. c. define the following joins: Left Table and Column accounts: id accounts_opportunities: opportunity_id opportunities: assigned_user_id Right Table and Column accounts_opportunities: account_id opportunities: id users1: id Join Type Inner Inner Inner 120 . Now there are two table aliases for the users table to avoid circular joins. b. Select the same .JasperServer User Guide 9. Create a derived table as follows: a. then click a join icon. in this example: p1cases. Type the following query: select * from cases where cases. Click Create. select the users table and click the Copy Table icon users table again and click the Change Table ID icon to create the users1 table. Select the following columns by Control-clicking in the list of query results: account_id assigned_user_id case_number date_entered description id name resolution status e. The new derived table is shown in the list of tables and contains the columns you selected. 12.priority=1 and cases. A derived table is defined by a query and a selection of the columns in the result.deleted=false Click Run to see the columns in the result of the query. Click Next to proceed to the Joins tab. Click New and enter a meaningful name in the Query ID field. d. Figure 6-5 Joins Tab of the Domain Designer The tables selected on the Tables tab and defined on the Derived Tables tab appear in both lists. and rename it to users2.

In this example. In this example. The list of available columns shows all the joined and unjoined tables resulting from the joins you defined. Figure 6-6 Calculated Fields Tab of the Domain Designer 14. When you have selected all the necessary joins. '. you can expand the join tree and double-click column names to insert them. and the right outer join includes P1 cases without assigned users. then enter the following details for a calculated field that creates unambiguous city names: Name: city_and_state Type: String Expression: concat( accounts. 121 . the cases table was used only to help create the p1cases derived table. the left outer join includes accounts without P1 cases. Click OK to validate the expression and add the calculated field to the list of available columns. Click Create Field to begin.billing_address_city.billing_address_state ) When entering the expression. '. click Next to proceed to the Calculated Fields tab. but itself was not joined to the other tables. 13.Creating Domains Left Table and Column accounts: id users2: id Right Table and Column P1cases: account_id P1cases: assigned_user_id Join Type Left Outer Right Outer Outer joins are needed when columns might have null values. accounts.

g. d. Expand the join tree and the opportunities table in list of Available Fields. JasperServer did not find any values for this column in the data source. The list of available columns is identical to the one on the previous tab. f. Create another condition by expanding the p1cases table and double-clicking the status column. This also places it in the Condition Editor. Use Equals as the comparison operator. Define two filters as follows: a.JasperServer User Guide 15. If you select the wrong one. but you can still enter a value in this way. Click the arrow next to the opportunity_type column to create a condition for it in the Condition Editor. Click OK to save this condition in the list below. click Cancel to clear the Condition Editor. b. Click Next to proceed to the Filters tab. including any calculated fields. Figure 6-7 Filters Tab of the Domain Designer 16. 122 . Choose the “Does Not Equal” comparison operator and type closed as the value. Click OK to save this condition as well. c. e. and select Existing Business from the list of available values.

select it and double-click its current label in the properties table. create the sets and items in the following table. 123 . remove the unwanted items. 18. To the right of it is a list of sets and items that will appear in this Domain. A set is a grouping of items independent of the tables in which the columns originate.. and then rename the sets and remaining items and give them descriptions. The table on the right shows the display properties of the set or item selected in the list. The names and descriptions shown here are meant to be realistic but do not represent an actual business case. Create a hierarchy of item sets and items from the tables and columns in the left-hand list. in the properties table shows the Edit description dialog: Figure 6-9 Edit Description Dialog of the Domain Designer For this example. An item is a column or calculated field. Click Next to proceed to the Display tab. To rename an item or set.. descriptions that appear as tooltips. The simplest way is to double-click JoinTree_1 to select all of its tables and columns.Creating Domains 17. as well as default formats and summary functions. that is chosen to appear in the Domain. Figure 6-8 Display Tab of the Domain Designer The join tree is shown on the left again. Only columns from the joined tables in JoinTree_1 will be added to this example Domain. Double clicking the description property or clicking . To change the order of sets or items. then type the new label. along with its display properties. Display properties include labels. You can double-click or drag-and-drop sets and items between the two lists. select them and click the arrow buttons to the right of the list. You can also use the icons above the lists to create new sets and move columns into them.

Date: data format of Jan 01. The example Domain design is finished. 21. 20. The Add New Domain dialog appears again. 2009 Opportunity.234) and summary using average P1 Case. State First Name Last Name Date Amount Probability Description Source Stage Case Date Summary Description Resolution Status First Name Last Name Name of customer Account type Primary industry Estimated annual revenue Estimated number of employees City and state of headquarters Given name Surname or family name Date opportunity opened Anticipated amount of the contract Estimated chance of winning the contract Description of the opportunity Lead source Sales stage Case number Date case opened Name or summary of the case Detailed description of the case Description of the case resolution Current status of the case Given name Surname or family name Item ID Item Label Item Description 19. Set the data format and summary properties on the following items: Opportunity. 2009 When used in reports. 124 . The Edit tab under the design heading informs you that the design has been created and that you can launch the Domain Designer again to edit it. The new Domain is stored in the repository folder named in the Location field and appears in search results.JasperServer User Guide (Set ID) Set Label Set Description (accounts) Account Customer account information name account_type industry annual_revenue employees city_and_state (users1) Account Rep Primary account representative (opportunities) Opportunity Sales opportunity first_name last_name date_entered1 amount probability description1 lead_source sales_stage (p1cases) P1 Case High priority support cases case_number date_entered2 name2 description2 resolution status (users2) Case Rep Support case representative or engineer first_name1 last_name1 Customer Type Industry Revenue Size Employee Size City. Click Done. Date: data format of Jan 01. Amount: data format of ($1. these items will have the data formats and summary functions by default. Click Save in the Add New Domain dialog.

125 . If you installed the sample data. To navigate between pages.” on page 126. you will select schemas when you launch the Domain Designer. The Save button validates your Domain components then saves the Domain. not by their location. Resources – Optionally specify a security file and one or more locale bundles. Domains may only have JDBC-based data sources. Properties heading: For new Domains. JasperServer locates Domains by their repository object type. For new Domains. Click Browse to open a dialog that lets you choose from among all the data sources in your organization.1 The Data and Design Page The Data and Design page of the Add New Domain and Edit Domain dialogs lets you specify the mandatory components of a Domain. The mandatory components of a Domain are: A data source selected from the repository A Domain design created interactively with the Domain Designer or uploaded from a file Figure 6-10 Data and Design Page of the Add New Domain Dialog Data Source heading: You may use only data sources that are in the repository and to which your user has access privileges. The text field shows the repository path of the chosen data source. The default location is the last folder selected in the repository. when modifying an existing Domain. enter a display name and specify a location in the repository by typing or clicking Browse. The location for Domains in the sample data is the Organization > Domains folder.3 Using the Add New Domain Dialog The dialogs entitled Add New Domain and Edit Domain are identical and are used to define all the components of a Domain. You must specify at least a data source. If your data source supports schemas. but you may use any location. see section 6. there are sample data sources in Organization > Data Sources and Organization > Analysis Components > Analysis Data Sources. The Cancel button exits the dialog without saving any of your Domain settings. no Domain is created.3. and the properties of its repository object. For more information. click the page name at the top of the dialog or the Next and Back buttons at the bottom. its domain design.3. and a display name on the Data and Design page before you may navigate to the Resources page or Save a Domain. as well as set its repository object properties. There are two pages: Data and Design – Specify the domain’s data source. 6. “Domain Validation.3. such as an Oracle RDBMS. Both contain JDBC data sources that can be use for a Domain. a design or valid design file. it remains unchanged.Creating Domains 6.

The first four steps are the same as in section 6. see section 7. After using the Domain Designer or uploading a design file.1. 5. or remove any previously uploaded files for your Domain. If validation fails. “The Domain Design File. “Domain Design Validation.3 Domain Validation The validation of a Domain ensures that all of its components are consistent among each other. For more information. this step can be omitted by setting a parameter in the JasperServer configuration file. both tabs indicate that a design has been created. If a security file has been uploaded.” on page 139.” on page 139.JasperServer User Guide The description field is optional but recommended. When you click Save. Verify that all items reference existing columns. 6. 6. click Launch Domain Designer to open the interactive Domain Designer dialog. Figure 6-11 Resources Page of the Add New Domain Dialog The Resources page is documented in section 7.3. Design heading: On the Edit tab. the Add New Domain dialog remains open and a message appears to help you correct the error. In each defined set. The description is displayed with the Domain in the repository and when users are selecting a Domain to create an Ad Hoc report. you need to edit the files and upload them again. On the Upload tab. Verify that the tables and columns of the Domain design exist in the data source. The Add New Domain dialog checks the syntax of files when they are uploaded.2 The Resources Page The Resources page of the Add New Domain and Edit Domain dialogs lets you upload security and locale bundle files for your Domain.1. the Add New Domain or Edit Domain dialog performs the following validation. In special cases where you need to create a design before the data source is available. If the settings are in the uploaded files. verify that all items originate in the same join tree. but overall consistency must be checked when saving the new or edited Domain. verify that all items and sets in the security file exist in the Domain design. 3.4. “The Domain Design File.” on page 134: 1. 2. See the JasperServer Administrator Guide. 4. 126 .3. You can then edit your design in the Domain Designer again or upload another file to replace the current design. click in the text field or Browse to specify a design file to upload. Make the necessary changes to your settings and save again. Verify that derived tables have valid SQL queries. replace. You can use this page to add.10.

or if you access synonyms on an Oracle database. Export Bundle Stub – Exports a Java properties file for the labels and descriptions of sets and items in your design. For more information. See the configuration chapter in the JasperServer Administrator Guide. such as an Oracle RDBMS.4. For new Domains. Use this feature if you wish to edit your Domain design in an external editor.1.Creating Domains 6. Along the top of the Domain Designer are tabs for various aspects of the design: Tables – Select all tables whose columns you wish to use in the Domain. see section 7. replacing any current design.5. The Cancel button exits the dialog without saving any of your design settings. click the tab name at the top of the dialog or the Next and Back buttons at the bottom. Done – Saves your current selections as the Domain design and returns to the Data and Design page.2 Tables Tab The Tables tab presents all the tables and columns found in the chosen data source so you can select the ones to appear in the Domain.4. For more information. If your data source has special data types such as CLOB or NVARCHAR2. see section 7.4.” on page 161. Cancel – Closes the dialog without saving your Domain design and returns to the Data and Design page. It gives you the option of automatically generating keys based on the set and item IDs. Once you have selected the tables on the first tab. Use this button to create a template for your locale bundles after you have defined your sets and items on the Display tab. select the tables containing columns that you will use in a derived table or calculated field. select all tables you wish to reference in your Domain design. Typically. and the Tables tab will present all tables and columns found in those schemas. Joins – Define inner and outer joins between all the tables and derived tables. you may jump to any tab. For data bases that support schemas. but you cannot save your settings until you make a selection on the Display tab. 6. Derived Tables – Enter queries whose results appear as derived tables available in the Domain. Calculated Fields – Enter expressions whose results appear as calculated fields.4. Export Design to XML – Exports the Domain design in its current state to an XML file. Check Design – Validates the domain as described in section 6. you need to configure JasperServer to recognize them. For example. you will be prompted to choose one or more schemas. 6. To be precise. For more information. therefore you must understand the logical design of tables in your data source. “Locale Bundles.” on page 139. Same as clicking Done at the bottom of the dialog. Filters – Specify conditions on field values to limit the data accessed through the Domain. 127 . regardless of which tab is selected. “Domain Design Validation. Additionally. The Done button validates your design then saves it in the Domain. the Tables tab shows all columns that have a supported type listed on page 143.10. when modifying an existing design. To navigate between tabs. Same as clicking Cancel at the bottom of the dialog. Exporting the XML from the Domain Designer avoids having to write it from scratch.” on page 134. see section 6. you select the tables that need to be joined.10.” on page 134. Display – Give display properties to various tables and columns to expose them sets and items in the Domain. no design is saved. even if their columns will not appear directly in the Domain. “The Domain Design File. either directly or indirectly. “Domain Design Validation.1 Designer Tool Bar The tool bar buttons operate on the Domain design in its current state.4 Using the Domain Designer The Domain Designer is an interactive dialog for specifying all the settings in the design of a Domain. for example to duplicate settings with copy-paste or to enter a complex formula. it remains unchanged.

6.3 Manage Data Source Domains assign aliases to data sources. if your database changes servers. otherwise the Domain will have a validation error. You can also click the doublearrow button to clear the list of Selected tables. The default alias for a data source is the display name of its repository object.1. single-click a table name and use the arrow button between the list. Because the Tables tab selects entire tables. only whole tables may be selected on this tab. column-level selections are made on the Display tab. For deleted tables and columns that were selected in the Domain. The Replace button lets you select a different data source to be associated with the alias. The Tables tab does not detect changes to your database tables and columns in real-time. The Data Source field at the top shows the name of the data source for your Domain. If your data source supports schemas. Alternatively. Double-click or drag a table name in the Choose tables list to move it to the Selected tables list. all previous settings in the Domain Designer that do not conform to the new data source will be lost without prompting. click Done to close the Domain Designer. When you accept. To change the data source and alias. click Delete to remove the current one.” on page 136. the Domain Designer removes those columns or tables from the Tables tab. However. Use this button to replace the data source with an equivalent one. When you change the data source. Otherwise. then launch it again: New tables and new columns appear in left-hand list. you must add all new columns together by moving their table name to the right-hand list. All the tables in the schemas you choose will appear in the left-hand list on the Tables tab. 128 . then click Add to open a dialog to select an available data source from the repository. click Select Schemas to choose among all available schemas in the data source. Click OK to apply your changes.JasperServer User Guide Click the tree icons beside the table names to inspect the columns of a table. [ Figure 6-12 Manage Data Source Dialog of the Tables Tab You can edit the alias by double-clicking the alias name and typing a new alias. If applicable.5. the generated joins will appear on the Join tab. The Inspect new tables and automatically generate joins check box creates joins only if your database has been configured with referential constraints (foreign keys). However. Click Manage to change the chosen data source. you need to create a new data source objet and use it to replace the previous one in your Domain.4. if you had selected the dropped columns for display. For example. double-click it or drag it out of the Selected tables list. Usually this is not necessary because the data source alias is not displayed to Domain users. you are prompted to remove them from the right-hand list. selecting it has no effect. For information about removing columns that were displayed through the Domain. or click Cancel to return to the Tables Tab without changing the data source. new columns appear under their table name. such as an Oracle RDBMS. “Maintaining Referential Integrity. you must manually remove them from the Display tab. To remove a table you do not want. If you change the data source. and the Manage Data Source dialog available on the Tables tab lets you set aliases as well as change the data source. all of your settings in the Domain Designer that do not have an are discarded. To update a Domain after making changes to your database structure. see section 6.

then click one of the join icons.1. Full Outer Join – This join type cannot be created directly. Click the following icons above the left-hand list to make copies of a table: Copy Table – Copies the selected table and gives it a name with sequential numbering. it can only be selected by editing an existing join. and is updated everywhere it appears in the Domain Designer.4. the result of a left outer join will contain all support cases even if they do not have an assigned engineer. one to choose the left table. all columns in the result are selected. but don’t click them. Your query may refer to any table or column available in the data source shown. the result of a right outer join will contain all the users and the support case assigned to each. the WHERE clause may contain conditions that determine the rows of the derived table. click Run to test it and see the list of columns in the result.1. as described in section 6. In the support case example above. The new join appears below in the list of joins. For example. The syntax for a valid SQL query does not include a closing semi-colon (. Expand a table in each list.Creating Domains 6. each must have a column with the same meaning. The copy appears in both lists. and with blanks otherwise.).” on page 116. a table with data for support cases has a column for the assigned engineer user ID that can be joined with the table of user data that has a user ID column. the result of an inner join will contain only support cases that have been assigned to a support engineer. paired when the joined columns are equal. the list of selected and derived tables is duplicated in two lists. For example. “Domain Use Cases. If the support cases are in the left-hand table of the example.4 Derived Tables Tab A derived table in a Domain is defined by a custom query and a selection of the columns in the result. The result of an SQL query is a table whose structure and contents are determined by the clauses in the query. Type a name for your table in the Query ID field. If the deleted table was the only instance of a table. Because Domains are based on JDBC data sources. Delete Selected Table – Removes the table from both lists.5 Joins Tab Joins create associations between tables so that their rows may be presented together in the same report. Change Table ID – Lets you edit the name of the selected table. Enter a valid SQL (JDBC) query in the Query field. Multiple joins associate columns across many tables to create powerful data visualizations when used in reports. Join Left Outer – The result will contain all the rows of the left-hand table. 6. By default. The result will contain all rows from both tables. if any. paired with a row of the left-hand table when the values in the chosen columns are equal. the other to choose the right table. the query is written in SQL. paired with a row of the right-hand table when the values in the chosen columns are equal and with blanks otherwise. and filled with blanks otherwise. a user might also appear several times if different support cases refer to the same support engineer user ID. Once a derived table is defined. On the Joins tab. Expand the tree icons of the tables in the left-hand list to view column names you may wish to use. select a column in each table with the same logical meaning and compatible formats. In order to create a join between two tables. all based on equality between values in each column: Join Inner – The result will contain only rows where the values in the chosen columns are equal. Use control-click to change the selection. removing it on the Joins tab also removes it from the list of selected tables on the Tables tab.4. you may need to duplicate a table in order to join it several times without creating a circular join. JasperServer supports the four most common join types. If you only want a few columns out of many. If the users are in the right-hand table of the example. The number of tables and joins in your Domain depends on your business needs. A distinctive icon identifies it as a derived table. Click New to begin defining a derived table. In this example. The new name becomes the ID of the table throughout the Domain. You can also duplicate a table so it may be joined with different tables for different uses. the columns selected from the result are available for use in the Domain design. When your query is complete. it is easier to specify the column names in the SELECT clause of the query. or in order to join it to itself. In some cases. 129 . Join Right Outer – The result will contain all the rows of the right-hand table. Click Create to add the derived table with the current selection of columns to the left-hand list of tables and columns.

Delete Join – Removes the selected join definition from the list of joins and from the Domain design. there will be two join trees. you can change the join type by selecting another type in the drop-down list. use the indications of the error message to help correct the expression. Enter the expression to compute the value of your calculated field. their columns may not be compared or appear in the same report.4.2. When you select a join on either tab. all columns that appear in the expression for a calculated field must be from the same join tree. The column name appears in the expression at the cursor. you can later give it a descriptive label and full description. Select a datatype for your calculated field. “The DomEL Syntax. you need to be familiar with the datatypes of the various columns in your data source. a calculated field appears in the table or join tree whose columns are used in the expression. Enter a short name for your calculated field. 130 . 6. The Domain Designer validates the expression and warns you of any errors at this time. expand the join-tree to find its table and double-click the column name. The expression you write must compute a value of this type. To insert a reference to the value of another column.” on page 150. The expression uses the Domain Expression Language fully described in section 7. the All Joins tab summarizes the joins you have defined. Columns of table A and table C may appear in the same report because their tables belong to the same join tree. qualified by its table name. To clear the calculated field editor without saving. In order for the values to be coherent. The result of the Joins tab is a number of join trees that appear on subsequent tabs. Once validated. B and C. click Cancel. Figure 6-13 Calculated Fields Editor in the Domain Designer Click OK to save your new calculated field. Click Create Field to being defining a new calculated field. This name becomes the ID of the field in the Domain. Tables that are not joined appear individually along with the join trees. Tables A and D are said to be unjoined. use the Joins on Selected Table tab to see only those defined on the table currently selected in the left-hand list. For example. then join tables D and E. if you join tables A and B.6 Calculated Fields Tab A calculated field is defined by an expression that computes a value based on the values of other columns. because the calculated fields editor does not validate expressions as they are written.JasperServer User Guide Below the lists of left and right tables. Do not insert column reference from unjoined trees. If you have many joins in your domain. If there are errors. For most expressions this is also the datatype of the columns you wish to use in the expression. Calculated fields have a distinctive icon for easy recognition in the list of columns. This list include the Full Outer join type that cannot be created directly. Therefore.

cancel any input in the calculated field editor. The filter will still be active and only data that satisfies all defined filters will appear to report users. For multiple value matching. 131 . the dialog displays a list of all existing values for the chosen column retrieved in real-time from your database. Click Delete Field to remove the calculated field from your Domain design. Calculated fields may be used to compute other calculated fields.4. then click OK to save the new definition. This button will only be enabled when two columns of the same type are selected. financial reports for the current fiscal year may need data from the previous fiscal year for comparison. double-click the available values to select them. its type. 6. Also. For example. In the Condition Editor. the choice of comparison operators depends on the datatype of the column. Constant fields are independent of join trees and automatically appear in a set called Constants. For example. reports based directly on the Domain can define their own filters.7 Filters Tab A filter on one or more columns reduces data that is not needed or not wanted in reports based on the Domain. For example. Select a column in the left-hand list and click Create Condition to begin defining a filter on that column. select the second column with a Control-click. string types offer a choice of string search operators and date types have a choice of time comparison operators. It is always good practice to filter out irrelevant data to reduce the size of query results and processing time within JasperServer. or delete the definition of a calculated field. If there are more than 50 values to display. Double-click the calculated field name to insert a reference to it into an expression. You may perform multiple searches and select values from each list of results. For example. the condition editor will display two calendar icons for specifying a date range. Alternatively. if you select a date column with the “is between” operator. If you only wanted to view the definition of the field. To define a filter that compares two columns of the same datatype. The filter value depends on the datatype and the comparison operator. Modify its name. in which case it doesn’t make sense for the column to appear in a report. or its expression. However. but nothing earlier. you should clearly document such data restrictions in the description of your Domain. then click the name of the field in the left-hand list. To view. you may filter data to select a single country. you can click the arrow next to the column name or double-click the column name. Figure 6-14 Condition Editor on the Filters Tab of the Domain Designer Text columns have both substring comparison operators such as “starts with” or “contains” and whole string matching such as “equals” or “is one of. so that users understand what data is accessible through the Domain. For example. click Cancel to remove it from the editor.” When you select a whole string matching operator. use the search controls to the left and click to narrow your list of available values. you might create an integer field named Count that has the value 1 and later has a default summary function to count all occurrences. Putting often-used filters in the Domain design avoids the need for each user to define them independently and also reduces the chance for errors.Creating Domains An expression that does not use any columns will have a constant value. You may define a filter on a column that you do not plan to expose in the Domain. then click Create Condition. edit.

” In other words. You can also double-click the object or drag-and-drop it to a blank area of the join tree list. start by creating sets in the right-hand list. Delete Selected (above Table List) – Removes the currently selected table from the left-hand list and from the Domain altogether. The label name is also updated in the list of properties. if a set or item within a set is selected. Removed items automatically reappear in the join tree or table where they originated in the left-hand list. and any joins with this table are deleted. Add Selected – Make a selection in the join tree and click this icon: tables are added as sets. Use carefully. The table list displays the list of unjoined tables and derived tables. Click a row of Current Conditions to edit it again in the Condition Editor. Sets are optional. and columns are added as items within the destination set.JasperServer User Guide After choosing the comparison operator and filter value. but when creating a report. A column along with its display properties is called an item in the Domain. it creates a subset. After selecting a row. Add New Set – Creates a new set or subset in the list of sets and items. 132 . You may include any combination of joined and unjoined items in the list of Sets and Items.8 Display Tab The Display tab lets you specify which columns and calculated fields are exposed through the Domain and how they will appear. Then remove any unwanted sets or items individually from the right-hand list as follows: Delete (above Sets and Items) – Removes the selected set or item from the left-hand list. A set is a grouping of items independent of the tables in which the columns originate. Typically. Change Table ID – Lets you edit the name of the selected table. On the Display tab. and unneeded columns should be omitted to simplify the report creation interface. If no set is selected it creates a top-level set. such as a label and description. the overall filter applied to your data is the logical AND of all conditions you have defined. The table is removed from the Joins tab. Change Label – Lets you edit the name of the selected set or item. users will only be able to include items that originate in the same join tree. and the columns they contain are created as items within the sets. Add to Set – Select a destination set in the right-hand list. The list of Sets and Items to the right shows the sets and items that will appear to report creators. It also activates the following icons: Add All (active only if the right-hand list is empty) – Creates all the tables as sets and all the columns they contain as items in the right-hand list. you also define display properties for each chosen column. You can also drag-and-drop tables and columns from the join tree to the list of sets and items. including any calculated fields in their defined locations. If you want to display all or most of your tables and columns in the join tree. and is updated everywhere it appears in the Domain Designer. The left-hand list also offers an alternative view mode: click Table List just below the icons. The new name becomes the ID of the table throughout the Domain. only columns that are useful in reports or for further filtering should be selected. then make a selection in the join tree and click this icon: tables are added as subsets. you may also click the Delete Condition button to remove it from the list. All tables are created as sets. click Cancel. The note at the bottom of the current conditions reminds you that “data rows much match all conditions. If you only want to display a few of the columns from the join tree. The Join Tree list at the left of the tab contains all the join trees and unjoined tables. click OK to define your filter. double-click the join tree name or drag-and-drop it to the list of sets and items. however. you may create a list of items outside of any sets. and columns are added as items outside of any set. as they appear on the Join tab. You can also expand sets in the right-hand list and drag-and-drop tables and columns to the destination set. 6. Then add items chosen among the columns of the left-hand join tree. all items in a set must correspond to columns in the same join tree.4. You can then remove any unwanted sets or items from the right-hand list as described above. To clear the condition editor without saving a filter. to further help report creators. The list of Current Conditions shows all the filters you have defined. Click OK to save your changes.

Property ID Appears On Table. select the objects and use the arrow buttons to the right of the list to move them up or down. and internationalization keys (view and edit) Item – The label. To achieve this. Subsets always appear after the items in a set. For more information. When editing a Domain that has been used to create Topics and reports. you may change any set or item ID as long as it is unique among all set and item IDs.1. but you may change the ID of a table as long as it remains unique. Field Set. The internationalization keys are the property names of internationalized strings in locale bundles. and items is defined. It lets you view and edit the display properties for the currently selected set or item. Field Field Alias of the data source for the selected field or table.. Does not change when the ID property of a table is modified. and default format and summary properties (view and edit) Figure 6-15 Table of Properties on the Display Tab of the Domain Designer Table and field properties appear only when Table List view is enabled. When creating a Domain. The label and description help report creators understand the data represented by the set or item. Item Description An identifier used within the Domain. Set and item IDs are a separate namespace in which each ID must be unique. and providing descriptions for them: To change the order of sets or items. internationalization keys. Data Source Source Table Type Table.9 The Properties Table The properties table is located on the Display tab to the right of the list of sets and items. To add a description to a set or item. Name of the selected table or of the field’s table in the data source. Set and item descriptions appear as tooltips in the Ad Hoc Editor and help report creators understand their purpose. The data format and summary properties determine how the item will appear by default in a report. For sets and items. description. The following table describes each of the properties in detail.Creating Domains After your list of sets. subsets. the properties of tables and columns can also be viewed. 133 . select it then click the Change Label icon or double-click its label in the properties table. Java type of the selected field.4. “Maintaining Referential Integrity. Table and field IDs are based on the names in the data source. to edit the description. but items and subsets may not be moved into other sets. You can reorder items within a set and sets within the list. depending on the selected object: Table – The name of the table and the name of the data source (view-only) Field (column) – The name of its table in the data source and its Java datatype (view-only) Set – The label. All table and field properties are read-only. 6. The display properties determine how the sets and items will appear to users of the Domain. refine your Domain display by reordering them. you should not change any IDs. although based on table and field IDs by default. When the left-hand list displays the Table List. renaming them. All others you can double-click to edit. remove the item or subset and add it again in the new set. To rename a set or item. description. Field Table.5..” on page 136. The following properties are available. select it then double-click its description in the properties table. see 6. properties shown in red are read-only. or click .

Internationalization key for the description property. Export Bundle Stub – Generates the internationalization keys if needed and saves them to a file that serves as a template for your locale bundles. this step can be omitted by setting a parameter in the JasperServer configuration file.JasperServer User Guide Property Label Description Appears On Set.234) or 01/01/2009. User-friendly description displayed as tooltip on the label in the Ad Hoc Editor. locale bundles associate this key with the localized text for the set or item label. ID Source Data Format Set. If you wish to edit the properties for a large number of sets and items.10 Domain Design Validation The Domain Designer must ensure that all tables and columns are consistent with the data source. 2. Item Item Item Summary Item Labels and descriptions may contain any characters. but the ID property value must be alphanumeric and not start with a digit. See section 6. Item Set. Numerical items have functions such as sum or average. Validation occurs at the following times: When opening the Domain Designer. For a large number of sets and items. When you click Done to exit the Domain Designer. When you click the Validate tool bar icon.Domain_table. 134 . In special cases where the design is created before the data source is complete. “Locale Bundles.1. The generated keys are added to your Domain design and appear in the table of properties. see section 7. all others let you count distinct values or count all values. If you change the data source. For more information about saving and uploading XML. The description helps the report creator understand the data represented by this set or item. “The Domain Design File.4. this could be faster than using the properties table on the Display tab. See the JasperServer Administrator Guide. when navigating from tab to tab.datasource_field. Item Description User-friendly name displayed in the Choose Ad Hoc Data wizard and the Ad Hoc Editor. Default data format for the item when used in a report. the following buttons in the tool bar can help: Export Design to XML – Lets you edit the properties of your sets and items within an XML file. Verify that all tables and columns exist in the data source. Internationalization key for the label property.” on page 139.5. 6. This will detect problems on the tab where they occur. locale bundles associate this key with the localized text for the set or item description. In certain cases. Validation performs the following steps: 1.” on page 127. “Designer Tool Bar.” on page 161. References the Domain names of the table and field associated with this item. When you export the design file. In each defined set. Default summary function for the item when used in a report. For more information about the internationalization keys.4. The data format is a numerical or date format. Validation is important because the Domain design may include derived table queries and calculated field expressions entered by the user.1. Label ID Descr. the syntax is Domain_jointree. This will detect any inconsistencies in Domain designs from uploaded files. verify that all items originate in the same join tree. Make sure your set and item IDs are finalized because they are used to generate the keys. Item Set. for example ($1. see section 7. Items with string values do not have a data format.

see section 6. You can edit a Domain by changing. Under the Design heading. 3. click Next or Resources. To change the location of a Domain. and click Browse to locate a Domain design file. If you change to a data source with a different database. 4. 6. Under the Data Source heading.” on page 136. select the Edit tab and click Launch Domain Designer. Before you proceed. Verify that derived tables have valid SQL queries. “Using the Domain Designer. Under the Properties heading.” on page 139. 6. See also “Maintaining Referential Integrity” below if you need to remove items in your Domain. A Domain specifies the data source for the Domain Topics and reports that are based on the Domain. see section 6. 5. Browse or search the repository to locate the Domain. The Domain appears in the Edit Domain dialog. “The Domain Design File. Right-click an existing Domain and select Edit from the context-menu. To edit a Domain: 1. If you wish to add or replace the security file or locale bundles for the Domain. adding to. typically by setting the Domain filter. click the path or click Browse to change the data source for your Domain. Log in to JasperServer as an administrator and select View > Repository. This dialog is identical to the Add New Domain dialog documented in section 6. The Resources page is further documented in section 7. for example if your data source definition changes slightly but not the underlying database. and deleting its components.1. use the repository manager to move the Domain object to a different folder. “Maintaining Referential Integrity. Verify that all items reference existing columns. Figure 6-16 Data and Design Page of the Edit Domain Dialog 4. Changing the data source only makes sense in certain cases.1.5.4.Creating Domains 3. 135 7. select the Upload tab. a message appears when validation fails to help you correct the error. the definitions in your Domain design will no longer be valid and you will not be able to save the Domain. 2.” on page 127. “Using the Add New Domain Dialog. .3. However. They might fail if the underlying Domain is edited. there is no message when validation succeeds.” on page 125. Alternatively. For instructions.5 Editing a Domain Use extreme caution when editing Domains that might have been used for reports and Domain Topics. they will certainly fail if the underlying Domain is deleted. This allows you to reimport the XML file of your Domain design after exporting it and making modifications in an external editor. Unless you clicked the Validate tool bar icon. you can change the display name or description of the Domain’s repository object.

This means that changes to sets and items that are not used in a given report or Topic do not affect the report or Topic. In a typical scenario. Domain items are identified by their IDs and the IDs of the sets in which they are located.9. it is up to the user to maintain the referential integrity between the items in the Domain and any Domain Topics or reports that have been created from the Domain. For example.4. It may also occur if the underlying database changes so that the item is no longer valid. all the items that it references are still defined in the Domain. Unfortunately. 6. When deleting Domain items in a case like this. it becomes necessary to remove an item or set from a Domain. click Cancel.5. then Topic A will fail and reports based on Topic A that included the item will fail. so that each may modify his or her reports that use the item. This will remove any data that was based on the old instance of your Domain and avoid inconsistencies in new reports. To change the name of an item or set. For instructions. not its ID (see section 6. Changing the ID of an item or moving it to a different set will also make it unavailable to any Topics and reports that referenced the ID. Referential integrity means that at the time a Domain Topic or report is opened or run.2. it does not fix the broken reports based on the items deleted from the Domain Topic. that only allows new reports to use the Domain Topic. you must be sure that no Domain Topics or reports are based on that item. Even if the underlying tables and columns still exist in the database.1 Maintaining Referential Integrity When editing an existing Domain. allowing the user to open the report and edit it. 6. “The Properties Table.5. you must clear your Ad Hoc cache of all queries based on the Domain. However. When done. if you delete an item used by Topic A but not Topic B. “Example of Creating a Domain. If you modify a Domain by removing sets or items. However. edit its label property. But Topic B and its reports are unaffected. You can. The following procedure explains how to fix referential integrity with placeholder items. However. it is necessary to communicate with users beforehand. even after the original item has been removed. 136 . see the JasperServer Administrator Guide. and the user will require support to fix the broken report. This may occur if it was erroneously included in the first place and found to expose data that should not be exposed. the sets and items referenced in the Domain must still exist in the Domain. some users were confused by the additional items and used the date_modified item in their reports. Sometimes. click Save to update the Domain with your changes. After modifying a Domain. however.2 Fixing Referential Integrity Normally. To close the dialog without modifying the Domain stored in the repository. 9. 1. the creator accidentally exposed the accounts_opportunities table that contains no useful columns and is necessary only to join the accounts and opportunities tables. Any report that references a deleted item will no longer run.” on page 133). The granularity of referential integrity is at the individual set and item level. JasperServer provides a mechanism to replace the deleted item with a placeholder. an administrator or data analyst creates a Domain and many end-users create Topics and reports based on it. there is inevitably a report that is not updated.” on page 117.JasperServer User Guide 8. open a Domain Topic for editing and remove references to deleted items. The Domain in this example is similar to the one in section 6. Moving an item must be treated as deleting it from its current location so it can be added elsewhere. A Domain Topic that references a deleted item will cause errors when used in the Ad Hoc Editor. nor can it be opened in the Ad Hoc Editor again. Instead. the solution for maintaining referential integrity is to avoid deleting items from a Domain if they might be in use. as are any reports based on Topic A that did not include the deleted item.

in this case a timestamp. Since the value of the column is not important. In this example. and was of the type java. the set was deleted along with the item. and that is what we need to create a placeholder. Then we enter an expression that gives a constant value of the same type. Now click the Display tab of the Domain Designer.2. 137 .” on page 151. so we must create a placeholder set as well.1. 3. For each deleted item. Figure 6-17 also shows the warning dialog about referential integrity. Click the Calculated Fields tab of the Domain Designer. Figure 6-17 Deleting Items From an Existing Domain 2.Creating Domains Figure 6-17 below shows the Domain open in the Display tab of the Domain Designer.Timestamp. Click Create Field and enter values as shown in Figure 6-18. Figure 6-18 Creating a Calculated Field of the Same Type 4. we learn that the date_modified item that we need to replace had the ID date_modified1 in a set with the ID accounts_opportunities. From the dialog. we create a constant value that will be recognized as a placeholder should it actually appear in a report. A calculated field is essentially a custom column of a userselected type. The most important setting is the type. which must match the type of the item that this placeholder will replace. see section 7. In general. the set and items IDs as a path. For the syntax of calculated field types. and the data type of the item. the placeholder item must exist in exactly the same path of nested sets as the original item. The dialog shows all the items that are deleted and the information necessary to replace them with placeholders. We remove the accounts_opportunities set and all its items by selecting it and clicking the Delete icon . We use the ZZ prefix on the name to distinguish it from other meaningful columns in the Domain. the dialog lists the item label. Placeholder items must be located in placeholder sets that mimic the same structure as the original item that was deleted.sql. “Datatypes.

Instead of deleting the item. Now we edit the properties of the placeholder set and item so that they will effectively replace the deleted item. This will remove the reference to the unwanted column. You must be familiar with the design file syntax to create the calculated field with the correct type and expression. Now select the new item created above and double-click its ID property.3.1. Alternatively. Now expand the list of Constants to select ZZdate_modified created above. also noted in step 2. Figure 6-20 Setting the ID Properties to Match the Deleted Item 6. ensuring that the report can be opened and run.3. Click the Add to Set icon to create the placeholder item from the calculated field. but the order is slightly different: 1.” on page 141.1.” on page 147. then enter the ID value of date_modified1. you can edit the XML design file of a Domain to fix referential integrity. but now that they are identical to those of the deleted item and set. the modifications are the same as described in this procedure. 3. as described in section 7. We set the label and description to distinguish the placeholders from real items and discourage their use when seen by users in the Ad Hoc Editor. Save the design file and upload it. and replace it with an item that references the placeholder field.JasperServer User Guide Click the Add New Set icon to create the placeholder set. see section 7. 138 . Click Done in the Domain Designer and then Save in the Edit Domain dialog. Figure 6-19 Inserting the Calculated Field as a Placeholder 5. You can even do this in the Domain Designer before exporting the design file. Conceptually. Select the placeholder set created above and double-click its ID property. as described in section 7. For more information. then enter the ID value of accounts_opportunities that we noted in step 2. as shown in Figure 6-19. “Representing Sets and Items in XML. Then locate the item definition and change its resourceID so that it references the newly created calculated field. 2.1. using the values shown in Figure 6-20 above. The IDs are not visible to users. Update the other properties of the item and its enclosing set.” on page 150. first create the constant calculated field. “Uploading a Design File to a Domain. Figure 6-20 shows the properties for the placeholder item and set after they have been modified. the placeholder will be substituted in reports and in the Ad Hoc Editor. “Structure of the Design File. 4.4.6.

In JasperServer. In addition. and item as used in Domains. and filters. A design file can be modified or written from scratch in an editor and uploaded to JasperServer. There are several common use cases for working with design files: 139 . The text file containing a Domain design represented in XML is called a design file. see section 6. The elements and attributes are defined by an XML schema provided in an XSD file. joins. This chapter contains the following sections: The Domain Design File The DomEL Syntax Resources of a Domain The Domain Security File Locale Bundles 7. The XML file is only a representation from which the design can be inferred. In addition. the Domain design itself can be exported to an XML file and edited outside of JasperServer. A design has additional constraints that are not mapped in the XML format. they provide data access permissions and localized strings for reports based on a Domain. as well as how those elements will appear to users. calculated fields.Advanced Domain Features 7 ADVANCED DOMAIN FEATURES Both the security file and locale bundle are optional components of a Domain. Data security and localized strings are defined in external files that Domain creators must upload to the Domain.2. For a definition of the terms column. any derived tables. the Domain design can be created interactively through the Domain Designer dialog. Both take effect in the Ad Hoc Editor when creating the report and in the final output when running the report. XML is not the native format of the Domain design. however there is also an XML file format for exporting and uploading the settings. This chapter documents the syntax for each of these files and the considerations necessary when writing or modifying their contents.1 The Domain Design File The design of a Domain specifies the selection of tables in the data source.1. as long as it conforms to the XML schema and the design constraints. field. When implemented. We start with the Domain design file because the security file and locale bundles rely on certain values it contains. there are constraints on a Domain design that are not expressed in the XML schema. The XML in a design file is a hierarchy of elements and attributes on those elements that specifies all the settings in the Domain. This gives Domain creators an alternative way to specify the design and allows Domains to be shared between systems.” on page 116. “Terminology.

then export the design file and add your handwritten code to the exported file. 2. Use the Domain Designer to define as much of the design as possible. This ensures that the elements and attributes are the same ones with the same meaning used by JasperServer. On the Edit tab under the Design heading. and actual database columns is the essence of the Domain itself and must be maintained when editing the design file.JasperServer User Guide Completing the elements of a new design. typically by setting the Domain filter. you may need to edit each table or item in the design in the same way. “Domain Design Validation. 140 . For example. For example. select a location and give it a name. 3. due to the complexity of creating a valid design file. 7.xml suffix. Creating locale bundles and security files as described in the other sections of this chapter. JasperServer validates the design before exporting the XML file. In the tool bar at the upper-right of the dialog. 5. 4.1. click the Export Design to XML icon . Log in to JasperServer as an administrator and select View > Repository. Other elements of the XML file will appear on some or all of the Designer tabs. your modifications will appear and be editable in the Designer. click Launch Domain Designer.2 Working With a Design File The relationship between item definitions. it is much easier to begin with a basic design file exported from the Domain Designer or to modify an existing design file.1. This means that all syntax. These are constraints that cannot be expressed in the XSD file because they are outside the scope of an XML schema. When you open the design in the Domain Designer again. The file will contain the current state of the Domain in the Domain Designer. 7. Using search-and-replace on an external editor will do this quickly. you can cancel the export. Your browser will download the XML file and usually give you the choice of viewing or saving the file. see section 6. In order to be usable when uploaded to a Domain. validated. If your database changes or you want to move a design file to a different system. Creating a Domain design from scratch. Working with very large Domains. It must be valid with regards to the XML schema. To save the design file. Right-click an existing Domain and select Edit from the context-menu. 6. a description you added in the XML design file will appear in the Properties table of the Display Tab. and you will be able to edit it again the Designer. Be sure to keep the . The XML schema of a Domain design is given in the XSD file is located in: <install-dir>/samples/domain-xsd/schema_1_0. but editing the labels and descriptions of dozens of items is faster when they appear in a single design file. you can enter the SQL query for a derived table or complex expressions for a calculated field. attributes and content.xsd The design file must be internally consistent and define all the necessary elements of a Domain design. The Domain Designer makes it easy to select all tables and columns and expose them as sets and items. Repetitive changes to an existing Domain design. For more information. and used to define the design of a new or existing Domain. The Domain Designer opens to the Tables tab. a design file can be uploaded. a design file must meet the following conditions: It must be well-formed XML. These other resource files refer to elements of the Domain design. However.” on page 134.4. and it is often more convenient to copy-paste them between external files. After editing.1 Exporting the Design File from a Domain The design file of a Domain can be exported from the Domain Designer dialog and saved as an XML file. The tabs of the designer show you the design settings for this Domain that will be exported to XML. column definitions. spelling and punctuation is correct so that the file contains a hierarchy of elements. To export a Domain’s design file: 1. Browse or search the repository to locate the Domain. The Domain appears in the Data and Design page of the Edit Domain dialog.10. The XML schema defines element and attribute names that are allowed and how they are nested to create a hierarchical structure. It is possible to write a valid XML file that meets the constraints of JasperServer and defines a Domain design. If errors are found.

However. a design file is specific to a given data source and will most likely fail when used in a Domain with a different data source. this type of XML editor lets you insert elements and attributes only in the places they are allowed to ensure that the design file is valid. editing.. As with any XML file. In addition. the more complex elements of a design file have further constraints: SQL queries for a derived table must be valid with respect to the JDBC driver for the data source.Advanced Domain Features The tables and columns in the design must be consistent with their external definition in the data source of the Domain. The top-level container elements of a design file are schema.xsd file.2.2. which affects the security file. These rare cases are documented in the following sections. The data source also defines the datatype of a column. Expressions for filters and calculated fields must be valid programmatic expressions in a local format called Domain Expression Language (DomEL). </itemGroups> <items>.. the tables and columns in the query must exist in the data source. no editor can enforce the internal and external constraints on a design file. By loading both the XML and XSD files. the Domain Designer also has limitations and cannot create some valid designs. in a design file. As a result. in which case you must not open the uploaded design file in the Domain Designer. If you want to make structural changes or write a design file from scratch. the schema element includes the xmlns and version attributes. itemGroups.org/TR/REC-xml-names. Also. and the design must use that column accordingly. the Domain resource and the XML may not remain totally synchronized through several cycles of exporting to XML. and the columns in the results must match those declared in the design. although some elements have been added to show structures that did not appear in the example. table names for a design based on an Oracle RDBMS must include the schema name.xsd"> <itemGroups>. see http://www.3 Structure of the Design File This section explains each of the XML elements and attributes in a design file and how they relate to the settings in the Domain Designer.com/2007/SL/XMLSchema" version="1. 141 . in particular. When exported from the Domain Designer.” on page 117.1. 7. As a result. and if you only want to make a few changes or simple additions.. this section refers to XML elements that contain Domain objects such as sets. For example.w3. and uploading. The xmlns attribute specifies an XML namespace for all element names. The XML is only a representation from which the design can be inferred. The following section explains all of the possible elements and attributes of an XML design file and the various constraints you must maintain on each of them. use an XML editor that understands the XML schema in the schema_1_0. “Example of Creating a Domain. This is a short-hand description that means the XML elements contain other XML elements that represent the Domain objects. and it may have some validity errors that cannot be detected.. so you don’t introduce other errors. a text editor is sufficient. For more information.” on page 150.. Furthermore. </items> <resources>. the Domain Designer sometimes renames the result of a join (JoinTree_1). Because certain XML elements correspond to objects in the Domain design. </resources> </schema> schema – The outer-most container element of a design file (originally called the schema file of a Domain).0" schemaLocation="schema_1_0. JasperServer exports well-formatted XML. This format is documented in section 7. a design file is plain text and can be edited in any text editor. For editing the content of the design file. The sample XML code is taken from the example Domain created in 6. The version attribute gives the version of the XSD used to create this design file. However. items. you may select the columns of a table whereas you can only select whole tables on the Tables tab. “The DomEL Syntax. The design of a Domain is stored internally in the repository. but it does not correspond to a valid URL.. and resources: <schema xmlns="http://www. For example. The design must references valid table and column names in the data source. the Domain Designer cannot read some valid designs. a specialized XML editor will ensure that the design file is well-formed. This string must be unique to Jaspersoft.jaspersoft.

lang. </jdbcTable> </resources> 7.sql. they must be externally consistent with the data source intended for this Domain. you can only select entire tables.JasperServer User Guide The schemaLocation attribute is often added by XML editors to locate the XSD file.Timestamp"/> <field id="description" type="java.String"/> <field id="case_number" type="java. resources – Contains all the definitions of columns. joins. this element is absent. items – Contains all the items that are not within sets. </jdbcTable> <jdbcTable datasourceId="SugarCRMDataSource" tableName="accounts_opportunities" id="accounts_opportunities"> . Because the elements under resources refer to data base objects.String"/> <field id="name" type="java. In the XML design file.. </jdbcTable> <jdbcTable datasourceId="SugarCRMDataSource" tableName="users" id="users2"> . Along with items.. Join trees are represented as a jdbcTable element with additional contents to define the joins.... These correspond to the items at the root level of the Display tab..String"/> <field id="assigned_user_id" type="java. </jdbcTable> <jdbcTable datasourceId="SugarCRMDataSource" tableName="accounts" id="JoinTree_1"> . derived tables.. When all items are contained in sets. itemGroups – Contains all the sets and items within sets in the Domain.. The sets and items defined under itemGroups and items must be internally consistent with the tables and columns under resources.lang.. calculated fields. this element corresponds to all the sets and items defined on the Display tab of the Domain Designer. Therefore.lang.String"/> <field id="resolution" type="java. itemGroups and items define what users will see when they create a report based on this Domain. however.priority=1 and cases. you can specify any subset of columns that you need. not individual columns..1.1 Representing Tables in XML In the Domain Designer. </jdbcTable> <jdbcTable datasourceId="SugarCRMDataSource" tableName="opportunities" id="opportunities"> . The resources element contains the jdbcTable and jdbcQuery elements to represent database tables and derived tables.. Even though the itemGroups appear first in the design file. <filterString>opportunity_type == 'Existing Business'</filterString> </jdbcTable> <jdbcQuery datasourceId="SugarCRMDataSource" id="p1cases"> <fieldList> <field id="account_id" type="java. tables. analogous to their definitions on the corresponding tabs of the Domain Designer. 142 . respectively.String"/> </fieldList> <filterString>status != 'closed'</filterString> <query>select * from cases where cases.lang.String"/> <field id="id" type="java.lang. <resources> <jdbcTable datasourceId="SugarCRMDataSource" tableName="accounts" id="accounts"> . and filters in the design..String"/> <field id="status" type="java.3.lang.Integer"/> <field id="date_entered" type="java.deleted=false</query> </jdbcQuery> <jdbcTable datasourceId="SugarCRMDataSource" tableName="users" id="users1"> .lang.lang. this section will document the resources first so that design elements are presented in the same order as the tabs of the Domain Designer.

lang. the datasourceId will automatically become the alias associated with the data source defined for your Domain. Any reference to the id of a jdbcTable may also reference the id of a derived table.Long java.lang. JasperServer may not be able to map its Java type from the JDBC driver.Float java.lang. id – Table ID that is used to reference the derived table in the Domain design. When the derived table is created in the Domain Designer. query – The SQL query sent to the database server.table_name.Date java. If your query gives an alias to the column in a SELECT AS statement.Date Unless you know the name and type of every column in the data source. In the design file. The type is one of the following: java.lang. If you add a derived table in the Domain Designer. field – Represents a column in the results of the query. When uploading the file. this alias may be any name you choose.Double java. the table name includes the schema name in the form schema_name. If you have proprietary types in your database. The columns of a derived table must be among those returned by the query. but this case is documented separately on page 144. as determined from the data source by the JDBC driver. JasperServer will raise an exception.1. id – Literal name of the column in the query result.Integer java. but not necessarily within the Domain. fieldList – A required container for the field elements. tableName – Literal name of the table in the data source.util. this is the data source alias defined in section 6. You could then export the design file containing the generated column list. id – Table ID that is used to reference the table in the Domain design. As in the JDBC model that the data source is based on. When creating a design file. You may then export the XML design file with this information and refine your design. but not necessarily within the Domain. as long as the columns in the result match the id and type of all field elements of the derived table given in the fieldList. field – Represents a column of a table in the data source. 7.Boolean java.lang. type – The Java type of the column. each has the same datasourceId and tableName but must be given a different id. the id is the same as the alias. You must reference all the columns that you use in the Domain. but they use the jdbcQuery element which contains the query element: jdbcQuery – Represents a derived table that is the result of an SQL query. You can configure the mapping for proprietary types. it will run the query and generate columns based on the result set.Short java.3.4.BigDecimal java.” on page 128.Character java. If you copy a table in order to join it multiple times. the id must be unique within the jdbcTable. For a Oracle RDBMS.lang.2 Representing Derived Tables in XML Derived tables are similar in structure to tables. The jdbcTable element is also used to describe join trees.3. Both attributes of jdbcQuery are required: datasourceId – Alias that identifies the data source for the Domain.String java.sql. All three attributes of jdbcTable are required: datasourceId – Alias that identifies the data source.Byte java. Only the columns represented by a field element are available for reference by other elements. A Domain design must reference all the tables that it needs to access.).sql. as determined from the data source by the JDBC driver. regardless of its mapping. The Domain Designer accesses the data source to find the names of all tables and columns. The alias designates the data source that will be queried. you can override any mapping by specifying the type attribute for any given field in the XML design file. If your proprietary type cannot be cast in the specified type.math. but it must be identical for all tables and derived tables.Time java.lang. When created in the Domain Designer. The id must be unique within the query results. as well as their types. as described in the JasperServer Administrator Guide. Any valid SQL can be used. Alternatively. 143 .Timestamp java. it is often easier to select and export tables from the Domain Designer.Advanced Domain Features jdbcTable – Represents a table or a copy of a table in the data source. type – The Java type of the column. the set of columns corresponds to the selection of columns in the query result on the Derived Tables tab. JasperServer will use this Java type for the field. The syntax for a valid SQL query does not include a closing semi-colon (. Required on jdbcTable elements because it would not make sense to have a table without columns in the Domain design. fieldList – A container for field elements.lang. “Manage Data Source.sql. Both attributes of field are required: id – Literal name of the column in the data source. this alias must be identical for all tables and derived tables.lang. All the columns that you want to reference in the Domain defined with this element.

3.lang. For more information.conversion_ratio conv.store_id. Here are some things to keep in mind when deciding how to implement your Domain: Unlike joins defined in the Domain. If not all tables are joined together. the attributes and elements have a different meaning than for a regular table.id == p1cases. see section 7.String"/> .date) order by e. In this case.3 Representing Joins in XML A join is represented in the design file as a special jdbcTable element.account_id" type="java.exp_date. “Representing Joins in XML. It also contains a list of columns that are exposed through the Domain. e.account_id)</joinString> </joinedDataSetRef> <joinedDataSetRef><joinString>join opportunities opportunities on (accounts_opportunities. this alias must be identical to that for all tables and derived tables. amount.opportunity_id == opportunities.1.1.assigned_user_id)</joinString> </joinedDataSetRef> </joinedDataSetList> </jdbcTable> jdbcTable – Represents the results of one or more joins between tables. e. each with a prefix on the field id attribute to identify its originating table.3. amount * c.currency_id = c. The Domain mechanism applies filters.” on page 150 for restrictions on function calls in calculated fields. To define the join.id == accounts_opportunities.conversion_ratio as_dollars from expense_fact e join currency c on (e.. which may be less efficient on some databases than the equivalent query generated for a non-derived table 7. there is one jdbcTable representing each join tree and containing only the join expressions for that tree. conv. 144 . aggregation. The alias designates the data source where the join will be performed. “The DomEL Syntax. <jdbcTable datasourceId="SugarCRMDataSource" id="JoinTree_1" tableName="accounts"> <fieldList> <field id="accounts_opportunities. See section 7.id)</joinString> </joinedDataSetRef> <joinedDataSetRef><joinString>left outer join p1cases p1cases on (accounts.assigned_user_id == users1. joins within a derived table are not restricted to equality comparisons when uploaded to the Domain Designer. Unlike calculated fields in DomEL. c.exp_date) = c.JasperServer User Guide The following sample query selects some columns. datasourceId – Alias that identifies the data source for the Domain. only exp_date.exp_date </query> A derived table provides an alternative way to create joins and calculated fields.currency. </fieldList> <joinInfo alias="accounts" referenceId="accounts"/> <joinedDataSetList> <joinedDataSetRef> <joinString>join accounts_opportunities accounts_opportunities on (accounts. including a field calculated in the SQL.currency_id and date(e. from the result of a join with sorted results.2. <query> select e. c. but in the design file you only need to specify those you wish to reference elsewhere in the Domain. calculated fields within derived tables may use any function call recognized by the RDBMS.3. and as_dollars can be exposed as columns of this derived table. The Domain Designer automatically exposes all columns of all tables in a join. and joins to derived tables by wrapping the SQL in a nested query. store_id.id)</joinString> </joinedDataSetRef> <joinedDataSetRef><joinString>join users1 users1 on (opportunities. In the design file.” on page 144.. currency.id == p1cases.amount.account_id)</joinString> </joinedDataSetRef> <joinedDataSetRef><joinString>right outer join users2 users2 on (users2. It contains the joinInfo and joinedDataSetList elements to define the actual joins.

you must be careful to use the alias throughout the joinString element that defines the join. Calculated fields that rely only on columns of the same table appear in jdbcTable for that table. each join tree is automatically given the ID JoinTree_n. or full outer. but you may supply a true alias in handwritten design files.field_name == right_table_alias. type – The Java type of the column. You can sometimes replace them with filters on tables in the join.4 Representing Calculated Fields in XML Calculated fields are defined as regular columns in a field element with an additional attribute. only the columns you wish to reference are needed. When you create your own design file. left outer. When created in the Domain Designer. For an Oracle RDBMS. In the Domain Designer. in the form left_table_alias. The table ID and alias are used as the first table in the join definition. joinedDataSetList – Container for the list of join statements. The order of joinedDataSetRef elements is important. the table name includes the schema name in the form schema_name. However. 7. as long as it is unique among all other tables and derived tables. joinString – A string expressing an SQL join statement in the following format: join_type join table_ID table_alias on join_expression Where: join_type – One of right outer. Because it references only the columns of accounts.field_name. By default. referenceId – Table id of the table within the design whose data source name is given in tableName. join_expression – Expression that compares the columns on which the join is made. The following example shows the XML for a calculated expression in the accounts table. The first one must contain a join expression between the table_alias it defines and the alias in the joinInfo element. See section 7. table_alias – Alternative name to use for the table_ID within the join expression. it appears in that table and in the join tree. identical to the type in its table definition. such as boolean operators and other comparisons. The syntax is table_ID. In the design file. Calculated fields that rely on columns from different tables that are joined appear only in the join tree.2. you can give the join any name you wish. The table of each column is identified by a prefix on the id attribute. Join expressions with several boolean clauses are not supported in the Domain Design either. but you may supply a true alias in handwritten design files. Both attributes of field are required: id – Field ID composed of the ID of the table in the design and the literal name of the column in the data source.1. table_ID – The ID of a table within the design. the alias is the same as the referenceID. joinedDataSetRef – Container for the join statement. By default. joinInfo – Gives the table ID and alias for the table given by the tablename attribute. You can upload a design file with such joins. 145 . but they will be overwritten with equi-joins if you open the design in the Domain Designer. alias – Alternative name within the join expression for the table identified in referenceId.field_name Join expressions are actually written in the DomEL syntax to allow more complex expressions.3. “The DomEL Syntax.table_name. This table name is combined with those in the joinInfo and joinedDataSetList to define the join expressions. This element and its two attributes are required even if they are identical. field – Represents a column in the join tree.” on page 150. If you use a distinct alias. join expressions other than equality between field values are not supported in the Domain Designer.Advanced Domain Features id – ID that is used to reference the join results in the Domain design. Inner join is the default if no join type is specified. tableName – Literal name of the first table in the join. where n is a sequential number. as well as in the join tree. fieldList – A required container for the field elements in the join tree. the design file includes every column in every table of the join. the alias is the same as the table_ID. The subsequent ones may only reference the table_alias they define and ones that appear in joinString elements before them.

. '. the following filters are defined in the example Domain on page 122: 146 . The field appears in a table named Constant. filterString – Expression which evaluates to true or false when applied to each row of values in the data source..String"/> . accounts. constant fields are automatically grouped in a table named Constant and may be used in other calculated fields. '.billing_address_state )" id="accounts. The calculated field will always have the same value and is said to be a constant. they may be used in any join tree and exposed to the user along with the items from any join tree. 2.When the expression references columns in different tables. or join tree.2. you must treat constant calculated fields in the same way.JasperServer User Guide <jdbcTable datasourceId="SugarCRMDataSource" id="accounts" tableName="accounts"> <fieldList> . the field appears only in the join tree of those tables. is documented in section 7. A special case of a calculated field occurs when the expression does not reference any column names.The field also appears in a join tree that uses the table.3. 7. thereby limiting the number of rows returned when accessing the data source.lang. The full syntax for the expression is documented in section 7. '. The syntax for the expression. </fieldlist> </jdbcTable> .field_name.When the expression computes a constant value. for example java.. “The DomEL Syntax. You can upload a design file with more complex filters. Other filter expressions are not supported. Thus. type – The Java type of the value calculated by the expression. Whereas other settings mainly determine which columns will be available for use in a report.lang. Filters defined in the Domain Designer are limited to conditions on one column or comparisons of two columns.field_name. id – User-defined name of the calculated field. </fieldlist> </jdbcTable> The attributes of the field element have a different meaning when defining a calculated field: dataSetExpression – Expression which calculates a value based on other columns. In the Domain Designer.” on page 150.If the expression references columns in the same table: a.5 Representing Filters in XML Filters are defined as optional filterString elements inside of jdbcTable and jdbcQuery elements. with more complex filters created by the conjunction (logical AND) of several conditions.2.String. They impose a condition on any results that will be returned for that table.field_name. and the id is a simple column name. '. This type must be compatible with the result of the DomEL expression and among the JDBC-compatible types listed on page 143.. the id has the form table_ID. but a filter on a join tree refers to the table_ID. or even as an item. When editing a design file. b.” on page 150.1.The field appears in the table and the id is a simple column name. but they will be overwritten or cause errors if you open the design in the Domain Designer. including how to reference columns.city_and_state" type="java. and the id has the form jointree_ID. For example. The expression refers to columns using their id attribute. <field dataSetExpression="concat( billing_address_city. a filter on a table or derived table refers to the simple column name. filters. billing_address_state )" id="city_and_state" type="java.String"/> .. The format of the id is dependent on how the calculated field appears in the design file: 1. query... <field dataSetExpression="concat( accounts.. “The DomEL Syntax. Constant fields are further explained below. <jdbcTable datasourceId="SugarCRMDataSource" id="JoinTree_1" tableName="anything"> <fieldList> .billing_address_city.lang. 3. a filter determines which rows when running the report... Because constant fields are not dependent on any column values.

/> ...Advanced Domain Features <jdbcTable datasourceId="SugarCRMDataSource" id="opportunities" tableName="opportunities"> <fieldList> ..String"/> </fieldList> <filterString>opportunity_type == 'Existing Business'</filterString> </jdbcTable> <jdbcQuery datasourceId="SugarCRMDataSource" id="p1cases"> <fieldList> . with items inside each level as well as at the root.. <item label="outersetitem2" .. The itemGroups and items elements are equivalent to the selection of sets and items on the Display tab of the Domain Designer. > <itemGroups> <itemGroup label="innerset" . <itemGroups> <itemGroup label="outerset" .. “The Properties Table. representing its subsets and items. the Ad Hoc Editor will display the id. <items> <item label="innersetitem1" <item label="innersetitem2" </items> </itemGroup> </itemGroups> <items> <item label="outersetitem1" ... /> /> /> itemGroups – A container for itemGroup elements.. /> </items> > .1. respectively.. or both.6 Representing Sets and Items in XML Now that all the table and field IDs have been defined.. see section 6. label – The set’s name.String"/> </fieldList> <filterString>status != 'closed'</filterString> <query>. The itemGroup element may contain an itemGroups element.. /> <item label="outsideitem2" .. labelId – The internationalization key for the label in the Domain’s locale bundles.lang. descriptionId – The internationalization key for the description in the Domain’s locale bundles.9.. itemGroup – Represents a set. The following example shows two levels of sets. <field id="opportunity_type" type="java.” on page 133. They create a hierarchy of sets. outside of any set.lang.. visible to users of the Domain.. description – The optional description of the set. visible to users as a tooltip on the set name in the Ad Hoc Editor. If the label is missing. For a description of each possible property. 147 .. we look at the definitions of sets and items that will be exposed through itemGroups and items elements at the top of the Domain design file.. </items> </itemGroup> </itemGroups> <items> <item label="outsideitem1" . an items element. subsets and items and hold attributes that define all the properties available on sets and items. This attribute is required. <field id="status" type="java.. The attributes of itemGroup are the properties of the set it represents: id – The unique identifier of the set among all set and item IDs..3.4...</query> </jdbcQuery> 7.

” on page 117.##0. the resourceID corresponds to jointree_ID.234.5. items – A container for item elements. 2009 Mar 31. 2009 23:59:59 Attribute Value Highest Lowest Average Sum DistinctCount Count Appearance Maximum Minimum Average Sum Distinct Count Count All Double Date DistinctCount Count Distinct Count Count All All others The following example shows the use of the itemGroup and item elements to represent the sets and items from section 6. This attribute is required because it defines the connection between what the user sees and the corresponding data in the data source.JasperServer User Guide resourceId – A reference to the table on which the set is based.($#. “Example of Creating a Domain. the label or description will be replaced with the value given by the key in the local bundle corresponding to the user’s locale.2.field_ID. This attribute is required. visible as a tooltip on the item name in the Ad Hoc Editor. When the item refers to a column in a join tree. The design file was exported from the Domain Designer.hide long. defaultAgg – The name of the default summary function (also called aggregation) to use when this item is included in a report.234) (1234) -1.##0.##0) #. See the table below. visible to users. This attribute is required.00.56 -1234 ($1.234.hide medium.234 -1234 ($1. When an internationalization key is defined for the label or description.##0) #.00 0 $#. The appearance columns show the equivalent setting in the properties table of the Display tab: Field Type Integer Default Data Formats Attribute Value #. For more information. 148 .00) $#. the Ad Hoc Editor will display the id. but it has no meaning on a set and is not significant in the design.hide medium.##0. The following table gives the possible data formats and summary functions based on the column type. resourceId – A reference to the column on which the item is based. The possible values for the defaultMask depend on the type attribute of the column referenced by the resourceId. 2009 March 31. The possible values for the defaultAgg depend on the type attribute of the column referenced by the resourceId.##0. If the label is missing. descriptionId – The internationalization key for the description in the Domain’s locale bundles.” on page 161.field_name because the field ID in a join tree includes the table ID. see section 7.(#. The resourceId has the form table_ID. label – The item’s name. The attributes of item are the properties of the item it represents: id – The unique identifier of the item among all set and item IDs. description – The optional description of the item.($#.234) 3/31/09 Mar 31.56) ($1.($#.##0.medium Not allowed Default Summary Functions Appearance -1.##0) short.##0 0 $#. “Locale Bundles. defaultMask – A representation of the default data format to use when this item is included in a report.table_ID. labelId – The internationalization key for the label in the Domain’s locale bundles. item – Represents an item.##0.

description"/> <item id="lead_source" label="Lead Source" description="Lead Source" labelId="" descriptionId="" resourceId="JoinTree_1.hide" resourceId="JoinTree_1. <itemGroup id="users1" label="Account Rep" description="Primary account representative" labelId="" descriptionId="" resourceId="JoinTree_1"> <items> <item id="first_name" label="First Name" description="Given name" labelId="" descriptionId="" resourceId="JoinTree_1..opportunities.users1.p1cases.case_number"/> <item id="date_entered2" label="Date" description="Date case opened" labelId="" descriptionId="" resourceId="JoinTree_1.resolution"/> <item id="status" label="Status" description="Current case status" labelId="" descriptionId="" resourceId="JoinTree_1.p1cases..p1cases.name"/> <item id="description2" label="Description" description="Detailed description of the case" labelId="" descriptionId="" resourceId="JoinTree_1.opportunities.sales_stage"/> </items> </itemGroup> <itemGroup id="p1cases" label="P1 Case" description="High priority (P1) support case" labelId="" descriptionId="" resourceId="JoinTree_1"> <items> <item id="case_number" label="Case" description="Case number" labelId="" descriptionId="" resourceId="JoinTree_1.p1cases.lead_source"/> <item id="sales_stage" label="Sales Stage" description="Sales Stage" labelId="" descriptionId="" resourceId="JoinTree_1.last_name"/> </items> </itemGroup> <itemGroup id="opportunities" label="Opportunity" description="Sales opportunity" labelId="" descriptionId="" resourceId="JoinTree_1"> <items> <item id="date_entered1" label="Date" description="Date opportunity opened" labelId="" descriptionId="" defaultMask="short. but the ID property value of both itemGroup and item elements must be alphanumeric and not start with a digit.first_name"/> <item id="last_name" label="Last Name" description="Surname or family name" labelId="" descriptionId="" resourceId="JoinTree_1.date_entered"/> <item id="amount" label="Amount" description="Estimated contract Amount" labelId="" descriptionId="" defaultMask="$#.##0.status"/> </items> </itemGroup> ..opportunities. 149 .description"/> <item id="resolution" label="Resolution" description="Description of the case resolution" labelId="" descriptionId="" resourceId="JoinTree_1.probability"/> <item id="description1" label="Description" description="Description of opportunity" labelId="" descriptionId="" resourceId="JoinTree_1.date_entered"/> <item id="name2" label="Summary" description="Name or summary of case" labelId="" descriptionId="" resourceId="JoinTree_1.opportunities.opportunities.($#.p1cases.Advanced Domain Features <itemGroups> ..##0)" defaultAgg="Average" resourceId="JoinTree_1.amount"/> <item id="probability" label="Probability" description="Chance of closing the contract" labelId="" descriptionId="" resourceId="JoinTree_1.opportunities. </itemGroups> Labels and descriptions may contain any characters.p1cases.users1.

When processing a report based on a Domain.1.JasperServer User Guide 7. If there are any errors or inconsistencies. To upload an XML design file: 1. the augmented SQL with either be passed to the data source.4 Uploading a Design File to a Domain Once you have modified an XML design file. The design file overwrites any existing design without prompting. JasperServer interprets DomEL expressions to generate parts of the SQL expression that will perform the desired query. Depending on the data policy. To create a new Domain. Log in to JasperServer as an administrator and select View > Repository. the following features in XML design files are expressed in DomEL: The on and where clauses of derived tables The on clause of join statements Calculated fields Filter expressions in Domains and Domain topics (equivalent to where clauses) Row-level security (see section 7. For instructions. 5. see the JasperServer Administrator Guide. you should click Cancel on the Data and Design page so that the uploaded design is not saved. you should make changes to the XML file. If you made a mistake or upload the wrong file. If there are syntax or semantic errors. you can create a new Domain based on a modified file or even on a design file created from scratch. The Domain Designer can have unpredictable results with some XML designs it does not support. right-click the Domain and select Edit from the context-menu. You can make changes to the XML file and upload it again until there are no errors. Browse or search the repository to locate the Domain.” on page 155) A DomEL expression is a shorthand way of writing a complex query.2 The DomEL Syntax Various components of Domain need to compute values based on some expression involving constants. do not launch the Domain Designer after uploading the file. If you intentionally use syntax in your design file that Domain Designer does not support. The Domain Expression Language (DomEL) was created to fulfill this need. If you cannot resolve the error or inconsistencies. 7. This will remove any data that was based on the old instance of your Domain and avoid inconsistencies in new reports. you must select a data source before you can proceed. or JasperServer will perform a simpler query and apply the DomEL expressions to the full data set in memory. Currently. 4. If you modified an existing Domain. you must clear your Ad Hoc cache of all queries based on the Domain. locate the folder where you want to place it. 7. and environment variables. Click Save to update the Domain in the repository. 2. If you used only supported features in your design file. verify the uploaded Domain design by selecting the Edit tab and clicking Launch Domain Designer. Select the Upload tab under the Design heading. The Domain appears in the Data and Design page of the Edit Domain or Add New Domain dialog. 6.4. right-click the folder and select Add Resource > Domain from the context menu. To update an existing Domain. you can upload it through the Edit Domain dialog. 150 . the current design is not replaced. upload it again. JasperServer validates the uploaded XML file. you may make further modifications on any of the tabs. The results of editing a design in the Domain Designer based on inconsistent XML file are unpredictable. click Cancel on the Data and Design page and start over. If you want to create a new domain. “The Domain Security File. 3. If you are creating a new Domain. then click Browse to find and upload your XML design file. Alternatively. field values. and verify it again. Once the design appears correctly in the Domain Designer. typically by setting the Domain filter. Make sure the settings you made in the XML file appear as expected on the various tabs of the Domain Designer.

and returned as values: Simple Type boolean Description Expressions such as comparison operators return boolean values. but true and false constants are undefined and cannot be used. ANSI standard date. 3) ('apples'. However. Therefore.field_name Calculated field on a table or derived table field_name 151 . including fields that are number or date types.'oranges') (0:12) or (0. The values in these composite types are not necessarily constant. Floating point numbers. depending on where the expression appears: Appears In Derived table Field Reference table_ID. 2. Within a join expression.0:12. other separators such as comma (.2 Field References DomEL expressions are stored in the Domain design and interpreted when JasperServer prepares to run a query to retrieve data from the data source.34) (d'2009-01-01':d'2009-12-31') (limit_min:limit_max) 7. all references to field values in an expression are based on the IDs given in the Domain design. ANSI standard date and time.). Example of Constant none integer decimal 123 or -123 123.field_name Explanation The SQL query that defines a derived table can refer to any previously defined table or derived table in the Domain. Example (1. tables are given alias names that must be used. Join expression table_alias. Field references have the following format.2. Character string entered with single quotes ('). you must include the table ID.1 Datatypes The following simple datatypes may be declared as constants. used in expressions. they could be determined by field values: Composite Type set range Description Contains any number of any simple type above. the alias declared in each one can be used in any subsequent one. Calculated fields can only appear on a table if they refer exclusively to fields of the table. Therefore. Whole numbers.45 or -123. and the Domain Designer sometimes includes it. the table ID is not forbidden. Inclusive range applicable to numbers and dates. double quotes (") are not supported.2.) are not supported. Even though join expressions may appear in separate joinedDatasetRef elements.45 string date timestamp 'hello world' d'2009-03-31' or Date('2009-03-31') ts'2009-03-31 23:59:59' or TimeStamp('2009-03-31 23:59:59') The following composite datatypes may be declared as constants and used with the in set or in range operator. in which case no table ID is needed. Decimal separator must be a period (.Advanced Domain Features 7.

DomEL also defines the following operations as functions: Function startsWith endsWith contains concat Syntax startsWith(i. They must follow the convention of comma-separated parameters. 'suffix') contains(k. divide add. Sets can be of any type. you can use TRIM(person. Comparison operators for string.name).. listed in order of precedence. but not TRIM('Jr' FROM person. Filters that are evaluated within the table or derived table do not need the table ID. Operator multiply. See your vendor documentation for available functions and their syntax.. Parentheses for grouping are not supported. you cannot use aggregation functions such as COUNT in a calculated field because there is no GROUP BY clause. Boolean operators. To test string equality. The SQL context must be appropriate for the functions.field_name 7.field_name Explanation Calculated fields declared in join trees refer to fields prefixed with their table ID. 'substring') concat(i.3 Operators and Functions DomEL provides the following operators. 'prefix') endsWith(j. ' and '. Filters that refer to fields in separate tables of the join tree need to use the table ID on each field name. field_name table_ID. 152 . For example. use i in ('string'). Ranges must be numeric or date types.'oranges') i in (j:k) not ( i ) i and j and k i or j or k Description Arithmetic operators for numeric types only. either within the expression or for the type of the calculated field. . Parentheses are required for not and may be used for grouping.k i == j i != j i < j i <= j i > j i >= j i in ('apples'.name) The type of the return values must be appropriate. Comparison operators for numeric and date types only. Operators higher in this list will be evaluated before operators lower in the list. and date types. For example.JasperServer User Guide Appears In Calculated field on a join tree. numeric. j. You may also use SQL functions in a DomEL expression under limited circumstances: They must be supported by your database.2.) Description Comparison operators for strings. Filter on a table or derived table Filter on a join tree Field Reference table_ID. Returns the string of all parameters concatenated. subtract equal not equal less than less than or equal greater than greater than or equal in set in range not and or Syntax i * j / k i + j .

'United States') 7. Within a join expression. only and is supported in the Domain Designer). a wrong value might go undetected and impact the quality of data in reports based on the Domain.5. and then reference them in a simpler expression in another calculated field.store_state in ('WA'. 'OR'. see sections 7. When there are several conditions.store_country in ('USA') and s1. so if you export a design file. Complex expressions are written by grouping any of the operators or functions above.store_country in ('US'. the DomEL validation cannot enforce these criteria. The on clause may also contain other DomEL expressions logically associated with and or or to create a complex join condition (see warning on page 144).3 Resources of a Domain The two optional components of a Domain are also called resources because they are defined by uploaded files: A single security file. The Domain Designer determines values for comparison by accessing the data source.” on page 161. 'USA'. 'NV') The following filter expression uses a date range: s1. This section describes how to upload and replace Domain resources. Filters must be true or false overall. you can use the values it has found. The expression must evaluate to a type that is compatible with the SQL type declared in the Domain Designer or in the design file.first_opened_date in ( Date( '2000-01-01' ) : Date( '2004-12-31' )) and not( s1. For example. 'CA'.4. The expected return type depends on where the expression appears: Appears In Derived Table Expected Return Type SQL query with boolean expressions Explanation A derived table is defined by an SQL expression that contains DomEL expressions. Therefore. The following examples show expressions suitable for filters.Float. This first one selects only stores in western states of the US: s1. 153 . You must ensure that any SQL functions meet these criteria. otherwise your expression will cause errors when using the Domain to create a report. field values are often compared to constant values such as 'USA'. For more information about the syntax of resource files. both of which are described below. Parentheses () may be used for grouping boolean operators. “Locale Bundles. Otherwise. the on clause contains a comparison of fields from each table that has a boolean result. Another way to reduce errors and also support future data changes is to use more general expressions such as: s1.closed ) As shown in these examples. These files are uploaded and managed on the Resources page of the Edit Domain or Add New Domain dialog. they must be logically associated with and or or (currently.lang. The join on clause may contain boolean comparisons and the where clause may contain filters. if the declared type is java.4 Return Value DomEL expressions are used in different contexts for different purposes. “The Domain Security File. Join expression boolean Calculated field any type Filter boolean 7.Advanced Domain Features Except for the comma-separated parameter pattern. To compute complex arithmetic expressions. Provide internationalized labels for the sets and items of the Domain design. you may need to define several expressions as separate calculated fields. but arithmetic expressions that rely on parentheses are not supported. the author of the design file must ensure that values used in a DomEL expression exist in the data source. Defines row and column-level access to data selected by the Domain.2. Any number of locale bundles. the expression must compute a decimal value.” on page 155 and 7.

2. When you store resource files in the repository. 7. When selected. There can only be one security file but any number of locale bundles. Figure 7-1 Blank Resources Page in the Add New Domain Dialog 5. When browsing the repository. Resources can be uploaded from local files or from objects in the repository. JasperServer validates the file to make sure it matches the format of a security file or locale bundle. Click OK to upload the file and add it to the list of current resources. When a security file exists.JasperServer User Guide To upload or manage a security file and locale bundles for a Domain: 1. Click Add Security or Add Locale Bundle to upload a security file or locale bundle to the Domain. 4. but it will not warn you if you replace it with a different file. the Add Security text is disabled. 154 . Log in to JasperServer as an administrator and select View > Repository. you must ensure that any updates to the files are compatible with the Domains that reference them. the XML file in the repository is referenced by the Domain. For the security file. The Domain appears in the Data and Design page of the Edit Domain dialog. A window appears in which you can select the resource. Right-click an existing Domain and select Edit from the context-menu. Click the Local File or Repository tab and then Browse to select a file or repository object. Click Resources at the top of the page or Next at the bottom. the file is not added to the list of resources and you must select another file or click Cancel. The repository manager will warn you if you attempt to delete a resource that is referenced by a Domain. select an XML file created explicitly as a security file. Search or browse the repository to locate the Domain. typically by setting the Domain filter. you will see only XML files or locale bundle objects in the repository. If the file type is not recognized or there is a syntax error. Figure 7-2 Add Security File Dialog 6. See step 9 to replace an existing security file. 3. unlike a local file that is uploaded directly into the Domain.

Repeat steps 5 through 7 to upload one security file and any number of locale bundles. Security on columns is defined by permissions on the sets and items of the Domain. To manage the uploaded resources. 7.4 The Domain Security File The security file defines permissions to control access to Domain data on the basis of user names and roles existing in JasperServer. corresponding to columns in the data source. Delete – Removes the selected file from the Domain. you must clear your Ad Hoc cache of all queries based on the Domain. user David has access to columns A-F and rows 1-6. for example a manager might only be allowed to see the salary column of employees whose manager field equals the manager’s employee number. You might also want to define access permissions for the new item by downloading. rows display the values of each item. Permissions can be set separately on the data’s columns and rows. only certain users might be able to see sensitive employee information such as a Social Security Number. When creating or running a report based on a Domain. select a file and click one of the following buttons on the Resources page: Edit – Replaces the selected file with a different one uploaded from a file or from the repository. row security is defined on resourceId. Tomas has access to columns B-C and rows 1-3. they get different results. see the JasperServer Administrator Guide. if you add an item to you Domain after creating your locale bundles.Advanced Domain Features 8. For instance. A user can only see results where he has both column. sets and items that appear in the design are referenced by the security file.and row-level access. edit each file to add the new keys. Column security is defined on itemGroupId and itemId. Figure 7-3 Resources Page for Supermart Domain in the Edit Domain Dialog 9. columns. columns display the items in the Domain. then upload each file to replace the corresponding locale bundle. David sees data in cells where columns A-F 155 . and uploading the security file as well. When the users run reports from the Domain. the user name and roles are checked against the permissions in the security file. Download each of the locale bundles in your Domain. The IDs of tables. In Domains. 10. For instructions. If you modified an existing Domain. For example. The Resources page shows the list of all uploaded files. you will need to add its label and description keys to each bundle. modifying. This will remove any data that was based on the old instance of your Domain and avoid inconsistencies in new reports. For example. in a certain Domain. Download – Lets you save the security file or locale bundle to a local file. Anita has access to columns C-E and rows 2-5. Security on rows is defined by permissions on the data values.

When a user is designing a report in the Ad Hoc Editor. Security that is defined on a join applies only to the presentation layer content that is specific to the join. The standard expression is <principalExpression>authentication.any{ it.getAttributes(). an expression can test for any object in the principal. Item A 1 2 David Item B David Tomas David Tomas Item C David Tomas David Tomas Anita David Tomas Anita David Anita David Anita David Item D David Item E David Item F David David David David David 3 David David Tomas David Anita David Anita David 4 5 6 David David David Anita David Anita David David Anita David Anita David David David David David David David David For a given query on the data source. Anita sees data only where columns C-E and rows 2-5 intersect.getAttributeA() in ['ANY_SUPPORTED_ROLE'] } </principalExpression> The scripting language for principalExpression is Groovy (http://groovy.principal.codehaus. he sees only the columns to which he has access. from JasperServer. it evaluates the roles for the specified role.JasperServer User Guide and rows 1-6 intersect. The expression evaluates to <principalExpression>authentication.3. you should also export the design file and update the security file with any IDs that have changed. determined first for item groups and items.jasperforge.getRoleName() in ['ANY_SUPPORTED_ROLE'] } </principalExpression> The expression gets the current authentication object and determines the access privileges of the principal in the object. When the report runs.2. “Resources of a Domain. The access grants are applied to the role. For more information. see section 7. All access grants for a Domain are defined in a single security file that is attached to the Domain as a resource. it gets the user and roles associated with the object.org). the security definition finds the access grants and determines his access rights.getPrincipal().” on page 140.any{ it. Security that is defined on the physical layer applies to all content in the presentation layer. For example. be sure to use the IDs of items and groups as they are defined in the Domain design file exported from the Domain Designer. 156 .roleName in ('ANY_SUPPORTED_ROLE') </principalExpression> While the standard principal expression tests for a given role. as described in section 7. this expression tests for attribute A: <principalExpression>authentication. the grants are applied as filters on the report’s columns and rows.org). When creating a security file.1. then for resources. Access grants take a principalExpression that evaluates the principal in authentication objects created in the Acegi security framework (http://www.getPrincipal(). “Working With a Design File. Tomas sees data only where columns B-C and rows 1-3 intersect.getRoles().roles. When the query is passed to the data source and the report is run. If you modify your Domain. The default access is granted. Then.” on page 153. portions to which the user has no access will be blank. Finally.

</itemGroupAccessGrants> </itemGroupAccessGrantList> .... </resourceAccessGrants> </resourceAccessGrantList> ..getPrincipal().any{ it. For instance. 157 . even if that query does not include the related dataset. a column in the Region table might be joined to a column in the Sales table.getRoles(). Tomas’s report uses columns from Region but he cannot see them because he does not have access to Sales.. Row-level security applies whenever access to a secured resource is requested.getRoleName() in ['ROLE_SUPERMART_MANAGER'] }</principalExpression> <filterExpression>s.getRoles().store_country in ('USA') and s. </resourceAccessGrants> <itemGroupAccessGrants> <!-.0" itemGroupDefaultAccess="granted"> <resourceAccessGrants> <!-. For each dataset from which data is returned by a query in the design file. even if the request is indirect.4.Advanced Domain Features A typical security file has the following structure: <securityDefinition xmlns="http://www..getRoleName() in ['ROLE_ADMINISTRATOR'] }</principalExpression> </itemGroupAccessGrant> . User Tomas has access to Region but not Sales.. Each grant is defined in a resourceAccessGrant that contains a principalExpression and a filterExpression. A resourceAccessGrant must be defined for a joined resource if any query in the security definition has at least one item from the resource. a resourceAccessGrantList specifies the rows to which a user has access.any{ it.getPrincipal().com/2007/SL/XMLSchema" version="1.Begin row-level security --> <resourceAccessGrantList id="expense_join_resource_access_grant" label="aLabel" resourceId="expense_join"> <resourceAccessGrants> <resourceAccessGrant id="expense_join_ROLE_SUPERMART_MANAGER_store_row_grant"> <principalExpression>authentication.1 Row-Level Security Row-level security is specified in resourceAccessGrants.jaspersoft.Begin column-level security --> <itemGroupAccessGrantList id="expense_join_item_group_access_grant_group" label="aLabel" itemGroupId="expense_join" defaultAccess="denied"> <itemGroupAccessGrants> <itemGroupAccessGrant id="expense_join_super_user_item_group_grant" access="granted"> <principalExpression>authentication.store_state in ('CA') </filterExpression> </resourceAccessGrant> .. </itemGroupAccessGrants> </securityDefinition> 7.

JasperServer User Guide Row-level security is defined as follows: <resourceAccessGrants> <!-.getRoles().” on page 150 for examples of valid filter expressions. Evaluation of the authentication object and user to determine the role to be granted access.store_number == 24</filterExpression> </resourceAccessGrant> </resourceAccessGrants> </resourceAccessGrantList> <resourceAccessGrantList id="account_resource_access_grant" label="aLabel" resourceId="account"> <resourceAccessGrants> <resourceAccessGrant id="account_resource_super_user_row_grant"> <principalExpression>authentication.getRoleName() in ['ROLE_SUPERMART_MANAGER'] }</principalExpression> <filterExpression>account_type == 'Expense'</filterExpression> </resourceAccessGrant> </resourceAccessGrants> </resourceAccessGrantList> </resourceAccessGrants> Elements of resourceAccessGrants are: resourceAccessGrantList.any{ it. filterExpression.getPrincipal().getRoleName() in ['ROLE_SUPERMART_MANAGER'] }</principalExpression> <filterExpression>s. Filters are applied to resource IDs. principalExpression.any{ it. resourceAccessGrant.getRoles().getPrincipal(). List of grants for one dataset in the Domain.getPrincipal().any{ it.getRoles().Begin row-level security --> <resourceAccessGrantList id="expense_join_resource_access_grant" label="aLabel" resourceId="expense_join"> <resourceAccessGrants> <resourceAccessGrant id="expense_join_ROLE_SUPERMART_MANAGER_store_row_grant"> <principalExpression>authentication.getRoleName() in ['ROLE_SUPERMART_MANAGER'] }</principalExpression> <filterExpression>s. See the section 7.any{ it. “The DomEL Syntax.getRoleName() in ['ROLE_ADMINISTRATOR'] }</principalExpression> </resourceAccessGrant> <resourceAccessGrant id="account_ROLE_SUPERMART_MANAGER_row_grant"> <principalExpression>authentication.getPrincipal(). Grant in the dataset for a specific case.getPrincipal().getRoles().store_country in ('USA') and s.getRoleName() in ['ROLE_SUPERMART_MANAGER'] }</principalExpression> <filterExpression>s.2. Filter on the dataset.store_number == 0</filterExpression> </resourceAccessGrant> <resourceAccessGrant id="account_ROLE_SUPERMART_MANAGER_account_row_grant2" orMultipleExpressions="true"> <principalExpression>authentication. such as a user role or profile attribute.any{ it. determines the rows to which access is granted. 158 .getRoles().store_state in ('CA') </filterExpression> </resourceAccessGrant> <resourceAccessGrant id="account_ROLE_SUPERMART_MANAGER_account_row_grant" orMultipleExpressions="true"> <principalExpression>authentication.

getPrincipal(). If a matching item group principal expression does exist.getRoles(). Within the group. or ANDed. the item group’s access applies. not the item group’s specified access. If access is specified for an item group but there is no item group principal expression matching the current user. An itemGroupAccessGrantList defines default access to one item group.getRoles(). Column-level security passes from parent object to child object unless specified otherwise: If access is unspecified for an object.getPrincipal(). In this case (specified item group > unspecified item group > unspecified item).Advanced Domain Features 7. access is granted by user role in itemGroupAccessGrants. the access of the nearest parent item group applies to the item. Column-level security is defined as follows: <itemGroupAccessGrants> <!-. the access of the parent object applies. Access to other items will be the item group’s specified access. If the unspecified object is an item in an item group. their access grants are combined. one denied statement overrides multiple granted statements. Access to items within an item group can be specified by itemAccessGrants.2 Column-Level Security Column-level security is specified in itemGroupAccessGrants. the user has the item group’s default access.getRoleName() in ['ROLE_ADMINISTRATOR'] }</principalExpression> </itemGroupAccessGrant> <itemGroupAccessGrant id="ROLE_SUPERMART_MANAGER_store_item_group_access_grant" access="granted"> 159 .getRoleName() in ['ROLE_SUPERMART_MANAGER'] }</principalExpression> <itemAccessGrantList id="expense_join_ROLE_SUPERMART_MANAGER_item_grant" defaultAccess="denied"> <itemAccessGrants> <itemAccessGrant id="itemAccessGrant1" itemId="ej_expense_fact_exp_date" access="granted" /> </itemAccessGrants> </itemAccessGrantList> </itemGroupAccessGrant> </itemGroupAccessGrants> </itemGroupAccessGrantList> <itemGroupAccessGrantList id="expense_join_store_item_group_access_grant_group" label="aLabel" itemGroupId="expense_join_store" defaultAccess="denied"> <itemGroupAccessGrants> <itemGroupAccessGrant id="expense_join_store_super_user_item_group_grant" access="granted"> <principalExpression>authentication. that group takes its access from its parent group and passes it to the item. access for the item cannot be specified in an item-level grant. As a result.any{ it.getRoles().4. If multiple item group principal expressions match the user (such as one expression for the user and one for his role).any{ it. If the nearest parent group’s access is also unspecified. If the unspecified object is an item in an item group that is nested in another item group.Begin column-level security --> <itemGroupAccessGrantList id="expense_join_item_group_access_grant_group" label="aLabel" itemGroupId="expense_join" defaultAccess="denied"> <itemGroupAccessGrants> <itemGroupAccessGrant id="expense_join_super_user_item_group_grant" access="granted"> <principalExpression>authentication.any{ it. the user’s access to items for which access is specified will be as specified. in a simple series.getPrincipal().getRoleName() in ['ROLE_ADMINISTRATOR'] }</principalExpression> </itemGroupAccessGrant> <itemGroupAccessGrant id="ROLE_SUPERMART_MANAGER_item_group_access_grant" access="granted"> <principalExpression>authentication.

itemAccessGrant. List of access grants to one item group. First.getRoles(). all users would have complete access. access to each item group is granted for administrator roles. the following grants are implemented as A and B and C: 160 . Specifies access to one item.any{ it. If you want to restrict access to items outside of any group or set. Specifies default access to the items. The latter requires the programmer to specifically identify each item to which the role has access. The ANDed series can be modified by an OR expression (orMultipleExpressions="true"). Evaluation of the authentication object and user to determine the role to be granted or denied access. For instance. itemGroupAccessGrant. In the above example. Otherwise. Grant group access to additional roles. all grants for a given role are ANDed. this method is not as secure as denying access to all items then granting access to some. the SuperMart manager will have no access at all. An alternative way to restrict access is to simply deny it on specific items. Overrides default in itemGroupAccessGrantList. alternatively. access to all items in the group is denied. For each item group: Grant group access to administrator roles. Access is denied to everyone initially. Then. Next. the progression of column access grants is: Deny access to everyone. itemAccessGrantList. deny access to all group items. followed by grants to specific items. principalExpression. Next. create an itemGroupAccessGrantList for them where the id of the group is "".getPrincipal(). deny access to specific items or. By default. Specifies access to the item group for one user role. However. then grant access to specific items. which is more secure. access is granted to each item group even though the access may be limited eventually. List of access grants to items in the item group. For each additional role. If access is not granted at the group level.getRoleName() in ['ROLE_SUPERMART_MANAGER'] }</principalExpression> <itemAccessGrantList id="expense_join_ROLE_SUPERMART_MANAGER_store_item_grant" defaultAccess="denied"> <itemAccessGrants> <itemAccessGrant id="itemAccessGrant3" itemId="ej_store_store_type" access="granted" /> <itemAccessGrant id="itemAccessGrant4" itemId="ej_store_region_id" access="granted" /> <itemAccessGrant id="itemAccessGrant5" itemId="ej_store_store_name" access="granted" /> <itemAccessGrant id="itemAccessGrant6" itemId="ej_store_store_number" access="granted" /> <itemAccessGrant id="itemAccessGrant7" itemId="ej_expense_fact_exp_date" access="granted" /> <itemAccessGrant id="itemAccessGrant8" itemId="ej_expense_fact_amount" access="granted" /> </itemAccessGrants> </itemAccessGrantList> </itemGroupAccessGrant> </itemGroupAccessGrants> </itemGroupAccessGrantList> </itemGroupAccessGrants> Elements of itemGroupAccessGrants are: itemGroupAccessGrantList. Specifies default access to the item group and all items in the group.JasperServer User Guide <principalExpression>authentication. access is defined for the SuperMart manager role.

all user-visible text for your Domain is in the standard format of a locale bundle. users will see the text of the default locale bundle. only the internationalization keys. You give all labels and descriptions a clear and complete text within the design.5 Locale Bundles A locale bundle is a set of properties files used in localizing software. 161 . then It displays the text of the label property defined in the Domain design. while these grants are implemented as (A or B) and C: <resourceAccessGrant id="A"> <resourceAccessGrant id="B" orMultipleExpressions="true"> <resourceAccessGrant id="C"> The OR expression can be applied in grants for items and item groups as well as resources.properties When a Domain with locale bundles is used to create or run a report. then create the locale bundle. Descriptions are localized in the same manner. If both exist. 7. you do not specify any labels or descriptions in your Domain design.Advanced Domain Features <resourceAccessGrant id="A"> <resourceAccessGrant id="B"> <resourceAccessGrant id="C">. If these exist.DESCR=Nom du client French fr ExampleDomain_fr. Each key is associated with the text for the label or description in the language of the target locale. it displays the text associated with the key in the default bundle. In this case. There are several strategies for managing your locale bundles.NAME. JasperServer looks for the corresponding locale bundle and uses the labels and messages it contains. except they are left blank if there is no locale bundle. Then you create a default locale bundle that gives the clear and complete text of every label and description in your preferred language. You want to create your Domain tailored to a multilingual environment where reports need to be localized for each user’s specified locale.DESCR=Name of Customer ACCOUNTS. default bundle. As your enterprise grows. and you leave the key names undefined. edit your Domain design to define the internationalization keys. or description property defined. To create localized text for those users. if the default bundle or key does not exist. then JasperServer looks for the same key in a default bundle among the resources. JasperServer resolves each label to display as follows: JasperServer looks for a bundle corresponding to the current locale and for the key corresponding to the label. Language English Locale default Filename ExampleDomain. In case a label or description is left untranslated. The files contain other-language versions of the labels and messages that are displayed to users. When a user’s operating environment specifies a locale. In this way. The name of the file includes the target locale. then It displays the value of the id property. Users in your home country who do not specify a locale will still see the labels and description in the original Domain design.NAME. so JasperServer automatically associates it with the user’s locale when needed.NAME. you could have one of the following scenarios: You do not have any localization needs at the time you create your Domain. if no label is defined.properties Sample Contents ACCOUNTS. and Domains make reports internationalizable so that users can create and view reports in their language.LABEL=Client ACCOUNTS. You can create locale bundles incrementally each time you have users who need a new language. and you can use specialized software or translation services to create all the locale bundles you need. users in another country need to create reports based on your Domain. Based on the search algorithm above and your localization needs. if the bundle or key does not exist. A locale bundle for a Domain consists of a single file containing all the internationalization keys for the sets and items in the Domain. JasperServer displays the text associated with the key.LABEL=Customer ACCOUNTS. The JasperServer interface is already internationalized.NAME.

The text for a given key in a given locale is determined by the algorithm given on page 161. where <locale> is any Javacompliant locale identifier. and export the XML design file that now contains the generated keys. or neither. you will not be able to use the exported design file. it is simplest to create the properties files from the stub exported by the Domain Designer. the file designates the strings for the default locale. The value of each property is the text for the label or description in the target language. do not overwrite your design file. Usually. In the design file. ID properties.2 Creating Locale Bundle Files A locale bundle for a Domain is a Java properties file where each property name is a unique internationalization key from one of the labels or descriptions in the design. both. If the _<locale> part of the file name is omitted. To automate this process. the set of keys is identical in the properties file of each locale bundle. The name of the file identifies the locale in the form <any_name>_<locale>. use the Generate Bundle Stub icon performs two tasks: in the menu bar of the Domain Designer.5.ITEM_ID. the keys are not defined.DESCR SET_ID.5.ITEM_ID. You can then generate the keys automatically. The locale bundle stub is further explained in the next section. ready for translation. but save the exported file to another name and attempt to merge in the generated keys. but this is not necessary. You have the option of generating only the label keys. as long as each key is unique among all keys within the Domain. You may name the keys in any way you wish. If your design file does not load properly in the Domain Designer. If these attributes are missing or defined with an empty value (""). Often. the generated key names will be added to all the blank Label ID and Descr. export the bundle stub as explained above. the name of the keys are given by the labelId and descriptionId attributes on each itemGroup and item element. By default. the name of the internationalization keys are defined by the Label ID and Descr. In this case. Optionally. 162 . you may generate any missing keys. use the Generate Bundle Stub icon in the menu bar to export a blank properties file. If you have many sets and items.properties.LABEL SET_ID.JasperServer User Guide 7. When you click OK. only the description keys. To define the keys. This function Figure 7-4 Locale Bundle Stub Options Dialog It automatically generates all the key names. for example fr or fr_CA.LABEL SET_ID. the generated key names have the following format: SET_ID. ID properties on each set and item defined on the Display tab. these properties are blank. any keys that already exist will not be modified.DESCR It outputs a locale bundle stub. In order to guarantee uniqueness. as described in the previous section. 7. give these attributes a value that is unique among all the keys.1 Defining the Internationalization Keys In the Domain Designer. Whether you have created your design in the Domain Designer or in an external file uploaded to the Domain Designer. This is a properties file in the proper format containing all the defined keys. it may be easier to upload the design file in a Domain and open it in the Domain Designer.

. USERS1.EMPLOYEES.LABEL=Industrie ACCOUNTS. For international characters that are not in ISO-8859-1.DESCR= USERS1.LABEL=Responsable USERS1.ACCOUNT_TYPE.. Java properties files use the ISO-8859-1 (Latin-1) encoding that is the same as ASCII for all English nonaccented characters.DESCR= . USERS1.NAME.ACCOUNT_TYPE.FIRST_NAME. ACCOUNTS. Generally.DESCR= USERS1.LABEL= USERS1.LABEL= USERS1. ACCOUNTS.DESCR=Responsable du compte client.LABEL=Taille du personnel ACCOUNTS. .LABEL=Client ACCOUNTS.DESCR=Industrie d\u2019activit\u00e9 primaire.LABEL= ACCOUNTS. ACCOUNTS. use Unicode escape sequences (for example \u00e9 is é). ACCOUNTS.DESCR=Nom de famille. you can simply copy the file and change the _<locale> designator to begin translation of another locale bundle.DESCR= USERS1. Once you have the properties file for your first locale. everything after the = symbol is part of the translated text.ACCOUNT_TYPE.ANNUAL_REVENUE.DESCR= ACCOUNTS.DESCR=Revenus annuels estim\u00e9s. sets and items in the bundle stub appear in the same order as on the Display tab of the Domain Designer: ACCOUNTS.FIRST_NAME.DESCR=Type du compte client.ANNUAL_REVENUE.CITY_AND_STATE.LABEL= USERS1.INDUSTRY.LABEL= ACCOUNTS.INDUSTRY.LABEL= ACCOUNTS.FIRST_NAME. ACCOUNTS.LABEL=Localit\u00e9 ACCOUNTS.LABEL= ACCOUNTS.LABEL= ACCOUNTS.CITY_AND_STATE.DESCR=Ville et r\u00e9gion ou \u00e9tat du client.EMPLOYEES.DESCR= ACCOUNTS.DESCR= ACCOUNTS.LAST_NAME.LABEL=Type ACCOUNTS.LABEL=Comptes ACCOUNTS.LAST_NAME.FIRST_NAME. including the UTF-8 code for accented characters and other symbols.” on page 117.DESCR=Nombre d\u2019employ\u00e9s estim\u00e9s.ANNUAL_REVENUE. As the example shows.INDUSTRY.DESCR=D\u00e9tails des comptes clients.LABEL= ACCOUNTS.LABEL=Nom USERS1.ACCOUNT_TYPE. ACCOUNTS.NAME. “Example of Creating a Domain.NAME.LABEL= ACCOUNTS.DESCR= ACCOUNTS.ANNUAL_REVENUE. The following example shows the French translation for the properties file shown above.INDUSTRY.LAST_NAME.NAME.LAST_NAME.CITY_AND_STATE. A best practice is to save a blank properties file or the default locale bundle as a 163 .. USERS1. All of the internationalization keys were generated automatically as well.EMPLOYEES.DESCR=Nom du client ACCOUNTS.DESCR=Pr\u00e9nom usuel.2..LABEL=Taille par revenus ACCOUNTS.EMPLOYEES.DESCR= ACCOUNTS.DESCR= ACCOUNTS. The syntax for the properties file is the same as for Java properties files.LABEL=Pr\u00e9nom USERS1.Advanced Domain Features The following example shows part of the properties file output for the Domain created in section 6.CITY_AND_STATE.

3.JasperServer User Guide template for future translations. follow that same procedure to download. Regardless of how you edit properties files. allowing you to translate in parallel and find missing keys and missing translations.” on page 153 for instructions on uploading locale bundles. Also. 164 . See the procedure in section 7. Also. “Resources of a Domain. when all translations are finished. You can create and edit the properties file in any text editor. modify. see the Localization chapter in JasperServer Administrator Guide. For additional information on locales and locale bundles in JasperServer. if you change your Domain design and need to modify your properties files. Certain editors provide features for editing properties files. you can export the locale bundle stub again and compare it to the template to find all new keys. if you change your Domain design. and upload each locale bundle. There are also translation products that manage all of the resource bundles together. you need to upload them as locale bundles to your Domain in order to take effect.

1 Messages When an event occurs (such as an when a scheduled report returns errors). such as if a report fails because its data source is configured with incorrect credentials.1. The message opens in the Event Details page. You can view a message by clicking its name. JasperServer notifies the owner of the report through an internal message. You can browse these messages to gain an understanding of report scheduling problems in JasperServer.1 Message List The Messages page displays the list of events logged for the current user. 8. Figure 8-1 Messages Page Use the check boxes and buttons on this page to manage your list of messages. To open the Messages page: On any page. 165 . click View > Messages in the menu bar. Information there can help you troubleshoot problems with your scheduled reports.Utilities 8 UTILITIES Messages iReport Plug-ins This chapter contains the following sections: 8.

sh at the command prompt. The mail server must be manually configured after installation in order for users to send email notifications. For more information.” on page 103. In Windows. A JasperServer pane appears in the upper left corner of your iReport workspace.5 or greater JasperServer with enabled web services To launch the JasperServer Plug-in in iReport 1. 8.2.1 JasperServer Plug-in The JasperServer plug-in requires: iReport 3. iReport 3. Click Window > JasperServer Repository. The Domain plug-in enables you create reports from Domains in the JasperServer repository.2 Domain Plug-in The Domain plug-in for iReport requires: JasperServer plug-in. click Start > All Programs > JasperServer Pro > Start iReport. refer to section 5. iReport includes JasperServer and Domain plug-ins.7 JasperServer Professional or Enterprise 3./iReport.4.JasperServer User Guide Figure 8-2 Event Details Page A common cause of the error message indicating that the report failed to execute is a misconfigured mail server. To launch iReport: 1.7 Java Sun JDK 1. Launch iReport. 8. change to the iReport home directory and enter . 3.2. 2. The JasperServer plug-in enables you to move reports between iReport and JasperServer. refer to the JasperServer Administrator Guide.2 iReport Plug-ins By default. 8.7 The Domain plug-in is included by default in the Professional version of iReport. or In Linux. For more information on mail configuration. iReport opens.7. “Using the JasperServer Plug-in for iReport. 166 .

operators. Ad Hoc reports can be run. A calculated field is defined in the Domain Designer dialog. Starting from a collection of fields predefined in a Topic or selected from a Domain. In addition. 167 . A range of criteria can be audited and the results logged. In JasperAnalysis. schemas are stored in the repository as XML file resources. An analysis client connection is either a direct Java connection (Mondrian connection) or an XML-based API connection (XMLA connection). the results can be used as input for other reports. Audit Archiving Determining the limit on saving audit results. Analysis Schema A metadata definition of a multidimensional database. CrossJoin An MDX function that combines two or more dimensions into a single axis (column or row). such as slice and dice. and saved. a field whose value is calculated from a user-written formula that may include any number of fields. Calculated Field In a Domain. CRM Customer Relationship Management. Audit Logging Recording who used JasperServer to do what when. Like JRXML reports. and drill through. and constants. further modified. preview. and finalize reports. All Ad Hoc reports can be run with auditing enabled. It is the entry point to analysis operations. Ad Hoc reports may be reopened in the Ad Hoc Editor. The practice of managing every facet of a company’s interactions with its clientele. CRM applications help businesses track and support their customers. and it becomes one of the items to which the Domain’s security file and locale bundles can apply. printed. the Ad Hoc Editor lets you drag and drop report elements to draft. Analysis View A view of multidimensional data that is based on an analysis client connection and an MDX query. drill down. and scheduled within JasperServer. Analysis Client Connection A definition for retrieving an analysis view. such as limiting them to a range of dates or a total number of instances.Glossary GLOSSARY Ad Hoc Editor JasperServer’s integrated report designer.

a setting that determines how JasperServer should process and cache data used by Ad Hoc reports. As such. Data Policy In JasperServer. You can use the items in a derived table for other operations on the Domain. JasperServer transmits queries to data sources and obtains datasets in return for use in filling reports and previewing Ad Hoc reports. When a custom field becomes too complex or needs to be used in many reports. number. including other custom fields. a field that is created through menu items as a simple function of one or two available fields. you can write an SQL query that includes complex functions for selecting data. region.JasperServer User Guide Cube The basis of most analysis applications. date. integrated view. all of which define items and sets of items for creating Ad Hoc reports. and provides data-level security. Dashboards often present a high level view of your data. but input controls can parameterize the data to display. a cube that stores data about sales figures might include dimensions such as time. custom data sources can be defined as well. Denormalize A process for creating table joins that speeds up data retrieval at the cost of having duplicate row values between some columns. For example. calculated fields. Datasets are equivalent to relational results sets and the JRDataSource type in JasperReports. Datatype In JasperServer. A datatype must be of type text. defining a calculated field. such as joining tables. For example. For example. Select your data policies by clicking Manage > Ad Hoc Options. you can narrow down the data to a specific date range. and web content displayed in a single. a derived table is defined by an additional query whose result becomes another set of items available in the Domain. allows for localization. make dashboards more interactive and functional. a datatype is used to characterize a value entered through an input control. When you navigate the data displayed in an analysis view. Derived Table In a Domain. Dice An OLAP operation to select columns. for example maximum and minimum values. a JasperServer datatype is more structured than a datatype in most programming languages. graphics. join clauses. such as other web-based applications or maps. Data Source Defines the connection properties that JasperServer needs to access data. It can include constraints on the value of the input. JNDI. labels. but it implements the same functionality within JasperServer. or date-time. product. and customer’s industry. or filtering. The items in a derived table can also be referenced in the Domain’s security file and locale bundles. Embedded web content. A Domain is not a view of the database in relational terms. and Bean data sources. and default properties. Dashboard A collection of reports. Custom Field In the Ad Hoc Editor. Dataset A collection of data arranged in columns and rows. JasperServer supports JDBC. Dimension A categorization of the data in a cube. a cube is a data structure that contains three or more dimensions that categorize the cube’s quantitative data. it is best to define it as a calculated field in a Domain. with a JDBC data source. 168 . The design of a Domain specifies tables in the database. display names. you are exploring a cube. input controls. Domain A virtual view of a data source that presents the data in business terms.

but it allows further filtering. Click a fact to open a new table beneath the main navigation table. A Domain Topic is based on the data source and items in a Domain. Fact The specific value or aggregate value of a measure for a particular member of a dimension. and selection of items. When either type of report is used in a dashboard. 169 . user input. Facts are typically numeric. but you may define calculated fields in a Domain or custom fields in the Ad Hoc Editor. an item is the representation of a database field or a calculated field along with its display name and formatting properties defined in the Domain. Drill up. Load. a Domain Topic can be edited in JasperServer by users with the appropriate permissions. along with its display name and default formatting properties. Frame A dashboard element that displays reports or custom URLs. such as C/C++. and filters and aggregates the data to create a multidimensional database.Glossary Domain Topic A Topic that is created from a Domain by the Choose Ad Hoc Data wizard. In a chart. is called an item and may be used in the Ad Hoc editor. a member of a dimension containing a group of members. the field chosen to define the group becomes the independent variable on the X axis. input controls and their associated datatypes must be defined as repository objects and explicitly associated with the report. An OLAP operation that displays detailed transactional data for a given aggregate measure. while the other fields of each group are used to compute the dependent value on the Y axis. Items can be grouped in sets and are available for use in the creation of Ad Hoc reports. the input controls are defined internally. Unlike a JRXML-based Topic. Frames can be mapped to input controls if their content can accept parameters. An OLAP operation for returning the parent hierarchy level to view to summary information. Drill through. Field A field is equivalent to a column in the relational database model. In a table. while the other fields appear as columns. Input Control A button. ETL Extract. text field. Item When designing a Domain or creating a Topic based on a Domain. drop-down list. the new table displays the low-level data that constitutes the data that was clicked. a group is a set of data rows that have an identical value in a designated field. For Domain-based reports that prompt for filter values. Drill To click on an element of an analysis view to change the data that is displayed: Drill down. Fields originate in the structure of the data source. or calendar icon that allows users to enter a value when running a report or viewing a dashboard that accepts input parameters. Transform. An OLAP operation that exposes more detailed information down the hierarchy levels by delving deeper into the hierarchy and updating the contents of the navigation table. Hierarchy Level In analysis. the value appears in a header and footer around the rows of the group. Any type of field. check box. Eclipse An open source Integrated Development Environment (IDE) for Java and other programming languages. Group In a report. its input controls are available to be added as special content. A process that retrieves data from transactional systems. For JRXML reports.

report element.sourceforge. A standard interface that Java applications use to access databases. domain. For more information.com/. anything residing in the repository. MDX Multidimensional Expression Language. data source. topic. such as an image. font. Mondrian Schema Editor An open source Eclipse plugin for creating Mondrian analysis schemas.JasperServer User Guide JavaBean A reusable Java component that can be dropped into an application container to provide standard functionality. JPivot An open source graphical user interface for OLAP operations. a collection of joined tables from the actual data source. Join Tree In Domains.net/. JNDI Java Naming and Directory Interface. Mondrian A Java-based. A language for querying multidimensional objects. open source multidimensional database application. A standard interface that Java applications use to access naming and directory services. An MDX query is the query that determines the data displayed in an analysis view. The folders that contain repository objects are also objects. Administrators set user and role-based access privileges on repository objects to establish a security policy. Mondrian Connection An analysis client connection that consists of an analysis schema and a data source used to populate an analysis view. 170 . saved report. Object In JasperServer. A join is the relational operation that associates the rows of one table with the rows of another table based on a common value in given field of each table. such as OLAP (On Line Analytical Processing) cubes. file. OLAP On Line Analytical Processing. Mondrian XMLA Source A server-side XMLA source definition of a remote client-side XMLA connection used to populate an analysis view using the XMLA standard. or analysis view. a formula that calculates the facts that constitute the quantitative data in a cube.mysql. a formula that calculates the values displayed in a table’s columns. dashboard. Measure Depending on the context: In a report. For information. Only the fields in a same join tree or calculated from the fields in a same join tree may appear together in a report. visit http://jpivot. JDBC Java Database Connectivity. Provides multidimensional views of data that help users analyze current and past performance and model future scenarios. report output. and returning cube data for analytical processing. a crosstab’s data values. or a chart’s dependent variable (such as the slices in a pie). In an analysis view. MySQL An open source relational database management system. visit http://www. Navigation Table The main table in an analysis view that displays measures and dimensions as columns and rows.

For Domains. Repository The tree structure of folders that contain all saved reports. PRODUCT.Glossary Organization A set of users that share resources and repository objects in JasperServer. an OLAP schema is the logical model of the data that appears in an analysis view. In JasperServer. Properties are normally editable. and root folder in the repository to securely isolate it from other organizations that may be hosted on the same instance of JasperServer. X and Y axis) for organizing information containing more than two logical dimensions (for example. and indexes. such as its color and label. Applications can access the repository through the web service API. A user in an organization with the privileges to manage the organization’s user accounts and roles. roles. and repository objects. assign them to user accounts. which determines certain menu options displayed to those users. repository permissions. The default organization admin in each organization is the jasperadmin account. For example. and LOCATION). Organization Admin Also called the organization administrator. properties can be set in files listing objects and their settings. TIME. and then set access permissions to repository objects based on those roles. An organization has its own user accounts. Role A security feature of JasperServer. Properties Settings associated with an object. the schema in a relational database is a description of the relationships between tables. In Java. and resources. and repository content. a very low sales figure or a very high number of helpdesk tickets. they are uploaded to the repository as resources. CUSTOMER. Users access the repository through the JasperServer web interface or through iReport. JasperAnalysis excels at revealing outliers. pivot the crosstab by clicking . An organization admin can also create sub-organizations and mange all of their accounts. Such outliers may indicate a problem (or an important achievement) in your business. Pivot tables are used in JasperAnalysis. Administrators create named roles. such that each physical dimension is capable of representing one or more logical dimensions. analysis views. A report parameter is defined by its name and type. roles. Outlier A fact that seems incongruous when compared to other member’s facts. where the values described by the dimensions are aggregated using a function such as SUM. In JasperAnalysis. For example. dashboards. schemas are represented in XML design files. Administrators use the import and export utilities to back up the repository contents. JasperServer also makes certain functionality available to users based on their roles. The settings determine certain features of the object. views. In the Ad Hoc Editor. Parameter Named values that are passed to the engine at report-filling time to control the data returned or the appearance and formatting of the report. Schema A logical model that determines how data is stored. 171 . Pivot To rotate a crosstab such that its row groups become columns groups and its column groups become rows. Pivot Table A table with two physical dimensions (for example. parameters can be mapped to input controls that users can interact with.

A low-level GUI component of JPivot.xmla. password. users. A standard language used to access and manipulate data and schemas in a relational database. User Depending on the context: A person who interacts with JasperServer to fulfill a goal. roles. A user account created for a specific person or purpose. System Admin Also called the system administrator. but all items in a set must originate in the same join tree. see http://jpivot. 172 . Transactional data are often stored in relational databases. XML eXtensible Markup language.net/ wcf/index. relevant to your business. scheduling and user administration tasks.org/ XML/A Connection A type of analysis client connection that consists of Simple Object Access Protocol (SOAP) definitions used to populate an analysis view. XML/A XML for Analysis. WCF Web Component Framework. Topics are created by business analysts to specify a data source and a list of fields with which business users can create reports in the Ad Hoc Editor.JasperServer User Guide Set In Domains and Domain Topics. and repository objects across the entire JasperServer instance. The system admin can create root-level organizations and manage all server settings. repository permissions. Slice An OLAP operation for filtering data rows. For more information. The order of items in a set is preserved. For more information. A user who has unlimited access to manage all organizations. Topic A JRXML file created externally and uploaded to JasperServer as a basis for Ad Hoc reports. see http://www. and business users who create and view reports and dashboards. transferring. database experts or business analysts who create data sources and Domains. There are generally three categories of users: administrators who install and configure JasperServer. The account associates the login name with user's full name.sourceforge. Topics are stored in the Ad Hoc Components folder of the repository and displayed when a user launches the Ad Hoc Editor. and interpreting data for use across any number of XMLenabled applications. with one row for each event and a table column or field for each measure. such as a retail transaction.html. The features include repository. The default system admin is the superuser account. A set can be based on the fields in a table or entirely defined by the Domain creator. a named collection of items grouped together for ease of use in the Ad Hoc Editor. An XML standard that uses Simple Object Access protocol (SOAP) to access remote data sources. Web Services A SOAP (Simple Object Access Protocol) API that enables certain features to be managed over the web without running JasperServer. Transactional Data Data that describe measurable aspects of an event. SQL Structured Query Language. and email address. Roles are assigned to user accounts to determine access to objects in the repository. A standard for defining.

58 change fields for Domain-based reports 71 chart reports and dashboards 24 compared with table and crosstab 44 display options 63 page size 64 resizing 64 sample Topic 63 summarized vs. 155 Ad Hoc Editor available fields selected in Domain Topic 70 calculated fields 57 custom fields 57 decimal places 58 designing report layouts 43 editing reports created in the Ad Hoc Editor 48 filters 59 formatting reports 48 formulas 57 how to use 41. 47. 45 input controls 59 limits on reports 78 page properties 43 parametrized queries 59 reports 41 rounding and custom fields 58 saving reports 42.Index INDEX A access grants and scheduled reports 34 Domain column-level 159 Domain row level 157 effect of grants 68. 49 add function 57 Add New Domain wizard 118 adding a design file as a new Domain 150 adding reports 87 alphabetical ascending 54. 65 column width 49. 74. 76 collapse group 65 collapse members 66 column-level security in Domains 159 columns column groups 46. See input controls. 66 alternate group 42. 69. 47. 49 tool bar 42 Ad Hoc reports and dashboards 24 kinds 43 limits 78 localization 77 saving 42. unsummarized 63 theme for 112 types of charts 63 unique features 63 Charts Pro 29 Choose Ad Hoc Data wizard 67. 66 percent of column group parent 53. 58 summarizing 47 controls. count all 66 creating 173 . 98 CGP 53. 61 area chart 63 auto-refresh interval in dashboards 21 available content 17 B bar chart 63 basic functions 57 Boolean operators in Domains 69 C calculated fields 57 cascading input controls 33.

25 and parameters 25 and screen size 23. access grants. 66 hyperlinks 66 keep only 52. 103 crosstab reports adding fields 65 and dashboards 24 and dataset size 42 collapse group 65 collapse members 66 column group parent 53. 66 measures 65 percent of group 58 pivoting 65 row and column groups 65 row group parent 53. 25 mapping input controls to URLs 20 multiple selection 22. 66 Data page 67 data policies 78 data sources. 23 creating 17–24 deleting content 21. adding as a new Domain 150 editing 141 exporting 140 filters 150 itemGroups element 142 items element 142 joins 144 Oracle schema name 141 resources element 142 schema element 141 schemaLocation attribute 142 structure 141–149 uploading edited file 150 version attribute 141 xmlns attribute 141 XSD 140 Display page 69 distinct count 66 divide function 57 174 . 79. 66 switch to column group 51. 66 expand group 65 expand members 51. and scheduled reports 34 datasets 42 datatypes 92. 22. 58 sample size 66 sample Topic 65 setting data formats 66 sorting 54. 23 D dashboards adding content 22 adding custom URLs 17 adding logos 17 and Ad Hoc reports 24 and available items 17 and custom URLs 20. 74.JasperServer User Guide dashboards 17–24 Domain security files 155 Domain Topics 73 reports 73. FILE protocol 23 limitations 17. 23 and input controls 19. 100 date functions 57 design files See also Domains. 87. 65 switch to row group 65 unique features 65 custom fields add 57 basic functions 57 date functions 57 default name 58 divide 57 multiply 57 operators 57 overview 57 percent of group parent 57 percent of total 57 rank 57 renaming 58 round 57 special functions 57 subtract 57 swap fields 57 custom URL in dashboards 17. 24 area 18 auto-refresh interval 21 behavior when content deleted from repository 23 buttons 17 containing other dashboards 22. fixed sizing 23 refining the layout 21 saving 18 SuperMart dashboard 16 tips for creating reports 24 title 21 viewing 16 working with 15–25 Data and Design page 118 data formats 49. 23 overview 17 proportional v. 22 designer 18 edit 24 HTTP v. 58 compared with table 44 drill to details 66 exclude 52.

74. Simple Domain 117 Simple Domain Topic 117 SuperMart Domain 117 typical uses 115 using a Domain for a report 67 drill to details 66 dynamic filters 59 E Edit Domain Topic wizard 76 Event Details page 165 exclude 52 expand group 65 expand members 51. 59 filters compared to input controls 59 filtering items in Domains 69 in Domain plug-in 110 in Domains 68 in the Ad Hoc Editor 59. 74. 69. 93 compared to filters 59 date 95 default values 30 display differences in dashboards 25 encouraging reuse of 25 in reports run from Domain plug-in 110 in the Ad Hoc Editor 42. 60 in Topics 59 using 60 Filters page 68 fixed sizing 24 Flash charts 29 folders 106 fonts 88 formats for report output 28 formatting reports 48 formulas 57 Fusion 29 G glossary 167 Groovy 156 groups adding to crosstab reports 64 expanding and collapsing 65 pivoting 42 switching 42. 123 joins 120. 52. 65 H help 9 hide scroll bars 22 hiding detail rows 49 Home page for end users 8 icons 9 I icons export report output 28 Home page 9 input controls 42 adding 90 and dashboards 17. 166 editing 135 effect of access grants 68. 25 and parametrized queries 59 cascading 33. 19. 65 filter pane 43. See Domain Topics. access grants and scheduled reports 34 Boolean comparison operators 69 defined 115 defined by a new design file 150 design file 139 designing a Domain 117–134 Domain plug-in for iReport 108. 98 check box 92. 59 limitations 25 mapped to custom URLs 20. 132 locale bundles 161 localization 161 presentation and physical layers 156 principal expressions 156 properties files 161 referential integrity 136 samples 117 saving as Topics. 66 exporting Domain designs to XML design files 140 external resources 88 F fields changing for Domain-based reports 71 in crosstab reports 64. 155 saving 73 Domains See also design files. 51. 22 pop-up page 31 175 .Index Domain Designer 118 Domain plug-in input controls 110 installing 166 parametrized queries 110 using in iReport 108 Domain Topics editing 76 effect of access grants 68. 69. 155 exporting designs to XML files 140 filtering data for a report 68 filters 69 Groovy 156 input controls 110 item sets 68. 61.

113 JasperAnalysis 9 Job Details pages 35 Jobs List page 34 jobs. 132 security 156 JRXML files and Domain Topics 73 and Topics 76 external resources 88 field names in 101 field names in Topics 77 in iReport 107 to create a new report 81. 101 localization of Domains 161 Locate Query page 84 logging in 8 M Main JRXML page 81. single controls in dashboard 17 multiply function 57 N Naming page 81 numeric ascending and descending 54. adding input controls 90 and dashboards 20. 127. 87 K keep only 52 L layouts of reports 43 Liferay 64 line chart 63 locale bundles 161 locales 8. joins in Domains 120. 87 Maps Pro 29 measures 65 messages about system events 165 Messages page 165 multiple v. 66 O online help 9 Oracle choosing schemas 125. 59 running a report with parametrized queries 30 passwords 8 percent of group parent functions 57. 25 and reports 40 in reports run from Domain plug-in 110 in the Ad Hoc Editor 42. 142 items element in design files 142 J JAR files 87. 50 preview 18 principal expressions 156 print view 17 176 .JasperServer User Guide running a report with input controls 30 testQuery 95 text 91 types 90 using 59 installing Domain plug-in 166 JasperServer plug-in 166 iReport adding resources 106 connecting to JasperServer 103 creating reports 105 Domain plug-in 108. See scheduling reports. 128 NVARCHAR2 127 schema name in design file 141 synonyms 127 P pages Data 67 Data and Design 118 Display 69 Event Details 165 Filters 68 Home page for end users 8 Input Control 31 Job Details 35 Jobs List 34 Locate Query 84 Main JRXML 81. 77. 166 JRXML files 107 limits on reports 78 repository 105. 88. 58 percent of total function 57 physical layer 156 pie chart 63 pivoting 42. 61. 65 plug-ins Domain 108. 166 JasperServer 166 portal 64 presentation layer 156 presentation mode 42. 107 running reports 108 item sets 68. 123 itemGroups element in design files 141. 87 Messages 165 Naming 81 Report 30 Resource List 82 Save Topic 74 Topics and Domains 67 parametrized queries See also filters.

58 round function 57 row-level security in Domains 157 rows percent of row group parent 53.Index properties. 69. 71 validating 86. 50 in the background 39 limits 78 on a schedule 35 S sample Domains 117 sample files AllAccounts. 79.jrxml 87 SalesByMonthDetail. access grants and scheduled reports 34 defining a job 35 defining schedules 34 editing a job 38 177 . in locale bundles 161 proportional sizing 23. 74. 66 sorting 62. Ad Hoc 41 adding 87 adding fields 46. 24 Q query resource 84 R rank function 57 recurrence calendar recurrence 39 simple recurrence 38 types 36 redo 42 referential integrity 136 report area 46 report output 42 Report page 30 Report Wizard 81 reports See also scheduling reports and running reports. 39.jrxml 87 sample reports Accounts 28 Freight 30 SalesByMonth 87 sample size 66 sample Topics demo for adhoc 45 foodmart data for crosstab 65 Simple Domain Topic 117 Save Topic page 74 scatter chart 63 scheduling reports See also reports and running reports. 108 sample size 66 sample Table report 45 saving in the Ad Hoc Editor 42. 105 crosstab layout and formatting options 65 crosstab vs. 103. 66 table vs. 107 main page 10 manager 117 searching 10 system messages 165 reset 17. 65 adjusting column width 49. 49 saving report output 28 selecting styles 48 setting data formats 49.jpg 80 SalesByMonth. crosstab and chart 43. 65 running 27. 66 summarizing rows and columns 47. 81 logo. 99 with input controls 30 repository in iReport 105. 47. table and chart 43. 71 designing in the Ad Hoc Editor 41 designing layouts 43 editing labels 47 editing reports created in the Ad Hoc Editor 48 effect of access grants 34. 155 export icons 28 exporting report output 28 Flash-enabled 29 formatting 48 limits 78 localization 101 report area 46 report output 28 report parameters 40 row and column groups 46. 50.jrxml 80. 58 row groups 46. 42. 66 based on Domains 78 based on JDBC data sources 78 chart layout and formatting options 63 creating 73. example 27. 68. 47. 74. 30 Flash charts 29 from iReport 108 in the Ad Hoc Editor 42. 20 resolution 24 Resource List page 82 resources adding to iReport 106 and Ad Hoc reports 77 and localizations 101 resources element in design files 141. 65 summarizing 47 running reports See also reports and scheduling reports. 87. 142 RGP 53.

56 uploading edited design files 150 URLs in dashboards 20 utilities iReport 166 messages 165 V validating reports 86. 20 special functions 57 standard controls in dashboards 17 styles 48 submit 17. See design files. 66 spacer 49 special content in dashboards 17. Simple Domain Topic 117 uploading 76 Topics and Domains page 67 TrueType fonts 88 U undo 42. 74 filters 150 principal expressions 156 row-level security 157 structure 155 select fields for Domain-based reports 71 showing detail rows 49 Simple Domain 117 Simple Domain Topic 117 single v. 61 T table reports adding fields 46 adjusting column width 49 and dashboards 24 and dataset size 42 column groups 46 compared with crosstab and chart 43. 69. 76 creating 76 defined 76 field names in 77 JRXML files 73 localization 77 parametrized queries 59 saving Domains as Topics. See Domain Topics. access grants and scheduled reports 34 as JRXML files 73. 54. screen sizes 24 search expression 13 search field 11 security files column-level security 159 effect of access grants 68. 55 undo all 42. 71 designing layouts 43 formatting 48 hiding detail rows 49 sample 45 selecting styles 48 setting data formats 49 showing detail rows 49 sorting 42. 69 fields and data in a Domain Topic 74 scheduled reports 34 W Widgets Pro 29 wizards Add New Domain 118 Choose Ad Hoc Data 67.JasperServer User Guide recurrence 38 viewing job schedules 34 schema element in design files 141 schemaLocation attribute in design files 142 schemas. multiple controls in dashboard 17 slice 52. 76 Domain Designer 118 Edit Domain Topic 76 Report 81 X XML Domain design files 140 xmlns attribute in design files 141 XSD of Domain design file 140 178 . 62 spacer 49 summarizing rows and columns 47 text label 17 themes. for charts 112 time series chart 63 time zones 8 tool bar 42 Topics See also Domain Topics. 20 subtract function 57 summarized vs. 66 sorting reports 42. 62. unsummarized charts 63 SuperMart 16 switch to column group 51. 99 version attribute in design files 141 viewing dashboards 16 fields and data in a Domain 68. 65 switch to row group 65 switching groups 42.

Sign up to vote on this title
UsefulNot useful