Jump to content

BIRT Developer Center Download

Most Liked Content

#130732 Adding Data Sources to BIRT iHub F-Type

Posted by uvmowl on 12 September 2014 - 07:46 AM

I have successfully been able to upload and display my own reports in BIRT iHub F-Type.   When I try to create a new report it only has the sample data available.   I have searched all the documentation and I can't see how I can add a new Datasource to the iHub F-Type.   Thanks

  • Xiaoquan Wu, coolcgp and Qingnan Zhao like this

#129099 BIRT Runtime and Excel data sources

Posted by pricher on 02 July 2014 - 04:57 AM



When you define your Data Source and you point to your Excel file, are you using a Relative or an Absolute path? If you use an Absolute path, it will work. To define the source as an absolute path, click on the little down arrow on the Browse button. By default, if you click only on the browse button, the path is relative to your BIRT project. There might be a way to configure the runtime engine to use a relative path, but I have not found it. Using Absolute path is your best bet!


Hope this helps,



  • Thirumal, redgatormc and thbritz like this

#126623 BIRT support for Rich text format

Posted by Dharmendra on 05 March 2014 - 05:46 PM

Hi All, We are designing a report in which we need to display data in a field. This data comes from database and has RTF tags embedded. When the data is rendered RTF tags are not converted by BIRT and are displayed as it is. Please let us know if BIRT supports displaying RTF data and if it does, what changes we need to make.

  • balconsult likes this

#125340 optional parameter

Posted by sumathra on 29 January 2014 - 03:52 AM

k fine 

  • if i select "Country" and product line "Classic cars", press "Run Report" and the report data well --1 screenshot
  • if i  select "State" and product line "Classic cars", press "Run Report" and the report the report data well --2 screenshot
  • if i  select "city" and product line "Classic cars", press "Run Report" and the report the report data well --3 screenshot

but again 

  • if i again select "country" and product line "Classic cars", press "Run Report" and the report data appear for city only not for country --4 screenshot ...thats my problem so previous value is not clear ...

Look at the Screenshot..

Attached Files

  • Attached File  1.png   386.66KB   1 downloads
  • Attached File  2.png   434.44KB   0 downloads
  • Attached File  3.png   376.39KB   0 downloads
  • Attached File  4.png   376.81KB   0 downloads

  • 404040, fmakwsi and SyN like this

#120083 Populatind report library elements using DEAPI from beforeFactory method

Posted by apaine on 10 September 2013 - 04:57 AM

Regarding your code, I would put it in onPrepare rather than beforeFactory. If you have it in onPrepare you can then put other code in the onPrepare script of your library elements to dynamically configure them before they are generated.

Also, I recommend writing as a Java event handler rather than javascript as you can quickly find the quantity of code you need is difficult to manage and debug in javascript.


Getting this sort of code working is pretty easy. The challenge is building a flexible, reusable framework that can be used for different types of content. e.g., what if you want to adjust the size of the components so that one of them spans two columns?  


The application I built is a rich framework of UI components to let users configure custom reports via a web interface. Users drag and drop  prebuilt library components from a palette to build new designs. They can resize them, change component settings, choose master pages, choose themes etc before saving the result either as metadata to create the report or as the finished report itself.




There are 100s of hours of work in building such a framework and we could help save you a lot of work if you want to use our help to get started.



  • mblock, Shasha and actuser9 like this

#57770 Generate Tiltle1, Title2, Title3 in Word

Posted by xmoulin on 08 December 2009 - 07:59 AM

My goal is to generate a word document with BIRT. I just look how to translate my sentence in others words: Iím talking about Outline Numbered (Heading Numbering) in Microsoft Word, there is different heading style (Heading 1 through 9) -> Is it possible to generate a WORD BIRT report using heading style? Why? - Because my word application use custom style for Heading 1 through 9 -> So I don't have to duplicate those style - Because if my word document used Heading 1 to 9, I'll be able to generate a Table Of Contents easily. - I want to merge 2 documents in 1, the first one used Heading 1 to 9 so if the second one should used same style, it will be wonderful.

