Membuat Multiaplikasi menggunakan VB6

25
Spesifikasi: Ukuran: 14x21 cm Tebal: 264 hlm Harga: Rp 44.800 Terbit pertama: Februari 2005 Sinopsis singkat: Selain membahas topik multiaplikasi, dalam buku ini Anda juga akan menemukan topik disconnected fashion recordset, alasan agar kita meninggalkan kontrol ADO DC, serta F1 – Online Help. Sebagai kelanjutan dari buku Pemrograman Client-Server Menggunakan SQL Server 2000 dan Visual Basic 6, buku ini juga membahas topik pembuatan laporan menggunakan Data Report dan Crystal Reports versi 10. Pada bagian akhir akan dibahas mengenai topik konversi aplikasi ke dalam bentuk multiaplikasi – multiproject, serta contoh Aplikasi Program Penjualan Barang, yang merupakan upgrading dari aplikasi yang sama yang disertakan pada buku sebelumnya. Sebagai pelengkap, disertai pula dengan CD berisi contoh program dan Aplikasi Program Penjualan Barang dari buku sebelumnya baik itu dalam VB6, VB.NET/ASP.NET – aplikasi Web, dan VB.NET,

Transcript of Membuat Multiaplikasi menggunakan VB6

Page 1: Membuat Multiaplikasi menggunakan VB6

Spesifikasi:

Ukuran: 14x21 cm Tebal: 264 hlm

Harga: Rp 44.800 Terbit pertama: Februari 2005

Sinopsis singkat:

Selain membahas topik multiaplikasi, dalam buku ini Anda juga akan menemukan topik disconnected fashion recordset, alasan agar kita meninggalkan kontrol ADO DC, serta F1 – Online Help. Sebagai kelanjutan dari buku Pemrograman Client-Server Menggunakan SQL Server 2000 dan Visual Basic 6, buku ini juga

membahas topik pembuatan laporan menggunakan Data Report dan Crystal Reports versi 10.

Pada bagian akhir akan dibahas mengenai topik konversi aplikasi ke dalam bentuk multiaplikasi – multiproject, serta contoh Aplikasi Program Penjualan Barang, yang merupakan upgrading dari aplikasi yang

sama yang disertakan pada buku sebelumnya.

Sebagai pelengkap, disertai pula dengan CD berisi contoh program dan Aplikasi Program Penjualan Barang dari buku sebelumnya baik itu dalam VB6, VB.NET/ASP.NET – aplikasi Web, dan VB.NET,

Page 2: Membuat Multiaplikasi menggunakan VB6

vii

Daftar Isi Kata Pengantar ............................................................................. v Daftar Isi ..................................................................................... vii

Bab 1 Membangun Multiaplikasi ......................................... 1

1.1 Latar Belakang Penulisan .............................................1 1.2 Crystal Reports .............................................................3 1.3 SQL Server ...................................................................5 1.4 VB 6 pada Era Teknologi .NET.....................................6 1.5 CD Pendamping ...........................................................7

Bab 2 Multiaplikasi – Multiproject ....................................... 9

2.1 SingleAplikasi – SingleProject.....................................12 2.2 Multiaplikasi – Multiproject..........................................16 2.3 ActiveX Component ...................................................20 2.4 Membuat Komponen ActiveX - DLL ...........................22 2.5 Multiaplikasi – Multiproject dalam Satu Logika

Program .....................................................................28

Bab 3 RecordSet Terputus dan Good Bye Control ADO DC......................................................................... 35

3.1 RecordSet Terputus ....................................................36 3.2 Good Bye Control ADO DC ........................................38

Bab 4 F1 – Online Help .................................................... 49

4.1 Membuat File Online Help ..........................................50 4.2 Membuat File Help (.HLP) ..........................................52 4.3 Membuat File Help (.CHM) .........................................55 4.4 Menyertakan File Online Help.....................................60

Bab 5 Data Report ........................................................... 61

5.1 Data Report – AlbumList.............................................62 5.2 Data Report – Penjualan .............................................69 5.3 Data Report – via Form dan Print Report.....................78

Page 3: Membuat Multiaplikasi menggunakan VB6

viii

Bab 6 Membuat Laporan dengan Crystal Reports .............. 83

