Terkadang ketika aplikasi melakukan cetak laporan sering kali terjadi ada beberapa bagian laporan tidak ikut tercetak. Salah satu penyababnya karena setting ukuran kertas kita tidak sesuai dengan format laporan yang dicetak, padahal sebelumnya sudah disetting dengan benar. Dan perubahan ukuran kertas itu terjadi salah satu penyebabnya adalah karena beda printer dengan setting laporan yang telah disetting sebelumnya. Kemudian kita melakukan pembenahan permasalah setting ukuran kertas pada printer tersebut dengan cara membuat ukuran kertas baru yang kemudian kita setting pada program dengan ukuran kertas tersebut, setelah itu program kita compile.
Masalahnya bagaimana apabila printer yang kita setting sebelumnya itu rusak kemudian user mengganti dengan printer baru dengan jenis yang berbeda, pasti kita akan melakukan langkah-langkah diatas lagi. Cara tersebut tidak ada salahnya, tapi kurang fleksible karena kita harus setting ulang program apabila terjadi perubahan jenis printer kemudian di compile lagi. Cara yang fleksible adalah dengan cara memanggil fungsi printer setting pada laporan crystal report. Di situ kita bisa memilih printer mana yang akan digunakan dan menggunakan kertas apa bentuk laporan kita. Caranya adalah sebagai berikut disini saya menggunakan visual basic 6.0 dengan Crystal repoty 8.5
Dim Report As New Lap_Penjualan
Dim m_Report As CRAXDDRT.Report
Private Sub CmdPrinter_Click()
m_Report.PrinterSetup Me.hwnd
CRViewer1.Refresh
End Sub
Private Sub Form_Load()
Set m_Report = Report
Screen.MousePointer = vbHourglass
Dim ADOComm As New ADODB.Command
Set DataBs = Nothing
DataBs.Open Connect
DataBs.CursorLocation = adUseClient
Set ADOComm= New ADODB.Command
ADOComm.ActiveConnection = Dbs
ADOComm.CommandType = adCmdText
ADOComm.CommandText = "Select * from Penjualan"
ADOComm.Execute
Set rec = New ADODB.Recordset
rec.Open ADOComm
m_Report.Database.SetDataSource rec
CRViewer1.ReportSource = m_Report
CRViewer1.ViewReport
Screen.MousePointer = vbDefault
End Sub
Mari kita bahas kode diatas, Perhatikan kode yang saya beri warna merah Dim m_Report As CRAXDDRT.Report. nahh…kode tersebut wajib dideklarasikan untuk menampung report nantinya. Yang akan kita setting ketika sub form_load() sehingga seperti ini Set m_Report = Report, seteleh kita melakukan koneksi kedatabse dan seleksi data yang akan ditampilkan ke report, seperti kode diatas. Kita setting lagi m_reportnya seperti ini m_Report.Database.SetDataSource rs, CRViewer1.ReportSource = m_Report. Perhatikan kode diatas yang berwarna merah. Setelah itu semua jangan lupa untuk menambah kan satu button untuk menampilkan printer setting kode nya seperti ini :
Private Sub CmdPrinter_Click()
m_Report.PrinterSetup Me.hwnd
CRViewer1.Refresh
End Sub
Maka ketika kita click button yang kita buat tadi maka akan mucul tampilan printer setting seperti ini :
Sehingga kita tinggal memilih printer apa yang akan digunakan, kertas apa yang digunakan. Klick OK otomatis laporan akan berubah formatnya sesuai dengan ketentuan yang telah kita lakukan. Kita tidak perlu setting perinter secara manual atau pawaktu design. Pada waktu program sudah running pun kita bisa merubah setting printer dan paper sizenya.
Oiya sobat untuk setting koneksi database dan seleksinya, kode diatas saya menggunakan ADO, nanti saya bahas pada postingan saya berikutnya membuat laporan menggunakan koneksi ADO.sobat bisa merubah sesuai dengan sobat biasanya gunakan, yang terpenting kode yang saya beri warna merah itu harus ada. Kode diatas saya menggunakan designers crytal report pada visual basic 6.0.
1 comments: on "Setting Paper Size Crystal Report 8.5 Melalui Aplikasi/ Runnig Program"
gan, ada contoh projectnya kah tapi pake access gan....
Posting Komentar