Membuat Laporan di OpenERP

Foto os

Melanjutkan tulisan Membuat "Hello world!" di OpenERP, berikut ini langkah-langkah untuk membuat laporannya dalam bentuk PDF yang memanfaatkan OpenOffice sebagai visual 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 RML inilah yang disimpan di direktori sistem OpenERP nanti.

Kali ini kita menggunakan OpenERP 6.0.4.

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

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

  • Masuk ke menu Administration, Modules, Modules.
  • Pada filter name masukkan report, tekan Enter.
  • Klik pada report_designer, Schedule Upgrade, Apply Scheduled Upgrades, Start update
  • Tunggu beberapa saat lalu klik Start configuration.
  • Centang OpenOffice Report Desginer, lalu klik Configure.
  • Berikutnya Anda diminta untuk menyimpan file ZIP yang nantinya menjadi OpenOffice Extention. Simpanlah dan jangan lupa mengingat direktorinya. File akan disimpan dengan nama openerp_report_designer.zip
  • Sekarang buka OpenOffice Writer, lalu klik menu Tools, Extention Manager, Add. Pilihlah file openerp_report_designer.zip. Setelah selesai klik Close. Tutup dan buka kembali OpenOffice (restart). Seharusnya kini sudah ada menu OpenERP Report Designer
  • Anda bisa kembali ke OpenERP untuk mengakhir Configuration wizard dengan klik Configure.

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

  • Kembali ke OpenOffice, klik menu OpenERP Report Designer, Server parameters. Pastikan isian Server sudah benar, default-nya localhost. Klik Next.
  • Bila sudah isian tersebut 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. Lalu klik Connect. Jika berhasil Anda akan mendapat pesan "You can start creating your report in current document."

Merancang Laporan
Setiap laporan terkait dengan ORM (Object Relational Module) 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 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.
  • 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 pertama dan kedua. 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.

  • 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/share/pyshared/openerp-server/addons/hello/report
$ sudo cp /tmp/hello.rml /usr/share/pyshared/openerp-server/addons/hello/report/

Lanjutkan dengan pembuatan penerjemahnya (parser), yaitu file /usr/share/pyshared/openerp-server/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 /usr/share/pyshared/openerp-server/addons/hello/report/__init__.py agar direktori report dikenal sebagai modul.

import comment

Lalu buatlah XML untuk menampilkan menu Cetak di file /usr/share/pyshared/openerp-server/addons/hello/report/menu.xml.

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <report id="report_hello_comment"
                string="Cetak Komentar"
                model="hello.comment"
                name="komentar"
                rml="hello/report/hello.rml"
                auto="False"
                header="False"/>
    </data>
</openerp>

Kemudian di file /usr/share/pyshared/openerp-server/addons/hello/__terp__.py pada bagian update_xml tambahkan report/menu.xml, sehingga menjadi seperti berikut ini.

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

Lalu di file /usr/share/pyshared/openerp-server/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-server restart

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