6.1 Persiapan Sebelum Membuat Laporan........................84 6.2 Membuat Cetakan Laporan.........................................89 6.3 Menampilkan Laporan ................................................94 6.4 Menyiapkan Sumber Data Laporan...........................100 6.5 Memformat Laporan .................................................105 6.6 Meng-update Objek RecordSet .................................113

Bab 7 Laporan Bertingkat via Crystal Reports ................. 117

7.1 Membuat Cetakan Laporan Penjualan ......................117 7.2 Menyiapkan Sumber Data ........................................121 7.3 Permasalahan pada Penyiapan Sumber Data dan

Solusinya..................................................................130 7.3.1 Via SubQuery .............................................131 7.3.2 Via SubQuery dan Tabel Sementara...........132 7.3.3 Via SubQuery dan Tabel Tetap...................135 7.3.4 Via Join_All dan Tabel Tetap......................138 7.3.5 Via Variasi SubQuery dan Tabel Tetap .......140 7.3.6 Via Variasi SubQuery dan Tabel

Sementara..................................................146 7.3.7 Mempercepat Eksekusi Laporan.................149

7.4 Menghitung Nilai Total..............................................150

Bab 8 Konversi ke Multiaplikasi – Multiproject ................. 155

8.1 Menjadi Multiaplikasi – Multiproject ..........................155 8.2 Merawat Multiaplikasi – Multiproject .........................160 8.3 Aplikasi Program......................................................165

8.3.1 Accounting dan Payroll Project...................165 8.3.2 Project Penjualan........................................168 8.3.3 Project Login (Project Utama).....................171

Bab 9 Aplikasi Program Penjualan Barang ...................... 189

9.1 Tabel_Penjualan .......................................................191 9.2 Pelanggan (Customer)..............................................197 9.3 Daftar Album (AlbumList) ........................................201 9.4 Penjualan (Sale) .......................................................220 9.5 Laporan....................................................................242

Page 4: Membuat Multiaplikasi menggunakan VB6

ix

Lampiran:

A Instalasi CD Program ..................................................243 B SQL Server 2000 ........................................................249

Daftar Pustaka ..........................................................................253

Page 5: Membuat Multiaplikasi menggunakan VB6

61

BAB 5

Data Report Data Report adalah fasilitas program (module) yang disertakan pada aplikasi Visual Basic (VB6) untuk membuat suatu laporan, di mana sumber datanya berasal dari Data Environment Designer (DED). Sedangkan Data Environment adalah suatu objek yang men-spesifikasikan hubungan ke sumber data (database) serta men-dekripsikan pernyataan (kriteria) dari data/record yang ingin di-peroleh.

Pada aplikasi program sesungguhnya, Data Report jarang digunakan, lebih umum digunakan aplikasi program Crystal Reports. Hal ini disebabkan spesifikasi (pernyataan) yang dideklarasikan pada DED tidak dapat dimodifikasi lewat kode program sehingga informasi yang ditampilkan melalui Data Report terkesan kaku (tidak fleksibel), jadi tidak banyak manfaatnya.

Walaupun manfaat Data Report sangat minim, tidak ada salahnya untuk mempelajari Data Report sebagai salah satu cara untuk menampilkan data/laporan dalam bentuk yang lebih terformat. Untuk itu penulis akan membimbing Anda melihat bagaimana record dari tabel AlbumList ditampilkan. Dilanjutkan dengan contoh laporan transaksi penjualan sebagai ilustrasi untuk memperlihatkan bagai-mana record dari beberapa tabel disatukan dalam suatu laporan. Mari kita mulai!

Page 6: Membuat Multiaplikasi menggunakan VB6

62

5.1 Data Report - AlbumList

Untuk mengetahui bagaimana menampilkan record dari tabel AlbumList, dapat dilakukan dengan membuka project baru, men-spesifikasikan hubungan ke database pada objek DED, kemudian mengaitkan kolom yang akan ditampilkan pada Data Report, dan diakhiri dengan menjalankan program. Untuk itu diperlukan langkah-langkah berikut ini:

1. Buka project baru VB.

