How to Create a BIRT Report Library

2011
Maximo Query with
Open Source BIRT
Sometimes an organisation needs to provide certain users with simple query tools over
their key applications rather than complete access to use the application. In this case it
may be appropriate to create your query tool using BIRT and format the output to
resemble the original application. This is part two of a two part series.
Paul Bappoo
[email protected]
http://www.BirtReporting.com
February 2011
CONTENTS
How To Contact The Author ........................................................................................................................... 4
Introduction .................................................................................................................................................... 5
What You Will Need ....................................................................................................................................... 6
The Toolbars ................................................................................................................................................... 7
The Java Server Page .................................................................................................................................... 10
The Style Section .......................................................................................................................................... 11
The Body Section .......................................................................................................................................... 13
The BIRT Parameter Page ......................................................................................................................... 14
The Report Parameter .............................................................................................................................. 15
The Lookup Button ................................................................................................................................... 16
The Report Frame ..................................................................................................................................... 16
Putting it All Together .................................................................................................................................. 17
Conclusion .................................................................................................................................................... 19
More Information ......................................................................................................................................... 20
Paul Bappoo –Query Maximo with Open Source BIRT (Part 2)
© COPYRIGHT 2011 by Paul Bappoo, all rights reserved.
This guide is furnished under license and may be used or copied only in accordance withthe terms of such license. The content of this
guide is furnished for informational use only, is subject to change without notice, andshould not be construed as a commitment by the
author. The author assumes no responsibility or liability for any errors or inaccuraciesthat may appear in this guide.
Except as permitted by such license, no part of this publication may be reproduced, stored in a retrieval system or transmitted, inany form
or by any means, electronic, mechanical, recording or otherwise, without the prior written permission of the author.
All product and company names are trademarks or registered trademarks oftheir respective holders.
HOW TO CONTACT THE AUTHOR
Email: [email protected]
Web Site: http://www.BirtReporting.com
Paul Bappoo is the author of BIRT for Beginners (which is available in paperback from BIRTReporting.com,
Amazon and Barnes and Noble amongst others) and the BIRT for Maximo Self Study Workbook, also
available from BIRTReporting.com. He has been an international technical software consultant and
involved with computers for over 30 years. Paul has an interest in BIRT reporting, enterprise application
integration, automated software testing, computer based training and enterprise system implementation.
Paul runs the BIRT User Group UK and is a member of the BIRT-Exchange Advisory Council. He would be
delighted to hear from you with your tips, tricks and stories about your usage of BIRT. If you have a
question, a need for training or consulting or great tip to share with the community then drop him a line.
INTRODUCTION
In the first part of this guide we learned how to format a BIRT report so that the main body of the
report resembled the Maximo user interface. However there are a few more things that we need
to do to finish off the look completely.
Firstly we need to change the background colour of the tool bar and navigation bar of the BIRT
report, so that the colour scheme fits better with the rest of the report. Next we need to provide
the user with a search facility so that they can filter the report to a specific record. Finally we need
to apply the header image to the top of the report.
Notice in the screenshot below, how the header image and the search box site ABOVE the actual
report. In operation, the user is able to enter a PO Number (or select one from a drop down list)
and the report refreshes and displays the new data in the lower section of the screen.
This is achieved by embedding the report design in a Java Server Page, giving us enormous
control and flexibility over our report designs.
The complete design files and all of the image files that were used in the creation of this report
are available free of charge to readers of my book “BIRT for Beginners” or readers of my “BIRT
for Maximo Self Study Workbook”. Just visit the readers area of my web site:
http://www.birtreporting.com/ReadersEntryPage.html
WHAT YOU WILL NEED
In order to create the “look and feel” of this report you will need some graphic files. You can
create these yourself with any image editing software or if you are a reader of my books then you
can download the files from my web site.
The files are as follows:
MXReportHeader.jpg
This is an image I created to sit at the top of all the reports and resembles the Maximo header
image. Of course you can create your own image to resemble your corporate reporting style or
just use mine.
MXArrow.jpg
This is the arrow that sits to the left of each detail line of the report. In this example we are
displaying purchase order lines. In the Maximo application this image would be active and when
clicked on it would reveal more details about the parchase order line. In this case it is a static
image, but could easily be made into a hyperlink which would run a secondary report to show the
line details.
MXFindBG.jpg
This image is the background to the search toolbar, that sits just beneath the main report header.
It is a thin sliver of an image and the report design uses standard HTML functionality to repeat it
to fill the entire width of the search bar.
MXLookupBtn.gif
This image is the hyperlink that actually runs the report, once the user has selected the PO
Number that they want to view.
You will also need a copy of the open source BIRT Report Designer and since this report uses a
Java Server Page (JSP), you will need something with which to create and edit one of those.
Luckily the BIRT designer is Eclipse based and so forms an excellent choice for JSP editing too.
For details on how to download and intall the BIRT Designer please see my report: The Complete
Getting Started Guide to BIRT which is available for free from the members area of
www.BIRTReporting.com.
THE TOOLBARS
The standard BIRT viewer has three areas which appear at the top of each report. The title area,
which contains a title for the viewer session, by default “BIRT Report Viewer”, the toolbar section
which contains a few buttons and the navigation bar which allows users to move between the
pages of the report.
Compare this to the header of the report we are creating:
You can see that we have removed the title bar completely, changed the background colours of
the tool bar and navigation bar and added the search box and main title banner.
To modify the background colours of the toolbars we need to edit the stylesheet that BIRT uses to
format these. Of course, there are two style sheets in use, one for when you preview reports in
the designer environment and one for when you place your reports into production in the Tomcat
server environment. The style sheet we are looking for is in a file called “style.css”and it is
located in the following locations for the designer and for Tomcat respectively. Obviously this path
may differ slightly on your computer depending on the BIRT version and preferences you
selected at installation.
Designer Preview Viewer
C:\BIRT\plugins\org.eclipse.birt.report.viewer_2.6.1.v20100913\birt\webcontent\birt\styles
Tomcat Production Viewer
C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\BIRTViewer\webcontent\birt\styles
In the BIRT designer, select File / Open File and open up the CSS file that you wish to work on.
With the file open, scroll down until you find the following section:
/**********************************************************************
********
* Toolbar
***********************************************************************
*******/
.birtviewer_toolbar
{
height:26px;
background-color:#999999;
font-family:Verdana;
font-size:8pt;
border-top-width:1px;
border-top-style:solid;
border-top-color:#808080;
border-bottom-width:1px;
border-bottom-style:solid;
border-bottom-color:#808080;
}
/**********************************************************************
********
* Navigation bar
***********************************************************************
*******/
.birtviewer_navbar
{
height:26px;
background-color:#CCCCCC;
font-family:Verdana;
font-size:8pt;
border-left-color:#808080;
border-left-style:solid;
border-left-width:1px;
}
Here it is seen within the editor:
Set the colours as per the above and save the changes, then look at the difference in your report.
THE JAVA SERVER PAGE
The Java Server Page (JSP) acts as a container for our report and allows us to add the
parameter requester and a page header, plus it allows us to tinker with the styling to create the
effect we are after.
Start by creating a new file, I called mine “POList.jsp” and open it up in Eclipse. Then enter the
following structure:
<html>
<head>
<styletype="text/css">
</style>
</head>
<body>
</body>
</html>
This provides us with two main sections in which to enter our code, the style section, which will
contain information about how the elements of the body section are displayed and the body
section which will contain the functional components.
THE STYLE SECTION
Here is the entire style section:
<styletype="text/css">
.class1
{
height:45px;
width:1117px;
background: url('FadeBG.jpg') center no-repeat;
color: #000000;
position:absolute;
top: 0px;
left: 0px;
}
.class2
{
height:45px;
width:1116px;
background-image: url('MXFindBG.jpg');
background-repeat:repeat-x;
position: relative;
top: 29px;
left: -9px;
font-family:"Arial";
font-size: 12px;
}
.class4
{
position: absolute;
top: 5px;
left: 20px;
}
.class5
{
position: absolute;
top: 76px;
left: 1px;
width:1116px;
}
</style>
When we add elements to the body section we will reference one of the styles from the style
section for each element we add, this will cause the added element to adopt the style defined in
the style section. Lets take a look at the style elements to see what they do:
height:45px;
Sets the height of the item being defined
width:1117px;
Sets thewidth of the item being defined
background: url('FadeBG.jpg') center no-repeat;
Sets the background image of the item being defined, also sets it to centre on the page
and not to repeat.
color: #000000;
Sets the foreground colour of the item being defined
position:absolute;
Sets the item to respect the positions defined below relative to the top left of the
browser window. You can also specify “relative” which will set the position relative to
the containing object.
top: 0px;
Sets the top position of the item being defined
left: 0px;
Sets the left position of the item being defined
background-repeat:repeat-x;
Sets the image to repeat on the x axis only
font-family:"Arial";
Sets the font
font-size: 12px;
Sets the font size
THE BODY SECTION
<body>
<divclass="class1">
</div>
<divclass="class2">
<%@tagliburi="/birt.tld"prefix="birt"%>
<birt:parameterPage
id="report1"
name="page1"
target="ReportFrame"
reportDesign="MaximoReports/POList.rptdesign"
isCustom="true"
showTitle="false"
showToolBar="true"
showNavigationBar="true"
frameborder="false"
forceOverwriteDocument="true"
pattern="frameset">
</div>
<divclass="class4">
<tr>
<td>Find:</td>
<td>
<birt:paramDef
id="629"
name="PONum"
cssClass="class3">
</birt:paramDef>
</td>
</tr>
<inputtype="image"src="MXLookupBtn.gif"name="MXLookup"width
="15"height="14">
</birt:parameterPage>
</div>
<divclass="class5">
<IFRAMEWIDTH=100%HEIGHT=900"FrameBorder="0"NAME="ReportFram
e">
</IFRAME>
</div>
</body>
The first thing to notice about this is that the body is broken down into divisions, a division
(indicated by the <div> and </div> tags is typically a region on the eventual output.
In our output we have three main regions, the header banner, the parameter requester and the
main body of the report. We also provide the parameters to the BIRT report and these are
contained in another division.
Notice also that each division has the name of a class built right into it, this is how we cause the
content of the division to be styled based on the style section.
So, where we have
<divclass="class1">
and the class1 style set to pull in the FadeBG.jpg image
background: url('FadeBG.jpg') center no-repeat;
That causes the image to be displayed at the top of our jsp.
THE BIRT PARAMETER PAGE
id="report1"
name="page1"
target="ReportFrame"
reportDesign="MaximoReports/
POList.rptdesign"
isCustom="true"
showTitle="false"
showToolBar="true"
showNavigationBar="true"
frameborder="false"
forceOverwriteDocument="true"
pattern="frameset"
Creates and ID for the report
Creates a name for the report
Sets the area of the page where the report will
display
Sets the report design to use
Tells the report to use a custom parameter page
(this page)
Sets the report title to not display
Sets the toolbar to display
Sets the navigation bar to display
Sets the border for the report to not display
Sets the report to overwrite the temporary copy on
the server which each run
Sets the report to appear inside a frame.
Using these parameters we are essentially telling BIRT that this page is going to replace the
default parameter page and we are setting a few display controls.
THE REPORT PARAMETER
Rather cleverly, we can reference the parameter inside the BIRT report that we are about to call.
<birt:paramDef
id="629"
name="PONum"
cssClass="class3">
This will cause the jsp to pick up the parameter definition from the report design and display it on
the screen. So if, as in our case, you have created a parameter which provides a drop down
selection of records from the database, this will automatically be passed into the jsp and
displayed as a drop down select list.
The key thing you need to do to ensure this works is to use the same ID and Name as the report
parameter definition in your BIRT report.
Highlight the report parameter within BIRT and look at the properties – the Name and ID will be
revealed!
THE LOOKUP BUTTON
After entering the parameter value the user will press the “lookup” button to run the report and
display the content. The following code creates the button and links it to the appropriate image.
<inputtype="image"src="MXLookupBtn.gif"name="MXLookup"width="15"height=
"14">
THE REPORT FRAME
You will recall that, in the report parameters section we defined the target for the report as
follows:
target="ReportFrame"
The following piece of code creates an iframe on our page which is where the report content will
be displayed.
<divclass="class5">
<IFRAMEWIDTH=100%HEIGHT=900"FrameBorder="0"NAME="ReportFram
e">
</IFRAME>
PUTTING IT ALL TOGETHER
Now all you need to do is deploy the jsp, the rptdesign and the image files to your Tomcat web
server directory and load the jsp into a browser with a URL like this:
http://localhost:8888/BIRT-Viewer/MaximoReports/POList.jsp
At first the jsp appears, with no report content so just select or enter your parameter value and hit
the run button. You should be rewarded with a rather nice looking report, which you can re-run for
different parameters simply by selecting or entering another and hitting the button again.
CONCLUSION
I hope you enjoy creating this Maximo styled report and I hope it is useful for you. If you have any
difficulties please swing by the forum at BIRTReporting.com and post your query there. Our
members are a helpful bunch and I pop on there myself from time to time so there is a good
chance you will find a solution to your issue.
Also, don’t forget to become a member of BIRTReporting.com, it’s free to join and you will
automatically be alerted when future tutorials become available. Plus you will get free access to
the members area where you can find many other tutorials like this.
Finally, don’t forget that if you are a reader of either of my two books, “BIRT for Beginners” or
“BIRT for Maximo Self Study Workbook” then you can download the source files for this tutorial
from the readers area. This will allow you to use a pre-prepared BIRT report as a template for
creating these examples and any future Maximo styled reports that you need.
MORE INFORMATION
This book, written by Paul Bappoo, the founder of the
BIRT User Group UK presents an overview of the
open source BIRT tools and the commercial
enhancements available from Actuate, including...
Eclipse BIRT Designer, Actuate BIRT Designer,
iServer Express, Interactive BIRT viewer, Actuate
BIRT Studio, BIRT Spreadsheet Designer
With walkthrough tutorials of the main features,
including screenshots, from installation through data
selection to formatting reports and fully graphical
Flash charting this book will have you creating your
own reports from scratch in only a couple of hours.
If you are too busy to spend days learning software
and want tangible results fast then BIRT For
Beginners is for you.
When you buy the book you will automatically get
access to the readers section of my web site which
includes BIRT report request forms that you can
distribute to your end users, extra chapters in PDF
format and an ever growing library of reports,
tutorials, reviews, tips & tricks.
Buy the book and get free membership of BIRT Reporting and the BIRT User Group UK at:
http://www.BIRTReporting.com
Please feel free to share this address with your colleagues and inspire them to use BIRT to
create great looking reports.
I look forward to your feedback so please feel free to send me an email and let me know how you
get on with BIRT, provide feedback on this guide or share your tips and tricks.
Paul Bappoo
[email protected]