Wednesday 31 August 2016

Whats new in 6.3 Jasper (Server and Studio) ? from release notes

Hi,
In this post you will see what is new in Jaspersoft 6.3 new release (enterprise and community)

JasperReports Server 6.3.0 includes these improvements:

* Dashboards - New enhancements include:
  - Dashboard and dashlet exporting.
  - Text and image dashlets now support hyperlinks.
  - More formatting options for dashboards and dashlets.
  - New time and date wildcards for dashlets.
  - Auto-complete for parameters and time and date wildcards.
  - Image dashlets have a Browse button for the respository.

* Scheduler - New enhancements include:
  - Support for scheduling Dashboard exports.
  - Support for SFTP with SSH key authentication as a transfer
    protocol.
  - Automatic validation of the path to the repository output
    folder when clicking Save.
  - Support for changing the default output folder by editing a
    configuration file.
 
* Data Connectivity - We continue to improve and refine data 
  access in JasperReports Server. This release adds:
  - New support for Microsoft SQL Azure.
  - New driver for Spark.
  - New Progress driver for Cassandra.
  - New JDBC driver for MongoDB.
  - Updated MongoDB Connector.
  - New Progress driver for Impala.
  - Updated JDBC driver for MariaDB.

* Jaspersoft Studio - New enhancements include:
  - Support for font sets, which let you group font extensions
    in supersets that can include several languages or character
sets and control which languages are used for each font
in the set.
  - Import/export for configuration resources, which lets you
    migrate global configurations, such as global data adapters,
composite elements, and Jaspersoft Studio preferences
between different instances of Jaspersoft Studio.
  - Improved interface for editing properties in HTML5 charts.

* Performance Improvements - JasperReports Server is faster and
  uses less memory when working with high-cardinality data in Ad
  Hoc views or reports based on Ad Hoc views.

* Security Improvements - In our on-going effort to improve the
  security of your data, JasperReports Server implements a new
  Cross-Site Request Forgery (CSRF) protection mechanism that is
  more effective and less intrusive. For more information, see
  the Security Guide.

Read full notes here : Download

Monday 22 August 2016

Tip : Conditional Image display in Jasper Reports 6.2 or later

Hi,

In this post you will see how to write conditional expression to compare two fields and based on return value display images.
Lets assume you have number1 and number2 fields of BigDecimal types. Write below expression in image path expression editor itself.



($F{NUMBER1}.intValue()!=0 && $F{NUMBER2}.intValue()!=0) &&
($F{NUMBER1}.intValue()==$F{NUMBER2}.intValue() )

? "C:/Users/sadakar.p/Desktop/image.jpg": "C:/Users/sadakar.p/Desktop/image2.jpg"


True case : 
SELECT 1234.45 as number1, 1234.45 as number2 FROM dual
False case :
SELECT 1234.45 as number1, 567.32 as number2 FROM dual

NOTE : 
1) Do not give empty quotes for the false section(true section) any where in the expression. If you give, you may stop with HTML 500 error message.
2) Make sure the image paths are given with "repo:<serverpath of the image>"  when report is published.
3) This example is developed using 6.2 Pro studio and oracle queries are used for demonstration.

JRXML Code : 
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.2.0.final using JasperReports Library version 6.2.0  -->
<!-- 2016-08-22T11:43:19 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Blank_A4_1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="aed847f7-ff38-4b72-9673-2ffa54e62469">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="ppmguru"/>
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<queryString>
<![CDATA[SELECT 1234.45 as number1, 1234.45 as number2 FROM dual]]>
</queryString>
<field name="NUMBER1" class="java.math.BigDecimal"/>
<field name="NUMBER2" class="java.math.BigDecimal"/>
<background>
<band splitType="Stretch"/>
</background>
<summary>
<band height="138" splitType="Stretch">
<image>
<reportElement x="80" y="0" width="235" height="138" uuid="fd567e43-fc8b-45fb-bbee-515dd7cb7ff5"/>
<imageExpression><![CDATA[($F{NUMBER1}.intValue()!=0 && $F{NUMBER2}.intValue()!=0) &&
($F{NUMBER1}.intValue()==$F{NUMBER2}.intValue() )

? "C:/Users/sadakar.p/Desktop/image.jpg": "C:/Users/sadakar.p/Desktop/image2.jpg"]]></imageExpression>
</image>
</band>
</summary>

</jasperReport>


Cheers.!
Sadakar Pochampalli 

Friday 19 August 2016

Examples of all fusion graphs in TIBCO Jaspersoft Design Studio 6.2 Professional

Hi,

Below are the full stack examples of all fusion graphs as of 6.2 Professional Studio.

Hit the download link in the bottom and explore how to configure categories , series  and values.



note that only basic configurations are done.

Download: Click Me

Sample outputs of the above examples :

1) 3d pie chart

2) Line chart with 2 series 

3) Stacked Column(vertical) bar chart

4) Fusion 3D Bar Chart 

NOTE: Zip file is password protected - write to me for password. ( download )


Cheers.!
Sadakar Pochampalli

Wednesday 10 August 2016

Examples of all HTML-5 graphs in TIBCO Jaspersoft Design Studio 6.2 Professional

Hi,

Below are the full stack examples of HTML-5 graphs as of 6.2 Professional Studio.

Hit the download link in the bottom and explore how to configure categories , series  and values.


note that only basic configurations are done for examples.

Download: Click Me

Sample outputs of the above examples :

