Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » BIRT » BIRT Dashboard(What is it?)
BIRT Dashboard [message #666452] Wed, 20 April 2011 13:48 Go to next message
nlajka - is currently offline nlajka -
Messages: 61
Registered: April 2011
Member
Hi,

I am just entering the world of BIRT and would like to find a bit more. First report is created, and I would like to make a dashboard that would contain it.

Previously I was using Business Objects, and there you would be using Xcelsius tool in order to create a dashboard file that you would export to Tomcat. You would be able to access it through your web browser (InfoView webapp) and be able to see it from where ever.

Is there a tutorial or documentation on creating a simple dashboard (as the first step) in BIRT? How to make it available to others? I went through Eclipse help, tutorials, documentation I could find. All I could find is related to Actuate (not free), but as I understand, BIRT should be for free and have dashboard capabilities.

Thank you in advance.
Re: BIRT Dashboard [message #666525 is a reply to message #666452] Wed, 20 April 2011 16:54 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

Actuate does a Dashboard Builder that is commercial. In BIRT open
source you can use tag libraries or the isreportlet url parameter to get
pieces of the report back.

For example look at the following url. The __bookmark parameter points
to a table that has a bookmark property(Properties tab in report) that
specifies "MyTable"; The __isreportlet=true instructs the viewer to
only return just that bookmark.

http://127.0.0.1:65158/viewer/run?__report=C%3A\work\workspa ces\2.6.1workspaces\BIRT+-+Reports\BirtEventHandlersReports\ book\script\bookmark.rptdesign&__format=html&__svg=f alse&__locale=en_US&__timezone=US%2FMichigan&__m asterpage=true&__rtl=false&__cubememsize=10&__re sourceFolder=C%3A\work\workspaces\2.6.1workspaces\BIRT+-+Rep orts\BIRT+Reports\resources&__dpi=96&-350160061& __bookmark=MyTable&__isreportlet=true

For tag libraries take a look at:
http://www.eclipse.org/birt/phoenix/deploy/viewerUsageMain.p hp#tags
and
http://birtworld.blogspot.com/2007/09/22-birt-tag-library-bu ilding-custom.html

Jason

On 4/20/2011 9:48 AM, nlajka wrote:
> Hi,
>
> I am just entering the world of BIRT and would like to find a bit more.
> First report is created, and I would like to make a dashboard that would
> contain it.
> Previously I was using Business Objects, and there you would be using
> Xcelsius tool in order to create a dashboard file that you would export
> to Tomcat. You would be able to access it through your web browser
> (InfoView webapp) and be able to see it from where ever.
>
> Is there a tutorial or documentation on creating a simple dashboard (as
> the first step) in BIRT? How to make it available to others? I went
> through Eclipse help, tutorials, documentation I could find. All I could
> find is related to Actuate (not free), but as I understand, BIRT should
> be for free and have dashboard capabilities.
>
> Thank you in advance.
Re: BIRT Dashboard [message #670938 is a reply to message #666525] Mon, 16 May 2011 09:40 Go to previous messageGo to next message
nlajka - is currently offline nlajka -
Messages: 61
Registered: April 2011
Member
Hi Jason,

thank you for your reply.
I could find it in Actuate but was wondering is there a way to do it in BIRT too.
How about ad hoc queries? is there a way to do that to through free BIRT?
Something like WEBI in Business Objects (I have Business Objects experience, so that is the reason why I'm using it as a reference).

Thanks!

[Updated on: Mon, 16 May 2011 09:44]

Report message to a moderator

Re: BIRT Dashboard [message #671026 is a reply to message #670938] Mon, 16 May 2011 15:02 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

In open source BIRT you can modify the query using a beforeOpen script
on the dataset. Can you give a more concrete example of what you need?

Jason


On 5/16/2011 5:40 AM, nlajka wrote:
> Hi Jason,
>
> thank you for your reply. I could find it in Actuate but was wondering
> is there a way
> to do it in BIRT too.
> How about ad hoc queries? is there a way to do that to
> through free BIRT?
>
> Thanks!
Re: BIRT Dashboard [message #671155 is a reply to message #671026] Mon, 16 May 2011 22:34 Go to previous messageGo to next message
nlajka - is currently offline nlajka -
Messages: 61
Registered: April 2011
Member
Jason,

when I say ad hoc I mean that users can drag and drop elements available to them through web bowser, execute the query, save or print data or save the report they just created. It's getting late overhere, so I will have to look at beforeOpen tomorrow.

Thank you!
Re: BIRT Dashboard [message #671330 is a reply to message #671155] Tue, 17 May 2011 14:41 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

You would need to modify the viewer to be able to do this or write your
own front end to the viewer/engine.

Jason

On 5/16/2011 6:34 PM, nlajka wrote:
> Jason,
>
> when I say ad hoc I mean that users can drag and drop
> elements available to them through web bowser, execute the
> query, save or print data or save the report they just
> created. It's getting late overhere, so I will have to look
> at beforeOpen tomorrow.
>
> Thank you!
Re: BIRT Dashboard [message #671344 is a reply to message #671330] Tue, 17 May 2011 15:08 Go to previous messageGo to next message
nlajka - is currently offline nlajka -
Messages: 61
Registered: April 2011
Member
Do you know of any documentation or can you point me to the samples or anything more regarding what we are trying to do?
What you mean by saying that we have to change the viewer?

Thank you for your help.
Re: BIRT Dashboard [message #671366 is a reply to message #671344] Tue, 17 May 2011 16:01 Go to previous messageGo to next message
Jason Weathersby is currently offline Jason Weathersby
Messages: 9167
Registered: July 2009
Senior Member

Would it work if you could define a parmeter that allowed users to
select columns? Take a look at this example:

Jason

<?xml version="1.0" encoding="UTF-8"?>
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.22"
id="1">
<property name="createdBy">Eclipse BIRT Designer Version
2.6.1.v20100902 Build &lt;2.6.1.v20100915-1750></property>
<property name="units">in</property>
<method name="beforeFactory"><![CDATA[importPackage(
Packages.org.eclipse.birt.report.model.api );
elementFactory = reportContext.getDesignHandle().getElementFactory()
var mytable = reportContext.getDesignHandle().findElement("mytable");
var colbinds = mytable.getColumnBindings( );


var parmcount = params["Columns"].value.length
for( i=0; i < parmcount; i++ ){
var colname = params["Columns"].value[i];
var cs1 = StructureFactory.createComputedColumn( );
cs1.setName(colname);
cs1.setExpression( "dataSetRow[\"" + colname + "\"]" );
colbinds.addItem( cs1 );

//second parameter is before(-1) or after(1)
mytable.insertColumn(0,-1);
//get first detail row
mydetail = mytable.getDetail( ).get( 0 );
//get first column and add detail data item
var tcell = mydetail.getCells( ).get( 1 );
var mydata = elementFactory.newDataItem( null );
mydata.setResultSetColumn( colname );
tcell.getContent( ).add( mydata );
//get header and add label
var myheader = mytable.getHeader( ).get( 0 );
tcell = myheader.getCells( ).get( 1 );
var mylabel = elementFactory.newLabel( null );
mylabel.setText( colname );//$NON-NLS-1$
tcell.getContent( ).add( mylabel );

}


rowHandle = mytable.getDetail().getContents().get(0);
cellHandle = rowHandle.getCells().getContents().get(0);
cellHandle.drop();
//Delete the header cell
rowHandle = mytable.getHeader().getContents().get(0);
cellHandle = rowHandle.getCells().getContents().get(0);
cellHandle.drop();
//delete the footer cell
rowHandle = mytable.getFooter().getContents().get(0);
cellHandle = rowHandle.getCells().getContents().get(0);
cellHandle.drop();
mytable.getColumns().get(0).drop();



]]></method>
<property name="iconFile">/templates/blank_report.gif</property>
<property name="bidiLayoutOrientation">ltr</property>
<parameters>
<scalar-parameter name="Columns" id="115">
<property name="valueType">static</property>
<property name="dataType">string</property>
<property name="distinct">true</property>
<list-property name="selectionList">
<structure>
<property name="value">ORDERNUMBER</property>
</structure>
<structure>
<property name="value">PRODUCTCODE</property>
</structure>
<structure>
<property name="value">QUANTITYORDERED</property>
</structure>
<structure>
<property name="value">PRICEEACH</property>
</structure>
<structure>
<property name="value">ORDERLINENUMBER</property>
</structure>
</list-property>
<property name="paramType">multi-value</property>
<property name="controlType">list-box</property>
<property name="mustMatch">true</property>
<property name="fixedOrder">true</property>
<structure name="format">
<property name="category">Unformatted</property>
</structure>
</scalar-parameter>
</parameters>
<data-sources>
<oda-data-source
extensionID="org.eclipse.birt.report.data.oda.jdbc" name="Data Source"
id="7">
<property
name="odaDriverClass">org.eclipse.birt.report.data.oda.sampledb.Driver </property>
<property name="odaURL">jdbc:classicmodels:sampledb</property>
<property name="odaUser">ClassicModels</property>
</oda-data-source>
</data-sources>
<data-sets>
<oda-data-set
extensionID="org.eclipse.birt.report.data.oda.jdbc.JdbcSelectDataSet "
name="Data Set" id="8">
<list-property name="columnHints">
<structure>
<property name="columnName">ORDERNUMBER</property>
<text-property
name="displayName">ORDERNUMBER</text-property>
</structure>
<structure>
<property name="columnName">PRODUCTCODE</property>
<text-property
name="displayName">PRODUCTCODE</text-property>
</structure>
<structure>
<property name="columnName">QUANTITYORDERED</property>
<text-property
name="displayName">QUANTITYORDERED</text-property>
</structure>
<structure>
<property name="columnName">PRICEEACH</property>
<text-property
name="displayName">PRICEEACH</text-property>
</structure>
<structure>
<property name="columnName">ORDERLINENUMBER</property>
<text-property
name="displayName">ORDERLINENUMBER</text-property>
</structure>
</list-property>
<structure name="cachedMetaData">
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="dataType">string</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="dataType">integer</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="dataType">float</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
</structure>
</list-property>
</structure>
<property name="dataSource">Data Source</property>
<list-property name="resultSet">
<structure>
<property name="position">1</property>
<property name="name">ORDERNUMBER</property>
<property name="nativeName">ORDERNUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">2</property>
<property name="name">PRODUCTCODE</property>
<property name="nativeName">PRODUCTCODE</property>
<property name="dataType">string</property>
<property name="nativeDataType">12</property>
</structure>
<structure>
<property name="position">3</property>
<property name="name">QUANTITYORDERED</property>
<property name="nativeName">QUANTITYORDERED</property>
<property name="dataType">integer</property>
<property name="nativeDataType">4</property>
</structure>
<structure>
<property name="position">4</property>
<property name="name">PRICEEACH</property>
<property name="nativeName">PRICEEACH</property>
<property name="dataType">float</property>
<property name="nativeDataType">8</property>
</structure>
<structure>
<property name="position">5</property>
<property name="name">ORDERLINENUMBER</property>
<property name="nativeName">ORDERLINENUMBER</property>
<property name="dataType">integer</property>
<property name="nativeDataType">5</property>
</structure>
</list-property>
<xml-property name="queryText"><![CDATA[select *
from orderdetails
where ordernumber = 10104]]></xml-property>
<xml-property name="designerValues"><![CDATA[<?xml
version="1.0" encoding="UTF-8"?>
<model:DesignValues
xmlns:design="http://www.eclipse.org/datatools/connectivity/oda/design"
xmlns:model="http://www.eclipse.org/birt/report/model/adapter/odaModel">
<Version>1.0</Version>
<design:ResultSets derivedMetaData="true">
<design:resultSetDefinitions>
<design:resultSetColumns>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERNUMBER</design:name>
<design:position>1</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERNUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERNUMBER</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRODUCTCODE</design:name>
<design:position>2</design:position>
<design:nativeDataTypeCode>12</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRODUCTCODE</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRODUCTCODE</design:label>
<design:formattingHints>
<design:displaySize>15</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>QUANTITYORDERED</design:name>
<design:position>3</design:position>
<design:nativeDataTypeCode>4</design:nativeDataTypeCode>
<design:precision>10</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>QUANTITYORDERED</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>QUANTITYORDERED</design:label>
<design:formattingHints>
<design:displaySize>11</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>PRICEEACH</design:name>
<design:position>4</design:position>
<design:nativeDataTypeCode>8</design:nativeDataTypeCode>
<design:precision>15</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>PRICEEACH</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>PRICEEACH</design:label>
<design:formattingHints>
<design:displaySize>22</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
<design:resultColumnDefinitions>
<design:attributes>
<design:name>ORDERLINENUMBER</design:name>
<design:position>5</design:position>
<design:nativeDataTypeCode>5</design:nativeDataTypeCode>
<design:precision>5</design:precision>
<design:scale>0</design:scale>
<design:nullability>Nullable</design:nullability>
<design:uiHints>
<design:displayName>ORDERLINENUMBER</design:displayName>
</design:uiHints>
</design:attributes>
<design:usageHints>
<design:label>ORDERLINENUMBER</design:label>
<design:formattingHints>
<design:displaySize>6</design:displaySize>
</design:formattingHints>
</design:usageHints>
</design:resultColumnDefinitions>
</design:resultSetColumns>
</design:resultSetDefinitions>
</design:ResultSets>
</model:DesignValues>]]></xml-property>
</oda-data-set>
</data-sets>
<styles>
<style name="report" id="4">
<property name="fontFamily">sans-serif</property>
<property name="fontSize">10pt</property>
</style>
<style name="crosstab" id="5">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="crosstab-cell" id="6">
<property name="borderBottomColor">#CCCCCC</property>
<property name="borderBottomStyle">solid</property>
<property name="borderBottomWidth">1pt</property>
<property name="borderLeftColor">#CCCCCC</property>
<property name="borderLeftStyle">solid</property>
<property name="borderLeftWidth">1pt</property>
<property name="borderRightColor">#CCCCCC</property>
<property name="borderRightStyle">solid</property>
<property name="borderRightWidth">1pt</property>
<property name="borderTopColor">#CCCCCC</property>
<property name="borderTopStyle">solid</property>
<property name="borderTopWidth">1pt</property>
</style>
<style name="table-header" id="43">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-footer" id="44">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-detail" id="45">
<property name="backgroundColor">#E6ECFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-group-header-1" id="46">
<property name="backgroundColor">#809FFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="table-group-footer-1" id="47">
<property name="backgroundColor">#809FFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="special-header" id="48">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">medium</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="crosstab-detail" id="49">
<property name="backgroundColor">#E6ECFF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">x-small</property>
<property name="fontWeight">bold</property>
<property name="color">#000080</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="crosstab-header" id="50">
<property name="backgroundColor">#6078BF</property>
<property name="fontFamily">"Arial"</property>
<property name="fontSize">small</property>
<property name="fontWeight">bold</property>
<property name="color">#FFFFFF</property>
<property name="paddingTop">0px</property>
<property name="paddingLeft">0px</property>
<property name="paddingBottom">0px</property>
<property name="paddingRight">0px</property>
</style>
<style name="mydata" id="51">
<property name="color">orange</property>
</style>
</styles>
<page-setup>
<simple-master-page name="Simple MasterPage" id="2">
<page-footer>
<text id="3">
<property name="contentType">html</property>
<text-property
name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property>
</text>
</page-footer>
</simple-master-page>
</page-setup>
<body>
<table name="mytable" id="52">
<property name="dataSet">Data Set</property>
<column id="59"/>
<header>
<row id="53">
<cell id="54"/>
</row>
</header>
<detail>
<row id="55">
<cell id="56"/>
</row>
</detail>
<footer>
<row id="57">
<cell id="58"/>
</row>
</footer>
</table>
</body>
</report>


On 5/17/2011 11:08 AM, nlajka wrote:
> Do you know of any documentation or can you point me to the
> samples or anything more regarding what we are trying to
> do?
> What you mean by saying that we have to change the viewer?
>
> Thank you for your help.
Re: BIRT Dashboard [message #671435 is a reply to message #671366] Tue, 17 May 2011 22:07 Go to previous message
nlajka - is currently offline nlajka -
Messages: 61
Registered: April 2011
Member
Hi Jason,

Thank you for this example. It explained a lot to me.
I tried it and I can see what you mean. I am sure that something like this can be useful.
What I had originally on my mind was to have a "palette" of available tables for users that they can drag and drop on the canvas, run the report and print data. They would be able to define parameters and access data depending on their user rights in the system.

Thank you for your help!
Previous Topic:Subreport headings not displaying when 0 rows
Next Topic:Replace Data Set Columns Dynamically Based on Parameter
Goto Forum:
  


Current Time: Fri Sep 19 14:07:03 GMT 2014

Powered by FUDForum. Page generated in 0.02252 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software