Attached Files

  • Draven Braylon Noel and aanglade like this

#146677 Birt 4.3.1 upgrade in websphere 8.5 have below issue

Posted by Jagadeesh85 on 27 January 2017 - 07:14 AM

When I am trying to upgrade from 2.5.1 to 4.3.1,
I am getting below issue in run time environment

I am getting this error while deploying my ear in my websphere Server,

I tried lot of options communicated earlier in other threads but not of them worked, Please help me to resolve this issue.

Let me know if any other details required.

So far I tried the below links


My Error :

org.eclipse.birt.core.exception.BirtException: error.CannotStartupOSGIPlatform

at org.eclipse.birt.core.framework.Platform.startup(Platform.java:81)

at org.eclipse.birt.report.service.ReportEngineService.setEngineContext(ReportEngineService.java:336)

at org.eclipse.birt.report.service.BirtViewerReportService.setContext(BirtViewerReportService.java:1022)

at org.eclipse.birt.report.servlet.ViewerServlet.__getContext(ViewerServlet.java:148)

at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doGet(BirtSoapMessageDispatcherServlet.java:151)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:575)

at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)

at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)

at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1232)

at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:781)

at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:480)

at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:79)

at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)

at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1385)

at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:194)

at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)

at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)

at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:575)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)

at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1232)

at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:781)

at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:480)

at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)

at com.carreker.reportviewer.common.CrossSiteScriptBlockFilter.doFilter(CrossSiteScriptBlockFilter.java:81)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)

at org.owasp.csrfguard.http.FilterChainWrapper.doFilter(FilterChainWrapper.java:42)

at org.owasp.csrfguard.CsrfGuardFilter.doFilter(CsrfGuardFilter.java:158)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)

at com.carreker.reportviewer.common.RequestFilter.doFilter(RequestFilter.java:100)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)

at com.carreker.reportviewer.action.ApplicationFilter.doFilter(ApplicationFilter.java:48)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)

at com.carreker.reportviewer.common.ExceptionFilter.doFilter(ExceptionFilter.java:52)

at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)

at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)

at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)

at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)

at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)

at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:940)

at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)

at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)

at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)

at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)

at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)

at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287)

at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)

at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)

at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)

at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)

at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)

at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)

at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)

at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)

at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)

at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)

Caused by: org.eclipse.birt.core.framework.FrameworkException: Cant register the ExtensionRegistry classpath

at org.eclipse.birt.core.framework.jar.ServiceLauncher.startup(ServiceLauncher.java:100)

at org.eclipse.birt.core.framework.Platform.startup(Platform.java:75)

... 67 more

Caused by: org.eclipse.core.runtime.CoreException: Extension registry provider is already set.

  • Shaneethile and RodgerNeoks like this

#146267 Infographics using BIRT

Posted by Clement Wong on 12 December 2016 - 04:13 PM

I just posted a DevShare example of an infographic report using OS BIRT 4.6.0 that showcases the capabilities of BIRT in a non-traditional 'report':


The report design is self contained for ease of demo purposes. It uses the sample Classic Models database, and has the images embedded in the report.  It should work in previous versions, but I didn't test out.


Here are some notes about the techniques used:

-- Grids were used to align report items such as images, text and data items. Image elements were split in two, into a top and bottom segments, in a photo editing program.

-- The first chart utilizes a technique to illustrate the use of DIV tags to display the bar chart.

-- The second chart is a Open Source BIRT chart with its beforeGeneration event modified similar to this DevShare:


C ommercial BIRT provides even more features not available in Open Source BIRT such HTML5 Charts and Maps, and Custom Visualizations that can include other JavaScript Visualization packages such as D3.js or Google Maps. See this DevShare for commercial BIRT Infographic (aka InfographiX) examples:


And you can download the commercial Designer for free without any trial limits:



Attached File  BIRT Happy Holidays 2016 Infographic Elements Preview.png   262.38KB   0 downloads


  • mblock and Matthew L. like this

#143917 Rotate text 90 degrees

Posted by Matthew L. on 18 May 2016 - 05:51 AM

Hello Tim,


