Tuesday, December 20, 2011

Mengatasi Masalah Portrait Layout-Orientation di iReport 3.7.4

Bagi yang menggunakan reporting tool JasperReport dan melakukan desain melalui iReport (terutama versi 3.7.4), mungkin pernah mengalami masalah dalam menentukan orientasi kertas hasil cetakan (portrait atau landscape) setelah mengutak-atik nilai tinggi dan lebar kertas. Dalam konteks ini yang dimaksud dengan tinggi kertas ini adalah sisi vertikal kertas dan lebar kertas adalah sisi horisontal kertas.

Seperti yang mungkin sudah diketahui bahwa jika kita menentukan nilai lebar kertas lebih besar dari nilai tinggi kertas, maka otomatis oleh iReport kertas tersebut dianggap berorientasi landscape. Padahal mungkin Anda memang sengaja ingin membuat ukuran kertas tersebut tetap berorientasi portrait, contoh kertas continues-form berukuran half-letter. Setelah mengamati dan mencoba berkali-kali, nampaknya masalah ini disebabkan oleh kesalahan iReport dalam "memahami" disain report beserta ukuran kertas. Dan masalah ini hanya terjadi pada orientasi Portrait.

Cara mudah untuk mengatasi masalah  ini adalah dengan menambahkan secara manual atribut orientation dengan nilai "Portrait", pada tag jasperReport. Penambahan ini harus dilakukan setelah rancangan report di iReport telah disimpan dan dilakukan pada text-editor lain. Mengapa? Karena jika penambahan dilakukan sebelum rancangan disimpan, maka penambahan yang dilakukan tersebut akan kembali ditimpa oleh iReport. Dan harus menggunakan text-editor lain karena jika menggunakan XML View yang disediakan oleh iReport, setidaknya hingga versi 3.7.4, perubahan yang dilakukan akan kembali ditimpa ketika Anda kembali ke Design View.

Secara ringkas urutan langkah-langkah yang harus dilakukan:
  1. Rancang seperti biasa bentuk report yang diinginkan di iReport, termasuk menentukan ukuran kertas dan orientasinya (dalam hal ini portrait) kemudian simpan hasil rancangan tersebut.
  2. Dengan tanpa menutup iReport, jalankan text-editor yang Anda miliki, kemudian buka file .jrxml milik rancangan yang dilakukan pada langkah 1.
  3. Pada tag <jasperReport>, tambahkan atribut orientation dengan nilai Portrait.
    contoh:
    <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="SalesInvoice_Std_vApr2010" pageWidth="611" pageHeight="391" columnWidth="568" leftMargin="22" rightMargin="21" topMargin="17" bottomMargin="17" isSummaryWithPageHeaderAndFooter="true" orientation="Portrait">
  4. Simpan perubahan tersebut pada text-editor.
  5. Kembali ke iReport, lakukan kompilasi.
  6. Selesai

Cartoon by Scott Simmerman