1) Bubble Chart Example 

2) Time Series Area Spline Chart


3) Spider Area Chart


4) Stacked Column with Line



5) Multi Axis Spline Chart




NOTE: Zip file is password protected - write to me for password. ( download )


Cheers.!
Sadakar Pochampalli

Saturday 6 August 2016

Tip : How to call an image inside HTML component in Jasper Studio Reports 6.2 or later

Hi,

In this post you can learn, how to call an image inside HTML component using HTML script and  how to apply style to it.

With in the Studio and Operating System Environment

Lets assume, you have an image on your desktop say : tibco.png and the path for the image is  C:\Users\sadakar\Desktop\tibco.png

If you want to use the same image to get in JRXML inside HTML component, convert the path of the image as file:///C:/Users/sadakar/Desktop/tibco.png


Drag and drop html component to be of your choice of band, for instance drag HTML component to summary band and double click on it to open its "Expression Editor" and write below HTML code along with styles.

"<p style='background-color:yellow;font-family:verdana;font-size:50px;'>Hi, I am through HTML CODE using HTML Component</p>"+"<br><br>"+
"<img src='file:///C:/Users/sadakar/Desktop/tibco.png' alt='Japser Architecture' height='1000' width='1800'>"


Sample screenshot of the above code : 


Sample output for the above design


Sample JRXML code: (Copy paste the below code and change image path of your choice - version supported for this example is 6.2 pro or later)

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.2.0.final using JasperReports Library version 6.2.0  -->
<!-- 2016-08-06T16:53:41 -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Blank_A4_1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="de083992-95ea-48ad-983f-f63b1b7885ab">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<queryString>
<![CDATA[]]>
</queryString>
<title>
<band height="79" splitType="Stretch"/>
</title>
<summary>
<band height="381" splitType="Stretch">
<componentElement>
<reportElement x="0" y="0" width="555" height="381" uuid="c557a700-606d-4893-af98-ca8df921bef9"/>
<hc:html xmlns:hc="http://jasperreports.sourceforge.net/htmlcomponent" xsi:schemaLocation="http://jasperreports.sourceforge.net/htmlcomponent http://jasperreports.sourceforge.net/xsd/htmlcomponent.xsd" scaleType="RetainShape" horizontalAlign="Left" verticalAlign="Middle">
<hc:htmlContentExpression><![CDATA["<p style='background-color:yellow;font-family:verdana;font-size:50px;'>Hi, I am through HTML CODE using HTML Component</p>"+"<br><br>"+
"<img src='file:///C:/Users/sadakar/Desktop/tibco.png' alt='Japser Architecture' height='1000' width='1800'>"]]></hc:htmlContentExpression>
</hc:html>
</componentElement>
</band>
</summary>

</jasperReport>



NOTE: This example is specific for absolute path image with in the studio and operating system environment. It can not be deployed to Japser Server unless you have HTML component jar file installed in lib folder of tomcat.

Usually we go for this kind of implementation to represent web clocks showing different time zones on the report.

I hope it helps some one in community.

Cheers.!
Sadakar Pochampalli


Playing with variables for group level summations with Increment Type and Reset Type for multi level group aggregations

Hi, 

In this post you will see how to play with variables for group level summations with increment type for repeating "sales" value at detail level. 

The Use Case would be as follows
           4th group level display nothing
           3rd group level get only distinct values of "sales" from detail.
           2nd group level get the summation of 3rd group level values  
           1st group level get the summation of 2nd group level values and 
           in the detail level, display "customer name" and "sales" data. 
           
Software Details to Run this example
Example developed version : 6.2 Pro Studio, foodmart db of postgres in which a sample data populated in a table called test_jasper_2

For the sample data click on this postgresql backup file and restore it using pgAdmin-3 client tool on foodmart database. 


The sample output will look like as shown in below image.  
(Click on image to get best view of the content)

Solution : (Assuming that you have basic idea of Studio bands, table component and variables creation )
1) Create a data for the above sample data with 4 groups
Group 1 : Region 
Group 2 : Country
Group 3 : State and 
Group 4 : Category

2) Design the JRXML as shown below using TABLE component ( Colours are given to differentiate each group)


3) The core part is to play with variables, its increment type and reset type. 

If you have a look at the sample output in first image, the details for "sales" field are repeating and display nothing at 4th group level(i.e., category group level). 

We need roll up aggregations starting from 3rd group and solution is as follows.

Display Distinct values at 3rd group level (i.e., State level)
Create a variable, say : var_StateLevel and give 
Expression=$F{sales}
Increment Type = None
Reset Type = State

Once the variable is created drag and drop it to the place holder as shown in design image and give "Evaluation Time=State"


Display Summation values of 3rd group(State level) level in 2nd Group(Country level)
Create a variable, say : var_CountryLevel and give 
Expression=$V{var_StateLevel}
Increment Type = State
Reset Type = Country

Once the variable is created drag and drop it to the place holder as shown in design image and give "Evaluation Time=Country"



Display Summation values of 2nd group(Country level) level in 1st Group(Region level)
Create a variable, say : var_RegionLevel and give 
Expression=$V{var_CountryLevel}
Increment Type = Country
Reset Type = Region

Once the variable is created drag and drop it to the place holder as shown in design image and give "Evaluation Time=Region"

4) Save the report and run. It will produce the output as shown in very first image. 

I hope it helps someone in community. (Example of JRXML is attached in the top download link)

Cheers.!
Sadakar Pochampalli