2. Melalui menu Project, pilih opsi Add Data Environment untuk menambahkan Data Environment ke dalam project. Selanjutnya Anda akan melihat jendela Data Environment. Gantilah nama objek Connection1 menjadi objConnection (Gambar 5.1). Ke-mudian lanjutkan dengan mengaktifkan shortcut menu dengan cara mengklik tombol kanan mouse dari icon bersangkutan.

Gambar 5.1 Jendela Data Environment1

3. Selanjutnya pilih opsi Properties dari icon objConnection, dan Anda akan melihat jendela Data Link Properties. Isilah sumber data/konfigurasi yang diperlukan, yakni data provider yang akan digunakan yaitu Microsoft OLE DB Provider for SQL Server Dilanjutkan dengan pengisian informasi pada tab Connection

Page 7: Membuat Multiaplikasi menggunakan VB6

63

yakni nama server, nama user dan password, serta nama database yang akan digunakan. Tentunya jangan lupa untuk memberi tanda cek agar kode password disimpan juga (Gambar 5.2 dan Gambar 5.3).

Gambar 5.2 Jendela Data Link Properties

4. Selanjutnya tambahkan objek Command di bawah icon objConnection melalui pilihan Add Command. Maka Anda akan melihat icon Command1 ditambahkan tepat di bawah icon objConnection. Lanjutkan dengan mengganti nama Command1 menjadi objComm_AlbumList (Gambar 5.4).

Page 8: Membuat Multiaplikasi menggunakan VB6

64

Gambar 5.3 Jendela Data Link Properties (Connection)

Gambar 5.4 Objek Command pada DataEnvironment1

5. Berikutnya, buka properti objek objComm_AlbumList melalui pilihan pada menu shortcut. Anda akan melihat jendela objComm_AlbumList Properties. Masukkan pernyataan SQL yang akan digunakan sebagai sumber data, yakni Select * from AlbumList (Gambar 5.5).

Page 9: Membuat Multiaplikasi menggunakan VB6

65

Gambar 5.5 Mengkonfigurasi sumber data objek objComm_AlbumList

6. Pindah ke tab Advanced untuk menset properti recordset, type cursor: static, lokasi cursor: client, dan lock type: read only (lihat Gambar 5.6).

Gambar 5.6 Mengkonfigurasi recordset dari objek objComm_AlbumList

Page 10: Membuat Multiaplikasi menggunakan VB6

66

7. Tekan tombol OK untuk menyimpan konfigurasi dan Anda telah selesai mengkonfigurasi objek Data Environment. Klik tanda (+) di depan icon objComm_AlbumList dan akan terlihat daftar nama kolom milik tabel AlbumList, seperti tampak pada Gambar 5.7.

8. Langkah selanjutnya yaitu membuka jendela Data Report melalui pilihan Project > Add Data Report.

9. Kemudian tambahkan kolom yang ingin ditampilkan pada layout Data Report dengan cara menyeret (drag) kolom tersebut dari jendela DED dan letakkan pada area/section Detail. Akan ada dua kontrol disertakan lewat proses ini, salah satunya yaitu judul field/kolom. Hapus saja kontrol judul (label) agar hanya nilai kolom saja yang ditampilkan. Anda dapat melihat jenis kontrol/ nama kontrol melalui jendela Property.

Gambar 5.7 Tampilan kolom objComm_AlbumList

10. Lakukan penambahan untuk kolom Album_ID dan Album_Title, lalu perbaiki tata letak dari kontrol tersebut. Anda dapat juga memanfaatkan mouse untuk mengatur (memperbesar/mem-perkecil) area Detail Section. Lihat Gambar 5.8.

Page 11: Membuat Multiaplikasi menggunakan VB6

67

Gambar 5.8 Jendela Data Report

11. Spesifikasikan sumber data bagi Data Report yakni Data-Environment1 dan juga DataMember yang akan digunakan yakni objek objComm_AlbumList, seperti tampak pada Gambar 5.9.

Gambar 5.9 Properties DataReport1

Page 12: Membuat Multiaplikasi menggunakan VB6

68

12. Terakhir, set Startup Object dari project tersebut melalui jendela Project Properties dengan objek DataReport1 (Gambar 5.10) dan akhiri proses dengan menjalankan program. Maka Anda akan melihat tampilan record (laporan) seperti pada Gambar 5.11.

Gambar 5.10 Menset Startup Object

Gambar 5.11 Tampilan record AlbumList

