Skip to main content

iReport Tips

The following are useful tips for non-Java people like me. Adding Groovy support to iReport should do the trick but it requires an additional library. The tricky part with iReport variables is getting the data types to match.

The highlighting feature of Eclipse BIRT is much better than how it is being done in iReport/Jasperreports. I usually use an arrow character than changing the background color as it looks cleaner in the report design.

Accessing variables, parameters and fields

$P{fieldName} - is for parameter
$F{fieldName} - is for fields
$V{variableName} - is for variables

To highlight a row when it reaches a certain condition:

1. Add a text field
2. In the properties under PrintWhenExpression:

new Boolean($F{owner}.equals("username"))

The key thing here is that if the field owner is true,
it will print the text field.

To set a default date:

new SimpleDateFormat("yyyyMMdd").parse("20050101")

To show overall statistics on the first page of the report: Usually these are variables that should be computed at the end of the report. The reset type on the variable does not affect the actual output. You will need to change the evaluation time property on the textfield object.

To make a computed variable (usually percentage):

new Double($V{VAR1}.doubleValue() / $V{REPORT_COUNT}.doubleValue())

Comments

Air_Consumer said…
Thanks, every little bit helps.

Popular posts from this blog

iReport Default Date Parameter

If you want to set a default date for a jasperreports parameter, you can enter the following in the default value expression of the parameter. new Date() However, if you wanted the default to be relative from today, for example, 3 days ago, you will need to do go outside of the standard java date libraries (Date, Calendar) because JR parameter does not allow you to have multiple statements. You can write your own utility package or you can use Joda , a replacement library for the JDK date and time library. To use Joda in iReports, you need to extract the jar file and add it to Options -> Classpath. You may also drop the jar file in iReports' lib directory. You will also need to add this library to your application or report server. For setting a default date 5 days prior from today, use this: new org.joda.time.DateTime().minusDays(5).toDate() or this if you want the time part set to the beginning of the day: new org.joda.time.LocalDate().toDateTimeAtStartOfDay().minusDays(5).to...

Migrating Moniwiki to MoinMoin

I had been using Moniwiki for our company for a while because the installation was quite easy as it was PHP based. However, I found out that document versioning didn't really work. It may have been a configuration issue but I took this opportunity to take a look at MoinMoin, as it was being used by Ubuntu and looked well supported. The server was running Debian stable and MoinMoin was in the repositories. Installing was simple using aptitude. Configuration was a bit more involved as it required copying and editing files. The new wiki site was pleasantly more responsive. The next task was to move the data in Moniwiki to MoinMoin. Upon inspecting the data repositories, I realized that Moniwiki stored the data in individual files with the WikiWord as the filename while MoinMoin organized that data with the WikiWord as a directory with the actual content under the revisions directory. I cooked up a quick script to migrate the data. I also ran the previous file through a 'tr' to...

CI/CD for .NET Core

If you have a .NET API that you want to containerize, here are the steps to prepare it. Create docker image Push to repository Setup ECS The TLS 1.0 option is needed if your SQL Server database does not support TLS 1.2. The recommended option is to update your database to the secure protocol. You may also change sdk and aspnet version to 5.0 if you haven't updated to 6.0 yet. This Dockerfile uses a multi-stage build to get an optimal image size. Dockerfile FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env WORKDIR /app # Copy csproj and restore as distinct layers COPY *.csproj ./ RUN dotnet restore # Copy everything else and build COPY . ./ RUN dotnet publish -c Release -o out # Build runtime image FROM mcr.microsoft.com/dotnet/aspnet:6.0 WORKDIR /app # Enable TLS 1.0 RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /etc/ssl/openssl.cnf RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /etc/ssl/openssl.cnf RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@...