Analytics

Build Your Own Dashboards with BIRT and Google Gadgets

In version 11 Actuate has introduced a new dashboard application (called BIRT 360) that enables you to create your own dashboards without requiring IT intervention. This application is built as an extension to end user browser application (called Information Console) for BIRT Server and is based on the popular Google gadget framework. This allows third party Google Gadgets to be used with BIRT repots to create visually rich mashups.Depending on the type of data and level of user interaction you want to provide, these dashboards could be operational or analytical. Operational dashboards are typically suitable for continuous monitoring of KPI’s and supports interaction and drill down on individual KPI to answer any specific business question. Analytic dashboards are suitable for visual data exploration combining a set of filter and slicer gadgets with a set of KPI’s that you could use to uncover trends and perform root cause analysis.Both type of dashboards enables you to create visually rich, dynamic dashboard using a simple web browser interface. Here is a summary of some of the key features offered in the dashboard along with a quick video for each: Creating and sharing dashboards – The dashboard frame allows you to use predefined dashboards, create your own dashboards and share with other users. See Video Create and sharing BIRT Gadgets – You can build new gadgets and add to the library so that they can be discovered and consumed by other users of the system. See Video Using data visualization gadget – These gadgets allows you to visualize your data as charts, gauges, tables and crosstab. See Video Data selection gadgets – These gadgets let you source input parameter data from BIRT Objects and present it in the form of lists, combo box, check box, radio button, slider, calendar etc. You can have other gadgets to update information based on selections made in these gadgets. See Video Parameter gadget – This gadget displays parameter as a new selector gadget and is derived directly from the parameters defined in BIRT report. See Video Import third party gadgets – BIRT 360 is a browser based zero foot print application based on the popular Google Gadget framework that enables it to leverage third party Google Gadgets to create mashup applications. See Video Mashup gadgets – You can link gadgets in the dashboard with other gadgets and create compelling visualizations.See Video Interact with a gadget – You can maximize the gadget to interactively analyze and modify BIRT reports within the browser environment. See Video Download a free evaluation copy of Actuate 11 and get a 360 degree view of your data in dashboard.Ashwini Verma 

Read More

Last Week in the Forums: Using Both the BIRT XLS and Tribix XLS Emitters, Sorting the x-axis of a Chart When You Have y-series Grouping

This blog series takes a look back at the past week in the forums, recalling how active they were and highlights some of the questions asked that seem to frequent the forums or other interesting topics. Forum traffic continues to be pretty steady. Thanks to all those who asked and helped answer questions! Community contribution is a big part of what makes the BIRT-Exchange community great!One interesting question this week was about being able to use the standard BIRT XLS emitter and the Tribix XLS emitter, both. The poster had one report they wanted to run with the standard emitter and one that worked better being run with the Tribix emitter. The solution to this is to just make sure that the two emitters of the same type (XLS), have different emitter ID’s. Then it’s just a matter of calling the one you want.Another question that was asked is a fairly regular issue. It’s about sorting the x-axis of your chart by another field when you have y-series grouping. When you have optional y-series grouping, BIRT requires that the x-axis is sorted by the field in the x-axis. It doesn’t allow you to choose another field. A workaround for this is to create a “Sort” field in a computed column that orders the columns how you want, then use this as your x-axis value. You can then just replace the “rank” value in the x-axis label with the original values you had.The last question for this week involves coloring/highlighting only one series in your chart. The poster had a chart with a bar and a line series. When they were defining a custom fill color for their bar series, the line was also getting colored. The solution here is to check the series name before telling BIRT to change the color. This allows you to color or highlight values from only the series you’re wanting to highlight.Again, this is just a small sample of what went through the forums this past week. For more questions and answers that have been posted, check out the forums. As always, if you have a question, feel free to ask it, and if you see a question you know the answer to or have a similar experience to, feel free to post an answer or comment. 

Read More

Using Flash with BIRT Yet?

I encourage you to take a look at the lead article in this month’s free on-line issue of Flash & Flex Developer’s Magazinewhere Jason Weathersby and Dan Melcher provide a great overview on how to integrate Flash objects with Actuate BIRT in your BI web applications. Among many other features, Actuate’s BIRT Designer Pro comes with hundreds of pre-defined Flash components and you can easily add your own. If you haven’t tried it before, download a free trial and check it out. 