I found the following pre-compiled jar files based on the 2.5.2 version:



I am unsure what the "birt.functions.lib_2.6.1.11.jar" is for however downloading the following jars worked for me:




Just drop the 2 jar files in your /eclipse/plugins/ folder and launch BIRT.

You should then see two new items in your Palette, DotBar and RotatedText.


Also for reference, here is some API you can use with the RotateText plugin:

elementFactory = reportContext.getReportRunnable().designHandle.getElementFactory();  //get a reference to the ElementFactory

rotatedText=elementFactory.newExtendedItem("ex1", "RotatedText");  //Create new RotatedText element
rotatedText.setProperty("rotationAngle", "90");
rotatedText.setProperty("text", "\"Test\"");
rotatedText.setProperty("wrapPoint", "0in");
rotatedText.setProperty("linkURL", "\"http://www.Actuate.com\"");  //You can also use a relative path
rotatedText.setProperty("fontFamily", "sans-serif");
rotatedText.setProperty("fontSize", "30pt");
rotatedText.setProperty("fontStyle", "italic");  //Options:  "normal" or "italic"
rotatedText.setProperty("fontWeight", "bold");  //Options:  "normal" or "bold"
rotatedText.setProperty("color", "#FF0000");

reportContext.getReportRunnable().designHandle.getBody().add(rotatedText);  //Add rotatedText element to report body

  • Clement Wong and Shasha like this


Posted by Clement Wong on 31 July 2015 - 08:58 PM

Attached is a sample using commercial BIRT (iHub 3.1) that shows two x-axis or grouped x-axis using HTML5 charts.


1. Changed the Category X Axis to:  row["COUNTRY"] +":"+ row["STATE"]

We will later parse out the two levels using JavaScript's split function.


2. Modified beforeDrawAxis event to change height of chart to make room for 2nd x-axis.  Parsed out the subgroup (in example it is STATE) and change the labels.


3. Added a script in the Chart Area > Load event to build out the new parent group for the 2nd x-axis, built out the tick marks to separate the parent group, added the 2nd x-axis and then formated the labels by centering them.


Attached File  Two Level X AXis.png   21.58KB   9 downloads

  • Clement Wong and RRK like this

#130839 ISSUE: Network DNS resolution / URL rewrite issue with F-Type - Problem And S...

Posted by mharfeld on 19 September 2014 - 10:37 AM