Page 13: Membuat Multiaplikasi menggunakan VB6

69

5.2 Data Report - Penjualan

Proses penyiapan laporan penjualan tidaklah sulit. Prosesnya hampir sama dengan yang telah dijelaskan sebelumnya, bedanya ada pada proses penambahan objek ‘anak command/sub record.’

Jika pada laporan AlbumList, pernyataan SQL-lah yang menjadi sumber data, maka pada laporan penjualan, sumber data berasal dari pernyataan Shape yang berisi pernyataan SQL dan deskripsi lainnya seperti relationship dan agregasi/agregate.

Anda tidak perlu khawatir dalam menyiapkan pernyataan Shape, karena pernyataan Shape dapat dilakukan dengan memanfaatkan menu yang tersedia. Untuk jelasnya mari kita ikuti langkah-langkah berikut ini:

1. Anda dapat memulai proses dengan membuka project VB baru kemudian mendeskripsikan objConnection seperti telah dijelas-kan di atas. Cara lain yaitu dengan mengkopikan semua file yang telah dibuat sebelumnya pada folder lain, dilanjutkan dengan membuat objek Command atau langsung membuat objek Command baru pada projek yang telah dibuat sebelumnya.

2. Silakan menambahkan objek Command di bawah icon objConnection melalui pilihan Add Command, maka Anda akan melihat icon Command1 ditambahkan tepat di bawah icon objConnection. Gantilah nama Command1 menjadi objComm_-Customer, karena Anda akan mengambil data field dari tabel Customer (Gambar 5.12).

3. Berikutnya, buka properti objek objComm_Customer, dan Anda akan melihat jendela objComm_Customer Properties (Gambar 5.13). Pada tab General, pilih opsi sumber data berasal dari pernyataan SQL, kemudian ketik pernyataan SQL seperti berikut: Select cus_id, cus_name from customer, klik tombol OK untuk menyimpannya (Anda tidak perlu ke tab Advance, gunakan saja setting yang tersedia).

4. Klik icon objComm_Customer, melalui menu shortcut pilih opsi Add Child Command, lalu ganti namanya dari Command1 menjadi objComm_Sale.

Page 14: Membuat Multiaplikasi menggunakan VB6

70

Gambar 5.12 objComm_Customer

5. Klik icon objComm_Sale, aktifkan objek properti (Gambar 5.14), kemudian ketik pernyataan SQL: select sale_id, sale_date, cus_id, sale_amount from sale sebagai sumber datanya.

Gambar 5.13 Mengkonfigurasi sumber data objComm_Customer

Page 15: Membuat Multiaplikasi menggunakan VB6

71

Gambar 5.14 Mengkonfigurasi sumber data objek objComm_Sale

6. Pindah ke tab Relation (Gambar 5.15) untuk mengaitkan hubungan objek induk (objComm_Customer) dengan objek anak (objComm_Sale). Pilih field cus_id sebagai penghubung, ke-mudian tekan tombol Add dan klik OK untuk menyimpannya.

Gambar 5.15 Mengaitkan objComm_Customer dengan objComm_Sale

Page 16: Membuat Multiaplikasi menggunakan VB6

72

7. Klik icon objComm_Sale, melalui shortcut menu pilih opsi Add Child Command, kemudian ganti nama command1 menjadi objComm_Sale_Detail.

8. Klik icon objComm_Sale_Detail, aktifkan objek properti. Se-lanjutnya Anda bisa mengetik pernyataan SQL seperti yang dilakukan pada objek objComm_Sale atau membuat pernyataan melalui tombol SQL Builder. Mari kita coba membuatnya melalui SQL Design, tekan tombol SQL Builder, Anda akan melihat jendela SQL Design (Gambar 5.17) dan jendeka DataView ditampilkan (Gambar 5.16).

9. Lakukan proses penambahan tabel ke dalam panel diagram dengan cara menyeret icon tabel (sale_detail dan albumlist) dari folder Tables pada jendela Data View. Kemudian pilih field yang diinginkan (dari tabel sale_detail: sale_id, album_id, sd_quantity, sd_price dan album_title dari tabel albumlist). Jalankan program dan Anda akan mendapatkan pernyatan SQL yang diinginkan. Keluar dari jendela SQL Design dan simpan/kaitkan pernyataan tersebut pada jendela properti objComm_Sale_Detail.

