Skip to main content

Membuat Report untuk Jurnal Transaksi Temporer

Sebelum melangkah lebih jauh untuk membuat laporan atau print out dari jurnal transaksi temporer, kita harus membuat terlebih dahulu query yang bisa digunakan sebagai dasar pembuatan query, form, atau report yang berkaitan dengan jurnal transaksi temporer. Query ini merupakan gabungan dari tabel tblTempTrans Journal_Parent, tblTempTransJournal_Child, tblRekUtama, tblRekDerivatif1, tblRekDerivatif2, dan tblTipeJurnal, seperti terlihat pada Gambar 1 di bawah. Kecuali field yang diarsir warna merah, semua field pada masing-masing tabel dapat ditambahkan ke kotak Selected Fields di bagian bawah. Tambahkan beberapa field yang berisi formula sebagai berikut:
  1. Group: "Tipe Jurnal: " & [TipeId] & "-" & [NamaJurnal] & " | Nomor Jurnal: " & [tblTempTransJournal_Parent]![JurnalId] & " | Referens Jurnal: " & [Ref] & " | Tanggal: " & Format([TglTransaksi],"dd-mmm-yyyy")
  2. Periode: Format([tgltransaksi],"yyyymm")
  3. Refs: IIf([refdetail]<>"","Ref Detail: " & [RefDetail],"")
Gambar 1

SQL View-nya seperti ini:

SELECT tblTempTransJournal_Parent.JurnalId, tblTempTransJournal_Parent.TipeJurnal, tblTipeJurnal.NamaJurnal, tblTempTransJournal_Parent.NoJurnal, tblTempTransJournal_Parent.TglTransaksi, "Tipe Jurnal: " & [TipeId] & "-" & [NamaJurnal] & " | Nomor Jurnal: " & [tblTempTransJournal_Parent]![JurnalId] & " | Referens Jurnal: " & [Ref] & " | Tanggal: " & Format([TglTransaksi],"dd-mmm-yyyy") AS [Group], Format([tgltransaksi],"yyyymm") AS Periode, tblTempTransJournal_Parent.Ref, tblTempTransJournal_Parent.NoRef, tblTempTransJournal_Parent.DibuatOleh, tblTempTransJournal_Parent.SetujuOleh, tblTempTransJournal_Parent.Proses, tblTempTransJournal_Child.NoUrut, tblTempTransJournal_Child.RefDetail, IIf([refdetail]<>"","Ref Detail: " & [RefDetail],"") AS Refs, tblTempTransJournal_Child.KodeRek, tblRekUtama.NamaRek, tblTempTransJournal_Child.Deskripsi, tblTempTransJournal_Child.Deriv1, tblRekDerivatif1.NamaDeriv1, tblTempTransJournal_Child.Deriv2, tblRekDerivatif2.NamaDeriv2, tblTempTransJournal_Child.Kuantitas, tblTempTransJournal_Child.SU, tblTempTransJournal_Child.HargaSatuan, tblTempTransJournal_Child.TotalJumlah, tblTempTransJournal_Child.Debit, tblTempTransJournal_Child.Kredit, tblTempTransJournal_Child.JthTempo FROM tblTipeJurnal INNER JOIN (tblRekUtama INNER JOIN (tblTempTransJournal_Parent INNER JOIN (tblRekDerivatif2 RIGHT JOIN (tblRekDerivatif1 RIGHT JOIN tblTempTransJournal_Child ON tblRekDerivatif1.KodeDeriv1 = tblTempTransJournal_Child.Deriv1) ON tblRekDerivatif2.KodeDeriv2 = tblTempTransJournal_Child.Deriv2) ON tblTempTransJournal_Parent.JurnalId = tblTempTransJournal_Child.JurnalId) ON tblRekUtama.KodeRek = tblTempTransJournal_Child.KodeRek) ON tblTipeJurnal.TipeId = tblTempTransJournal_Parent.TipeJurnal;


Query di atas kemudian disimpan dengan nama qryTempTransJurnal.

