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.
- Masuk ke menu Settings, Modules.
- 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. - Seharusnya kini tampil modul OpenOffice Report Designer. Klik Install pada base_report_designer.
- Lalu ia akan menawarkan konfigurasi. Klik Save AS untuk menyimpan
openerp_report_designer.zip
. Lalu klik Configure untuk menutup form. - 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.
- Klik menu OpenERP Report Designer, Server parameters. Isilah Server dengan
localhost
, Port8069
, dan Protocol ConnectionXML-RPC
. Klik Next. - 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.
- Masih di OpenOffice, klik menu OpenERP Report Designer, Open a new report. Pilihlah
hello.comment
, lalu klik Use Module in Report. - Sekarang kita siap merancang laporan. Awal baris, ketik judul, misalnya Daftar Komentar, tekan Enter.
- 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 pilihlahList of hello.comment
. Field to loop on otomatis terpilihobjects
, dan Variable name tertuliscomment
.comment
inilah yang mewakili setiap record di file RML yang akan menjadi template nanti. Akhiri form ini dengan klik Ok. - Lanjut ke baris ketiga. Buatlah sebuah tabel melalui menu Insert, Table. Columns diisi 1, Rows diisi 1. Klik Ok.
- 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. - 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.
- 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.
- 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. - 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
.
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.
Lalu buatlah XML untuk menampilkan menu Cetak di file addons/hello/report/menu.xml
.
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 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.