Sophie

Sophie

distrib > Fedora > 17 > i386 > by-pkgid > cf79c2d0ed7fa2678c515072ee6f31e4 > files > 60

jasperreports-manual-4.0.2-4.fc17.noarch.rpm

<html xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:jr="http://jasperreports.sourceforge.net/jasperreports">
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JasperReports 4.0.2 - JavaScript Sample</title>
<style type="text/css">
.title {
	font-family: Arial, Verdana, Helvetica, sans-serif;
	font-size: 28px;
	font-weight: normal;
}

.toc {
	font-family: Courier New, Courier, serif;
	font-size: 12px;
	font-weight: normal;
}

.name {
	font-family: Courier New, Courier, serif;
	font-size: 16px;
	font-weight: bold;
}

.label {
	font-family: Arial, Verdana, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: bold;
	font-style: italic;
}

.description {
	font-family: Arial, Verdana, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: normal;
}

.value {
	font-family: Courier New, Courier, serif;
	font-size: 12px;
	font-weight: normal;
}

.element {
	font-family: Courier New, Courier, serif;
	font-size: 12px;
	font-weight: normal;
}

.attribute {
	font-family: Courier New, Courier, serif;
	font-size: 12px;
	font-weight: bold;
}

.code {
	font-family: Courier New, Courier, serif;
	font-size: 12px;
	font-weight: normal;
}

.copy {
	font-decoration: none;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 8pt;
	font-style: normal;
	color: #000000;
}

.subtitle {
	font-family: inherit;
	font-size: inherit;
	font-style: inherit;
	font-weight: bold;
	text-decoration: none;
	color: inherit;
}

</style>
</head>
<body bgcolor="#FFFFFF">
<a name="top"></a>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td colspan="2" align="right"><span class="element"><a href="../../sample.reference.html">Sample Reference</a> - <a href="../../schema.reference.html">Schema Reference</a> - <a href="../../config.reference.html">Configuration Reference</a> - <a href="http://jasperreports.sourceforge.net/api/index.html">API (Javadoc)</a></span>
<br>
</td>
</tr>
<tr>
<td colspan="2">
<hr size="1">
</td>
</tr>
<tr valign="middle">
<td nowrap="true"><span class="title">JasperReports - JavaScript Sample (version 4.0.2)</span></td><td align="right"><img src="../../resources/jasperreports.png" border="0"></td>
</tr>
<tr>
<td colspan="2">
<hr size="1">
</td>
</tr>
</table>
<br>
<span class="description"><span class="description">Shows how the JavaScript language could be used inside report templates.</span></span>
<br>
<br>
<span class="element"><a href="http://sourceforge.net/projects/jasperreports/files/jasperreports/JasperReports%204.0.2/jasperreports-4.0.2-project.zip/download" target="_blank">Download All Sample Source Files</a></span>
<br>
<span class="element"><a href="http://jasperforge.org/scm/viewvc.php/tags/jr-4-0-2/jasperreports/demo/samples/javascript/?root=jasperreports" target="_blank">Browse Sample Source Files on SVN</a></span>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 20px;">
<br>
</td><td>
<br>
</td>
</tr>
<tr>
<td colspan="2"><span class="label">Main Features in This Sample</span></td>
</tr>
<tr>
<td>
<br>
</td><td><span class="element"><a href="#javascript">Using the JavaScript Language for Report Expressions (JavaScript Report Compiler)</a></span></td>
</tr>
<tr>
<td colspan="2">
<br>
</td>
</tr>
<tr>
<td colspan="2"><span class="label">Secondary Features</span></td>
</tr>
<tr>
<td></td><td><span class="element"><a href="../groovy/index.html#reportcompilers">Report Compilers</a></span></td>
</tr>
</table>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td><img src="../../resources/px.gif" border="0" width="20" height="1"></td><td><img src="../../resources/px.gif" border="0" width="20" height="1"></td><td><img src="../../resources/px.gif" border="0" width="20" height="1"></td><td><img src="../../resources/px.gif" border="0" width="20" height="1"></td><td width="80%">
<br>
</td><td width="20%">
<br>
</td>
</tr>
<tr>
<td colspan="6" align="right"><a name="javascript"></a><a href="#top" class="toc">top</a></td>
</tr>
<tr>
<td colspan="6">
<hr size="1">
</td>
</tr>
<tr valign="top">
<td><img src="../../resources/jr-16x16.png" border="0"></td><td colspan="4"><span class="name">Using the JavaScript Language for Report Expressions (JavaScript Report Compiler)</span></td><td align="right"><span class="copy">Documented by 
	<a href="mailto:shertage@users.sourceforge.net" class="copy">Sanda Zaharia</a></span></td>
</tr>
<tr>
<td colspan="6">
<br>
</td>
</tr>
<tr valign="top">
<td>
<br>
</td><td nowrap="true"><span class="label">Description / Goal</span></td><td>
<br>
</td><td colspan="3"><span class="description">
How to use JavaScript to write report expressions.
    </span></td>
</tr>
<tr valign="top">
<td>
<br>
</td><td colspan="1"><span class="label">Since</span></td><td>
<br>
</td><td colspan="3"><span class="description">3.1.2</span></td>
</tr>
<tr valign="top">
<td>
<br>
</td><td nowrap="true"><span class="label">Other Samples</span></td><td>
<br>
</td><td colspan="3">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td><span class="element"><a href="../antcompile/index.html">/demo/samples/antcompile</a></span></td>
</tr>
<tr>
<td><span class="element"><a href="../beanshell/index.html">/demo/samples/beanshell</a></span></td>
</tr>
<tr>
<td><span class="element"><a href="../groovy/index.html">/demo/samples/groovy</a></span></td>
</tr>
<tr>
<td><span class="element"><a href="../java1.5/index.html">/demo/samples/java1.5</a></span></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="6">
<br>
</td>
</tr>
<tr>
<td>
<br>
</td><td colspan="5"><span class="description">
<b>JavaScript Scripting Example</b>

