Analytics

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

BIRT Wrapper for JSF Applications

For those of you that have been trying to integrate BIRT into JavaServer Faces (JSF) applications, the jsf4birt component library should make things easier. This library was created by Exadel and supports the rendering of BIRT-based reports on pages wthin JSF web applications.There are two components; a birtWrapper, and actuateWrapper. The birtWrapper component displays BIRT reports created in the Eclipse BIRT Report Designer. This component uses the BIRT runtime API and calls the appropriate part of the API to get generated HTML code to put on the page. Everything is done on the server side following the usual JSF lifecycle processing.The actuateWrapper component loads reports from an installed Actuate server. The component uses the Actuate Javascript API to load and run BIRT reports and allows the integration of the AJAX-based BIRT Interactive Viewer.Max Katz and I demonstrated the jsf4birt component library in an online webinar. Watch the webinar recording hereInstructions for installing and testing the jsf4birt component can be found here 

Read More

Sorting a Crosstab by a Field Not Displayed in the Crosstab

Say you want to create a crosstab showing payments or orders by year for each customer. That is easy enough. You create a dataCube with Customer and year as groups/dimensions and their payment/order totals as you measure. In your dataSet, you also have a credit limit for each customer. You would like to sort by this so that your “typically” bigger customers are at the top of your list.If you went to the sorting tab in the property editor for the crosstab with things setup as described above, you wouldn”t find the option to sort by credit limit available because you aren’t displaying it in your crosstab. You don’t want to put this value in your crosstab though, so you’re stuck, right? Wrong. There is a feature in BIRT that is somewhat hidden if you don’t know the right place to look that will solve this.If you open your dataCube and double click on the group/dimension that you’d like to sort, a group level editor will pop up:As you can see in the above image, there is an attribute section for the grouping. If you click where it says “Create New Attribute”, you can select your credit limit field and it will then be listed under the attributes section as you can see done above. Now when you go to your sorting tab for your crosstab and click on “Add” and select the group you added the attribute to, if you click on the function button next to sort key, you’ll be able to see and select the attribute as your sort key.The new sort key will be in the form of dimension[“groupName”][“dimensionName”][“attributeName”]. The resulting crosstab will now not be sorted alphabetically by customername or by the summary field, it’ll be sorted by the credit limit value from your dataSet. The following link is to devShare entry on this with this example included. http://www.birt-exchange.org/devshare/designing-birt-reports/1172-sorting-a-crosstab-by-a-field-not-in-the-crosstab/#description

Read More

Check out the BIRT Mashboard

One of the nice benefits of the BIRT Exchange Marketplace is that it is a great showcase for some really cool things you can do with BIRT. The BIRT Mashboard is an excellent example of how BIRT can be leveraged in rich information applications to create world class solutions. This fully featured app is designed for managers who need to make decisions based on varied cuts of business data. Specifically, the BIRT Mashboard allows executives to create their own custom dashboards and data visualizations with interactive drill-down capabilities.The BIRT Mashboard starts with a blank canvas that can be populated with pre-defined controls called portlets to construct a page of interactive BIRT charts, tables, graphs and other data elements that describe your (and others’) data. No programming knowledge is required to make the page – just drag and drop portlets from a palette to the canvas and it just works. Once these portlets are placed on the canvas, they adapt dynamically to each other based on the user’s actions.As an example, let’s say that three portlets exist on your canvas, the first is a pie chart that divides your company’s total sales by region, the second is a table that lists total sales by product line and a third is a map that marks each of your sales offices worldwide. Since the portlets communicate, you can click on one of the regions in the pie chart and the table next to it changes from showing a global representation of product line sales to just the data for that region. The map also shifts from a world view to show a regional view – plus, in this example, adds pins for each customer located there. Clicking on one of those pins then pops up a list of your products purchased by that customer as well as a contact name and phone number.The BIRT Mashboard comes with some predefined portlets and more can be created by developers and analysts. These portlets are able to pull data from many different sources (internal and external) and inter-portlet communication is managed by simple javascripting. Once created, these portlets can be reused across many custom dashboards and reports, and security and scalability is ensured by Actuate’s backend iServer technology.Note that you can present content built in BIRT and served by the iServer right alongside any other web accessible content too. The BIRT Mashboard allows you full control of your own application experience. Whether that content is built inside BIRT or not, the BIRT Mashboard brings it all together in a cohesive easy-to-use interface.I encourage you to take a look at the Overview video (under the BIRT Mashboard demo tab) and then download the app and try it out. You can find 6 separate ten minute how-to videos (also under the demo tab) to help you get started.Don’t have an iServer? No problem, you can get a free trial version of iServer Express from BIRT Exchange or even better, choose the 1 Click Install option for BIRT Mashboard and open a free account on the new BIRT onDemand service which will set up and pre-configure everything you need at no cost to evaluate the BIRT Mashboard on our servers.And please don’t forget to let us know what you think of the BIRT Mashboard or any other apps you evaluate on theBIRT Exchange Marketplace by adding your comments under their corresponding review tabs. 

Read More

Extending BIRT Just Got A Little Easier

One of the strongest features of BIRT is the ability to extend BIRT in order to support very specific requirements. These BIRT extension points support building your own custom report items, charts, output types, functions, and even custom editor pages. There is a nice article on building your own extension here if you are interested.This week in the BIRT Exchange Marketplace, a couple of items were submitted that will make building your own extensions quite a bit easier. These free libraries were jointly created by Innovent Solutions and Blackboard Inc. and serve as example BIRT extensions as well as best practices for anyone developing their own BIRT extensions.The examples I downloaded and tested were:* BIRT Controls Library – This library uses the ReportItem extension point and includes two example controls, the DotBar control and a RotatedText control. This example was easy to install and use by following the directions with the download at http://www.birt-exchange.com/be/marketplace/app-showcase/?app=22. There are screenshots of these controls and a video showing them in use at the same link.* BIRT Functions Library – This library uses the Aggregate and Script Function extension points and includes examples that allow you to create your own summarized total functions as well as how to make custom Javascript functions available to BIRT scripting. Instructions to install this library, plus screenshots can be found at http://www.birt-exchange.com/be/marketplace/app-showcase/?app=24 

Read More