<?xml version="1.0"?>
<rss version="2.0"><channel><title>Knowledge Base: Best Practices</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/page/5/?d=6</link><description>Knowledge Base: Best Practices</description><language>en</language><item><title>Splitting primary and secondary axes for an HTML5 Multiaxis chart</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/splitting-primary-and-secondary-axes/</link><description><![CDATA[<h2>
	Problem Description:
</h2>

<p>
	Suppose you have an HTML5 multiaxis chart with both primary and secondary axes on the left side.  You want to put the primary axis on the left side and the secondary axis on the right side.
</p>

<hr />
<h2>
	Solution:
</h2>

<pre class="ipsCode prettyprint lang-xml prettyprinted">&lt;hc:chartSetting name="default"&gt;
    &lt;hc:chartProperty name="yaxis.opposite" value="true"/&gt;
&lt;/hc:chartSetting&gt;</pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">3587</guid><pubDate>Sun, 27 Oct 2019 23:14:15 +0000</pubDate></item><item><title>Dynamically Pass Parameter As Collection Using REST</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/dynamically-pass-parameter-collection-using-rest/</link><description><![CDATA[<table border="0" cellpadding="0" cellspacing="0" style="width:100%;">
	<tbody>
		<tr>
			<td style="text-align:left;vertical-align:middle;width:50%;">
				<h2>
					Requirement
				</h2>

				<p>
					Jaspersoft® Studio report includes dynamic parameter values and looks like this:
				</p>
			</td>
			<td style="text-align:left;vertical-align:middle;width:50%;">
				[toc]
			</td>
		</tr>
	</tbody>
</table>

<pre class="ipsCode prettyprint lang-auto prettyprinted">http://&lt;host&gt;:&lt;port&gt;/jasperserver[-pro]/rest_v2/reports/reports/iReports/Test/Portfolio_Information_Details.xlsx?ignorePagination=true&amp;P_PORT_POSITION="+$P{P_PORT_POSITION}+"&amp;P_UNIT_ID="+$P{P_UNIT_ID}+"&amp;P_REGIONS_ONLY="+$P{P_REGIONS_ONLY}+"&amp;P_UNIT_ROLLUP="+$P{P_UNIT_ROLLUP}
</pre>

<p>
	The issue is that the parameter "P_PORT_POSITION" is a collection type and can pass multiple values to the exporting report.
</p>

<p>
	When multiple values are passed, it looks like this: "&amp;P_PORT_POSITION=[001,054]":
</p>

<pre class="ipsCode prettyprint lang-auto prettyprinted">http://&lt;host&gt;:&lt;port&gt;/jasperserver[-pro]/rest_v2/reports/reports/iReports/Test/Portfolio_Information_Details.xlsx?ignorePagination=true&amp;P_PORT_POSITION=[001,%20054]&amp;P_UNIT_ID=90001010&amp;P_REGIONS_ONLY=false&amp;P_UNIT_ROLLUP=true
</pre>

<p>
	You can see "&amp;P_PORT_POSITION=[001,%20054]" is passed, which isn't a valid value so the export report runs for all P_PORT_POSITION values instead of just 001 and 054.
</p>

<p>
	According to <a href="https://community.jaspersoft.com/documentation/tibco-jasperreports-server-rest-api-reference/v64/reports-service" rel="">Jaspersoft® Server REST API guide</a> , there is an example, which mentions "input controls that are multi-select may appear more than once" (but, those are hardcoded values.):
</p>

<pre class="ipsCode prettyprint lang-auto prettyprinted">GET http://&lt;host&gt;:&lt;port&gt;/jasperserver[-pro]/rest_v2/reports/reports/samples/Cascading_multi_select_report.html?Country_multi_select=USA&amp;Cascading_state_multi_select=WA&amp;Cascading_state_multi_select=CA
</pre>

<p>
	Anyway, it doesn't show how to do it dynamically.
</p>

<p>
	Is there a way to split these collection values for passing them correctly, such as "&amp;P_PORT_POSITION=001&amp;P_PORT_POSITION=054"?
</p>

<hr />
<h2>
	Solution
</h2>

<p>
	As workaround, you can do something like:
</p>

<pre class="ipsCode prettyprint lang-auto prettyprinted">http://&lt;host&gt;:&lt;port&gt;/jasperserver[-pro]/rest_v2/...&amp;P_PORT_POSITION=" + String.join("&amp;P_PORT_POSITION=", $P{P_PORT_POSITION}) + ...

</pre>

<p>
	If you need to consider the case of P_PORT_POSITION is empty, you will have to do this more complex:
</p>

<pre class="ipsCode prettyprint lang-auto prettyprinted">http://&lt;host&gt;:&lt;port&gt;/jasperserver[-pro]/rest_v2/..." + (($P{P_PORT_POSITION} == null || $P{P_PORT_POSITION}.isEmpty()) ? "" : ("&amp;P_PORT_POSITION=" + String.join("&amp;P_PORT_POSITION=", $P{P_PORT_POSITION}))) + ...

</pre>

<p>
	<em><strong>VO - 20190329, case #01690565</strong></em>
</p>
]]></description><guid isPermaLink="false">3379</guid><pubDate>Fri, 29 Mar 2019 13:37:19 +0000</pubDate></item><item><title>Show Current Organization Name Beside the Username</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/show-current-organization-name-beside-username/</link><description><![CDATA[<h2>
	Use Case
</h2>

<hr />
<p>
	Show current organization name beside the username in the banner to the right next to &lt;userID&gt;, Logout, Help.
</p>

<h2>
	Solution
</h2>

<hr />
<p>
	In
</p>

<pre class="ipsCode prettyprint lang-xml prettyprinted">&lt;js-install folder&gt;\apache-tomcat\webapps\jasperserver-pro\WEB-INF\decorators\decorator.jsp change the &lt;li id="userID" role="menuitem"&gt; 
</pre>

<p>
	as follows:                 
</p>

<pre class="ipsCode prettyprint lang-xml prettyprinted">&lt;li id="userID" role="menuitem"&gt;
   &lt;span id="casted"&gt;
      &lt;c:if test="&lt;%= com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl.isUserSwitched() %&gt;"&gt;
         &lt;c:set var="principalUserFullName"
                value="&lt;%= ((com.jaspersoft.jasperserver.api.metadata.user.domain.User)
                           com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl.getSourceAuthentication().getPrincipal()).getFullName() %&gt;"/&gt;
         ${principalUserFullName}
         &lt;spring:message code="jsp.main.as"/&gt;
      &lt;/c:if&gt;
   &lt;/span&gt;
   &lt;span id="casted1"&gt;
      &lt;c:if test="&lt;%= com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl.isUserSwitched() %&gt;"&gt;
         &lt;c:set var="principalUserFullName1"
                value="&lt;%= ((com.jaspersoft.jasperserver.api.metadata.user.domain.User)
                           com.jaspersoft.jasperserver.api.metadata.user.service.impl.UserAuthorityServiceImpl.getSourceAuthentication().getPrincipal()).getTenantId() %&gt;"/&gt;
         ${principalUserFullName1} 
         &lt;spring:message code="jsp.main.as"/&gt;
                                    &lt;/c:if&gt;
   &lt;/span&gt;
   &lt;authz:authentication property="principal.fullName"/&gt;
      | 
   &lt;authz:authentication property="principal.TenantId"/&gt;
&lt;/li&gt;
</pre>

<p>
	<strong>IMPORTANT!</strong> Please note that the solution is considered experimental, and is not officially tested or supported. Use it at your own risk.
</p>

<hr />
<p>
	<strong><em>Ref. Case #01740297 </em></strong>