Gambar 5.16 Jendela DataView

Page 17: Membuat Multiaplikasi menggunakan VB6

73

Gambar 5.17 Membuat perintah SQL

10. Pindah ke tab Relation (Gambar 5.18) untuk mengaitkan hu-bungan objek induk (objComm_Sale) dengan objek anak (objComm_Sale_Detail). Pilih field Sale_id sebagai pengikat, kemudian tekan tombol Add, dan klik OK untuk menyimpannya.

Gambar 5.18 Mengaitkan objComm_Sale dengan objComm_Sale_Detail

Page 18: Membuat Multiaplikasi menggunakan VB6

74

11. Langkah selanjutnya adalah menghitung total nilai penjualan untuk setiap pelanggan (mCus_Total_Sale). Untuk itu, klik icon objComm_Customer, kemudian aktifkan jendela properti dan pilih tab Aggregates (Gambar 5.19). Klik tombol Add, masukkan nama variabel (mCus_Total_Sale), pilih fungsi Sum dari opsi yang tersedia, lanjutkan dengan memilih objComm_Sale sebagai sumber field kemudian pilih field yang ingin dijumlahkan (sale_amount).

12. Untuk menghitung jumlah faktur pembelian per pelanggan (mCus_Total_Invoice), lakukan hal yang serupa. Tekan tombol Add, masukkan nama variabel (mCus_Total_Invoice), fungsi yang diinginkan (Count), sumber data (objComm_Sale), dan jumlah faktur yang ingin dihitung (sale_id). Kemudian klik OK untuk menyimpannya (Gambar 5.20).

Gambar 5.19 Mengkonfigurasi variabel mCus_Total_Sale

13. Klik icon objComm_Customer, Anda akan melihat mCus_-Total_Sale dan mCus_Total_Invoice disertakan di sana. Aktifkan jendela Hierarchy Information. Anda akan melihat perintah pen-jumlahan telah disertakan dalam pernyataan Shape (Gambar 5.21).

Page 19: Membuat Multiaplikasi menggunakan VB6

75

Gambar 5.20 Mengkonfigurasi variabel mCus_Total_Invoice

Gambar 5.21 Jendela Shape Command

14. Langkah selanjutnya adalah membuka jendela Data Report melalui pilihan Project > Add Data Report.

Page 20: Membuat Multiaplikasi menggunakan VB6

76

15. Spesifikasikan sumber data bagi Data Report yakni Data-Environment1 dan juga DataMember yang akan digunakan yakni objek objComm_Customer, seperti tampak pada Gambar 5.22.

Gambar 5.22 Mengaitkan objek DED ke dalam form

16. Sisipkan group Header/Footer pada Data Report, kemudian tambahkan kolom yang ingin ditampilkan sesuai dengan area group Header atau Footer bersangkutan (lihat Gambar 5.23). Anda dapat menambahkan label lainya untuk memperjelas informasi yang ditampilkan.

17. Terakhir, set Startup Object dari project tersebut melalui jendela Project Properties dan akhiri proses dengan menjalankan program. Anda akan melihat tampilan record (laporan) seperti pada Gambar 5.24.

Page 21: Membuat Multiaplikasi menggunakan VB6

77

Gambar 5.23 Mengkonfigurasi field yang akan ditampilkan

Gambar 5.24 Penampilan Laporan Penjualan

Page 22: Membuat Multiaplikasi menggunakan VB6

78

5.3 Data Report – via Form dan Print Report

Pada awal pembahasan, penulis telah mengatakan bahwa informasi yang ditampilkan melalui Data Report bersifat kaku. Hal ini di-sebabkan karena pernyataan untuk memperoleh data tidak dapat diubah. Untuk lebih jelasnya coba simak penjelasan berikut ini.

Coba Anda awali observasi dengan melihat properti dari objek objComm_DataList, maka pada kategori CommandText akan terlihat pernyataan SQL yang dibuat melalui jendala objComm_AlbumList Properties (Gambar 5.25). Selanjutnya Anda dapat melihat sumber pernyataan (Data Member) yang digunakan oleh Data Report pada Gambar 5.26, yakni objComm_AlbumList.