Read More

Last Week in the Forums: Marker Lines, Custom Hyperlinks

This blog series takes a look back at the past week in the forums, recalling how active they were and highlights some of the questions asked that seem to frequent the forums or other interesting topics. Forum traffic started off slow last week, but picked up a lot through the rest of the week. Thanks to all those who helped answer questions!The first post from last week that I’ll talk about in this blog was about adding a “threshold line” to a chart. The solution to this was simple, but if you’re new to BIRT, you don’t always know the features available. In the chart editor, under the “Format Chart” tab, in the “Y-Axis” section, you’ll see a “Markers” button that allows you to add marker lines/ranges to your chart.The next question I’ll cover was about adding attributes to label elements for use with a hyperlink. The poster wanted to have hyperlinks to a label and use it as a drill through to the same report with different parameters. They also wanted to give the label attributes so they could use keyboard shortcuts. The solution to this was to use a text box for the label. The poster was then able to use HTML script tags to find the appropriate elements and set the attribute.The last post I’ll cover for this week is one about selecting one parameter and having the other parameter disable. The answer given was that this was not a feature of BIRT but that the poster might be able to create such functionality with a custom JSP parameter page. The poster was also told that requesting an enhancement for this feature in future versions might be something to be done on this subject. If anyone has something like this working by custom JSP or a way to do it with the existing BIRT tools, your input would be appreciated!Again, this is just a small sample of what went through the forums this past week. For more questions and answers that have been posted, check out the forums. As always, if you have a question, feel free to ask it, and if you see a question you know the answer to or have a similar experience to, feel free to post an answer or comment. 

Read More

Last Week in the Forums: Page Number Issue, New to Crosstabs

This blog series takes a look back at the past week in the forums, recalling how active they were and highlights some of the questions asked that seem to frequent the forums or other interesting topics. Forum traffic again stayed pretty steady. Community support answering questions continues to be good. Thank you BIRT-Exchange community!The first question I’ll cover this week is about an issue with page numbering in PDF in 2.6. The poster’s issue happened when they upgraded from 2.5.2 to 2.6.0. They had been leaving the default page break at 40 and their pages usually had around 23 rows per page. In 2.5.2, this worked for them. When the rows stopped fitting on the PDF page size, the page number was incremented and it worked as expected. When they upgraded, the page number didn’t increment. What ended up happening was that the report was never incrementing the page, because they never reached the page break interval number. When they tried setting it to 20, the pages incremented normally, but it didn’t work perfect for them this way because of the setup. The poster was asked to file a bug for this new change in the way page breaks are handled in 2.6.0.The next post I’m going to include this week is all about crosstabs. The poster asked several questions regarding crosstabs, including row numbering, alternate row highlighting, removing crosstab cell lines, and adding extra columns. These questions were all answered with examples and explanations that can be seen within the thread.The last question I’ll cover this week is about dynamic highlighting in a chart. The poster was looking to set dynamic colors for certain values in the chart. The answer was to use fill.set(R,G,B) inside the beforeDrawDataPoint() function to set the color. The poster then discovered that they’d have to reset the translucency in script when they set a custom color for “highlighting” certain values.As I say every week, this is just a small sample of what went through the forums this past week. For more questions and answers that have been posted, check out the forums. As always, if you have a question, feel free to ask it, and if you see a question you know the answer to or have a similar experience to, feel free to post an answer or comment. 

Read More

Joining Data Sets Has Never Been So Easy!

Till now if you had to create a union of two or more data sets, your only choices were to either handle it outside of BIRT or use scripted data source approach (see here). That approach works but has a number of disadvantages like data redundancy besides being slow and required coding knowledge. With version 11 of Actuate BIRT you can now create union of two or more data sets(derived from same or different data sources) easily using a simple and intuitive GUI that results in a data set quite similar to UNION construct in SQL. Here is a how to video regarding this new features.Actuate 11 BIRT also enhances the different ways you can join data sets. The supported join options are inner join, full outer join, left outer join, right outer join and side by side join. Here is a quick demonstration video on how this is done.The join conditions can also be based on multiple columns for cases where the joined tables contain composite primary keys. Download a free evaluation copy of Actuate 11 and test drive these extensive merge and join options to create data sets for your BIRT project.Ashwini Verma 

Read More