</p>
]]></description><guid isPermaLink="false">3398</guid><pubDate>Thu, 11 Apr 2019 13:14:37 +0000</pubDate></item><item><title>Assign Ad Hoc Measure to a Specific Y-axis In Ad Hoc Reports</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/assign-ad-hoc-measure-specific-y-axis-ad-hoc-reports/</link><description><![CDATA[<h2>
	Use Case
</h2>

<p>
	Customer created an Ad Hoc Report with dual-axis chart.
</p>

<p>
	He would like to assign the second Ad Hoc Measure to the first Y-axis, instead of the second, by default, one.
</p>

<hr />
<h2>
	Resolution
</h2>

<p>
	In TIBCO JasperReports® Server v.7.1.0 and newer version, you can set chart properties with array indices in JRXML.
</p>

<p>
	So if the related Ad Hoc View only has measures on the columns axis, you can directly set the yAxis properties of a series like this:
</p>

<pre style="padding:1em;background-color:#F8F8F8;line-height:1.3;font-size:12px;">&lt;jrhc:chartSetting name="_jrs_adhoc"&gt;......&lt;/jrhc:chartSetting&gt;&lt;jrhc:chartSetting name="default"&gt;&lt;jrhc:chartProperty name="series[1].yAxis"&gt;&lt;jrhc:propertyExpression&gt;&lt;![CDATA[0]]&gt;&lt;/jrhc:propertyExpression&gt;&lt;/jrhc:chartProperty&gt;&lt;/jrhc:chartSetting&gt;[/code]</pre>

<p>
	 
</p>

<p>
	This puts the second measure/series (series[1]) on the first axis (0).
</p>

<p>
	The solution will not work with version of  TIBCO JasperReports® Server less than 7.1.0 as property name "series[1].yAxis" will not be recoginzed
</p>

<hr />
<p>
	<strong><em>AS-20190403, case #01713498</em></strong>
</p>

<hr />
]]></description><guid isPermaLink="false">3381</guid><pubDate>Wed, 03 Apr 2019 08:07:49 +0000</pubDate></item><item><title>Make timestamps returned from database stay in server timezone, but adjust report rendering timestamp to user's timezone</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/make-timestamps-returned-database-stay-server-timezone-adjust-report-rendering-timestamp-users/</link><description><![CDATA[<h3>
	Issue Description
</h3>

<p>
	Someone might want timestamp-based values from their database use a specific timezone, like the server timezone for example, but they might have report-rendering timestamps (for example a "ran on" value in a title or summary) that they'd like to show in the user's timezone.
</p>

<h3>
	Resolution
</h3>

<p>
	You can specify a timezone adjustment at an element level via this property:
</p>

<p>
	<a href="http://jasperreports.sourceforge.net/config.reference.html#net.sf.jasperreports.pattern.timezone" rel="external nofollow">http://jasperreports.sourceforge.net/config.reference.html#net.sf.jasperreports.pattern.timezone</a>
</p>

<p>
	If you're using JRS and wanted to specify the user's timezone defined for them during login you'd set the element to REPORT_TIME_ZONE.  Select the field in your report design in Jaspersoft Studio, then in the Properties panel select Advanced &gt; Misc &gt; Properties. Add new property with name: net.sf.jasperreports.pattern.timezone and value: REPORT_TIME_ZONE
