OpenOffice Report Designer

Pada dasarnya untuk menghasilkan laporan dalam bentuk PDF, OpenERP membutuhkan file RML (*.rml), yaitu sebuah file berbentuk XML. Namun untuk mempersingkat waktu pembuatan, kita bisa menggunakan OpenOffice sebagai visual designer. File disimpan dalam format OpenOffice Write (*.odt) yang bisa di-export ke RML. File inilah yang disimpan di direktori sistem OpenERP nanti.

Setelah modul hello dipasang, pasanglah modul base_report_designer. Berikut tahapannya.

Memasang OpenERP Report Designer pada OpenOffice
OpenOffice dapat diberi file extention. File ini bisa diunduh dari sitem OpenERP yang sudah kita pasang.

  1. Masuk ke menu Settings, Modules.
  2. Pada filter name masukkan report, tekan Enter. Jika tidak ada hasil, cobalah klik tombol APPS yang artinya memilah hasil pencarian dengan kategori aplikasi atau tidak. Ya, tidak semua modul merupakan aplikasi. Seperti modul base_report_designer yang akan kita pasang nanti, dia hanyalah berupa OpenOffice extention yang bisa diunduh.
  3. Seharusnya kini tampil modul OpenOffice Report Designer. Klik Install pada base_report_designer.
  4. Lalu ia akan menawarkan konfigurasi. Klik Save AS untuk menyimpan openerp_report_designer.zip. Lalu klik Configure untuk menutup form.
  5. Sekarang buka OpenOffice Writer, lalu klik menu Tools, Extention Manager, Add. Pilihlah file openerp_report_designer.zip tadi. Setelah selesai klik Close.

    Tutup dan buka kembali OpenOffice (restart). Seharusnya kini sudah ada menu OpenERP Report Designer.

Konektivitas OpenOffice ke OpenERP
Selanjutnya OpenOffice perlu dihubungkan dengan OpenERP, berikut tahapannya.

  1. Klik menu OpenERP Report Designer, Server parameters. Isilah Server dengan localhost, Port 8069, dan Protocol Connection XML-RPC. Klik Next.
  2. Bila sudah benar, kini dihadirkan form untuk memilih database yang akan digunakan. Lalu isilah Login dengan username pada sistem OpenERP (default-nya admin), berikut passwordnya. Ingat, bukan password konektivitas ke database PostgreSQL. Jika Anda masih mengikuti petunjuk pembuatan modul hello maka passwordnya adalah 1234. Lalu klik Connect. Jika berhasil Anda akan mendapat pesan You can start creating your report in the current document.

Merancang Laporan
Setiap laporan terkait dengan Object Relational Module (ORM) yang telah dibuat. Pada contoh ini kita telah memiliki modul hello.comment yang akan ditampilkan record-nya dalam bentuk tabel. Berikut langkahnya.

  1. Masih di OpenOffice, klik menu OpenERP Report Designer, Open a new report. Pilihlah hello.comment, lalu klik Use Module in Report.
  2. Sekarang kita siap merancang laporan. Awal baris, ketik judul, misalnya Daftar Komentar, tekan Enter.
  3. Di baris kedua ini kita akan memulai record loop terhadap ORM hello.comment, yaitu dengan klik menu OpenERP Report Designer, Add a loop. Pada Objects to loop on pilihlah List of hello.comment. Field to loop on otomatis terpilih objects, dan Variable name tertulis comment. comment inilah yang mewakili setiap record di file RML yang akan menjadi template nanti. Akhiri form ini dengan klik Ok.
  4. Lanjut ke baris ketiga. Buatlah sebuah tabel melalui menu Insert, Table. Columns diisi 1, Rows diisi 1. Klik Ok.
  5. Biarkan kursor di dalam tabel, lalu klik OpenERP Report Designer, Add a field. Pada Variable pilih comment(hello.comment). Pada Variable Fields pilih /Comment. Lalu klik Ok. Kalau data sudah ada, akan ditampilkan nilai pada record pertama.
  6. Karena ini adalah loop, kita perlu membatasi baris mana saja yang termasuk loop, yaitu dengan mem-blok baris kedua dan ketiga. Lalu klik menu Insert, Section, dan terakhir klik Ok.
  7. Simpanlah dalam format OpenOffice Writer (*.odt) melalui menu File, Save. Misalnya dinamai dengan hello.odt.