Last Week in the Forums: Selective Crosstab Column Total, Problems with DataSet Parameter Binding When Using a Joint DataSet

This blog series takes a look back at the past week in the forums, recalling how active they were and highlights some of the questions asked that seem to frequent the forums or other interesting topics. Forum traffic remained steady. Not as many new questions last week, but lots of conversations going about other issues. Again, thank you community members for answering questions. It is a great help!The first question for this week was about adding only values from certain columns of a crosstab and not including other column values that are present in the crosstab. The solution to this was to grab the column dimension name and figure out if it is one that you want to add, if so you add the value from the crosstab cell to your running total you’re keeping in a variable. You then can display this variable in the “total” area at the end of the row. An example is in the thread, but I will make a devShare entry to use the classic models database and link it in here when it’s done.The next question I’ll cover is about a problem with linking the dataSet parameter of an inner table with a row value of the outer table if the inner table uses a joint dataSet. The question asker was using BIRT 2.5.0. I tried recreating their issue with a simple table and embedded table tied to a joint dataSet and it worked fine. The problem happened when I had another report item tied to the joint dataSet. When this was done, the dataSet parameter binding did not refresh, it returned the first set of values every time. I then went and tried this same thing in BIRT 2.6.0 and it worked as expected, so the end result was the question asker had to upgrade to the newer version to get around this apparent bug.The last item I’ll cover this week is a question where the poster was getting an extra, blank page at the end of their report. What was figured out was that the poster had defined a value for the grid height that was too large for the usable area of the page. This resulted in the second, blank page. So, if you ever end up with a blank page at the end of your report, be sure to check your heights/widths of your report items and also remember to take into account the padding that there might be.As I say every week, this is just a small sample of what went through the forums this past week. For more questions and answers that have been posted, check out the forums. As always, if you have a question, feel free to ask it, and if you see a question you know the answer to or have a similar experience to, feel free to post an answer or comment. 

Read More

Scripting Becomes Easier in BIRT!

BIRT in Actuate version 11 brings in a number of scripting improvements making the task of report development even easier and more effective. Here is a list of some of these improvement and a short description of each. EasyScript scripting language – Actuate BIRT in version 11 introduces a new scripting language called EasyScript that does not require any knowledge of JavaScript. EasyScript syntax is very similar to Excel functions and it comes with an expression builder interface that makes scripting easy. The expression builder provides in-context in-context prompts to enables you to quickly select the function or column that is needed. EasyScript expressions are converted to live formulas when the report is exported to the Excel format. See VideoReport Variables and Page Variables – You can define these new type of variables in the data explorer view. The main difference between them is that Report Variables are evaluated once when the report is complete whereas page variables are evaluated at the time a page is written. Either type can be placed on the master page by selecting the Palette View and dragging it from the Variables node. These variables can also be accessed though the report context which provides getter and setter methods:reportContext.getPageVariable()reportContext.setPageVariable()Scripting support for Flash Charts and gadgets – Actuate 11 adds support for scripting in Flash charts and gadgets. You can now invoke JavaScript code at various entry points to dynamically modify the data and the display of the Flash charts and gadgets in your BIRT reports.Scripting for Default Parameter Values – In Actuate 11, you can use JavaScript or EasyScript to specify the default values of parameters. In addition to the default value expression shown above, two new events have been added to parameters that will allow you to set the default selection list and values for a parameter within the script editor.Duration Script Functions -In Actuate 11, a new set of duration functions have been added to the set of out-of-the-box BIRT functions. The duration data type is a primitive data type for XML content and is used to represent data related to time intervals. These duration functions will enable you to retrieve duration data from XML content, perform aggregations on them and use them in BIRT reports.You can download Actuate 11 BIRT products for evaluation from here.Ashwini Verma 

Read More

Last Week in the Forums: Custom Rankings, Opening Reports from Different Versions, Cool Report Designs

