Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jasper Reports Show "Page X of Y" using a single text field

Tags:

I would like to create one text field that contains Page X of Y, without splitting it in two parts, as per the common solution. My textfield contains "Page " + $V{currentPage} + " of " + $V{PAGE_NUMBER}" with evaluationTime=auto.

Let's say I have a report with 10 pages. Three are the Title Band, six are Detail Band and one is the Summary Band. My results show "Page 0 of 10" for the Title Bands, correct counts for the Detail Bands, then "Page 0 of 10" for the Summary Bands.

How do you ensure the variable is calculated everywhere, not only on Detail Band?

like image 705
qarol Avatar asked May 20 '12 12:05

qarol


People also ask

How do I add page numbers to jasper report?

you have to use page footer band for that, set the $V{PAGE_NUMBER} 's print when expression to "REPORT" when you have to display total pages and, $V{PAGE_NUMBER} 's print when expression to "NOW" when you have to display current page number.

How do you get the last page number in iReport?

For showing the page number on the last page of the report the Last Page Footer band must be added by right clicking on it in iReports in the left panel called Report Inspector.


1 Answers

Jaspersoft Studio, 6+

For Jaspersoft Studio v6, or if the first page number is duplicated, try this solution, which uses $V{MASTER_CURRENT_PAGE} and $V{MASTER_TOTAL_PAGE} with an evaluation time of Master.

Jaspersoft Studio

For other versions of Jaspersoft Studio, try the steps outlined in the subsequent subsections.

Create Variable

Create a variable as follows:

  1. Create a variable called V_CURRENT_PAGE_NUMBER
  2. Select the variable to open its properties (illustrated below)
  3. Set Expression to: 1
  4. Set Initial Value Expression to: $V{PAGE_NUMBER}
  • If the page number shows 0, use $V{PAGE_NUMBER} + 1.
  • If the page number always shows 1 of Y, set Expression to $V{PAGE_NUMBER} instead of the initial value expression, and leave the initial value expression empty.
  1. Set Reset type to: Page

These settings are illustrated in the following figure:

Current Page Number Variable

Setting the Expression to 1 prevents its value from being null. That is, if the footer shows Page null of 4 it probably means that the Expression hasn't been set.

The variable is created.

Add Page Footer

Add a Page Footer band as follows:

  1. Select the report in the outline panel
  2. Check Summary With Page Header And Footer to ensure the page footer appears on the summary page.
  3. Add a Page Footer band.

The footer is added.

Create Text Field

Create a text field as follows:

  1. Drag and drop a single text field onto the Page Footer band.
  2. Select the text field.
  3. Set Expression to: msg("Page {0} of {1}", $V{V_CURRENT_PAGE_NUMBER}, $V{PAGE_NUMBER})
  4. Set Evalutation Time to: Auto

These settings are illustrated in the following figure:

Single Text Field

The single text field is created.

Preview Report

For a report with three pages plus a summary page, previewing the report shows:

Page 1

The summary page shows:

Page 4

like image 79
Dave Jarvis Avatar answered Sep 28 '22 02:09

Dave Jarvis