Gambar 5.25 Properties objComm_AlbumList

Gambar 5.26 Sumber Record Data Report

Page 23: Membuat Multiaplikasi menggunakan VB6

79

Setelah Anda meletakkan kolom yang ingin ditampilkan pada layout Data Report, maka pada properti txtAlbum_ID akan terlihat sumber data berasal dari data member objComm_AlbumList (Gambar 5.27). Silahkan menjalankan program dan Anda akan melihat hasilnya seperti telah dijelaskan di atas.

Gambar 5.27 Properti Kolom Album_ID

Mari kita coba melakukan perubahan dengan dua cara. Cara pertama dengan membuat sebuah objek command baru, namai saja newComm_AlbumList (Gambar 5.28), dan isi pernyataan SQL-nya: Select * from AlbumList where Album_ID = ‘AL0001’.

Selanjutnya ganti properti Data Member dari DataReport menjadi newComm_AlbumList (Gambar 5.29). Anda telah meletakkan kolom pada layout Data Report, bukan? Jadi tidak perlu meletakkan kolom lagi. Coba jalankan program maka Anda akan mendapat pesan kesalahan – data tidak ditemukan!

Kenapa? Karena jika Anda lihat properti dari kolom yang di-tampilkan, maka data member yang digunakan masih berasal dari objComm_AlbumList, bukan berasal dari newComm_AlbumList. Hal ini terjadi karena pada proses peletakan kolom data member berasal dari objComm_AlbumList.

Tentunya adalah hal yang aneh jika kita harus mengganti nilai data member dari setiap kolom yang ingin ditampilkan seandainya kita mengganti sumber dari data member (objek Command). Hal itulah yang dimaksud dengan kekakuan dalam menampilkan record via Data Report.

Page 24: Membuat Multiaplikasi menggunakan VB6

80

Gambar 5.28 Objek newComm_AlbumList

Gambar 5.29 Mengganti Data Member

Cara kedua yaitu dengan membuat form untuk menerima per-nyataan SQL yang dimasukkan oleh pengguna, kemudian mencoba menset pernyataaan itu pada objek data environment maupun objek Data Report. Dan hasilnya tetap nihil, baik disebabkan karena perbedaan tipe data maupun objek properti tidak dapat diset.

Walaupun kegunaan Data Report agak minim tidak berarti tidak ada gunanya. Karena paling tidak Anda dapat menggunakannya untuk mencetak sesuatu yang bersifat rutin, misalnya struk pembelian yang dicetak setelah proses penjualan dilakukan. Karenanya tidak ada salahnya jika kita meluangkan waktu sedikit untuk melihat proses pencetakan laporan yang dihasilkan dari Data Report.

Proses pencetakan laporan yang dihasilkan melalui Data Report, dapat dilakukan melalui fasilitas Print yang ada pada tampilan

Page 25: Membuat Multiaplikasi menggunakan VB6

81

jendela preview data report. Seandainya Anda ingin langsung men-cetaknya maka Anda dapat menambahkan kode program berikut DataReport1.PrintReport False atau memberi batasan halaman yang akan dicetak lewat perintah berikut:

DataReport1.PrintReport False, rptRangeFromTo, 1, 2.

Berikut adalah tampilan form untuk (mencoba) mengubah perintah objek Command dan listing program yang menyertainya.

Gambar 5.30 Mengganti Perintah Objek Commandr

Private Sub Command1_Click() ' coba lakukan perubahan menggunakan nilai dari ' text1.text pada objek ...?? agar hanya satu ' record yang ditampilkan ' test setting berikut gagal: ' DataEnvironment1.objComm_AlbumList = Text1.Text ' DataReport1.DataMember = Text1.Text ' DataReport1.DataMember = DataEnvironment1.newComm_AlbumList ' DataEnvironment1.objComm_AlbumList = DataEnvironment1.newComm_AlbumList DataReport1.Show End Sub Private Sub Command2_Click() ' Langsung cetak DataReport1.PrintReport False ' langsung cetak + batasan halaman yang akan dicetak ' DataReport1.PrintReport False, rptRangeFromTo, 1, 2 End Sub Private Sub Form_Load() Text1.Text = "select * from albumlist where album_id = 'AL0001'" End Sub