This blog series takes a look back at the past week in the forums, recalling how active they were and highlights some of the questions asked that seem to frequent the forums or other interesting topics. The forums seemed to have picked up a little heading towards the close of the 3rd quarter. I would imagine they’ll keep it up until the holidays get here. As it has been recently, community participation in answering forums is up, keep it up folks! We thank you for the help!The first topic I’ll cover this week is about creating a custom ranking. The question was how to create a ranking that would count “ties” as the same ranking and then continue on. For example, 6, 5, 5, 4, 3 would be ranked 1, 2, 2, 3, 4. They wanted to do this inside BIRT and not in the query. The solution provided was to use a pair of variables to keep track of the last ranking and the last value and only to increment the ranking if the value is different than the last. There is an example in the thread.The next topic I’ll cover is about how to open BIRT reports that are made in a different version than the version you’re using. The answer to this is that most reports from an older version will open in a newer version. You may want to check the report in the new version for any errors before just deploying an old report to a newer installment as there are deprecated functions and changes to functionality that cause some issues sometimes. If you’re trying to take a report from a newer version to an older version, BIRT will tell you that the report won’t open because it was made with a newer version. In many cases, you can open the XML Source and change the version information at the top to match the version information of your older version and it’ll open. Again, you may run into issues where features have changed between versions that’ll have to be corrected before it works correctly.Lastly, I’m going to cover another topic that was pinned to the top of the “designing” forum last week and the week before. It was a thread started to showcase some of the neat BIRT reports that have been created by the community. Users were asked to take a screenshot of a report they’ve made or seen and attach it in the thread. There wasn’t much response, but I thought I’d mention it to see if we couldn’t get some more cool reports shown. If posts increase, I’ll gladly pin it to the top of the forum again for all to see and comment on.As I say every week, this is just a small sample of what went through the forums this past week. For more questions and answers that have been posted, check out the forums. As always, if you have a question, feel free to ask it, and if you see a question you know the answer to or have a similar experience to, feel free to post an answer or comment. 

Read More

Still Using Scripted Data Source for Your POJO’s?

Actuate BIRT has a new ODA in version 11 that will make it easy to use plain old java objects as a data source.The setup involves simply pointing ODA to the java library containing POJO’s and collection classes in a relative or absolute location.Once configured you can map public getter methods in Java classes to (whose return type is not void) to data set columns. You can also choose to implement a very simple access interface(IPojoDataSet) that helps working with a collection of these objects to create a data set with multiple rows. Here is a quick video that shows how this is done.The new ODA also allows you to directly use POJO objects stored in application context. The collection object stored in context can be in the form of java.util.Iterator or java.util.Collection or java.lang.Object[] and is accessed via application context key specified in your data set definition in BIRT design. POJO’s are already popular with data persistence frameworks like Hibernate, Toplink and with this new connector you will be able to leverage these data objects without any extra coding effort. Download the latest release of Actuate to test drive this new ODA.Ashwini Verma 

Read More

Last Week in the Forums: Maximum Columns for One Sheet in Excel Output, Can You Use More Than One Master Page For a Single Report Element

This blog series takes a look back at the past week in the forums, recalling how active they were and highlights some of the questions asked. The forums stayed pretty steady this week as far as amount of questions asked. Many community members are available offering solutions to questions. The following are a few questions that were asked last week.This question was about exporting to only 1 sheet in XLS. The person was having issues with their XLS output being split over multiple sheets and they wanted it to go to one only. They were having up to 365 columns. The answer to this was that the report had to be split over more than one sheet because Excel XLS file format only supports 255 columns, so this was not a BIRT issue.The next question I’ll cover is about using multiple master pages within one table. The question asker wanted to have the first couple pages of their table be in portrait layout and the rest of the pages to be in landscape. The answer was that this is currently not a feature of BIRT. A single element can only have one master page, so to split it like this, two tables would have to be used with filters to limit the correct data to each table.The last question I’ll cover this week is one about creating charts from the data in a list of CSV files. The issue was that the person had a “directory” of CSV files that they wanted to include in a list in their report and under each filename they wanted a couple charts for each file. So they wanted a table or list attached to the “directory” of flat files and in that table they wanted each row to access the data from the different flat file to create their charts. The solution to this was provided in an example in the devShare by Jason Weathersby.This is just a small sample of what went through the forums this past week. For more questions and answers that have been posted, check out the forums. As always, if you have a question, feel free to ask it, and if you see a question you know the answer to or have a similar experience to, feel free to post an answer or comment.

Read More

Last Week in the Forums: Hiding a Crosstab Cell, Showing the Average in a Chart

This blog series takes a look back at the past week in the forums, recalling how active they were and highlights some of the questions asked. The forums seemed to pick up a little last week in comparison to the week before. Many different members posted questions and there were several community members providing answers! Below is a few questions that were asked in the past week.One question was asked about hiding unwanted crosstab header cells. They didn’t need the labels from the column dimension of the crosstabs, but when they hid them, the crosstab cell remained. The solution was to set the advanced “display” property to “no display”. A full description of this solution can be seen in the thread or in the devShare.Another question was about showing an average line in a chart. The answer given for this was to create a secondary axis to display the average on, then create a second series for the chart with the same y-axis value as the first series, and then set the aggregate expression for the second series to “average”. An example showing the setup for this can be found in the forum thread.The last thread I’ll cover this week was one asking about conditional data alignment within a table. The solution to this is to set the style in the element’s onCreate script using the line, this.getStyle().textAlign = “position”;. The different options for “position” are “Right”, “Left”, and “Center”. This statement can be put inside a condition to align a row or column differently based on the value of a field. An example report showing this can also be found in the thread.This is just a small sample of what went through the forums this past week. For more questions and answers that have been posted, check out the forums. As always, if you have a question, feel free to ask it, and if you see a question you know the answer to or have a similar experience to, feel free to post an answer or comment. 

Read More

Last Week in the Forums: Running Sum in a Crosstab, Display Part of a String in a Data Field

This is the second week of a new series of blog posts recalling what happened in the forums in the past week. Last week was a relatively slow week in the forums, but there were still some good questions asked.One of these questions asked about doing a “running sum” function in a crosstab across the column dimensions. This is not a standard function within BIRT, so the computations had to be done manually. The solution was to delete the measure elements from within the crosstab and add text elements in their place that used persistent global variables named after the row dimension to keep a running total. The devShare solution for this can be found here.Another question was about only displaying a portion of a string in a data field when you don’t know the length of the part you want to split off, but you know the character that separates the sections you want. The solution to this was to use the indexOf() and lastIndexOf() functions to find the two ‘-‘ characters and grab everything that was in between with the substring() function.The last question I’ll cover from the forums last week is one that was asked about using a parameter to dynamically limit a dataSet. This question is asked by many new users as they make their first parameterized report. There are at least a couple different ways to do this. You can use the dataSet parameter (?) in the query and link it to a report parameter or you can just use a report parameter and add the “where” clause to your query in script. Both of these solutions are shown in an example that is attached in the thread. If you’re not using a query dataSet, you’d just use a dataSet filter that filters the dataSet based on the report parameter.Again, this is just a small sample of what went through the forums this past week. For more questions and answers that have been posted, check out the forums. As always, if you have a question, feel free to ask it, and if you see a question you know the answer to or have a similar experience to, feel free to post an answer or comment. 

Read More

Add Dynamic Parameter Handling in BIRT

Ever wished for a BIRT input parameter with flexibility to define a conditional clause? Actuate 11 BIRT now supports dynamic parameters that allows you to define condition clause along with parameter values. This enables you to analyze the same BIRT report without modifying the design. For example, consider a simple customer listing table that shows customer information such as “Name”, “Address”, “Industry”, “Country”, “City”, “Revenue” etc. Creating a dynamic filter on ?Country? field will prompt you to enter the ?Country? value along with the condition that you would like to associate with the values you choose. Change the condition to “Not in” to see data where countries are not UK or Sweden. See VideoThe condition clause can be applied to data sets or report items e.g. tables, charts. The BIRT engine automatically updates the query for performance by pushing the conditions down to the database. Actuate BIRT Designer allows you to even see query execution profile for each report item that uses dynamic filter.To create a dynamic parameters as a filter to a report item or the dataset, select the control and go to the filter tab:You can also create a generic dynamic filter parameters in the data explorer view and apply them to report items:Discover this new feature in the latest release of BIRT in Actuate 11, you can download an evaluation copy of BIRT designer professional from here.Ashwini Verma 

Read More

Last Week in the Forums: Starting Day of Week for Charts, Using Multi Select Parameters