</p>
]]></description><guid isPermaLink="false">3391</guid><pubDate>Tue, 09 Apr 2019 23:37:41 +0000</pubDate></item><item><title>jrxml report that can utilize PDF forms</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/jrxml-report-that-can-utilize-pdf-forms-r4856/</link><description><![CDATA[<p>
	The content of a PDF document can be edited inside a PDF form that contains various input fields such as textboxes, lists, comboboxes, checkboxes, radio groups, etc. Using the JasperReports library, one can generate these input fields by setting specific custom properties in the report. In the following sections we will see how these properties can be set and how they work in conjunction to generate editable content in PDF documents.
</p>

<p>
	Example:
</p>

<p>
	&lt;element kind="ellipse" positionType="Float" mode="Opaque" width="25" height="25"&gt;<br />
	  &lt;pen lineWidth="1.0"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.type" value="Check"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.check.type" value="Square"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.border.style" value="Beveled"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.read.only" value="true"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.checked" value="true"/&gt;<br />
	&lt;/element&gt;
</p>

<p>
	<br />
	<strong>Text Input Fields</strong><br />
	Textboxes are text input fields. They can be either single line or multi line textboxes. To specify which kind of textbox is considered, we can set the following flag property per report element: net.sf.jasperreports.export.pdf.field.text.multiline. The initial text content of the input field is provided by the net.sf.jasperreports.export.pdf.field.value custom property and in case that one is missing, then the actual text content of the JasperReports text element is used instead.
</p>

<p>
	Example:
</p>

<p>
	&lt;element kind="textField" positionType="Float" mode="Opaque"<br />
	  x="250" width="200" height="45" forecolor="#FFFF00" backcolor="#0000FF" hTextAlign="Right" fontName="DejaVu Serif" fontSize="24.0"&gt;<br />
	  &lt;expression&gt;&lt;![CDATA["This\nis a multi\nline text inside a multi line text field."]] &gt;&lt;/expression&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.type" value="Text"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.text.multiline" value="true"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.print.keep.full.text" value="true"/&gt;<br />
	&lt;/element&gt;
</p>

<p>
	<br />
	<strong>List and Combobox Input Fields</strong><br />
	List and combobox input fields can be populated by setting the following property: net.sf.jasperreports.export.pdf.field.choices. Its value contains list items separated by a special character or set of characters provided by the net.sf.jasperreports.export.pdf.field.choice.separators property. If not set, the default separator is '|'.
</p>

<p>
	Example:
</p>

<p>
	&lt;element kind="textField" positionType="Float" mode="Opaque" width="200" height="95" forecolor="#00FFFF" backcolor="#00FF00"<br />
	hTextAlign="Center" fontName="DejaVu Serif" bold="true" fontSize="24.0"&gt;<br />
	  &lt;expression&gt;&lt;![CDATA["This text does not matter in PDF export."]] &gt;&lt;/expression&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.type" value="List"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.choice.separators" value=","/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.choices" value="Un,Deux,Trois,Quatre,Cinq"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.value" value="Quatre"/&gt;<br />
	  &lt;box&gt;<br />
	    &lt;pen lineWidth="2.0" lineStyle="Dashed" lineColor="#FF0000"/&gt;<br />
	  &lt;/box&gt;<br />
	&lt;/element&gt;
</p>

<p>
	<br />
	In case we need the textbox in the combobox field to be editable, we can set the net.sf.jasperreports.export.pdf.field.combo.edit property per combobox element, while the a preselected value can be set using the net.sf.jasperreports.export.pdf.field.value property:
</p>

<p>
	&lt;element kind="textField" ... forecolor="#0000FF" backcolor="#FFFF00" hTextAlign="Center" fontName="DejaVu Serif" bold="true" fontSize="24.0"&gt;<br />
	  &lt;expression&gt;&lt;![CDATA["This text does not matter in PDF export."]] &gt;&lt;/expression&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.type" value="Combo"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.choices" value="One|Two|Three|Four|Five"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.combo.edit" value="true"/&gt;<br />
	&lt;/element&gt;
</p>

<p>
	<br />
	<strong>Checkbox Input Field</strong><br />
	In order to properly set a checkbox we need to know how it's decorated and whether it's checked or no. We can set the checkbox appearance by using the net.sf.jasperreports.export.pdf.field.check.type property with the following possible values:
</p>

<p>
	<strong>Check</strong> - specifies a checkbox type decoration<br />
	<strong>Circle</strong> - specifies a circle tipe decoration<br />
	<strong>Cross</strong> - specifies a cross type decoration<br />
	<strong>Diamond</strong> - specifies a diamond type decoration<br />
	<strong>Square</strong> - specifies a square type decoration<br />
	<strong>Star</strong> - specifies a star type decoration
</p>

<p>
	To indicate if the checkbox is checked when the PDF document is open, we can use the net.sf.jasperreports.export.pdf.field.checked property, as in the following example:
</p>

<p>
	&lt;element kind="ellipse"  positionType="Float" mode="Opaque" width="25" height="25"&gt;<br />
	  &lt;pen lineWidth="1.0"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.type" value="Check"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.check.type" value="Square"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.border.style" value="Beveled"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.read.only" value="true"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.checked" value="true"/&gt;<br />
	&lt;/element&gt;
</p>

<p>
	<br />
	<strong>Radio Groups</strong><br />
	Radio groups are radio option input fields grouped together so that only a single option can be selected at a time. To group together several radio options we can use the net.sf.jasperreports.export.pdf.field.name property. By assigning the same name for multiple JasperReports elements, they will be automatically grouped as radio options. To decorate these radio elements we can use the same net.sf.jasperreports.export.pdf.field.check.type property with the same possible values as for checkboxes. Also, to indicate which option is selected when opening the document, we can use the net.sf.jasperreports.export.pdf.field.checked property.
</p>

<p>
	Example:
</p>

<p>
	&lt;element kind="textField" positionType="Float" mode="Opaque" x="250" width="25" height="25"&gt;<br />
	  &lt;expression&gt;&lt;![CDATA["This text does not matter in PDF export."]] &gt;&lt;/expression&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.name" value="MyRadioGroup"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.type" value="Radio"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.check.type" value="Check"/&gt;<br />
	  &lt;box&gt;<br />
	    &lt;pen lineWidth="1.0"/&gt;<br />
	  &lt;/box&gt;<br />
	&lt;/element&gt;<br />
	...<br />
	&lt;element kind="textField" positionType="Float" mode="Opaque" x="250" width="25" height="25"&gt;<br />
	  &lt;expression&gt;&lt;![CDATA["This text does not matter in PDF export."]] &gt;&lt;/expression&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.name" value="MyRadioGroup"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.type" value="Radio"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.check.type" value="Circle"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.checked" value="true"/&gt;<br />
	  &lt;box&gt;<br />
	    &lt;pen lineWidth="1.0"/&gt;<br />
	  &lt;/box&gt;<br />
	&lt;/element&gt;<br />
	...<br />
	&lt;element kind="textField" positionType="Float" mode="Opaque" x="250" width="25" height="25"&gt;<br />
	  &lt;expression&gt;&lt;![CDATA["This text does not matter in PDF export."]] &gt;&lt;/expression&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.name" value="MyRadioGroup"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.type" value="Radio"/&gt;<br />
	  &lt;property name="net.sf.jasperreports.export.pdf.field.check.type" value="Cross"/&gt;<br />
	  &lt;box&gt;<br />
	    &lt;pen lineWidth="1.0"/&gt;<br />
	  &lt;/box&gt;<br />
	&lt;/element&gt;<br />
	...
</p>
<p>
<a class="ipsAttachLink" href="https://community.jaspersoft.com/applications/core/interface/file/attachment.php?id=132566&amp;key=01e0b5157d4bcfef950f864961cb4517" data-fileExt='jrxml' data-fileid='132566' data-filekey='01e0b5157d4bcfef950f864961cb4517'>FormsReport (1).jrxml</a></p>]]></description><guid isPermaLink="false">4856</guid><pubDate>Wed, 30 Apr 2025 02:59:39 +0000</pubDate></item><item><title>Make Two Level Tree Map in Jaspersoft Studio</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/make-two-level-tree-map-jaspersoft-studio/</link><description><![CDATA[<h2>
	Requirement
</h2>

<p>
	When user creates a a TreeMap in Jaspersoft Studio, there might be a need to display several categories of data on chart:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="jpg" data-fileid="90845" href="//media.invisioncic.com/i328763/monthly_2019_07/highchart_0.jpg.a66f141b435bc537358b4d1224ba3dfd.jpg" rel=""><img alt="highchart_0.jpg.a66f141b435bc537358b4d1224ba3dfd.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="90845" style="height:auto;" src="//media.invisioncic.com/i328763/monthly_2019_07/highchart_0.jpg.a66f141b435bc537358b4d1224ba3dfd.jpg" loading="lazy"></a>
</p>

<p>
	By default, TreeMap won`t show several categories, but will make a drill down from level one to level two, which can be accessed via clicking on chart series
</p>

<hr>
<h2>
	Solution
</h2>

<p>
	It is possible to do this with Chart Properties in Jaspersoft Studio. For this you need to open Chart Properties &gt; Go to Advanced Chart Properties &gt; PlotOptions &gt;Treemap &gt; dataLablels &gt; Enabled and set it to true (plotOptions.treemap.dataLabels.enabled). The result will be the following:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="jpg" data-fileid="90846" href="//media.invisioncic.com/i328763/monthly_2019_07/property_enabled.jpg.dcc3657b7237485b125e959bd47ee68d.jpg" rel=""><img alt="property_enabled.jpg.dcc3657b7237485b125e959bd47ee68d.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="90846" style="height:auto;" src="//media.invisioncic.com/i328763/monthly_2019_07/property_enabled.jpg.dcc3657b7237485b125e959bd47ee68d.jpg" loading="lazy"></a>
</p>

<p>
	By default the result will be following:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="jpg" data-fileid="90847" href="//media.invisioncic.com/i328763/monthly_2019_07/property_disabled_1.jpg.b3ac128b2a9e566609aab0acf483f3cd.jpg" rel=""><img alt="property_disabled_1.jpg.b3ac128b2a9e566609aab0acf483f3cd.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="90847" style="height:auto;" src="//media.invisioncic.com/i328763/monthly_2019_07/property_disabled_1.jpg.b3ac128b2a9e566609aab0acf483f3cd.jpg" loading="lazy"></a>
</p>

<p>
	If to click on Retailer 57 rectangle this will open next level of chart via drill down:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="jpg" data-fileid="90848" href="//media.invisioncic.com/i328763/monthly_2019_07/property_disabled_2.jpg.b6deb8987c5b0dfa5008d474a5c2f2ce.jpg" rel=""><img alt="property_disabled_2.jpg.b6deb8987c5b0dfa5008d474a5c2f2ce.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="90848" style="height:auto;" src="//media.invisioncic.com/i328763/monthly_2019_07/property_disabled_2.jpg.b6deb8987c5b0dfa5008d474a5c2f2ce.jpg" loading="lazy"></a>
</p>

<hr>
<h2>
	References
</h2>

<p>
	<a href="https://www.highcharts.com/demo/treemap-with-levels" rel="external nofollow">TreeMap JS Sample</a>
</p>

<hr>
<p>
	<em>ref case - 01786140 akovach</em>
</p>

<p>
	<a class="ipsAttachLink" data-fileext="jrxml" data-fileid="130660" href="https://community.jaspersoft.com/applications/core/interface/file/attachment.php?id=130660&amp;key=27aa10be41930336c043383aa92d7412" rel="">treemap_levels.jrxml</a>
</p>
]]></description><guid isPermaLink="false">3507</guid><pubDate>Fri, 19 Jul 2019 09:50:33 +0000</pubDate></item><item><title>Tips-n-Tricks for boosting bar charts rendering time in JRXML reports</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/tips-n-tricks-boosting-bar-charts-rendering-time-jrxml-reports/</link><description><![CDATA[<h2>
	Use case:
</h2>

<p>
	[toc on_off::hide=1]
</p>

<p>
	Customer has a few reports that utilize the detail band to iterate through 60-100 records and display a high chart (a simple one bar "gauge" type chart). They have noticed that the performance of the highcharts rendering really slows down the report. The data comes back within a few seconds, but then the report has to "wait" until each high chart renders. Result report contains about 100 bar charts in a single page:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="90854" href="//media.invisioncic.com/i328763/monthly_2019_07/download_21.png.c6c5dd4787f586ee957a74920c19127d.png" rel=""><img alt="download_21.png.c6c5dd4787f586ee957a74920c19127d.png" class="ipsImage ipsImage_thumbnailed" data-fileid="90854" src="//media.invisioncic.com/i328763/monthly_2019_07/download_21.png.c6c5dd4787f586ee957a74920c19127d.png" loading="lazy"></a>
</p>

<hr>
<h2>
	Issue:
</h2>

<p>
	It appears, charts (especially in every page) significantly increase report execution time. Also, render time depends a lot of its appearance ( how customized is it). Also, it is not always the best practice to place charts in detail band of the report. Unless that's what are your requirements.
</p>

<hr>
<h2>
	Resolution:
</h2>

<p>
	<strong>Important note</strong>: This resolution can fully be applicable only to this usecase. For other types of charts or usecases, this article can be considered as a list of possible suggestions of how to improve charts rendering time.
</p>

<p>
	First - Given that the charts are just a simple bar charts, one option would be to give up using Highcharts and write some code that creates SVGs or PNGs for the charts. Or you can even write the SVG directly in the image expression. I shall attach "image_sample" report, as an example. But it appears, it's not especially pretty.
</p>

<p>
	Second - If you need to stick to Highcharts, there might be a few changes that would slightly improve the time it takes to render the charts. For instance you can set the <strong>com.jaspersoft.jasperreports.highcharts.interactive</strong> property to false (at chart element level) to disable the interactive chart type change action. And maybe, depending on the chart type, some chart properties can be tweaked to reduce the work done by Highcharts. 
</p>

<p>
	Regarding this,  it seems that setting the<strong> com.jaspersoft.jasperreports.highcharts.interactive</strong> to false for the element, and setting the <strong>xAxis.labels.enabled</strong> and <strong>yAxis.labels.enabled</strong> chart properties to false resulted in a noticeable performance improvement (on Chrome at least). Also, attaching the "chart_sample" report that I tested.
</p>

<p>
	Other changes in the way the charts are rendered would involve modifying the JR/S JavaScript code. A cleanup might also help to some degree, the chart seems to have several properties that are useless (e.g. plotOptions.pie.showInLegend).
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="90855" href="//media.invisioncic.com/i328763/monthly_2019_07/download_21.png.edcc0447658b5bc800d80e0ab7116308.png" rel=""><img alt="download_21.png.edcc0447658b5bc800d80e0ab7116308.png" class="ipsImage ipsImage_thumbnailed" data-fileid="90855" style="height:auto;" src="//media.invisioncic.com/i328763/monthly_2019_07/download_21.png.edcc0447658b5bc800d80e0ab7116308.png" loading="lazy"></a>
</p>

<p>
	<a class="ipsAttachLink" data-fileext="jrxml" data-fileid="130662" href="https://community.jaspersoft.com/applications/core/interface/file/attachment.php?id=130662&amp;key=dac643f7ae5af885096cce19192317f5" rel="">chart_sample.jrxml</a>
</p>

<p>
	<a class="ipsAttachLink" data-fileext="jrxml" data-fileid="130663" href="https://community.jaspersoft.com/applications/core/interface/file/attachment.php?id=130663&amp;key=fb6f150995f939346da8dce9a41b8116" rel="">image_sample.jrxml</a>
</p>
]]></description><guid isPermaLink="false">3516</guid><pubDate>Fri, 26 Jul 2019 10:03:24 +0000</pubDate></item><item><title>Cannot use GeoAnalytics map key global setting in jasperreports.properties</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/cannot-use-geoanalytics-map-key-global-setting-jasperreportsproperties/</link><description><![CDATA[<h2>
	Problem Description
</h2>

<p>
	Normally, if you are using the following name and key in <span style="color:#555555;"><strong><em>jasperreports.properties</em></strong></span> for displaying GeoAnalytics map, it should work. 
</p>

<pre class="ipsCode prettyprint lang-auto prettyprinted">com.jaspersoft.jasperreports.tibco.maps.customer.name=myname

com.jaspersoft.jasperreports.tibco.maps.customer.key=jDZ76WBa8TE=</pre>

<p>
	There is one situation when these values are ignored and an error is displayed in the browser debug panel [F12] Console tab,
</p>

<pre class="ipsCode prettyprint lang-auto prettyprinted">        Uncaught Error:  Please set the geocoder customer and key.

</pre>

<p>
	The problem is not the equal sign in the key.  This problem can happen in the following situation.  You entered the name and key values in Jaspersoft Studio Tibco Maps properties.
</p>

<p>
	The report works fine in Jaspersoft Studio, or as a report published from Jaspersoft Studio to a jasperserver installation.  
</p>

<p>
	However, if you blank out these values in the jrxml, and expect jasperserver to read the name and key from jasperreports.properties.
</p>

<h3>
	For example,
</h3>

<pre class="ipsCode prettyprint lang-xml prettyprinted">&lt;c:itemProperty name=""/&gt;

&lt;c:itemProperty name=""/&gt;</pre>

<p>
	jasperreports library will ignore the name and key defined in jasperreports.properties.  Hence, the error.
</p>

<p>
	This is a bug being addressed as JRL-1400 to be fixed in a future release.
</p>

<hr />
<h2>
	Workaround:
</h2>

<p>
	Remove these 2 lines from the jrxml entirely:
</p>

<pre class="ipsCode prettyprint lang-xml prettyprinted">&lt;c:itemProperty name=""/&gt;

&lt;c:itemProperty name=""/&gt;</pre>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">3537</guid><pubDate>Sat, 24 Aug 2019 01:10:31 +0000</pubDate></item><item><title>Jasperserver is taking too long to load repository resources while creating an ad-hoc view</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/jasperserver-is-taking-too-long-to-load-repository-resources-while-creating-an-ad-hoc-view-r4849/</link><description><![CDATA[<p>
	<strong><span style="font-size:16px;">Issue:</span></strong><br />
	<span style="font-size:14px;">When building a list of available data sources for Ad Hoc Views, the Data Chooser runs sub-queries to filter out ad hoc reports and views stored at /adhoc/topics. If a large number of ad hoc reports and views exist in the repository under this location, the sub-query execution can be slow, leading to performance issues.</span><br />
	<br />
	<span style="font-size:16px;"><strong>Resolution:</strong></span><br />
	<span style="font-size:14px;">To improve performance, disable the sub-queries by setting skip.adhoc.datasource.check to true in the configuration file. This prevents the system from running filtering sub-queries when listing available data sources.</span><br />
	 
</p>

<p>
	<strong><span style="font-size:14px;">Steps to Disable Sub-Queries:</span></strong>
</p>

<p>
	<span style="font-size:14px;">1. Locate the configuration file: jasperserver-pro/WEB-INF/js.config.properties.</span>
</p>

<p>
	<span style="font-size:14px;">2. Open the file in a text editor.</span>
</p>

<p>
	<span style="font-size:14px;">3. Add or update the following property:<br />
	skip.adhoc.datasource.check=true<br />
	<br />
	4. Save the changes and restart the JasperServer application for the changes to take effect.<br />
	<br />
	NOTE: If skip.adhoc.datasource.check is enabled, avoid using ad hoc reports as a data source, as they may not be properly filtered.<br />
	<br />
	By implementing this change, users can enhance the performance of the Data Chooser when handling large repositories of ad hoc reports and views.</span>
</p>
]]></description><guid isPermaLink="false">4849</guid><pubDate>Mon, 31 Mar 2025 11:38:06 +0000</pubDate></item><item><title>HTML5 Chart Background Image Not Included in PDF/DOCX Export</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/html5-chart-background-image-not-included-pdfdocx-export/</link><description><![CDATA[<h2>
	Issue Description
</h2>

<p>
	User created a report with HTML 5 chart with an background image as described in article:
</p>

<p>
	<a href="https://community.jaspersoft.com/blog/tip-how-set-background-image-columnbar-chart-html-5-charts-jaspersoft-studio-reports" rel="">https://community.jaspersoft.com/blog/tip-how-set-background-image-columnbar-chart-html-5-charts-jaspersoft-studio-reports</a>
</p>

<p>
	When previewing the report in Jaspersoft Studio, the background image is only shown in the HTML report output.
</p>

<p>
	It is not visible in other export formats (PDF, DOCX ...).
</p>

<p>
	How to make the image visible in the other formats?
</p>

<hr>
<h2>
	Resolution
</h2>

<p>
	In order to get background image in PDF/DOCX export, Jaspersoft Studio requires PhantomJS library to de installed in the PC
</p>

<p>
	and property
</p>

<pre>com.jaspersoft.jasperreports.highcharts.phantomjs.executable.path[/code]</pre>

<p>
	should be added with path to PhantomJS binary in Windows &gt; Preferences menu:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="90865" href="//media.invisioncic.com/i328763/monthly_2019_08/jss_phantomjsproperty.png.43c4a1fcc3c35a15a2caedbd7251556d.png" rel=""><img alt="jss_phantomjsproperty.png.43c4a1fcc3c35a15a2caedbd7251556d.png" class="ipsImage ipsImage_thumbnailed" data-fileid="90865" style="height:auto;" src="//media.invisioncic.com/i328763/monthly_2019_08/jss_phantomjsproperty.png.43c4a1fcc3c35a15a2caedbd7251556d.png" loading="lazy"></a>
</p>

<p>
	PhantomJS library is used to render HTML5 charts by JasperReports Library:
</p>

<p>
	<a href="https://community.jaspersoft.com/wiki/phantomjs-libary-jasperreports-server" rel="">https://community.jaspersoft.com/wiki/phantomjs-libary-jasperreports-server</a>
</p>

<p>
	In case of using Jaspersoft Studio in MS Windows, back-slash characters in the path should be doubled.
</p>

<p>
	Solution tested with Jaspersoft Studio v.7.3.0
</p>

<hr>
<p>
	<strong><em>AS-20190823, case #01794957</em></strong>
</p>
]]></description><guid isPermaLink="false">3535</guid><pubDate>Fri, 23 Aug 2019 12:51:24 +0000</pubDate></item><item><title>Allow access to Ad Hoc Cache for administrators (ROLE_ADMINISTRATOR)</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/allow-access-ad-hoc-cache-administrators-roleadministrator/</link><description><![CDATA[<h2>
	Use-case
</h2>

<p>
	How to configure TIBCO JasperReports<sup>®</sup> Server to allow access to Ad Hoc Cache for administrators (ROLE_ADMINISTRATOR)?
</p>

<hr />
<h2>
	Resolution
</h2>

<p>
	By default, only superuser (ROLE_SUPERUSER) has access to Manage &gt; Server Settings &gt; Ad Hoc Cache menu.
</p>

<p>
	In order to allow users with ROLE_ADMINISTRATOR role access the menu, the following steps should be performed:
</p>

<ul>
	<li>
		open WEB-INF/applicationContext-security-pro-web.xml configuration file
	</li>
	<li>
		locate bean class="com.jaspersoft.jasperserver.api.common.util.spring.GenericBeanUpdater"
	</li>
	<li>
		add ROLE_ADMINISTRATOR role to designerCacheFlow property:  designerCacheFlow=ROLE_SUPERUSER,ROLE_ADMINISTRATOR
	</li>
	<li>
		save the changes, restart the server
	</li>
</ul>

<p>
	After these steps Ad Hoc Cache menu is accessible to users that belong to ROLE_ADMINISTRATOR ROLE using below URL:
</p>

<p>
	<a href="http://localhost:8080/jasperserver-pro/flow.html?_flowId=designerCacheFlow" rel="external nofollow">http://localhost:8080/jasperserver-pro/flow.html?_flowId=designerCacheFlow</a>
</p>

<p>
	Solution tested with TIBCO JasperReports<sup>®</sup> Server
</p>

<hr />
<p>
	<strong><em>AS-20191016, case #01735077</em></strong>
</p>
]]></description><guid isPermaLink="false">3576</guid><pubDate>Wed, 16 Oct 2019 08:48:41 +0000</pubDate></item><item><title>Displaying text characters vertically</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/displaying-text-characters-vertically/</link><description><![CDATA[<h2>
	Problem Description:
</h2>

<p>
	Characters are nomally displayed horizontally in a text field.  For example, ABCDEFG.  Is there a text property to make the text display vertically?
</p>

<hr />
<h2>
	Workaround
</h2>

<p>
	There is no text property to make a string display vertically.  You can try the following workaround.
</p>

<p>
	Insert carriage return line feed between characters:
</p>

<p>
	A /r/n B /r/n C /r/n D /r/n E /r/n F /r/n G /r/n 
</p>

<p>
	You will end up with:
</p>

<p>
	A
</p>

<p>
	B
</p>

<p>
	C
</p>

<p>
	D
</p>

<p>
	E
</p>

<p>
	F
</p>

<p>
	G
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">3553</guid><pubDate>Thu, 19 Sep 2019 04:30:07 +0000</pubDate></item><item><title>Style Not Working When certain condition Using Print When Expression meets and text field is empty</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/style-not-working-when-using-print-when-expression/</link><description><![CDATA[<h2>
	Issue:
</h2>

<p>
	When using a print when expression, a style is not working for each text field. This worked as intended before, but when a print when expression to hide the whole text field if a certain condition is met, it removes the style in the cell as well. 
</p>

<hr />
<h2>
	Solution:
</h2>

<p>
	If you have a certain style in mind, one way to still have the style or color printed in a cell, you can put a frame into the text field and put the color used in the frame. The frame is always present, so if the print when expression is met and the text field is blank, the style and color will still be printed.
</p>

<hr />
<p>
	<em><strong>ref: 01813146</strong></em>
</p>
]]></description><guid isPermaLink="false">3668</guid><pubDate>Tue, 26 Nov 2019 21:49:31 +0000</pubDate></item><item><title>Cannot delete organization folder even with superuser rights</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/cannot-delete-organization-folder-even-superuser-rights/</link><description><![CDATA[<h2>
	Problem Description:
</h2>

<p>
	You are trying to delete organization folders that are no longer needed, but you are getting an error and unable to delete the folders even with superuser permissions.
</p>

<hr />
<h2>
	Workaround:
</h2>

<p>
	There might be some unknown reasons for this issue.  At least in one instance, it works if you delete the subfolders under the organization first.
</p>
]]></description><guid isPermaLink="false">3625</guid><pubDate>Wed, 06 Nov 2019 22:25:41 +0000</pubDate></item><item><title>JasperReports&#xAE;&#x200B;&#x200B;&#x200B;&#x200B;&#x200B;&#x200B;&#x200B; Server repository screen messed up</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/tibco-jasperreports-server-repository-screen-messed/</link><description><![CDATA[<h2>
	Problem Description:
</h2>

<p>
	Especially after import with --all option, sometimes the repository screens are messed up.  That is, layout components are not aligned or style components are missing.  Generally, the discrepancy can be resolved by importing the /root/Themes folder from a standard install of the same version of jasperserver to restore the default files.  These files may have been inadvertantly deleted or altered for some reason.  Perhaps when adding customizations to the Themes folder.
</p>

<p>
	If the above solution does not work, there is also another possible cause.  Check and see if you are running on a cluster with a loadbalancer.  If so, the cause is external.  Examine the HAR trace to see what files might be missing or if there are any errors.
</p>

<hr />
<h2>
	Solution:
</h2>

<p>
	The problem may be related to serving static content such as CSS, Javascript, images etc. There usually are load balancing rules that determine how to deal with these types of files.  Since all these files are within the TIBCO JasperReports<sup>®</sup> Server web applicatoin, the user needs to be logged in to get them.  Sticky session needs to work for these.  The theme.css file is actually dynamic content that has to come from the logged in JasperReports<sup>®</sup> Server instance.  Work with your IT administrator to make sure that these files can come through the load balancer.
</p>
]]></description><guid isPermaLink="false">3586</guid><pubDate>Sun, 27 Oct 2019 22:55:45 +0000</pubDate></item><item><title>Increasing JSON Response Limit in Jasperserver API</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/increasing-json-response-limit-in-jasperserver-api-r4837/</link><description><![CDATA[<h2 style="background-color:#ffffff;color:#444444;text-align:left;">
	<span style="font-size:22px;">Question:</span>
</h2>

<p style="background-color:#ffffff;color:#444444;font-size:14px;text-align:left;">
	 
</p>

<p style="background-color:#ffffff;color:#444444;font-size:14px;text-align:left;">
	When using the REST API URL  <span style="background-color:#ffffff;color:#212121;font-size:12px;text-align:left;"><a href="http://localhost:8080/jasperserver-pro/rest_v2/resources" rel="external nofollow">http://localhost:8080/jasperserver-pro/rest_v2/resources</a>  we are not getting all the resources present in the Jasperserver. How to get all the resources in the JSON response?</span>
</p>

<p style="background-color:#ffffff;color:#444444;font-size:14px;text-align:left;">
	 
</p>

<p style="background-color:#ffffff;color:#444444;font-size:14px;text-align:left;">
	<strong><span style="font-size:22px;">Resolution:</span></strong>
</p>

<p>
	<strong>By default</strong>, the JSON response is limited to <strong>100 records/resources</strong>. If you need to retrieve more resources, you must apply the <strong>limit</strong> filter and adjust it accordingly.
</p>

<p>
	For example:
</p>

<p>
	<a href="http://localhost:8080/jasperserver-pro/rest_v2/resources?limit=1000" rel="external nofollow">http://localhost:8080/jasperserver-pro/rest_v2/resources?limit=1000</a>
</p>

<p style="background-color:#ffffff;color:#333333;font-size:14px;padding:0px;text-align:left;">
	 
</p>
]]></description><guid isPermaLink="false">4837</guid><pubDate>Wed, 12 Mar 2025 19:24:32 +0000</pubDate></item><item><title>Republishing of report with Schedule having no changes in name or id</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/republishing-of-report-with-schedule-having-no-changes-in-name-or-id-r4831/</link><description><![CDATA[<p>
	<strong>Description:</strong>
</p>

<p>
	Customer faced an issue when they are republishing report (no changes in the report's name or id) with schedule.
</p>

<p>
	Sceanario:<br />
	1. We have a report X with schedule in folder A.<br />
	2. We did some changes on it and republished it to folder B.<br />
	3. Once the report is confirmed, we want to move it from folder B to folder A using the server only (copy and paste). Recently we pasted it, and it appears to be as a separate copy like "X 1.".
</p>

<p>
	<strong>Expected result</strong><br />
	Overwrite and keep excising schedule.
</p>

<p>
	<strong>Actual Result:</strong><br />
	The report is getting pasted as a separate copy.
</p>

<p>
	<strong>Use case:</strong><br />
	In step 2 they are pasting it in separate folder for testing and verification with a client.
</p>

<p>
	<br />
	<strong>Solution:</strong><br />
	Currently JRS repository do not ask if you want to replace the existing resource or not, it just makes a new copy with _1 added to URI of resource.
</p>

<p>
	It would be suggested to use studio report better to have the edit done by Web studio(JRWS) with the same changes done in report in folder B .<br />
	Otherwise publish to same folder A after changes.
</p>
]]></description><guid isPermaLink="false">4831</guid><pubDate>Wed, 05 Mar 2025 11:27:23 +0000</pubDate></item><item><title>Inconsistencies of double quotes around text fields when exporting to CSV in Jaspersoft.</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/when-exporting-csv-some-text-fields-contain-double-quotes/</link><description><![CDATA[<h2 style="color:#444444;">
	Issue:
</h2>

<p style="color:#444444;font-size:14px;">
	<strong>When exporting a report to CSV, some text fields contain double quotes ( "" ) and some do not. For consistency, they would like the text field to either contain double quotes or do not contain double quotes.</strong>
</p>

<hr style="color:#444444;font-size:14px;" />
<h2 style="color:#444444;">
	Solution:
</h2>

<p style="color:#444444;font-size:14px;">
	The problem is that the text field in question sometimes contains commas. By default, fields are separated by a comma in a CSV generation, and fields that contain commas will be enclosed into double quotes (double quotes is the default field enclosure character).
</p>

<p style="color:#444444;font-size:14px;">
	You can change this behavior in several ways, depending on your further needs:
</p>

<p style="color:#444444;font-size:14px;">
	 1. You could change the default field separator character, using the "net.sf.jasperreports.export.csv.field.delimiter" property in the report. For instance:
</p>

<p style="color:#444444;font-size:14px;">
	 &lt;property name="net.sf.jasperreports.export.csv.field.delimiter" value="|"/&gt;
</p>

<p style="color:#444444;font-size:14px;">
	 In this case, fields will be separated by a pipe character ( | ) in the CSV file, and texts will be no longer surrounded by double quotes. Here I chose the | character because some texts also contain semicolons (;), so we cannot choose semicolons as separators to fix the problem.
</p>

<p style="color:#444444;font-size:14px;">
	 or:
</p>

<p style="color:#444444;font-size:14px;">
	 2. You could set the net.sf.jasperreports.export.csv.force.field.enclosure property to true in their report. In this case, any text in any column, including Description, will be surrounded by quotes.
</p>

<p style="color:#444444;font-size:14px;">
	 or:
</p>

<p style="color:#444444;font-size:14px;">
	 3. You could use a 0-width space character (Unicode u200B) as field field enclosure:
</p>

<p style="color:#444444;font-size:14px;">
	 &lt;propertyExpression name="net.sf.jasperreports.export.csv.field.enclosure"&gt;
</p>

<p style="color:#444444;font-size:14px;">
	 &lt;![CDATA["u200B"]]&gt;
</p>

<p style="color:#444444;font-size:14px;">
	 &lt;/propertyExpression&gt;
</p>

<p style="color:#444444;font-size:14px;">
	 In this case, only texts that contain commas will be enclosed with a space character, but this space has width=0, so it won't be visible.
</p>

<p style="color:#444444;font-size:14px;">
	 
</p>

<p style="color:#444444;font-size:14px;">
	Finally, if you need a TXT file, better is to use the Text exporter, not CSV.
</p>

<p style="color:#444444;font-size:14px;">
	 Here is an example of using the Text exporter:
</p>

<p style="color:#444444;font-size:14px;">
	 <a href="http://jasperreports.sourceforge.net/sample.reference/text/index.html#textexport" rel="external nofollow" style="background-color:transparent;">http://jasperreports.sourceforge.net/sample.reference/text/index.html#textexport</a>
</p>

<hr style="color:#444444;font-size:14px;" />
<p style="color:#444444;font-size:14px;">
	<strong><em><span>ref Support Case Number: 01804948</span></em></strong>
</p>
]]></description><guid isPermaLink="false">3666</guid><pubDate>Tue, 26 Nov 2019 19:58:54 +0000</pubDate></item><item><title>Using Client-Side Certificates to authenticate Jaspersoft Studio to JasperReports Server (mutual auth)</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/using-client-side-certificates-authenticate-jaspersoft-studio-jasperreports-server-mutual-auth/</link><description><![CDATA[<h3>
	Issue Description
</h3>

<p>
	In Jaspersoft Studio it is possible to make Studio offer its own SSL client-side certificate in a mutual authentication scenario in which both the server and the client provide their certificate for authentication to each other.
</p>

<h3>
	Resolution - basic steps
</h3>

<p>
	NOTE: Please note that using client-side certificates is only supported by the Jaspersoft Community (community.jaspersoft.com). TIBCO Jaspersoft Technical Support and Engineering do not support it.
</p>

<p>
	First, create the certificate: 
</p>

<p>
	Before you begin, ensure you have configured your application server to require client-side certificates. Then create a client certificate as a Java keystore file, for example, client_keystore.jks. Consult the documentation your application server the Java documentation for keytool or other tools used for certificate and/or java keystore creation. 
</p>

<p>
	Second, configure Studio.  Studio can make use of a jks or pkcs12 store.  You define the location of your keyStore via either JVM arguments or via Studio's Key Store user-interface.
</p>

<p>
	Via JVM Arguments:
</p>

<p>
	1. From the command line on the client machine running Studio, import the store file, for example, client_keystore.jks, into your keystore on the client machine. (Create a new keystore if necessary).   Consult the documentation for Java's keytool.
</p>

<p>
	WARNING: A client-side certificate contains a public key for the client. Make sure to follow your corporate security policies when creating, copying, and using client-side certificates.
</p>

<p>
	2. Start Studio using JVM arguments by editing the Jaspersoft Studio Professional.ini file:
</p>

<p>
	-Djavax.net.ssl.keyStore specifies the keystore file.
</p>

<p>
	-Djavax.net.ssl.keyStorePassword specifies the passphrase of the keystore.
</p>

<p>
	-Djavax.net.ssl.keyStoreType specifies the store type
</p>

<p>
	Via Jaspersoft Studio's Key Store Interface:
</p>

<p>
	In this case, you do not have to add JVM arguments when you start JSS.
</p>

<p>
	 
</p>

<p>
	1. In JSS, go to Preferences-&gt;Jaspersoft Studio-&gt;JasperReports Server-&gt;Key Store
</p>

<p>
	2. Click Add and select the keystore you created.
</p>
]]></description><guid isPermaLink="false">3674</guid><pubDate>Wed, 27 Nov 2019 20:28:27 +0000</pubDate></item><item><title>Importing Views and Reports that Include Schedules Not Working with the Superuser Account</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/importing-views-and-reports-include-schedules-not-working-superuser-account/</link><description><![CDATA[<h2>
	Issue:
</h2>

<p>
	When importing views or reports with the superuser account, reports or views with schedules do not import and an error appears on screen. The log file had the following erorr:
</p>

<p>
	"Substitution error in resource /organizations/ORG1/Domains/lm/Folder1/Example.xml, field . Attribute 'User_Id' is not defined in the Entire hierarchy"
</p>

<p>
	This only happens with the superuser account and if external authenication is present.
</p>

<hr />
<h2>
	Solution:
</h2>

<p>
	This specific issue is caused by external authentication and profile attributes. By default, JasperReports Server specific users do not have profile attributes. Once those specific profile attributes were added to the superuser account, the Superuser account no longer had this issue.
</p>

<hr />
<p>
	<em><strong>ref: 01816416</strong></em>
</p>
]]></description><guid isPermaLink="false">3669</guid><pubDate>Tue, 26 Nov 2019 21:59:03 +0000</pubDate></item><item><title>How to set a JasperReports Server Input Control's label from within Jaspersoft Studio</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/how-set-tibco-jasperreports-server-input-controls-label-within-tibco-jaspersoft-studio/</link><description><![CDATA[<h3>
	Issue Description
</h3>

<p>
	By default, when parameters are published from Jaspersoft Studio to JasperReports Server, an Input Control is created and the resource ID and label have the same value, which is based upon the parameter element's name attribute. Through the JasperReports Server UI you can edit the label, or you can use Studio to specify the label prior to publish.
</p>

<h3>
	Resolution
</h3>

<p>
	Set the com.jaspersoft.studio.js.ic.label property on the parameter's element to specify a label.
</p>

<p>
	For example:
</p>

<pre class="ipsCode prettyprint lang-xml prettyprinted">&lt;parameter name="City" class="java.lang.String"&gt;
   &lt;property name="com.jaspersoft.studio.js.ic.label"&gt;
      &lt;![CDATA["Customer City Name"]]&gt;
   &lt;/property&gt;
   &lt;parameterDescription&gt;
      &lt;![CDATA["City parameter for controlling where clause"]]&gt;
   &lt;/parameterDescription&gt;
   &lt;defaultValueExpression&gt;
      &lt;![CDATA["Raleigh"]]&gt;
   &lt;/defaultValueExpression&gt;
&lt;/parameter&gt;
</pre>
]]></description><guid isPermaLink="false">3676</guid><pubDate>Wed, 27 Nov 2019 21:48:51 +0000</pubDate></item><item><title>Forcing TLS in Studio connections to JasperReports Server</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/forcing-tls-studio-connections-jasperreports-server/</link><description><![CDATA[<h3>
	Issue Description
</h3>

<p>
	When your instance of JasperReports Server is configured to run over secured connections using SSL, Jaspersoft Studio will be unable to connect to it with a standard configuration. This can manifest in the inability to browse the server repository, publish reports, or utilize other server-dependent features within Jaspersoft Studio. The issue may stem from various factors, including outdated or mismatched security certificates, incorrect SSL configuration settings in Jaspersoft Studio, or issues with the Java trust store.
</p>

<h3>
	Resolution
</h3>

<p>
	To resolve SSL-related connection issues between Jaspersoft Studio and JasperReports Server, follow these steps:
</p>

<ol>
	<li>
		<p>
			<strong>Verify Server URL and Credentials:</strong> Ensure the URL used in Jaspersoft Studio to connect to JasperReports Server is accurate, including the correct protocol (<code>https://</code>) and port number. Double-check the username and password for the server connection to rule out authentication errors.
		</p>
	</li>
	<li>
		<p>
			<strong>Configure SSL Properties:</strong> For advanced SSL configuration, access the "Advanced Settings" in the Server Profile wizard. Here, you can fine-tune SSL properties, such as the location of the trust store and other security-related settings. 
		</p>
	</li>
	<li>
		<p>
			<strong>Check SSL Certificate:</strong> When establishing the connection, Jaspersoft Studio presents the server's SSL certificate. Examine the certificate details to confirm it is valid and issued for the server you are trying to connect to. If the certificate is self-signed or not issued by a trusted Certificate Authority, you may need to add it to the Java trust store.
		</p>
	</li>
	<li>
		<p>
			<strong>Trust the Certificate:</strong> If the SSL certificate is valid, click the "Trust" button in Jaspersoft Studio to add it to the trusted certificates. This prevents the certificate prompt from appearing each time you connect to the server.
		</p>
	</li>
	<li>
		<p>
			<strong>Consult Documentation and Support:</strong> If connection issues persist, refer to the Jaspersoft Studio User Guide and online resources  (<a href="https://community.jaspersoft.com/documentation/" rel="">lin</a>) for detailed troubleshooting steps. For further assistance, contact Jaspersoft Technical Support for expert guidance.<br>
			• Current Jaspersoft Studio User Guide available at: <a href="https://community.jaspersoft.com/documentation/" rel="">https://community.jaspersoft.com/documentation/</a><br>
			• Or direct link to the corresponding chapter for version 9:
		</p>
		<iframe allowfullscreen="" class="ipsEmbed_finishedLoading" data-embedcontent="" data-embedid="embed4124576898" style="height:173px;max-width:500px;" src="https://community.jaspersoft.com/documentation/jaspersoft%C2%AE-studio/tibco-jaspersoft-studio-user-guide/v900/jss-user-_-jrs-server-_-jss2jrs-connecting/?do=embed" loading="lazy"></iframe>

		<p>
			 
		</p>
	</li>
</ol>

<p>
	Remember, ensuring a secure connection between Jaspersoft Studio and JasperReports Server is crucial for protecting sensitive data and maintaining the integrity of your reporting environment.
</p>
]]></description><guid isPermaLink="false">3675</guid><pubDate>Wed, 27 Nov 2019 21:29:19 +0000</pubDate></item><item><title>Visualize.js - Getting Started</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/visualizejs-getting-started/</link><description><![CDATA[<h2>
	What is Visualize.js?
</h2>

<p>
	Visualize.js is a JavaScript API framework used to embed JasperReport Server reports &amp; visualizations inside web applications. It comes bundled with the <a href="https://community.jaspersoft.com/download-jaspersoft/commercial-edition/" rel="">commercial editions of JasperReports<sup>®</sup> Server</a>, specifically Jaspersoft AWS, Enterprise or Professional. <a href="https://www.jaspersoft.com/capabilities/visualizejs" rel="external nofollow">Visualize.js</a> currently does not support JasperReports Server Community Edition or the JasperReports<sup>®</sup> Library. With Visualize.js, developers can embed interactive HTML5 visualizations, dashboards or multi-element reports using standard JavaScript. Developers can quickly and easily call backend JasperReports Server services using REST calls for common functions such as user authentication, data connectivity, repository services and more.
</p>

<hr>
<h2>
	Quick Start
</h2>

<ol>
	<li>
		<p>
			Download the commercial edition of <a href="https://community.jaspersoft.com/download-jaspersoft/commercial-edition/" rel="" target="_blank">JasperReports Server</a>
		</p>
	</li>
	<li>
		<p>
			Use the <a href="https://www.jaspersoft.com/getting-started" rel="external nofollow" target="_blank">installation and configuration instructions</a>
		</p>
	</li>
	<li>
		<p>
			Watch the <a href="https://community.jaspersoft.com/knowledgebase/getting-started/visualizejs-tutorials/" rel="">tutorials</a> for step-by-step instruction
		</p>
	</li>
	<li>
		<p>
			Once you have JasperReports Server installed, view and interact with <a href="https://community.jaspersoft.com/knowledgebase/getting-started/visualizejs-live-api-samples/" rel="">samples using jsfiddles</a>
		</p>
	</li>
	<li>
		<p>
			View the <a href="https://community.jaspersoft.com/documentation" rel="">JasperReports Server Visualize.js Guide</a> in the documentation
		</p>
	</li>
</ol>

<hr>
<table border="0">
	<tbody>
		<tr>
			<td>
				<h2 style="margin-bottom: 0;">
					Introduction to Visualize.js
				</h2>

				<p style="margin-top: 0;">
					This video provides an overview and demonstration of Visualize.js
				</p>
				<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture;" allowfullscreen="" frameborder="0" height="405" id="ips_uid_6518_6" scrolling="no" src="https://www.youtube-nocookie.com/embed/W4CvPmSnOQs" width="720" loading="lazy"></iframe>
			</td>
		</tr>
		<tr>
			<td>
				<h2 style="margin-bottom: 0;">
					Embedding Basics
				</h2>

				<p style="margin-top: 0;">
					Embedding simple reports and visualizations
				</p>
				<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture;" allowfullscreen="" frameborder="0" height="405" id="ips_uid_6518_7" src="https://www.youtube-nocookie.com/embed/xGbcQb1N-gU" width="720" loading="lazy"></iframe>
			</td>
		</tr>
		<tr>
			<td>
				<h2 style="margin-bottom: 0;">
					Embedding with Parameters
				</h2>

				<p style="margin-top: 0;">
					Drive input controls through the API
				</p>
				<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture;" allowfullscreen="" frameborder="0" height="405" id="ips_uid_6518_8" src="https://www.youtube-nocookie.com/embed/_VoM7OYkcNQ" width="720" loading="lazy"></iframe>
			</td>
		</tr>
		<tr>
			<td>
				<h2 style="margin-bottom: 0;">
					Embedding Repository
				</h2>

				<p style="margin-top: 0;">
					Embedding a visualization and report repository
				</p>
				<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture;" allowfullscreen="" frameborder="0" height="405" id="ips_uid_6518_9" src="https://www.youtube-nocookie.com/embed/ZRIBIyxj7Ac" width="720" loading="lazy"></iframe>
			</td>
		</tr>
		<tr>
			<td>
				<h2 style="margin-bottom: 0;">
					Authentication
				</h2>

				<p style="margin-top: 0;">
					Dashboards now support image and text dashlets and streamlined parameter handling. Responsive text and image elements allow sizing text regardless of dashlet size. To enable Dashboard export, <a href="https://community.jaspersoft.com/documentation/jasperreports-server/tibco-jasperreports-server-administration-guide/v820/jasperreports-server-admin-guide-_-configuration-_-configuring_jasperreports_library/#top" rel="" target="_blank">configure phantomjs</a>.
				</p>
				<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture;" allowfullscreen="" frameborder="0" height="405" id="ips_uid_6518_10" src="https://www.youtube-nocookie.com/embed/lYJy1S-Qh3g" width="720" loading="lazy"></iframe>
			</td>
		</tr>
	</tbody>
</table>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1480</guid><pubDate>Wed, 04 Jun 2014 19:08:51 +0000</pubDate></item><item><title>Jaspersoft Tech Talks Episode 3: JasperReports Tips and Tricks</title><link>https://community.jaspersoft.com/knowledgebase/best-practices/jaspersoft-tech-talks-episode-3-jasperreports-tips-and-tricks/</link><description><![CDATA[
<table>
	<tbody>
		<tr>
			<td colspan="3">
				<table>
					<tbody>
						<tr>
							<td style="width:50%;">
								<a href="https://community.jaspersoft.com/blog/jaspersoft-tech-talks/jaspersoft-tech-talks-episode-02-ins-and-outs-jaspersoft-domains-0/" rel="">&lt; Episode 2: Ins and Outs of Jaspersoft Domains</a>
							</td>
							<td style="text-align:right;">
								<a href="https://community.jaspersoft.com/blog/jaspersoft-tech-talks/jaspersoft-tech-talks-episode-04-how-do-bi-big-data/" rel="">Episode 4: How to Do BI on Big Data &gt;</a>
							</td>
						</tr>
					</tbody>
				</table>
			</td>
		</tr>
		<tr>
			<td width="10%">
				 
			</td>
			<td>
				<ul>
					<li>
						<strong>Date</strong>: December 18, 2012
					</li>
					<li>
						<strong>Products Covered</strong>: JasperReports Server, iReport, JasperReports
					</li>
					<li>
						<strong>Presenter</strong>: Teodor Danciu
					</li>
					<li>
						<strong>Abstract</strong>: <span>For this show we have a very special guest, technical co-founder of Jaspersoft and JasperReports Architect, Teodor Danciu. In the first part of the show you'll learn how to make the most out of the JasperReports Library, particularly we'll look at access to previous record values (going back in time), pure data exporters, advanced Excel exports and data snapshots. </span>This topic is recommended for users of Jaspersoft's tools that have a good grasp on the basic concepts, though you will surely learn something no matter what level of experience you have. Q &amp; A to follow.
					</li>
				</ul>
			</td>
			<td width="10%">
				 
			</td>
		</tr>
		<tr>
			<td width="10%">
				 
			</td>
			<td>
				<h4>
					References:
				</h4>

				<ul>
					<li>
						<div class="ipsEmbeddedVideo" contenteditable="false">
							<div>
								<iframe allowfullscreen="" frameborder="0" height="113" src="https://www.youtube-nocookie.com/embed/videoseries?list=PL5NudtWaQ9l7lRpVT0he0gj3mPJ83xM4r" width="200" loading="lazy"></iframe>
							</div>
						</div>
					</li>
				</ul>
			</td>
			<td width="10%">
				 
			</td>
		</tr>
	</tbody>
</table>

<p>
	 
</p>
]]></description><guid isPermaLink="false">902</guid><pubDate>Tue, 29 Jan 2013 19:37:39 +0000</pubDate></item></channel></rss>