<br>

<br>
The main purpose of this sample is to show how the JavaScript compiler implementation works. Useful information 
about the default JavaScript compiler implementation can be found <a href="../groovy/index.html#jsCompiler" target="_blank" class="element">here</a>.
<br>
This sample contains report expressions written using JavaScript. The 
<span class="element"><a href="http://jasperreports.sourceforge.net/api/net/sf/jasperreports/compilers/JavaScriptCompiler.html" target="_blank">JavaScriptCompiler</a></span> default implementation 
creates the JavaScript-related expression evaluator during the report compilation and prepares the <span class="code"><code>JasperReport</code></span> 
object for the filling process. 
<br>

<br>
In order to use JavaScript, the report <span class="code"><code>language</code></span> attribute is declared below: 
<br>

<br>

<span class="code"><code>language="javascript"</code></span>

<br>

<br>
In the report template are 
presented some JavaScript expressions which cannot be evaluated using Java, and one could notice some advantages 
that JavaScript scripting comes with.
<br>
Having two numbers, 3 and 5, the report will output first their values as real numbers, and then their calculated sum. The two numbers 
are declared as follows:
<br>

<br>

<span class="code"><code>
&nbsp;&nbsp;&lt;parameter name="A" class="java.lang.Double"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;defaultValueExpression&gt;&lt;![CDATA[3]]&gt;&lt;/defaultValueExpression&gt;
<br>
&nbsp;&nbsp;&lt;/parameter&gt;
<br>
&nbsp;&nbsp;&lt;parameter name="B" class="java.lang.Double"&gt;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;defaultValueExpression&gt;&lt;![CDATA[5]]&gt;&lt;/defaultValueExpression&gt;
<br>
&nbsp;&nbsp;&lt;/parameter&gt;
</code></span>

<br>

<br>
Both A and B values are declared of <span class="code"><code>java.lang.Double</code></span> type. But their values are let as primitive <span class="code"><code>int</code></span> types, because 
JavaScript is able to allocate types at runtime. All type conversions are performed dynamically, according to the type declarations above. 
The JavaScript scripting above uses a very simplified syntax. Taking into account the backward compatibility with JDK 1.4.x or earlier, 
equivalent Java expressions would be:
<br> 

<br> 

<span class="code"><code>&nbsp;&nbsp;&nbsp;&nbsp;&lt;defaultValueExpression&gt;&lt;![CDATA[Double.valueOf(3.0)]]&gt;&lt;/defaultValueExpression&gt;</code></span>

<br>

<span class="code"><code>&nbsp;&nbsp;&nbsp;&nbsp;&lt;defaultValueExpression&gt;&lt;![CDATA[Double.valueOf(5.0)]]&gt;&lt;/defaultValueExpression&gt;</code></span>

<br>

<br>
The next two expressions in the report template read values from parameters declared above and store them in two text fields. 
These expressions can be evaluated using either JavaScript or Java:
<br>

<br>

<span class="code"><code>&nbsp;&nbsp;&lt;textFieldExpression class="java.lang.Double"&gt;&lt;![CDATA[$P{A}]]&gt;&lt;/textFieldExpression&gt;</code></span>

<br>

<span class="code"><code>&nbsp;&nbsp;&lt;textFieldExpression class="java.lang.Double"&gt;&lt;![CDATA[$P{B}]]&gt;&lt;/textFieldExpression&gt;</code></span>

<br>

<br>
Next, the A + B sum is calculated within a JavaScript expression:
<br>

<br>

<span class="code"><code>&nbsp;&nbsp;&lt;textFieldExpression class="java.lang.Double"&gt;&lt;![CDATA[$P{A} + $P{B}]]&gt;&lt;/textFieldExpression&gt;</code></span>

<br>

<br>
Object instantiation and type conversion are transparent processes here, the user only 
has to write a simple addition operation between the two report 
parameters (however, the specific parameter syntax still has to be respected). 
<br>
The equivalent Java expression would be:
<br>

<br>

<span class="code"><code>&nbsp;&nbsp;&lt;textFieldExpression class="java.lang.Double"&gt;&lt;![CDATA[new Double($P{A}.doubleValue() + $P{B}.doubleValue())]]&gt;&lt;/textFieldExpression&gt;</code></span>

<br>

<br>
with a lot more complicated syntax.
<br>

<br>

<b>Running the Sample</b>

<br>

<br>
Running the sample requires the <a href="http://ant.apache.org/" target="_blank" class="element">Apache Ant</a> library. Make sure that <span class="code"><code>ant</code></span> is already installed on your system (version 1.5 or later).
<br>
In a command prompt/terminal window set the current folder to <span class="code"><code>demo/samples/javascript</code></span> within the JasperReports source project and run the <span class="code"><code>&gt; ant test view</code></span> command.
<br>
It will generate all supported document types containing the sample report in the <span class="code"><code>demo/samples/javascript/build/reports</code></span> directory. 
<br>
Then the report will open in the JasperReports internal viewer.
    </span></td>
</tr>
<tr>
<td colspan="6">
<br>
</td>
</tr>
</table>
<br>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td>
<hr size="1">
</td>
</tr>
<tr>
<td align="center"><span class="copy">&copy; 2001-2010 Jaspersoft Corporation <a href="http://www.jaspersoft.com" target="_blank" class="copy">www.jaspersoft.com</a></span></td>
</tr>
</table>
</body>
</html>