Many questions come through the forums each week. Some are new and some have been asked/answered before, so we’re starting a new weekly post to highlight a few posts as a reference for those who may have the same questions.This past week, a question was asked about making the start day of week be Monday in a chart. One solution that works is to create your own instance of the day of week in a computed column. Another solution was also posted that works if you have a SQL database. This solution can be seen in the thread at the link above.Another question is one that gets asked quite often. It’s about using multi-select parameters in your dataSet query. The reason that you can’t tie a multi-select parameter directly in with a dataSet parameter is because the multi-select parameter returns an array and not a comma separated string. You have to handle this by splitting the array into a comma separated string and adding the condition to your where clause in your query in script. Several examples of ways to do this can be found in the devShare.One last question I’ll highlight for the week is a question about the most efficient place for a filter. The answer to which is to place the filter as early as you can. The earlier you place the filter in the process, the less data is processed in your report. So, if you don’t need the data in your dataSet, go ahead and place the filter there.This is just a small sample of what went through the forums this past week. For more questions and answers that have been posted, check out the forums. As always, if you have a question, feel free to ask it, and if you see a question you know the answer to or have a similar experience to, feel free to post an answer or comment. 

Read More

Don’t Tweak That BIRT Design for PDF Output

If PDF output is one of the output formats that you use BIRT to generate you will be delighted with the new PDF emitter capabilities that is available with version 11 of Actuate BIRT. The emitter has been completely rewritten to give you a WYSIWYG (What You See Is What You Get) design experience. What this means to you as a report developer is that your PDF report layout will be consistent with the web layout and your pagination scheme will be maintained across various formats without any additional design effort. The layout of the output is also consistent with the layout in the design pane of BIRT designer. See VideoWith flexible export options to Embed fonts, Substitute fonts and Chart DPI settings you can optimize PDF output as per your needs. Vector graphics option enables your to generate high fidelity images when an SVG image is present in the BIRT design or if you choose to generate a chart in SVG format. Overall these settings can influence fonts used in the output, PDF file size and printout quality. See VideoThe new emitter can even display native flash content in PDF. All the functionality and interactivity is preserved in the PDF output providing a complete web experience for flash objects in the PDF output. See VideoDownload and try the above features for yourself in the new Actuate BIRT Designer Professional (version 11).Ashwini Verma 

Read More

Create Live Excel Spreadsheets from BIRT

Actuate BIRT in version 11 has a new Excel emitter that creates analysis ready live Excel spreadsheets. I have created a few videos to highlight some of these enhancements:?Live Excel Formulas ? BIRT exports calculated fields and aggregations as Excel formula and functions that enables users to perform ?what-if? analysis within spreadsheet. Watch videoEditable Charts ? BIRT charts are now converted to live Excel charts with an associated data sheet containing the underlying data that could be edited to see how data changes reflects back in the chart. Watch video?Pivot Tables ? BIRT crosstabs are exported as pivot tables containing the underlying data for further analysis. These pivot tables can be used to analyze the data based on different dimensions or to perform what-if analysis by altering the underlying data sheet. Watch Video?Images ? The enhanced Excel emitter also adds support for images in the Excel output. Watch Video?Export Objects ? Export the entire BIRT output to Excel or choose a specific table, chart or crosstab to export. Watch VideoMultiple Worksheets – A simple check box control enables creation of multiple worksheets. Watch VideoTo download the Actuate 11 milestone builds visit http://www.birt-exch…iki/Actuate_11/ 

Read More

Run Your BIRT Reports During Off-Peak Hours

BIRT does not impose any restrictions on the data size. This could mean BIRT visualizations based on large data sets could be running for a long time using up your computing resources during the busy hours of the day. The other requirement I often come across is to run reports on a recurring basis with the latest data and notify a set of users or even email them a copy of the report output in the desired format(e.g. a weekly sales report). Combine the above end user requirements with the real world business need to trigger the report generation based on certain system events or other business processes along with the ability to monitor/manage the scheduled jobs and you could end up with a fairly complex scheduling system. Fortunately iServer (Express) addresses these complex requirements with a simple user interface.Information Console is the end-user interface to iServer(Express). It offers a very simple yet rich web interface that meets majority of the end-user needs around calendar based scheduling, and also lets them pre-define any input parameters to the report if any along with the output location, format and notify and share with other users.Management Console is another web interface that offers a more granular control over scheduling aspects (calendar and event based) in iServer (Express).It allows for a more advanced calendar schedule and event settings. If you create a job that uses an event based criteria and a calendar schedule, the job runs when both conditions occur. The systems accept three kinds of events: File Event – Use the file/folder presence as a condition for running a job. Job Event – Specify completion of a job as a criterion for running a scheduled job. Custom Event – With custom event you can specify a web service that iServer(Express) monitors and run the jobs when the web service returns a signal to the web service. The following wiki article discusses Custom Event web service in further detail: http://www.birt-exch…e_-_Report_Jobs You can obtain information about scheduled jobs or completed jobs using Management Console.iServer(Express) groups job processing into five phases:  Scheduled Waiting for Event Pending Running Completed Based on the privileges, individual users and administrators can manage jobs at each and every phase.Download your own evaluation copy of iServer (Express) and try these features yourself:http://www.birt-exch…press/features/ 