Gambar 2
Untuk membuat report, pilihlah menu tab Create, dan pilih Blank Report pada grup Reports. Access akan menampilkan report yang masih kosong, terdiri dari Page header, detail, dan page footer. Pada properti Report, masuklah ke Record Source dan pilih nama query di atas, yaitu qryTempTransJurnal.
Kembali ke report, arahkan mouse ke bagian page header, lalu kliklah mouse kanan untuk menampilkan shortcut menu. Pada daftar yang ada di menu shortcut itu, pilihlah Report Header/Footer untuk menampilkannya. Dengan cara yang sama, pilihlah Sorting and Grouping sehingga muncul Grouping Dialog Box. Lalu kliklah Add a group sehingga muncul kotak field seperti pada Gambar 2. Pilihlah TglTransaksi untuk menampilkan TglTransaksi header, setelah itu pada Grouping Dialog Box, kliklah More ► (More Options) untuk menampilkan pilihan yang lain. Pada bagian ini, klik without a footer section ▼ dan pilih with a footer section untuk menampilkan footer-nya. TglTransaksi header/footer digunakan untuk mengelompokkan tanggal transaksi bila kita ingin mencetak banyak nomor jurnal dalam satu rentang waktu tertentu. Jadi misalkan, kita ingin mencetak jurnal dari tangal 1 Jan 20xx sampai dengan 30 Jan 20xx, maka setiap tanggal yang mungkin terdiri dari banyak nomor jurnal akan dikelompokkan. Bila pengaturan tampilkan subtotal tanggal pada frmTransJurnalDialog dikosongkan, maka TglTransaksi header/footer akan disembunyikan.

Setelah menambahkan grup TglTransaksi, tambahkan grup untuk JurnalId. Caranya persis sama dengan TglTransaksi, baik dari sisi header maupun footernya. JurnalId header/footer digunakan untuk mengelompokkan setiap nomor jurnal yang ingin dicetak. Bila ingin mencetak jurnal dari tangal 1 Jan 20xx sampai dengan 30 Jan 20xx, maka setiap nomor jurnal akan dikelompokkan. Bila pengaturan tampilkan subtotal tiap jurnal pada frmTransJurnalDialog dikosongkan, maka JurnalId header/footer akan disembunyikan. Aturlah semua header dan footer yang ada pada report, sehingga tampilan terakhir saat ini adalah seperti pada Gambar 3.
Gambar 3

Untuk mengetahui nama grup, arahkan mouse ke bagian header atau footer dan klik ganda untuk menampilkan properti dari grup tersebut. Dalam contoh ini, TglTransaksi header bernama GroupHeader1, JurnalId Header bernama GroupHeader0, TglTransaksi footer bernama GroupFooter0, dan JurnalId Footer bernama GroupFooter1. Simpanlah report itu dengan nama rptTempTransJournal sebelum kita melangkah lebih jauh.

Dari seluruh tahapan pembuatan report, mungkin yang paling melelahkan adalah penyusunan field mana sajakah yang akan diletakan pada bagian header dari report, page, atau grup. Kita akan memulai tahapan ini satu per satu dengan sangat hati-hati. Huruf besar (A sampai H) di bawah ini digunakan sebagai penanda seperti tampak pada Gambar 3a dan Gambar 3b di bawah ini.
Gambar 3a
Gambar 3b
A. Page Header

Karena ingin menampilkan header untuk setiap halaman laporan yang kita buat, maka abaikanlah bagian report header dan tambahkanlah control pada bagian page header:
  1. Sisipkam text box di pojok kiri atas untuk menampilkan nama perusahaan. Atur properti text box itu:
    1. Name=IdentitasPerusahaan
    2. Control Source== Nz(IdPerusahaan("Nama"),"")
  2. Sisipkan label di bawah IdentitasPerusahaan sebagai judul laporan. Atur properti label itu, Caption = Jurnal Transaksi Temporer. Bila ada pesan peringatan tanda seru (This is a new label and not associated with a control), bukalah peringatan itu dan pilih Ignore Error.
  3. Di sebelah kanan judul laporan, mepet di dekat margin kanan, sisipkan text box untuk menampilkan informasi jurnal. Atur properti text box itu:
    1. Name=JurnalInfo
    2. Control Source = Group 
    Group dalam pengertian ini adalah field yang ditambahkan pada saat pembuatan query  qryTempTransJurnal. Lihat pada awal subbab ini.
  4. Di bawah judul laporan, sisipkan label dengan Caption sebagai berikut: Tipe, Kode Rek, Deskripsi, Deriv1, Deriv2, Harga per Unit, S. Ukuran, Total, Kuantitas, Debit, Kredit, dan Tgl Jatuh Tempo. Persis sepanjang label Debit dan Kredit, dan di bawah kedua label itu, sisipkan text box dengan properti:
Control Source = =IIf(PreferensSistem("Pengucapan")<>"","(Debit dan Kredit Dalam " & PreferensSistem("Pengucapan") & ")","").

Susunan label tampak seperti pada Gambar 4, bagian yang diarsir.
Gambar 4
B. TglTransaksi Header

Pada bagian TglTransaksi header, sisipkan text box dengan Control Source= ="Tanggal: " & Format([tglTransaksi],"dd-mmm-yyyy"), seperti pada Gambar 5. Selanjutnya, kita munculkan kembali kotak Field List pane seperti Gambar 4 sebelah kanan.
Gambar 5
C. JurnalId Header
  1. Perhatikan kotak Field List pane. Bila di bagian bawah ada link  dengan tulisan Show only fields in the current record source, kliklah link itu untuk mengubah tampilan seperti Gambar 8.6. Tariklah field TipeJurnal ke form bagian JurnalId header, sehingga akan muncul combo box untuk TipeJurnal.
  2. Posisikan combo box TipeJurnal mepet ke labelnya, buka kotak property sheet dari combo box, dan atur lebar combo box atau width=0.1”, visible=No.
  3. Di sebelah kanan combo box TipeJurnal, mepet dengan combo box ini, sisipkan text box dengan properti:
    1. Name=NamaTipe
    2. Control Source==[TipeJurnal].[column](0) & "-" & [TipeJurnal]. [column](1)
  4. Tampilkan kembali kotak Field List pane, tarik field JurnalId ke sebelah kanan text box NamaTipe.
  5. Di sebelah kanan text box JurnaId, pilih dan tarik field Ref.
  6. Pada sisi paling kanan dari JurnaId header, pilih dan tarik field TglTransaksi . Isikan properti format untuk text box ini: Medium Date.
  7. Untuk masing-masing label dari combo box TipeJurnal, text box JurnalId dan Ref, aturlah properti text align=right.
D. Detail

Selanjutnya, detail dari reprt rptTempTransJournal adalah bagian paling penting. Di bagian ini, semua record dari jurnal transaksi temporer dan informasi pendukung itu ditampilkan.
  1. Tariklah field-field berikut ini dari Field List pane  ke bagian detail: TipeJurnal, KodeRek, NamaRek, Deskripsi, Refs, Deriv1, NamaDeriv1, Deriv2, NamaDeriv2, HargaSatuan, SU, TotalJumlah, Kuantitas, Debit, Kredit, dan JthTempo. Karena semua field itu berada di dalam detail, dan untuk menghindari pengulangan yang tidak perlu saat dilihat dengan Report view, maka hapuslah semua label yang menyertai field-field itu.
  2. Susunlah field-field itu sesuai dengan posisi header atau judul kolom dari masing-masing field yang ada. Contohnya, field TipeJurnal, berada persis segaris di bawah judul kolom Tipe, field KodeRek berada persis segaris di bawah judul kolom Kode Rek, field Deskripsi berada persis segaris di bawah judul kolom Deskripsi, dan seterusnya. Hasil akhir akan tampak pada Gambar 6, seperti ditunjukkan dengan garis panah putus-putus. Warna pada masing-masing kolom hanya untuk menjelaskan posisi field pada baris detail yang segaris dengan judul kolom pada page header. Jadi, kita tidak harus membuat warna-warna itu karena hanya akan membuang banyak tinta mesin cetak bila dicetak ke kertas.
  3. Isikan standard untuk properti Format pada text box HargaSatuan, Kuantitas, TotalJumlah, Debit, dan Kredit. Untuk text box JthTempo, properti Format-nya adalah short date atau medium date. 
Gambar 6
E. JurnalId Footer