Description of the issue:
We are using IIS on an Azure Windows 2012 server and an index.html page with embedded JavaScript to render the report within a web page.
Client machine is running Chrome.
The web page looks fine when run on the server itself.  
When the web page is opened from an external client, one of the charts and one image is not able to be resolved.
In looking at the issue using Chrome developer tools, we see that the URL is being rewritten incorrectly.
The machine name is appended to the front of the URL and a "b1.internal" is injected into the DNS name.
The BIRT server turns the URL mymachinename.cloudapp.net into mymachinename.mymachinename.b1.internal.cloudapp.net at runtime, 
which of course means we get "object not found" errors on the web page.
Here is the HTML page we are using -->
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<div id="viewer1">
<script type='text/javascript' language='JavaScript' src='http://mymachinename...iportal/jsapi'>
<script type="text/javascript" language="JavaScript">
var reqOps = new actuate.RequestOptions( );
reqOps.setVolume('Default Volume');
actuate.initialize( 'http://mymachinename...ned?null:reqOps, null,null,myInit );
function myInit(){viewer1 = new actuate.Viewer( 'container1' );
var options = new actuate.viewer.UIOptions( );
viewer1.setUIOptions( options );
<div id='container1' style='border-width: 0px; border-style: solid;'>
Go to
edit the file named web.xml
add a parameter value for the parameter named PROXY_BASEURL
Problem solved!!!!
Special thanks to Mica Block from the F-Type Team for this solution!!

  • mblock and bjenkins like this

#129938 google maps/ openstreet maps in BIRT

Posted by Clement Wong on 05 August 2014 - 04:34 PM



Is there any feature/extension/script available for mapit library that can take the advantage of marker clustering in google maps? For example, if there are too many icons to be plotted which become hard to read and instead we put some cluster showing the number of icons/value in that area and then we can zoom into it. Something similar to the attached image?





Yes, the library does not support clustering, but it is possible to extend the BIRT Online Maps to allow for clustering.


Attached is very basic sample of using the MarkerClusterer method of Google Map clustering (https://developers.g...markerclusterer).  The example is only a prototype and doesn't extend, but overwrites existing functionality.


Two modifications in BIRT Online Maps library were made:


1. Stylized the map

var mapStyle = [
                            featureType: "poi.park",
                            stylers: [
                              { hue: "#00d4ff" },
                              { visibility: "simplified" },
                              { lightness: 22 }
                            featureType: "administrative.country",
                            stylers: [
                              { visibility: "simplified" }
                            featureType: "administrative.province",
                            stylers: [
                              { visibility: "simplified" }
                            featureType: "administrative.locality",
                            stylers: [
                              { visibility: "off" }
                            featureType: "water",
                            stylers: [
                              { saturation: 43 },
                              { hue: "#00e5ff" },
                              { lightness: 84 }
                            featureType: "landscape",
                            elementType: "geometry",
                            stylers: [
                              { hue: "#00d4ff" },
                              { lightness: -2 },
                              { saturation: 36 }
                            featureType: "road",
                            stylers: [
                              { hue: "#00c3ff" },
                              { lightness: 34 },
                              { saturation: -41 }
                            featureType: "administrative.country",
                            stylers: [
                              { hue: "#00aaff" },
                              { saturation: 18 },
                              { lightness: 30 }
                            featureType: "poi.attraction",
                            stylers: [
                              { hue: "#00bbff" }
                            featureType: "administrative.province",
                            stylers: [
                              { visibility: "off" }
                            featureType: "road",
                            elementType: "labels",
                            stylers: [
                              { visibility: "off" }
                            featureType: "road",
                            elementType: "geometry",
                            stylers: [
                              { visibility: "simplified" }
                            featureType: "transit.station.airport",
                            stylers: [
                              { hue: "#00c3ff" },
                              { saturation: 31 },
                              { lightness: 39 }
                            featureType: "poi",
                            stylers: [
                              { hue: "#00bbff" },
                              { saturation: 9 },
                              { visibility: "on" },
                              { lightness: 55 }
                            featureType: "landscape.man_made",
                            stylers: [
                              { lightness: 32 }
                            featureType: "road",
                            stylers: [
                              { lightness: 13 }
                            featureType: "transit.line",
                            stylers: [
                              { visibility: "off" }
                            featureType: "transit.station",
                            stylers: [
                              { visibility: "off" }
                            featureType: "administrative.neighborhood",
                            stylers: [
                              { saturation: 17 },
                              { lightness: 26 },
                              { hue: "#00b2ff" }
                            featureType: "landscape.natural",
                            elementType: "labels",
                            stylers: [
                              { visibility: "off" }

2. Loaded additional MarkerCluster Javascript API @ http://google-maps-u...rer_compiled.js


And changed the original funciton this.loadLocation(actuate.birt.maps.locations[i]) to insert into a marker array for use in a MarkerClusterer constructor (reference @ http://google-maps-u.../reference.html).

        if (actuate.birt.maps.locations != null && actuate.birt.maps.locations.length > 0) {
            var markers = [];
            for (i = 0; i < actuate.birt.maps.locations.length; i++) {
                // this.loadLocation(actuate.birt.maps.locations[i]);

                var latLng = new google.maps.LatLng(actuate.birt.maps.locations[i].lat,actuate.birt.maps.locations[i].lon);
                var marker = new google.maps.Marker({
                    position: latLng

            var markerCluster = new MarkerClusterer(this.map, markers);             


This prototype example has been tested in BIRT Designer Professional versions 11 SP4 Fix1 and iHub3, and will not work in OS BIRT 3.7x or 4.x.

Attached File  GoogleMap_MarkerClusterer.png   76.75KB   5 downloads

Attached Files

  • mblock and Cheesus Crust like this

#129365 Gantt Chart - alternate usage with multiple appearances per task label?

Posted by kclark on 14 July 2014 - 05:51 AM

Attached File  gantt.png   46.75KB   6 downloads


Take a look at the example I posted.  I had to use optional Y series grouping.  I used my start date for the grouping.  Then changed the type to "DateTime", Unit of "Hours" and "interval" of 1.  Let me know if this helps :)

Attached Files

  • hubba900 and SyN like this

#129085 BIRT and Google Maps - what am I doing wrong?

Posted by Clement Wong on 01 July 2014 - 03:26 PM

Hi All,

  I tried to follow the sample Green index, but in my case the map is rendered with default colors only, just the standard one, not green, yellow and red the way Puck Puck's Green Index example works. What am I missing. I have the pin address and I do an addAddress and also at the time I do an addAddress, I do know what the color of the pin should be. How can I fix it?




Hi Ravi,


The Pin color takes the color of the pin report item.  In the Green Index example, you'll notice that the [Pin] Data item has highlights based on various values.


To define a Pin, you'll need to set a Bookmark.  Looking at the Green Index example, select the [Pin] Data item and go to its Bookmark.  The definition is:

"Pin_" + row.__rownum

The BIRT Online Maps library searches for an HTML elements with prefix of IDs of "Pin_" when it builds the Google Maps Pins.


So it might be that your design is missing that step.

  • kclark and rveeraraghav like this

#128751 How to: Keep Headers Visible When Scrolling?

Posted by sachindhus on 19 June 2014 - 11:27 PM



I have developed report & integrated it in jsp. I want to fix header of report table when user scroll to down like excel sheet. Means header should always visible to user only table data will scroll. Is there any standard way to do this in birt? I am using BIRT 3.7. Please share necessary info to do this.




  • sachindhus and GauriB like this

#126662 Histogram support in BIRT

Posted by SyN on 11 March 2014 - 03:41 AM

Hi sirajm,


sorry i can't give you an example, but try setting your chart to type "bar chart" on the first tab of the "Edit chart" dialogue.

The rest depends on your provision of the data.

  • Jenkinsj5 and sirajm like this

#125509 How to set multiple pages into one page

Posted by mwilliams on 06 February 2014 - 01:01 AM

Try setting the page layout to "auto". You can find this setting by clicking into an empty spot on your design and then going to the general tab of the property editor. This should make it so the report output doesn't conform to the masterpage size. You may also need to set the page break interval of any table in your design to 0. Hope this helps.
  • akeerawella and amrutaraut99@gmail.com like this

#119241 Alternating Crosstab Column Colours for Dynamic Data

Posted by lotusman on 13 August 2013 - 10:18 PM

Thanks!  With this and some other scripting I was able to get it to work.  For other people's information - I had to come up with a way to reset the value when I started a new row - the code alone worked fine if you had an even number of columns, but gave a checkerboard pattern when you had and odd number. 


What I did was setup a highlight in the first column of the row to change and global variable each time the row changed.  Then I read that in the onCreateCell field and compared it to a previous variable and when they differed, reset the color logic and started over. 

  • kclark and akeerawella like this

#116378 How do i use word wrap in report design?

Posted by deepakrkgi on 30 April 2013 - 02:01 AM

hi myl for word wrap in birt .. double click on data (data in table like email_Id).. on popup window ckick on fx of expression column. Copy and paste following code change EMAIL_ID to ur dataSetRow name function wrap(longStr,width){ length = longStr.length; if(length <= width) return longStr; return (longStr.substring(0, width) + "\n" + wrap(longStr.substring(width, length), width)); } wrap( dataSetRow["EMAIL_ID"], 15 );
  • A.ASIKRAJA and aziela like this

#111434 Your Opinion Counts!

Posted by mmihaylov on 12 November 2012 - 11:33 AM

Help us help you. By filling out this survey, you provide us with valuable information on how you use BIRT and how you would like to see BIRT evolve.

Survey should take less than 3 minutes of your time.

2012 BIRT Survey

Mihail Mihaylov
BIRT Product Manager
  • Stephan Lau likes this