Read More

Creating a BIRT Report as a Calendar View

I encountered a forum qustion recently asking about creating a calendar view in a BIRT report to show a job number within a calendar view on the date that the job was due to be completed. I’m not sure why, but I hadn’t really thought of this approach to displaying data before. However, I was easily able to create the report using a table, an embedded 7 column grid, a 1 detail row table in each grid cell for the days of the week, a sub table or list within each day to display the jobs, and some filtering. I recreated this setup with the sample database to display a calendar view of orders placed. The final setup of the report can be seen below.The outer table with the year, month, and date fields is tied to a scripted dataSet that uses two user entered parameters, startDate and endDate, to create every date within the given range. The table is then grouped by year, month, and then week with those groups sorted to display in the correct order. A 7 column grid is placed in the “week” group header. A 1 column / 1 detail row table is placed in each cell of the grid to display the date. Each table is filtered to only show the date for that day of week. The filter for Sunday can be seen below.A second dataSet is used to bring in the orders. A table or list is put into the detail row of each “date table” and tied to the orders dataSet. In the devShare entry, each of these tables is then filtered to only show the orders from each date. However, when the date range is large, this becomes very slow. So, since posting the example in the devShare, I have changed the design to use a dataSet parameter on the orders dataSet to only return orders from a certain date. Then, on the order tables, I set the dataSet parameter binding to set the value of this parameter to the current date in the calendar as seen below. (The devShare entry will be updated in the near future.)Finally, to show a more “real-world” use for this type of display, I created a hyperlink on the order data element to link to a detail report for that given order. The final view of the report and detail report can be seen below.The following link is the devShare entry for this example. The reports were designed in BIRT 2.5.2.http://developer.act…dar-view-report 

Read More

Custom/Dynamic Page Breaking in BIRT

BIRT’s standard options for page breaking is to set a page break interval on a table, set a before/after page break on groups, and to set before after page breaks on report items. But what if you want to set a page break after every 2, 3, etc. groups? One way is to create an interval group surrounding your group you’d like 2 or 3 of and page break after it. Say you choose this approach and your 2nd or 3rd group goes a couple lines over your page size. You wrap the last group to the next page for a couple lines and then the interval group page brake happens and you waste a good portion of a page.Another way to handle this is to use script to force page breaks after every 2 groups by incrementing a variable keeping track of the groups per page. You can also keep track of the items in the group using an aggregation. If the rows in the 2 groups you had planned to put on one page go over the predetermined amount of rows a page can hold, you can manually force a page break between the two groups in the group’s onCreate method with the code this.getStyle().pageBreakBefore = “always”. If they will both fit, you’d set a page break after the 2nd group with the code, this.getStyle().pageBreakAfter = “always”. In your onPageBreak script for your group, you’d reset your count variables for the groups and for the rows. This would mean that if after you force the page break, your group/row counts would start over on the next page.Another thing you could do would be to only keep track of the rows in a group. If 3 groups fit on one page, you wouldn’t have to force a page break until before the 4th group. Then, if only two fit on the next page, your manual row count would let you know and you’d be able to page break before the 6th group, giving you a manual interval and no splitting of groups between pages, unless a single group spanned more than one page.Also, when using the standard “page break interval” feature on a table, group headers are not counted in the row count for a page, just the detail rows. If you kept a manual count of rows, including the group header rows, you could use the pageBreakBefore script above in your row’s onCreate script to manually page break when you’ve reached your maximum lines that can fit on a page.A simple example showing how to do the manual interval group of groups can be found in the devShare at the link below.http://www.birt-exchange.org/devshare/designing-birt-reports/1186-manual-group-page-breaks/#description

Read More