Bagian rptTempTransJournal berikutnya adalah JurnalId footer, yang merupakan standar minimal berisi jumlah total dari Debit dan Kredit. Kita dapat menambahkan field lainnya ke dalam JurnalId footer seperti fiedl DibuatOleh dan SetujuOleh. Caranya sama seperti sudah dijelaskan di atas, yaitu menarik field DibuatOleh dan SetujuOleh menjadi combo box ke dalam JurnalId footer. Label dari masing-masing combo box jangan dihapus. Untuk menampilkan jumlah subtotal dari setiap JurnalId yang ingin dicetak, lakukan hal berikut ini:
  1. Sisipkan text box lalu isikan properti Control Source = ="Subtotal Jurnal: " & [namaTipe] & ", Nomor Jurnal: " & [JurnalId].
  2. Sisipkan text box persis di bawah detail text box Debit dan isikan properti Control Source = =Sum([Debit]), format = Standard.
  3. Sisipkan text box persis di bawah detail text box Kredit dan isikan properti Control Source = =Sum([Kredit]), format = Standard.
Selanjutnya, kopilah ketiga text box di atas ke bagian TglTransaksi footer dan report footer untuk menampilkan subtotal jurnal transaksi berdasarkan TglTransaksi dan pada akhir report.

F. TglTransaksi Footer

Gantilah formula ="Subtotal Jurnal: " & [namaTipe] & ", Nomor Jurnal: " & [JurnalId] yang ada pada bagian TglTransaksi footer menjadi ="Subtotal Tanggal: " & Format([TglTransaksi],"dd-mmm-yyyy") dan biarkan jumlah debit dan kredit tetap sama.

G. Report Footer

Gantilah formula ="Subtotal Jurnal: " & [namaTipe] & ", Nomor Jurnal: " & [JurnalId] yang ada pada bagian report footer menjadi ="Grand Total" dan biarkan jumlah debit dan kredit tetap sama. Untuk memberikan informasi siapa si pembuat jurnal dan siapa yang menyetujui, kopilah combo box DibuatOleh dan SetujuOleh yang ada di JurnalId footer ke report footer ini. Pada combo box dengan label Caption=Dibuat Oleh, isikan properti Name=Pembuat dan untuk combo box dengan label Caption=Disetuju Oleh, isikan properti Name=Setuju. Selanjutnya, susunlah kedua combo box berada di bawah masing-masing label.

H. Page Footer

Terakhir, untuk menampilkan siapa si pencetak dan kapan waktu pencetakannya serta halaman report, sisipkan dua text box pada bagian page footer. Satu text box berisi Control Source= ="Dicetak oleh: " & TampilkanLogin() & ", tanggal dan waktu: " & Format(Now(),"dd-mmm-yyyy hh:nn ampm") untuk si pencetak jurnal. Satu text box yang lain berisi Control Source= ="Halaman " & [Page] & "/" & [Pages] untuk penomoran halaman.