Rancangan laporan telah selesai. Jika Anda ingin menambah asesoris lainnya silahkan. Tapi sebaiknya kita lanjutkan dulu dengan menguji seadanya.

Uji Coba
File *.odt ini tidak digunakan oleh OpenERP. Kita perlu menyimpannya terlebih dahulu ke RML. Berikut ini langkahnya.

  1. Masih di OpenOffice, klik menu OpenERP Report Designer, Send to the server. Pada Report Name isi dengan Cetak. Biarkan Select Rpt. Type berisi PDF. Lalu klik Send Report to Server.
  2. Sekarang ke OpenERP, masuk ke menu Hello, dan centang beberapa komentar yang akan dicetak. Lalu klik Cetak.

    Seharusnya browser meminta file dibuka dengan PDF viewer untuk menampilkan laporan.

Sampai di sini pembuatan laporan telah selesai. Namun menu Cetak tersebut hanya tersimpan di database. Bila kita membuat database baru nanti, menu ini tidak akan tampil karena belum tersedia di source.

Membuat Modul Laporan
Kita perlu menyimpan hello.odt ke hello.rml. Lalu file ini disimpan di direktori sistem OpenERP, dan dilanjutkan dengan membuat file-file pendukung lainnya.
Kembali ke OpenOffice, klik menu OpenERP Report Designer, Export to RML. Namai dengan hello.rml. Biasanya disimpan di direktori /tmp. Kemudian salinlah ke direktori sistem OpenERP.

$ sudo mkdir /usr/lib/pymodules/python2.7/openerp/addons/hello/report
$ sudo cp /tmp/hello.rml /usr/lib/pymodules/python2.7/openerp/addons/hello/report

Lanjutkan dengan pembuatan penerjemahnya (parser), yaitu file addons/hello/report/comment.py.

import time
from report import report_sxw

class comment(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(comment, self).__init__(cr, uid, name, context)
self.localcontext.update({
'time': time,
})

report_sxw.report_sxw('report.komentar', 'hello.comment',
'addons/hello/report/hello.rml', parser=comment)

Juga buat addons/hello/report/__init__.py agar direktori report dikenal sebagai modul.

import comment

Lalu buatlah XML untuk menampilkan menu Cetak di file addons/hello/report/menu.xml.




string="Cetak"
model="hello.comment"
name="komentar"
rml="hello/report/hello.rml"
auto="False"
header="False"/>


Kemudian di file addons/hello/__openerp__.py pada bagian update_xml tambahkan report/menu.xml, sehingga menjadi seperti berikut ini.

{
'name' : 'Hello world!',
'version' : '1.0',
'author' : 'OpenSIPKD',
'depends' : ['base'],
'init_xml' : [
'hello_view.xml',
'report/menu.xml'],
'application': True,
'description': 'A simple form to insert, edit, or delete your comments.'
}

Lalu di file addons/hello/__init__.py tambahkan import report sehingga menjadi seperti berikut ini.

import hello
import report

Setelah selesai restart daemon-nya.

$ sudo /etc/init.d/openerp restart

Selesai. Ujilah dengan membuat database baru dan pasang modul hello.

Ubah Langsung di RML
Perhatikan PDF yang dihasilkan dimana ada jeda di setiap barisnya. Ini disebabkan section di hello.odt masih mengandung baris setelah tabel. Ini tentu sangat mengganggu. Entah kenapa baris ini tidak bisa dihapus dari OpenOffice. Namun kini kita punya hello.rml. Kita bisa langsung menghapus baris kosong tersebut dengan mencari kata .

...
...


...
...



Hapuslah tiga baris dalam tag
tersebut.


Simpan file hello.rml ini, dan langsung klik menu Cetak, tidak perlu restart daemon openerp.

Tampil lebih baik bukan ? Selamat mencoba.

File: