Data displayed on the Jasper reports are usually fetched from report parameters and report fields. This data can be processed using the report variables and their expressions. There are situations when a complex functionality cannot be achieved easily using report expressions or variables. For such situations, JasperReports provides us with a simple and powerful means of doing this with Scriptlets.

Scriptlets are sequences of Java code that are executed every time a report event occurs. Values of report variables can be affected through scriptlets.

Scriptlet is declared into two ways:

• Using <scriptlet> element. It has a name attribute and class attribute. The class attribute should specify the name of the class, which extends the JRAbstractScriptlet class. The class must be available in the class-path at report filling time and must have an empty constructor so that the engine can instantiate it on the fly.

• Using the attribute scriptletClass of the element <jasperReport>, in the report template (JRXML).

Any number of scriptlets can be specified per report. If no scriptlet is specified for a report, the engine still creates a single JRDefaultScriptlet instance and registers it with the built-in REPORT_SCRIPTLET parameter.


DataTerrain with years of experience and reliable experts is ready to assist. We have served more than 200 plus customers in the US and an additional 60 plus customers worldwide. We are flexible in working hours and do not need any long-term binding contracts.