Walaupun sudah terisi dengan berbagai macam field control, tetapi report belum bisa sepenuhnya bekerja. Hal ini disebabkan rptTempTransJournal masih tergantung pada variabel yang diatur melalui form dialog frmTransJurnalDialog dan form frmTempTransJournal_Parent. Untuk itu kita harus menuliskan kode VBA pada event procedure report On Open berikut ini:
Option Compare Database
Private Sub Report_Open(Cancel As Integer)
  Dim dtTglMin, dtTglMax As Date
  Dim strTipeMin, strTipeMax, strTipe, strTgl, strTbl As String
  Report.Printer.Orientation = acPRORLandscape
  Report.Printer.PaperSize = acPRPSLegal
  Report.Printer.PrintQuality = acPRPQDraft
  If globStatusJurnal = "Perm" Then Me.Label54.Caption = "Jurnal Transaksi Permanen"
  If Form_frmTransJurnalDialog.FrameModeTampilan = 1 Then
    If Not formdiLoad("frm" & globStatusJurnal & "TransJournal_Parent") Then
      Cancel = True
      Exit Sub
    End If
    Me.RecordSource = "SELECT qry" & globStatusJurnal & "TransJurnal.* FROM qry" & globStatusJurnal & "TransJurnal where JurnalId=" _
    & Forms("frm" & globStatusJurnal & "TransJournal_Parent").JurnalId ' Form_frmTempTransJournal_Parent.JurnalId
    Me.GroupFooter0.Visible = False
    Me.GroupFooter1.Visible = False
    Me.GroupHeader0.Visible = False
    Me.GroupHeader1.Visible = False
    Me.Pembuat.Visible = True
    Me.Setuju.Visible = True
  Else
    strTbl = "tbl" & globStatusJurnal & "TransJournal_Parent"
    If IsNull(Form_frmTransJurnalDialog.drTanggal) Then
      dtTglMin = DMin("[TglTransaksi]", strTbl)
    Else
      dtTglMin = Form_frmTransJurnalDialog.drTanggal
    End If
    If IsNull(Form_frmTransJurnalDialog.sdTanggal) Then
      dtTglMax = DMax("[TglTransaksi]", strTbl)
    Else
      dtTglMax = Form_frmTransJurnalDialog.sdTanggal
    End If
    strTgl = " TglTransaksi between #" & dtTglMin & "# and #" & dtTglMax & "#"
    If IsNull(Form_frmTransJurnalDialog.drTipe) Then
      dtTipeMin = DMin("[TipeJurnal]", strTbl)
    Else
      dtTipeMin = Form_frmTransJurnalDialog.drTipe
    End If
    If IsNull(Form_frmTransJurnalDialog.sdTipe) Then
      dtTipeMax = DMax("[TipeJurnal]", strTbl)
    Else
      dtTipeMax = Form_frmTransJurnalDialog.sdTipe
    End If
    strTipe = " TipeJurnal between '" & dtTipeMin & "' and '" & dtTipeMax & "'"
    Me.JurnalInfo.Visible = False
    If Form_frmTransJurnalDialog.GrupTanggal = 0 Then
      Me.GroupFooter0.Visible = False
      Me.GroupHeader1.Visible = False
    End If
    If Form_frmTransJurnalDialog.GrupTipe = 0 Then
      Me.GroupHeader0.Visible = False
      Me.GroupFooter1.Visible = False
    End If
    Me.RecordSource = "SELECT qry" & globStatusJurnal & "TransJurnal.* FROM qry" & globStatusJurnal & "TransJurnal where" & strTgl & " and " & strTipe
    If globStatusJurnal = "Perm" Then Me.JurnalId.Control Source = "NoJurnl"
  End If
End Sub 

Jenis Kertas untuk Mencetak Jurnal Transaksi

Pada posting yang berjudul Memodifikasi Tombol Preview Report pada Form Jurnal Transaksi, untuk melihat atau mencetak report, kita bisa menggunakan 2 jenis kertas, yaitu kertas ukuran letter dan legal. Untuk tampilan yang lengkap seperti rptTempTransJournal, kita menggunakan kertas ukuran legal.

Agar rptTempTransJournal jelas untuk dilihat dan dicetak, ukuran kertas harus disesuaikan yaitu dengan mengatur orientasi kertas menjadi landscape dengan kertas legal. Jadi, buatlah report itu melebar dengan panjang maksimal 13.5”. Atur kembali semua field control seperti label, text box, combo box, kolom, dan baris sedemikian rupa sehingga report menjadi enak untuk dilihat, dibaca, dan informatif. Hasil akhir rptTempTransJournal dapat dilihat pada Gambar 3a.

Bila ingin menggunakan kertas ukuran letter, yang lebih kecil dari legal, maka kita harus membuat report baru untuk jenis kertas itu. Untuk itu, kopilah rptTempTransJournal pada Navigation pane dan namai report itu rptTemp TransJournalSimple untuk menunjukkan bahwa report hanya memuat hal-hal yang perlu saja, jadi terlihat sederhana. Bukalah report dalam Design view, lalu hapus text box dengan nama: HargaSatuan, Kuantitas, SU, TotalJumlah dan label dengan Caption: Harga per Unit, Kuantitas, S Ukuran, Total. Buatlah report itu melebar dengan panjang maksimal 10.5”. Pada event procedure report On Open, ubahlah baris Report.Printer.PaperSize = acPRPSLegal menjadi Report.Printer.PaperSize = acPRPSLetter. Hasil akhir rptTempTransJournalSimple dapat dilihat pada Gambar 3b.

Untuk efisiensi biaya penggunaan tinta mesin cetak, sebaiknya gunakanlah dua warna saja, misal hitam dan putih. Jadi, pada tampilan report jurnal di atas, kita tidak menggunakan banyak warna.

Comments

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Fungsi Untuk Menghitung Pajak Penghasilan PPh 21 di MS Access

Format Untuk Field Dengan Tipe Data Number dan Currency di MS Access