membuat aplikasi gl dengan powerbuilder 9.0 dan sql server 2000

106

Click here to load reader

Upload: nurdin-al-azies

Post on 16-Dec-2014

657 views

Category:

Technology


20 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

Spesifikasi:

Ukuran: 14x21 cm Tebal: 416 hlm

Harga: Rp 63.800 Terbit pertama: Desember 2004

Sinopsis singkat:

Sistem Informasi Akuntansi - General Ledger dalam buku ini merupakan aplikasi siap pakai yang dibuat dengan bahasa pemrograman PowerBuilder dan database SQL Server 2000. Dengan hanya memasukkan data jurnal, semua laporan keuangan seperti rugi-laba, perubahan modal, dan neraca dapat dicetak kapan saja. Aplikasi ini juga dapat mencetak daftar perkiraan, jurnal, buku besar dan neraca saldo (percobaan).

Buku ini memberikan penjelasan dan langkah-langkah praktis bagi Anda yang ingin mengetahui teknik pemrograman aplikasi General Legder dengan PowerBuilder 9.0 (teknik inherit) dan/atau database SQL

Server 2000, dan juga bagi Anda yang hanya ingin memakai aplikasi General Ledger tanpa ingin mengetahui cara pembuatan database dan aplikasinya.

Dilengkapi dengan CD berisi source code, aplikasi lengkap siap pakai, dan file-file pendukung sehingga memudahkan Anda mengikuti semua materi yang dibahas dalam buku.

Page 2: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

155

Bab 7

Window

Window adalah penghubung utama antara pemakai dengan aplikasi PowerBuilder. Window dapat menampilkan informasi, menerima masukan informasi dari pemakai, dan merespons mouse atau keyboard yang digerakkan.

Window adalah obyek terpisah dengan obyek lainnya yang Anda buat dengan painter Window. Pada PowerBuilder, Anda dapat membuat window kapan saja selama proses pengembangan aplikasi.

7.1 Tipe Window Tipe window penting dalam membuat suatu window karena masing-masing tipe window mempunyai fungsi yang berbeda dan PowerBuilder akan mengeset atribut window tersebut sesuai dengan tipe yang ditentukan. Untuk memilih tipe window, pilih salah satu tipe window yang terdapat dalam dropdown tipe window. Tipe window akan menetapkan hubungan dengan window lain dalam aplikasi.

Main

Window main biasanya digunakan sebagai sheet dalam aplikasi. Window main bisa saja berfungsi sebagai induk (parent window) dari window child, popup, atau response.

Window main biasanya berisi sebuah menu dan/atau sebuah set dari satu CommandButton atau lebih untuk menyajikan pilihan pada pemakai. Tipe window ini dapat diperkecil atau diperbesar. Saat Anda melakukan hal ini, window ini akan secara otomatis

Page 3: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

156

mengesetnya dengan ukuran yang relatif terhadap layar dan bukan terhadap window lain.

PopUp

Window Popup adalah sebuah tipe window yang dapat digunakan sebagai window mengapung dan dapat ditampilkan di luar window parent. Window popup sering digunakan untuk menyediakan informasi tambahan atau detail yang besar dari sebuah obyek dalam sebuah window induk.

Child

Window Child adalah sebuah window anak yang terikat dengan sebuah window induk. Artinya, sebuah window child harus dihubungkan dengan sebuah window induk (parent window) dan hanya dapat ditempatkan dalam window induk dan tidak dapat ditarik (ditempatkan) keluar window induk.

Response

Window Response adalah sebuah kotak dialog yang menerima informasi dari pemakai. Window response yang ditampilkan merupakan window aktif. Tidak ada window lain dalam aplikasi yang dapat diakses sampai ada respons dari pemakai. Pemakai dapat beralih ke window aplikasi yang lain, tetapi ketika pemakai kembali ke aplikasi, window response tetap aktif.

Sebuah window response sama seperti window popup, bedanya window popup tidak membutuhkan respons pemakai, sedangkan window response membutuhkan respons pemakai. Window respons adalah application modal, yaitu window yang memerlukan respons sebelum melanjutkan aplikasi. Saat aplikasi membuka window response, pemakai tidak dapat berpindah ke window yang lain (dalam aplikasi yang sama) sebelum menutup window response tersebut. Window response selalu menampilkan sebuah pesan dan biasanya ada satu atau lebih CommandButton yang harus dilaksanakan pemakai. Window ini juga sering digunakan untuk menampilkan pesan error atau tampilan keputusan sebelum proses dilanjutkan. Window ini tidak bisa menggunakan menu, tidak dapat diperkecil (minimize) atau diperbesar (maximize), dan tidak dapat digulung. Anda hanya dapat memindahkan atau menutupnya. Gambar 7.7 adalah salah satu contoh window response.

Page 4: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

157

MDI Frame

Window MDI (Multiple Document Interface) adalah salah satu tipe Windows yang penting Anda ketahui. Banyak aplikasi Windows terkenal menggunakan bentuk tampilan aplikasi MDI ini. Microsoft Word for Windows, Microsoft Excel, dan PowerBuilder adalah contoh aplikasi MDI. Window MDI merupakan salah satu bentuk tampilan dari window induk. Istilah lain dari window MDI adalah MDI Frame yang berisi satu atau lebih window anak sebagai sheet—window yang merupakan lembaran kerja untuk menampilkan data, baik sebagai input (lembaran kerja) maupun output (preview laporan). Dalam Mircrosoft Word for Windows, window anak merupakan macam-macam dokumen yang dapat diedit. Pada Excel, masing-masing window anak ini disajikan dalam bentuk lembaran kerja (spreadsheet).

Window MDI dapat juga berisi toolbar dan Microhelp (gunakan tipe window MDI Frame with Microhelp).

MDI Frame with Microhelp

Pilihan lain dari tipe window adalah MDI Frame with Microhelp. Pada window MDI Frame with Microhelp ini disediakan fasilitas untuk menampilkan keterangan pendek pada baris status aplikasi. Keterangan ini digunakan untuk membantu pemakai dalam pemilihan menu dan icon menu. Hal ini akan dibahas pada bagian pembuatan window utama dalam bab ini.

7.2 Window Pembuka Window pembuka adalah window yang dibuka pertama kali pada saat aplikasi dijalankan. Window ini biasa menampilkan gambar yang aktraktif agar aplikasi yang dibuat lebih menarik. Gambar ini dapat Anda rancang sendiri sedemikian rupa sesuai keinginan Anda. Sebagai contoh, penulis mengikutsertakan rancangan gambar yang disisipkan ke dalam dokumen MS Word (slide_pembuka.doc), kemudian ditangkap (capture) dan disimpan dengan format file gambar yang dapat digunakan pada PowerBuilder (bmp, gif, jpg, atau format gambar lainnya).

Langkah-langkah untuk membuat window pembuka adalah sebagai berikut:

Page 5: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

158

1. Klik icon New pada PowerBar.

2. Klik tab PB Object.

3. Klik Window.

4. Atur ukuran window sesuai dengan keinginan Anda.

5. Klik icon Picture pada dropdown kontrol.

6. Klik area di pojok kiri atas window.

7. Klik kanan mouse kemudian pilih Properties.

8. Klik tombol select pada PictureName.

9. Klik drop down File of type:.

10. Pilih tipe file gambar yang akan disisipkan, pada contoh ini adalah bmp karena tampilan gambar bmp jauh lebih bagus dari pada file gambar gif dan jpg.

11. Pilih file slide_pembuka, kemudian atur tampilan gambar sesuai ukuran tampilan window.

12. Klik tab Declare Instance Variable, kemudian ketikkan variabel di bawah ini: int ii_detik

13. Klik tab Event list, klik event open, kemudian ketikkan skrip di bawah ini: f_center_w( this ) //Center window timer(3) //delay 3 detik

14. Klik icon Save, klik file mylibrary.pbl, ketikkan w_pembuka, kemudian klik OK.

7.3 Window Login Aplikasi PowerBuilder merupakan aplikasi yang mempunyai kemampuan yang hebat dalam menangani database dan sangat memperhatikan keamanan aplikasi dan database yang digunakan. Kode aslinya hanya dapat dibaca oleh PowerBuilder sendiri, begitu pula database aslinya yang telah diberi user id dan password. Hal ini dilakukan untuk keamanan agar database tidak dapat diakses oleh orang-orang yang tidak berhak. Selain itu, PowerBuilder

Page 6: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

159

memberikan fasilitas window response agar pemakai menjalankan window ini dan memasukkan user id dan password sebelum memasuki aplikasi.

Window Login adalah suatu window yang digunakan pemakai untuk memasukkan user id dan password sebelum masuk ke dalam aplikasi.

7.3.1 Pembuatan Window

Selain dari window login itu sendiri, ada beberapa obyek dan kontrol yang harus Anda buat saat pembuatan window login.

Membuat Window Login

Untuk pembuatan window login, ikuti langkah-langkah di bawah ini:

1. Klik icon New pada PowerBar.

2. Klik tab PB Object.

3. Klik Window.

4. Ubah ukuran window.

Pindahkan pointer mouse ke pojok kanan bawah window sampai tanda anak panah dengan arah ke pojok kiri atas dan ke kanan bawah terlihat. Tahan dan dorong mouse ke arah pojok kiri atas untuk memperkecil window atau dorong mouse ke arah pojok kanan bawah untuk memperbesar window. Cara seperti ini digunakan untuk mengubah ukuran window secara proporsional (sebanding dengan window aslinya). Anda dapat juga mengubah ukuran window secara tidak proporsional dengan memindahkan pointer mouse pada sisi kanan untuk memperbesar/memperkecil ke arah kanan/kiri dan pada posisi bawah untuk memperbesar/memperkecil ke arah bawah/atas.

5. Klik tab General pada tab Properties.

6. Ketikkan Login dalam kotak Title.

7. Hilangkan tanda centang pada kotak cek ControlMenu.

8. Pilih Response! dalam dropdown Window Type.

9. Klik tab Other dan ketikkan posisi dan ukuran window seperti pada Gambar 7.1.

Page 7: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

160

Gambar 7.1 Kotak dialog posisi dan ukuran window

Menambah Kontrol Gambar Bar Putih

Kontrol gambar bar ini digunakan sebagai bar tempat kontrol gambar logo perusahaan dan kontrol teks nama aplikasi yang akan ditampilkan. Langkah–langkah untuk membuat kontrol ini adalah sebagai berikut:

1. Klik icon Picture dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol yang ada, kemudian klik icon Create Picture control.

2. Klik mouse di mana kontrol Picture ini ditempatkan, maka akan terbentuk kontrol gambar dengan nama p_1.

Kontrol Picture akan ditampilkan pada lokasi yang dipilih atau di mana mouse diklik. Kontrol ini dapat dipindahkan atau dihapus. Untuk memindahkannya, pointer (tanda tambah) berada pada kontrol, klik kiri mouse dan tahan, pindahkan mouse ke lokasi yang diinginkan dan lepaskan mouse. Untuk menghapus kontrol, klik kontrol ini dan tekan tombol Delete.

Untuk menambahkan kontrol gambar, ikuti langkah-langkah berikut:

1. Klik dropdown PictureName pada tab General.

2. Pilih nama gambar yang diinginkan.

Page 8: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

161

Dropd down kontrol

Gambar 7.2 Dropdown kontrol

Anda juga dapat memilih nama file gambar yang dibuat sendiri. Sebagai contoh, penulis menggunakan file gambar bar dari salah satu clipart galery yang telah ditambahi bar warna putih di bagian atas gambar bar aslinya. Cara menambahkan warna putih adalah dengan menyisipkan file gambar bar pada lembaran kerja Microsoft Word, kemudian menangkap (capture) gambar tersebut mulai dari sisi bawah ke atas sehingga warna putih lembaran kerja Microsoft Word tertangkap, lalu simpan dengan nama barputih.bmp. Kotak empat persegi panjang pada Gambar 7.3 menunjukkan area yang ditangkap pada lembaran kerja Microsoft Word pada pembuatan bar putih.

Gambar 7.3 Pembuatan bar puntih

3. Tarik kontrol p_1 ke kanan sehingga tampilan gambar menjadi seperti Gambar 7.4.

Menambah Kontrol Gambar Logo Perusahaan

Kontrol gambar ini digunakan sebagai tempat gambar logo perusahaan yang akan ditampilkan. Langkah–langkah untuk membuat kontrol ini adalah sebagai berikut:

Page 9: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

162

1. Klik icon Picture dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Picture control.

2. Klik mouse di atas bagian pojok kiri atas kontrol gambar p_1 (bertumpuk dengan kontrol p_1), maka kontrol p_2 akan terbentuk.

3. Klik dropdown PictureName pada tab General.

4. Pilih nama gambar yang diinginkan.

5. Anda juga dapat memilih nama file gambar yang dibuat sendiri. Sebagai contoh, penulis menggunakan file power-it.jpg.

6. Atur ukuran tampilan gambar logo perusahaan.

Menambahkan Kontrol Teks Aplikasi

Kontrol teks aplikasi adalah kontrol teks statis yang digunakan sebagai tempat teks yang akan menampilkan nama aplikasi di sebelah kanan kontrol p_2. Untuk menambahkan kontrol teks statis, ikuti langkah-langkah dibawah ini:

1. Klik icon Static Text (icon huruf A) dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Static Text control.

2. Klik area di sebelah kanan kontrol p_2, maka akan terbentuk kontrol st_1.

3. Kontrol teks statis akan tampil pada lokasi. Kotak hitam kecil pada setiap sudut menandakan bahwa kontrol ini yang dipilih.

Menambahkan Kontrol Teks UserId dan Password

Kontrol teks userid dan pasword digunakan sebagai tempat teks “User ID:” dan “Password”. Untuk menambahkan kontrol teks ini, ikuti langkah-langkah dibawah ini:

1. Klik icon Static Text (icon huruf A) dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Static Text control.

2. Klik area di bawah kontrol p_1, maka akan terbentuk kontrol st_2.

3. Klik kanan mouse pada kotrol teks statis dan pilih Duplicate.

Page 10: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

163

4. PowerBuilder akan membuat sebuah duplikat dari kontrol yang dipilh tadi.

Mengatur Properti Kontrol Teks Statis

Kontrol teks statis yang dibuat telah dapat diisi dengan teks yang diinginkan dan dapat diatur propertinya seperti ukuran huruf, nama huruf, tebal, dan sebagainya.

Untuk mengatur properti kontrol teks statis, ikuti langkah-langkah di bawah ini:

1. Klik kontrol teks statis yang pertama.

2. Klik tab General.

3. Pilih teks st_1 dalam kotak Name. Ketikkan st_aplikasi dalam kotak Name. Ganti teks none dalam kotak Text dan ketikkan General Ledger. Anda telah membuat satu teks statis dan memberinya awalan nama st sebagai standar kontrol teks statis.

4. Klik tab Font dan ubah ukurah huruf menjadi 16 point.

5. Sesuaikan ukuran huruf kontrol teks statis yang pantas.

Tempatkan mouse pada sudut atas kanan kontrol teks, klik dan tahan, lalu dorong mouse ke arah kanan dan lepaskan mouse.

Periksa apakah semua teks yang diketikkan sudah tampil dalam kontrol atau belum.

Jika perlu, sesuaikan ukuran kontrol sampai semua teks yang diketikkan kelihatan.

6. Sesuaikan lokasi kontrol dengan ruangan yang ada.

7. Klik kontrol teks yang kedua.

8. Klik tab General.

9. Pilih teks st_2 dalam kotak Name.

10. Hapus teks none dalam kotak Text dan ketikkan User ID:.

Lakukan juga untuk st_3 dengan nama dengan nama st_password dan teks Password:.

Page 11: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

164

st_aplikasi st_userid st_password p_1 p_2

Gambar 7.4 Tampilan sementara window login

Kontrol SingleLineEdit

Kontrol ini digunakan sebagai tempat input atau untuk menampilkan teks. Teks ini dapat diubah-ubah oleh pemakai.

Anda dapat membuat dua buah kontrol SingleLineEdit, yaitu untuk input User ID dan Password. Untuk melakukan hal ini, ikuti langkah-langkah dibawah ini:

1. Klik icon SingleLineEdit pada dropdown kontrol.

2. Klik mouse di sebelah kanan teks statis User ID:.

Sebuah kontrol SingleLineEdit tampil pada lokasi yang dipilih tadi. Kotak hitam pada setiap sudut menandakan bahwa kontrol ini yang dipilih.

3. Klik kanan mouse pada kontrol SingleLineEdit dan pilih Duplicate. PowerBuilder akan membuat sebuah duplikat dari kontrol yang dipilih tadi.

4. Sesuaikan posisi kontrol SingleLineEdit dengan posisi kontrol teks statis.

5. Atur ukuran kontrol SingleLineEdit seperti mengubah ukuran kontrol teks statis.

Page 12: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

165

Mengatur Properti Kontrol SingleLineEdit

Untuk mengatur properti SingleLineEdit, ikuti langkah-langkah di bawah ini:

1. Klik kontrol SingleLineEdit yang pertama.

2. Pilih teks sle_1 dalam kotak Name.

3. Klik tab General:

Ganti teks sle_1 dalam kotak Name dengan sle_userid.

Klik kotak Password sehingga muncul tanda centang untuk menampilkan tanda bintang saat pengetikan.

Ketikkan 10 dalam kotak Limit.

4. Pilih teks sle_2 dalam kotak Name.

Ketikkan sle_password dalam kotak Name.

Klik kotak Password sehingga muncul tanda centang untuk menampilkan tanda bintang saat pengetikan.

Ketikkan 10 dalam kotak Limit.

Kontrol CommandButton

CommandButton atau icon tombol merupakan kontrol yang digunakan sebagai media penghubung pemakai dengan program. Penekanan CommandButton akan menyebabkan dijalankannya suatu tugas berdasarkan kondisi saat itu. Pengaksesan kontrol ini, seperti mengklik mouse pada kontrol ini, menyebabkan terjadinya perubahan gambar seolah-olah sebuah tombol ditekan dan dilepaskan.

Untuk membuat kontrol CommandButton, caranya adalah sebagai berikut:

1. Klik icon CommandButton pada dropdown kontrol.

2. Klik mouse di sebelah kanan SingleLineEdit pertama. Sebuah kontrol CommandButton tampil pada lokasi yang dipilih.

3. Klik kanan mouse pada kontrol CommandButton dan pilih Duplicate. PowerBuilder akan membuat sebuah duplikat dari kontrol yang dipilih.

Page 13: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

166

4. Sesuaikan posisi kontrol CommandButton dengan posisi kontrol SingleLineEdit. Atur ukuran kontrol CommandButton seperti mengubah ukuran kontrol teks statis.

Mengatur Properti Kontrol CommandButton

Untuk mengatur properti CommandButton, lakukan langkah-langkah berikut:

1. Pilih kontrol CommandButton pertama yang telah Anda buat.

2. Klik tab General.

3. Pilih teks cb_1 dalam kotak Name.

Ketikkan cb_login dalam kotak Name.

Hapus teks none dalam kotak Text dan ketikkan Login.

Klik kotak cek Default.

Anda telah membuat satu CommandButton dan memberinya nama. Awalan cb adalah standar kontrol CommandButton.

4. Pilih kontrol CommandButton yang kedua yang telah Anda buat.

5. Pilih teks cb_2 dalam kotak Name:

Ketikkan cb_batal dalam kotak Name

Hapus teks none dalam kotak Text dan ketikkan Batal.

Merapikan Tampilan Kontrol

Jika Anda memperhatikan posisi tampilan dari beberapa kontrol yang telah Anda buat pada window Login, ada yang terlalu kekiri/kanan, ke atas/bawah atau beberapa kontrol yang seharusnya mempunyai panjang sama tapi tidak sama. Untuk memperindah tampilan kontrol-kontrol ini PowerBuilder menyediakan fasilitas berupa menu dan toolbar seperti pada Gambar 7.5.

Untuk mempercantik tampilan kontrol-kontrol pada window login, ikuti langkah-langkah di bawah ini:

1. Tekan tombol Ctrl dan tahan.

2. Klik kontrol teks st_userid.

3. Klik kontrol teks st_password.

4. Lepas tombol Ctrl.

Page 14: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

167

5. Tampilan kontrol akan ditandai dengan titik empat bujur sangkar di masing-masing pojok empat persegi panjang kontrol.

6. Klik dropdown icon untuk memilih jenis pengaturan (perhatikan Gambar 7.5).

Icon aktif Droo down icon Rata kiri Rata kanan Center Vertikal Center horizontal Rata atas Rata bawah Jarak horizontal Jarak vertikal Ukuran lebar Ukuran tinggi Ukuran sama besar

Gambar 7.5 Toolbar untuk mempercantik tampilan kontrol

7. Klik icon Rata kiri (Align left edges).

Setelah Anda mengklik icon rata kiri maka kontrol akan diratakan ke kiri sejajar dengan kontrol yang pertama kali diklik, yaitu kontrol st_password akan diratakan sejajar dengan kontrol st_userid. Hal ini dapat dilakukan dengan lebih dari satu kontrol sekaligus diratakan sesuai dengan jumlah kontrol yang dipilih. Pengaturan seperti ini juga berlaku nantinya pada pengaturan kontrol pada DataWindow.

8. Klik kontrol st_userid dan kontrol sle_userid, kemudian lepas tombol Ctrl.

9. Pilih icon ukuran tinggi (Size width) untuk menyamakan tinggi kontrol sle_userid dengan kontrol st_userid dan selanjutnya pilih icon Rata atas.

10. Bebaskan semua kontrol yang dipilih dengan mengklik area window yang kosong.

11. Tekan tombol Ctrl dan tahan.

12. Klik kontrol sle_useid, kemudian lepas tombol Ctrl.

Page 15: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

168

13. Tekan tombol Shift dan tahan.

14. Tekan tombol anak panah kanan untuk menambah ukuran lebar kontrol sle_userid agar dapat menampung kira-kira 10 karakter.

Hal ini dapat juga Anda lakukan dengan cara menempatkan kursor mouse di sisi sebelah kanan kontrol sehingga kursor mouse berubah menjadi tanda anak panah kiri kanan. Tahan mouse pada posisi ini dan dorong ke kanan untuk melebarkan, atau ke kiri untuk memperpendek kontrol.

15. Bebaskan semua kontrol yang dipilih dengan mengklik area window yang kosong.

16. Tekan tombol Ctrl dan tahan.

17. Klik kontrol sle_userid dan kontrol sle_password, kemudian lepas tombol Ctrl.

18. Pilih icon rata kiri (Align left edges) untuk menempatkan kontrol sle_password sejajar ke kiri dengan kontrol sle_userid.

19. Klik icon ukuran lebar dan tinggi (Size widths and heights) untuk menyamakan lebar/tinggi kontrol sle_password dengan lebar/tinggi kontrol sle_userid.

20. Bebaskan semua kontrol yang dipilih dengan mengklik area window yang kosong.

21. Selanjutnya, samakan panjang kontrol cb_login dengan cb_batal dan samakan tinggi kedua kontrol ini dengan kontrol sle_userid.

Menyimpan Window

Setiap kali Anda keluar dari painter window, PowerBuilder akan menanyakan apakah window yang telah dibuat akan disimpan (Yes), tidak (No), atau tetap berada pada layar desain untuk melanjutkan pekerjaan (Cancel). Pilih salah satu pilihan yang diinginkan.

Untuk meyimpan window baru, caranya adalah sebagai berikut:

1. Pilih File dari menu bar atau klik icon Save, maka akan tampil kotak dialog penyimpanan window.

2. Anda dapat juga memilih Save As. Untuk window baru, Save dan Save As adalah sama kecuali apabila Anda ingin menyimpannya dengan nama lain.

Page 16: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

169

3. Pilih nama file pustaka tempat window disimpan, misalnya disimpan dalam file pustaka mylibrary.pbl.

4. Ketikkan nama window yang diinginkan, misalnya w_login.

5. Awalan w_ adalah standar untuk penamaan windows.

6. Ketikkan keterangan dalam kotak Comments, misalnya Window masuk aplikasi bilamana diperlukan (opsional).

7. Klik OK.

Melihat Tampilan Window

Tampilan window yang telah didesain dapat dilihat dengan perintah Preview. Namun sebelum Anda melakukan preview window login, berikanlah kembali tanda centang pada kotak cek ControlMenu (klik tab General, kemudian klik kotak cek ControlMenu). Hal ini dilakukan agar setelah melakukan preview Anda dapat kembali ke layar desain. Jika hal tidak dilakukan maka Anda tidak akan dapat kembali ke layar desain karena saat preview dilakukan PowerBuilder tidak menampilkan menu atau icon Close sehingga Anda harus menutup (Close) PowerBuilder.

Untuk melakukan preview pilih menu Design | Preview dari menu bar atau klik icon Preview pada PainterBar.

Window yang telah didesain akan tampil dan Anda dapat mencoba mengetikkan pada kontrol sle_userid atau sle_password yang berwarna putih seperti pada Gambar 7.6.

Jika hasil tampilan window yang Anda buat perlu diperbaiki, Anda dapat kembali ke layar desain dengan mengklik Close window pada pojok kanan atas.

Gambar 7.6 Tampilan preview window login

Page 17: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

170

Apabila tampilan window telah sesuai dengan tampilan yang Anda inginkan, hilangkan kembali tanda centang pada kotak cek ControlMenu, kemudian simpan window.

Menutup Window

Penutupan window dapat Anda lakukan dengan memilih menu File | Close atau dengan mengklik icon Close.

Membuka Window

Window yang telah disimpan dapat dibuka kembali untuk diubah atau hanya sekedar untuk menampilkannya saja. Pada window yang telah dibuka, Anda dapat memilih menu File | Recent Objects. Klik nama window tersebut untuk mengaktifkannya. Untuk membuka window, ikuti langkah-langkah di bawah ini:

1. Klik icon Open.

2. Klik Window pada dropdown Objects of Type.

3. Klik nama file pustaka tempat window disimpan, misalnya mylibrary.pbl.

4. Klik nama window yang akan dibuka, misalnya w_login.

5. Klik OK.

7.3.2 Skrip Window Login

Skrip adalah kode program dalam bahasa PowerBuilder yang akan melakukan suatu pekerjaan saat suatu kejadian berlangsung. Apakah program perlu memeriksa karakter yang diketikkan oleh pemakai saat mengetikkan user id dan password program? Jika hal ini diperlukan maka Anda harus mengetikkan skrip untuk memeriksa karakter yang diketikkan pemakai tersebut.

Skrip SingleLineEdit

Kontrol SingleLineEdit yang telah dibuat untuk memasukkan User Id dan Password mendukung suatu kejadian (event) jika telah terjadi perubahan (modified) isi kontrol. Dengan adanya kejadian ini maka kita dapat melakukan tindakan-tindakan terhadap kejadian ini. Kejadian ini disebut dengan kejadian Modified. Skrip yang digunakan sebagai respons dari kejadian ini diketikkan dalam kejadian ini.

Page 18: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

171

Sebagai contoh, Anda dapat memeriksa karakter yang dimasukkan oleh pemakai, misalnya hanya mengizinkan huruf atau angka saja. Jika string yang diketikkan oleh pemakai tidak sah maka tampilkan pesan Ketikkan huruf atau angka!. Untuk melakukan hal ini diperlukan tiga buah fungsi, yaitu Isnull(), Match(), dan Messagebox().

Untuk membuat skrip kontrol SingleLineEdit, ikuti langkah-langkah di bawah ini:

1. Buka Window w_login.

2. Klik kanan kontrol sle_userid untuk menampilkan menu pop-up.

3. Klik menu Script pada menu pop-up.

4. Deklarasikan variable instance (klik tab Declare Instance Variable) untuk menampung string user id dan password serta jumlah pengulangan kesalahan. int ii_looping //pengulangan kesalahan string is_userid,is_password Klik tab event Modified, kemudian ketikkan skrip di bawah ini: //Mengambil string user id pada kontrol sle_userid is_userid =

5. Tempatkan kursor di belakang tanda sama dengan.

6. Klik icon Browse Object pada PainterBar.

7. Klik tab Window.

8. Klik ganda window w_login.

9. Klik ganda sle_userid.

10. Klik ganda icon Properties (perhatikan Gambar 7.7).

11. Klik dropdown pada list sebelah kanan (perhatikan Gambar 7.7).

12. Klik kanan mouse properties string text, kemudian klik Copy.

13. Klik Close untuk menutup window Browser Obyek.

14. Tekan tombol Ctrl+V untuk mem-paste obyek.

PowerBuilder akan menyalin atau menyisipkan properti obyek w_login.sle_userid.text di belakang tanda sama dengan. Hilangkan teks w_login, nama obyek window tidak diperlukan krena skrip berada pada obyek aktif, yaitu sle_userid.

Page 19: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

172

Selain cara di atas, Anda juga dapat mengetikkan langsung properti obyek ini pada skrip.

15. Ketikkan skrip di bawah ini: if isnull(is_userid) or len(is_userid) = 0 then return

Skrip di atas digunakan untuk memeriksa apakah variabel ls_userid tidak berisi (null) atau panjang isi variabel ls_string sama dengan nol. Jika salah satu dari kondisi ini dipenuhi maka pemakai harus memasukkan ulang user id.

16. Ketikkan tiga baris skrip di bawah ini: if match ( is_userid , "^[A-Za-z0-9]+$" ) = false then messagebox("Perhatian","Ketikkan huruf atau angka !") end if

Skrip di atas digunakan untuk memeriksa apakah isi variabel ls_userid tidak sesuai (not matching) dengan A hingga Z, a hingga z, atau 0 hingga 9. Jika kondisi ini dipenuhi maka tampilkan pesan dan pemakai harus memasukkan user id kembali.

17. Klik icon Compile pada PowerBar2 atau pilih menu Edit | Compile.

PowerBuilder akan mengompilasi skrip yang telah Anda ketikkan. Jika tejadi error saat kompilasi berlangsung, window error akan terbuka di layar bagian bawah. Hal ini terjadi karena pengetikan skrip yang salah. Betulkan skrip yang salah ketik dan klik kembali icon Compile.

Skrip event modified sle_userid selengkapnya adalah seperti di bawah ini: //Mengambil string user id pada kontrol sle_userid is_userid = sle_userid.text if isnull(is_userid) or len(is_userid) = 0 then return if match ( is_userid , "^[A-Za-z0-9]+$" ) = false then messagebox("Perhatian","Ketikkan huruf atau angka !") end if

Page 20: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

173

Gambar 7.7 Window untuk menyisipkan properti obyek ke dalam skrip

Setelah Anda melakukan langkah-langkah di atas, ulangi untuk memberikan skrip kontrol sle_password. Skrip sle_password selengkapnya adalah sebagai berikut: //Mengambil string password pada kontrol sle_password is_password = sle_password.text if isnull(is_password) or len(is_password) = 0 then return if match ( is_password , "^[A-Za-z0-9]+$" ) = false then messagebox("Perhatian","Isi dengan huruf atau angka !") return end if cb_login.setfocus()

Skrip CommandButton Login

Skrip CommandButton login digunakan melakukan koneksi dengan database dan masuk ke dalam aplikasi. Untuk membuat skrip CommandButton login ikuti langkah-langkah di bawah ini:

1. Pastikan tampilan window login seperti pada pembuatan skrip kontrol SingleLineEdit, yaitu window login dalam keadaan aktif/terbuka. Jika window login tidak aktif, Anda harus terlebih dahulu membukanya.

2. Klik kanan mouse pada kontrol CommandButton cb_login untuk menampilkan menu pop-up.

3. Pilih menu Script dari menu pop-up.

4. Ketikkan skrip di bawah ini: // Profile SQLCA.DBMS = "MSS Microsoft SQL Server"

Page 21: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

174

SQLCA.Database = profilestring("gl.ini","DATABASE",& "Database","") SQLCA.ServerName = profilestring("gl.ini","DATABASE",& "ServerName","") SQLCA.LogId = is_userid SQLCA.LogPass = is_password SQLCA.AutoCommit = True gs_logo = rofilestring("gl.ini","COMPANY",& "logo","") gs_perusahaan = profilestring("gl.ini","COMPANY",& "name","") gs_motto = profilestring("gl.ini","COMPANY",& "motto","") connect using sqlca; if sqlca.sqlcode <> 0 then ii_looping++ MessageBox ("Koneksi Database Gagal", sqlca.sqlerrtext) if ii_looping = 3 then //Pemakai sudah tiga kali memasukkan user id dan //pasword yang salah Close ( parent ) return end if return end if Close ( parent ) open ( w_utama ) //Masuk ke dalam aplikasi dengan membuka window utama open ( w_utama )

Skrip CommandButton Batal

Skrip CommandButton batal digunakan untuk membatalkan login ke aplikasi atau menutup window login dan kemabali ke sistem operasi.

Untuk membuat skrip CommandButton Batal, ikuti langkah-langkah di bawah ini:

1. Pastikan tampilan window login seperti pada pembuatan skrip kontrol cb_login.

2. Klik kanan mouse pada kontrol cb_batal untuk menampilkan menu pop-up.

3. Pilih menu Script dari menu pop-up.

Page 22: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

175

4. Ketikkan satu baris skrip di bawah ini untuk menutup window login. Halt

5. Klik icon Save untuk menyimpan perubahan.

Skrip Event Open window login

Skrip event Open pada window login fungsinya untuk menempatkan posisi window di tengah-tengah layar dan memutuskan koneksi database jika ada database yang aktif.

Untuk membuat skrip event Open window login, ikuti langkah-langkah di bawah ini:

1. Pastikan tampilan window login seperti pada pembuatan skrip kontrol CommandButton Login.

2. Klik tab Layout.

3. Klik kanan mouse pada area window untuk menampilkan menu pop-up.

4. Pilih menu Script dari menu pop-up.

5. Klik dropdown event dan pilih Open.

6. Ketikkan satu baris skrip di bawah ini untuk menutup window login. f_center_w( this ) disconnect ;

Penjelasan Perintah dan Fungsi

Berikut ini adalah penjelasan penggunaan fungsi pada skrip window login.

Isnull()

Sintaks: Isnull(exp)

Keterangan:

Exp adalah sebuah ekpresi dapat berupa variabel atau nilai.

Page 23: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

176

Len()

Sintaks: Len(exp)

Keterangan:

Exp adalah sebuah ekpresi string atau blob yang ingin Anda ketahui panjangnya.

Match()

Sintaks: Match(string1, string2)

Keterangan:

string1 adalah string yang akan diperiksa

string2 adalah string pembanding atau string1 sah bila merupakan bagian dari string2.

MessageBox()

Sintaks: MessageBox ( judul, teks {, icon {, button {, default } } } )

Keterangan:

judul adalah string judul (title) kotak pesan.

teks adalah string pesan yang akan ditampilkan.

icon adalah sebuah icon berupa nilai dengan tipe data enumerated yang ingin Anda tampilankan di sisi kiri kotak pesan. Adapun nilai yang dapat Anda isi yaitu:

Information! (default, tanda huruf i)

StopSign! (tanda silang X)

Exclamation! (tanda seru !)

Question! (Tanda tanya ?)

None! (tanpa tanda)

Page 24: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

177

button adalah sebuah tombol (CommandButton) berupa nilai dengan tipe data enumerated. Nilai yang dapat Anda isi yaitu:

OK! (Default): tombol OK

OKCancel!: tombol OK dan Cancel

YesNo!: tombol Yes dan No

YesNoCancel!: tombol Yes, No, dan Cancel

RetryCancel!: tombol Retry dan Cancel

AbortRetryIgnore!: tombol Abort, Retry, dan Ignore

default adalah nomor urut tombol yang ingin diset sebagai tombol aktif. Nilai default dari PowerBuilder adalah 1. Sebagai contoh, Anda ingin menampilkan pesan dengan tiga buah tombol ketika pemakai menutup sheet di mana pemakai telah melakukan perubahan data tetapi lupa meyimpannya, maka Anda dapat menampilkan pesan Sudah terjadi perubahan data, simpan?, dengan tiga buah pilihan, yaitu Yes, No, atau Cancel. Anda dapat memberikan nilai default 1, 2, atau 3. Nilai satu adalah untuk Yes, 2 untuk No, dan 3 untuk Cancel.

Jika fungsi ini berhasil dilaksanakan maka fungsi ini akan mengembalikan nilai integer (1, 2, atau 3) dari pemilihan tombol dan –1 jika terjadi error. Jika ada argumen bernilai null, MessageBox() akan mengembalikan NULL.

Contoh lain: MessageBox("Close Window", "Sudah terjadi perubahan data, simpan?",& Question!,YesNoCancel!,3)

TriggerEvent

Sintaks: objectname.TriggerEvent ( event {, word, long} )

Keterangan:

objectname adalah nama obyek atau kontrol yang mempunyai kejadian (event).

event adalah nilai dari kejadian yang berupa data enumerated misalnya Clicked!, Modified!, or DoubleClicked!, Close!, dan sebagainya.

Page 25: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

178

Anda dapat juga memberikan nama user event. Mengenai hal ini akan dibahas pada bagian window sheet.

word dan long adalah tipe data yang ingin diambil dalam WordParm dan LongParm obyek Message.

T I P

User Id dan Password yang disimpan dalam tabel adalah data biasa yang bisa dibaca secara langsung saat tabel ditampilkan dengan edit data. Agar data ini tidak dapat dibaca oleh orang yang tidak berkepentingan dan hanya bisa dibaca oleh program, Anda dapat menggunakan teknik enkripsi.

7.4 Window Utama Tipe window yang digunakan untuk window utama adalah tipe window MDI Frame atau MDI Frame with Microhelp. Pada tipe window ini Anda dapat membuka sheet lebih dari satu sheet sekaligus.

7.4.1 Pembuatan Window Utama

Pada prinsipnya cara pembuatan window utama sama dengan pembuatan window login, hanya saja terdapat pebedaan tipe window, yaitu pada window login menggunakan tipe Response dan pada window utama menggunakan tipe MDI Frame with Microlhelp.

Cara pembuatan window utama adalah sebagai berikut:

1. Klik icon New pada PowerBar.

2. Klik tab PB Object.

3. Klik Window.

4. Klik tab General pada tab properties.

5. Ketikkan SIA-GL Versi 9.01 - Sistem Informasi Akuntansi - General Ledger dalam kotak title.

Page 26: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

179

6. Pilih mdihelp! dalam dropdown Window Type.

7. Ketikkan m_aplikasi pada MenuName atau klik tombol select (…) MenuName untuk mecari menu aplikasi di mana disimpan.

8. Klik dropdown WindowState dan pilih maximized!

9. Klik dropdown Icon dan pilih AppIcon!

10. Klik icon Save atau pilih menu File | Save As atau Save.

Klik nama file pustaka mylibrary.pbl dalam listbox Aplication Libraries tempat penyimanan window utama.

Ketikkan nama window w_utama dalam kotak isian Windows.

Klik OK.

11. Klik icon Close untuk menutup painter window.

7.4.2 Skrip Window Utama

Pada awal dijalankannya aplikasi, skrip window login memanggil window utama. Sebelum window utama dibuka pemakai, aplikasi mengharuskan pemakai untuk mengetikkan user id dan password pada window login. Aplikasi tidak dapat dilanjutkan sebelum pemakai memberikan respons dengan mengetikkan user id dan password sesuai dengan user id dan password yang sah.

Untuk mengetikkan skrip ini, ikuti langkah-langkah di bawah ini:

1. Kilik icon Open.

2. Pilih Windows dalam dropdown Objects of Type.

3. Klik nama file pustaka mylibrary.pbl.

4. Klik w_utama, kemudian klik OK.

5. Klik tab Layout.

6. Klik kanan mouse pada area obyek window dan pilih Script .

7. Klik dropdown Select event dan pilih Closequery(), kemudian ketikkan skrip di bawah ini: if messageBox("Keluar",& "Anda ingin keluar?",question!,yesno!,1) = 2 then return 1 //kembali ke window utama

Page 27: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

180

end if return 0 //laksanakan event Close()

8. Kilik dropdown Select Event dan pilih Close().

9. Ketikkan satu baris skrip di bawah ini: disconnect using sqlca ;

Sebelum window ditutup putuskan hubungan database terlebih dahulu.

7.4.3 Skrip Aplikasi

Pada awal dijalankannya aplikasi, skrip aplikasi memanggil window pembuka. Untuk mengetikkan skrip aplikasi, lakukan langkah-langkah berikut:

1. Kilik icon Open.

2. Pilih Application dalam dropdown Objects of Type.

3. Klik nama file pustaka gl.pbl.

4. Klik gl kemudian klik OK.

5. Klik dropdown Select event dan pilih Open().

6. Ketikkan satu baris skrip di bawah ini: open( w_aplikasi ) // buka window w_aplikasi

7.4.4 Menjalankan Aplikasi

Setelah Anda mengerjakan beberapa pekerjaan di atas, sekarang Anda siap untuk menjalankan aplikasi tersebut dengan langkah-langkah sebagai berikut:

1. Klik icon tombol Run pada PowerBar.

2. Klik Yes. Pertanyaan ini muncul bila ada perubahan yang belum disimpan.

3. Ketikkan sa pada User Id dan tekan tombol Enter.

Ketika pemakai menekan tombol Enter, fokus beralih ke tombol Login dan kejadian clicked dilaksanakan karena tombol Login bernilai default. Jika pada database yang digunakan terdapat

Page 28: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

181

password, Anda dapat mengklik kotak isian Password untuk mengetikkan password, kemudian mengklik tombol Login.

7.5 Window Sheet Window sheet adalah window yang bertipe main dan digunakan sebagai lembaran kerja, baik untuk menampilkan data (view) atau memasukkan data (edit). Pekerjaan yang sering dilakukan pada window sheet adalah menambah data baru, mengubah data, atau menghapus data yang sudah ada. Perkerjaan ini termasuk pekerjaan manipulasi database. Sebagian pekerjaan ini akan dilakukan oleh DataWindow yang akan dibahas pada Bab 8. Sebelum DataWindow melakukan pekerjaan ini, harus ada persiapan-persiapan agar data yang dimanipulasi tersebut tidak salah, misalnya melakukan pengaturan menu-menu sheet, event, serta pembuatan skripnya.

7.5.1 Pembuatan Window

Secara garis besar, window sheet terdiri dari 3 (tiga) bagian seperti ditujukan Gambar 6.9, yaitu bagian pertama (atas) adalah bar tempat logo perusahaan dan kotak isian untuk mencari data; bagian kedua (sebelah kiri) adalah menu tree yang berisi jenis-jenis pekerjaan (input data) dalam sheet; dan bagian ketiga adalah jendela untuk menampilkan (view) data.

Jendela dibagi menjadi dua bagian seperti yang ditunjukkan Gambar 7.9. Bagian atas adalah jendela untuk menampilkan master dan jendela bagian bawah berfungsi untuk menampilkan detail.

Untuk membuat window sheet, ikuti langkah-langkah di bawah ini.

1. Lakukan langkah-langkah seperti membuat window-window sebelumnya.

2. Berikan tipe window Main.

3. Klik tombol select (…) MenuName untuk memilih menu Sheet.

Klik menu m_sheet.

Menu m_sheet adalah menu yang telah Anda buat seblumnya. Jika menu ini tidak ditemukan pada file pustaka

Page 29: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

182

yang dipilih, klik file pustaka yang lain di mana menu ini disimpan.

Klik OK.

4. Klik tab Other, berikan ukuran width 1403 dan height 772.

5. Klik icon Save atau pilih menu File | Save atau Save As.

6. Ketikkan nama (obyek) window w_sheet.

7. Klik nama file pustaka tempat penyimpanan window ini, yaitu mylibrary.pbl.

8. Klik OK.

Pembuatan Bar Sheet

Bar sheet digunakan sebagai bantalan untuk menempatkan kontrol gambar (logo perusahaan), kontrol teks statis cari data, dan kontrol DataWindow cari. Untuk membuat bar sheet, ikuti langkah-langkah di bawah ini:

1. Klik icon Picture dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Pircture control.

2. Klik area di atas bagian pojok kiri atas, maka akan terbentuk kontrol gambar dengan nama p_1.

3. Klik kontrol gambar p_1:

Klik tab General.

Ganti nama kontrol gambar p_1 menjadi p_bar.

Klik tombol select (…) PictureName.

Pilih file gambar barputih.bmp.

4. Posisi dan ukuran bar:

Klik tab Other.

Ketikkan 0 (nol) pada kotak isian X dan Y.

Ketikkan 1362 pada kotak isian Width.

Ketikkan 156 pada kotak isian Height.

5. Kontrol gambar logo perusahaan:

Page 30: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

183

Klik kontrol p_bar.

Klik icon Picture dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Picture control.

Klik area di atas pojok kiri atas kontrol gambar p_bar (bertumpuk dengan kontrol p_bar), maka akan terbentuk kontrol p_1.

Ganti nama kontrol gambar p_1 menjadi p_logo.

Klik tombol select (…) PictureName, kemudian pilih file gambar logo perusahaan. Sebagai contoh, penulis menggunakan file gambar power-it.jpg.

Atur ukuran tampilan gambar logo.

6. Kontrol teks statis Cari data:

Klik tab kontrol p_bar.

Klik icon Static Text dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Static Text control.

Klik area di sebelah kanan kontrol p_logo, maka akan terbentuk kontrol st_1.

Ganti nama kontrol st_1 menjadi st_cari.

Ganti teks None dalam kotak isian Text menjadi &Cari data:.

Atur posisi kontrol.

7. Kontrol DataWindow cari:

Klik tab kontrol p_bar.

Klik icon DataWindow dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create DataWindow control.

Klik area di sebelah kanan kontrol st_cari, maka akan terbentuk kontrol dw_1.

Ganti nama kontrol dw_1 menjadi dw_cari.

Atur posisi kontrol.

Page 31: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

184

Pembuatan Kontrol TreeView

Kontrol TreeView digunakan untuk menampilkan menu tree, yaitu menu yang berisi jenis-jenis pekerjaan (input data) dalam sheet. Langkah-langkah untuk membuat kontrol treeview adalah sebagai berikut:

1. Klik icon TreeView dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create TreeView control.

2. Klik area di bawah kontrol p_bar, maka akan terbentuk kontrol tv_1.

3. Ganti nama kontrol tv_1 menjadi t_sheet.

4. Klik tab Pictures, klik dropdown picture, dan pilih Tables!.

5. Atur ukuran dan posisi kontrol.

Pembuatan Kontrol DataWindow Master

Kontrol DataWindow master digunakan untuk menghubungkan sheet (window) dengan obyek DataWindow master. Langkah-langkah untuk membuat kontrol DataWindow master adalah sebagai berikut:

1. Klik icon DataWindow dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol yang ada, kemudian klik icon Create DataWindow control.

2. Klik area di bawah kontrol p_logo dan sejajar dengan kontrol tv_sheet, maka akan terbentuk kontrol dw_1.

3. Ganti nama kontrol dw_1 menjadi dw_master.

4. Berikan tanda centang pada kotak cek HScrollBar dan VScrollBar.

5. Atur ukuran dan posisi kontrol.

Pembuatan Kontrol DataWindow Detail

Kontrol DataWindow detail digunakan untuk menghubungkan sheet (window) dengan obyek DataWindow detail. Langkah-langkah untuk membuat kontrol DataWindow master adalah sebagai berikut:

1. Klik icon DataWindow dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create DataWindow control.

Page 32: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

185

2. Klik area di bawah kontrol dw_master, maka akan terbentuk kontrol dw_1.

3. Ganti nama kontrol dw_1 menjadi dw_detail.

4. Berikan tanda centang pada kotak cek HScrollBar dan VScrollBar.

5. Atur ukuran dan posisi kontrol.

Pembuatan Batas Pemisah

Batas pemisah adalah untuk pemisah antara jendela-jendela dalam sheet. Batas pemisah ini ada dua buah, yang pertama (vertikal) digunakan untuk melebarkan/mengecilkan jendela menu tree dan jendela data ke kanan/ke kiri dan yang kedua digunakan untuk melebarkan jendela master dan mengecilkan jendela detail atau mengecilkan jendela master dan melebarkan jendela detail ke atas/bawah. Anda dapat melihat contoh batas pemisah ini dalam window w_tv_dw_link pada Examples PowerBuilder. Untuk membuat batas pemisah, ikuti langkah-langkah di bawah ini:

1. Pembatas vertikal:

Klik icon Static Text.

Klik area antara kontrol tv_sheet dan dw_master, maka akan terbentuk kontrol st_1.

Ganti nama kontrol st_1 menjadi st_vertical.

Klik dropdown Pointer dan pilih SizeNS!.

Klik kanan mouse pada kontrol st_vertical untuk menampilkan menu pop-up.

Klik dropdown event, pilih event mousedown, kemudian ketikkan satu baris skrip di bawah ini: BackColor = 0

Skrip pada event mousedown ini akan dijalankan ketika pointer mouse berada pada kontrol st_vertikal.

Klik dropdown event, pilih event mousemove, kemudian ketikkan satu bari skrip di bawah ini: //Check for move in progess If KeyDown(keyLeftButton!) Then This.x = Parent.Pointerx()

Page 33: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

186

End If

2. Pembatas horisontal:

Klik icon Static Text.

Klik area antara kontrol dw_master dan dw_detail, maka akan terbentuk kontrol st_1.

Ganti nama kontrol st_1 menjadi st_horizontal.

Klik dropdown Pointer dan pilih SizeNS!

Klik kanan mouse pada kontrol st_horizontal untuk menampilkan menu pop-up.

Klik dropdown event, pilih event mousedown, kemudian ketikkan satu baris skrip di bawah ini: BackColor = 0

Skrip pada event mousedown ini akan dijalankan ketika pointer mouse berada pada kontrol st_horizontal.

Klik dropdown event, pilih event mousemove, kemudian ketikkan satu baris skrip di bawah ini: //Check for move in progess If KeyDown(keyLeftButton!) Then BackColor = 0 y = Parent.PointerY() End If

p_logo tv_menu st_cari dw_cari dw_master dw_detil

st_vertikal st_horizontal

Gambar 7.8 Layout window sheet

Page 34: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

187

7.5.2 Pendeklarasian Variabel Instance

Ada beberapa variabel instance yang dibutuhkan window sheet seperti diperlihatkan dalam Tabel 7.1.

Tabel 7.1 Variabel Instance Window Sheet

Nama Variabel Tipe Keterangan

idw_aktif datawindow dw_master atau dw_detail

ii_keymaster integer No kolom primary key master

ii_keyDetail integer No kolom primary key detail

is_kolMaster string Nama kolom primary key master

is_keyMaster string Isi kolom primary key detail

is_dw_master string Nama obyek DataWindow master

is_dw_detail string Nama obyek DataWindow detail

is_dwo_rpt string Nama obyek DataWindow preview

is_wEdit string Nama obyek window edit

is_judul string Teks title window sheet

ii_newWidth integer Lebar kontrol DataWindow terakhir

ii_newHeight integer Tinggi kontrol DataWindow terakhir

ii_TebalBar integer Tebal bar

ii_windowborder integer Ukuran border

il_hiddencolor long Warna background sheet

Untuk menmdeklarasikan variabel instance di atas, klik tab Declare InstanceVariable pada window sheet, kemudian ketikkan skrip di bawah ini: datawindow idw_aktif integer ii_keymaster, ii_keyDetail string is_kolMaster,is_keyMaster string is_dw_master,is_dw_detail,is_dwo_rpt

Page 35: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

188

string is_wEdit,is_judul integer ii_newWidth,ii_newHeight long il_hiddencolor = 0 integer ii_TebalBar = 11 integer ii_windowborder = 15

7.5.3 Pembuatan User Event

Jika pemakai melakukan sesuatu, misalnya mengklik icon Maju, Mundur, Baru dan sebagainya pada window sheet, apa yang terjadi pada program? Program akan merespons kejadian yang dilakukan oleh pemakai. PowerBuilder sendiri tidak menyediakan event untuk melakukan pekerjaan seperti menu sheet yang telah Anda buat di atas. PowerBuilder memberi kesempatan kepada programmer PowerBuilder untuk membuat user event.

Event-event yang harus dibuat sesuai dengan menu Sheet adalah sebagai berikut:

Panggil—kejadian untuk memanggil data.

Simpan—kejadian untuk menyimpan data.

Preview—kejadian untuk menampilkan data dalam bentuk preview.

Baru—kejadian untuk menambah data.

Hapus—kejadian untuk menghapus data.

Ubah—kejadian untuk mengubah (edit) data.

Awal—kejadian untuk memindahkan baris (record) ke awal baris.

Mundur—kejadian untuk memindahkan baris ke baris sebelumnya.

Maju—kejadian untuk memindahkan baris ke baris berikutnya.

Akhir—kejadian untuk memindah baris ke akhir baris.

Tutup—kejadian untuk menutup sheet.

Untuk membuat user event ikuti langkah-langkah di bawah ini:

1. Klik kanan mouse pada area window dan pastikan Anda tidak mengklik kontrol obyek, kemudian pilih Script.

Untuk memastikan bahwa Anda adalah mengklik area window bukan kontrol obyek, lihat status line yang menampilkan Nothing Selected.

Page 36: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

189

2. Klik dropdown Event dan pilih New Event. Default event yang tampil adalah event Open.

3. Ketikkan ue_panggil pada Event Name.

4. Ulangi langkah (2), lalu ketikkan ue_simpan pada Event Name.

5. Ulangi langkah (2), lalu ketikkan ue_preview pada Event Name.

6. Ulangi langkah (2), lalu ketikkan ue_baru pada Event Name.

7. Ulangi langkah (2), lalu ketikkan ue_hapus pada Event Name.

8. Ulangi langkah (2), lalu ketikkan ue_ubah pada Event Name.

9. Ulangi langkah (2), lalu ketikkan ue_awal pada Event Name.

10. Ulangi langkah (2), lalu ketikkan ue_mundur pada Event Name.

11. Ulangi langkah (2), lalu ketikkan ue_maju pada Event Name.

12. Ulangi langkah (2), lalu ketikkan ue_akhir pada Event Name.

13. Ulangi langkah (2), lalu ketikkan ue_tutup pada Event Name.

Gambar 7.9 Pendefinisian User Event

7.5.4 Pembuatan Fungsi Window

Fungsi window yang diperlukan di sini adalah fungsi window untuk menggerakkan batas pemisah vertikal dan horisontal pada sheet seperti yang telah disinggung pada bagian pembuatan batas pemisah

Page 37: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

190

di atas, yaitu fungsi wf_refreshbars, wf_resizebars, dan wf_resizepanels. Anda dapat melihat contoh ketiga fungsi ini dalam window w_tv_dw_link pada Examples PowerBuilder. Skrip pada fungsi ini telah penulis modifikasi dan disesuai dengan kebutuhan window sheet. Untuk membuat ketiga fungsi ini, langkah-langkahnya adalah sebagai berikut:

1. Klik obyek window w_sheet.

2. Klik tab Function List .

3. Fungsi wf_refreshbars:

Klik kanan mouse pada Function List, kemudian pilih Add.

Ketikkan nama fungsi wf_refreshbars pada Function Name.

Ketikkan skrip di bawah ini: Integer li_Cnt //Force appropriate order st_vertical.SetPosition(ToTop!) st_horizontal.SetPosition(ToTop!) //Make sure the Width is not lost st_vertical.Width = ii_TebalBar st_horizontal.Height= ii_TebalBar Return 1

4. Fungsi wf_resizebars:

Klik dropdown Function List dan pilih (New Function).

Ketikkan nama fungsi wf_ resizebars pada Function Name.

Ketikkan skrip di bawah ini: //Resize Bars according to Bars themselves,WindowBorder, //and BarThickness st_vertical.Move(st_vertical.X, 148) st_vertical.Resize(ii_TebalBar, 5 + This.WorkSpaceHeight() - (2 * ii_WindowBorder)) integer li_HX, li_HW li_HX = st_vertical.X + ii_TebalBar li_HW = This.WorkSpaceWidth() - li_HX //- ii_WindowBorder st_horizontal.Move(li_HX, st_horizontal.y ) st_horizontal.Resize(li_HW, ii_TebalBar) wf_RefreshBars()

Page 38: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

191

Return 1

5. Fungsi wf_ resizepanels:

Klik dropdown Function List dan pilih (New Function).

Ketikkan nama fungsi wf_ resizepanels pada Function Name.

Ketikkan skrip di bawah ini: //Resize the panels according to the Lines, //BarThickness, and WindowBorder. Integer li_X, li_Y, li_HHeight, li_HWidth // Left vertical object processing tv_sheet.Resize (st_vertical.X - tv_sheet.X , ii_newHeight ) // Horizontal object processing li_X = st_vertical.X + ii_windowborder li_Y = (p_bar.y + p_bar.height) dw_master.Move (li_X, li_Y ) dw_master.Resize ( ii_newWidth - tv_sheet.width , st_horizontal.y - li_Y ) li_Y = st_horizontal.y + 15 dw_detail.Move (li_X, li_Y ) dw_detail.Resize ( ii_newWidth - tv_sheet.width , tv_sheet.height - ( st_horizontal.Y + st_horizontal.height ) ) Return 1

6. Klik icon Save untuk menyimpan fungsi.

7. Skrip event mouseup:

Klik kanan mouse pada kontrol st_vertikal, pilih menu Script, klik dropdown event dan pilih event mouseup, kemudian ketikkan skrip bawah ini: //Hide the bar This.BackColor = il_HiddenColor //Resize Bars wf_ResizeBars() //Resize the panels wf_ResizePanels()

Page 39: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

192

Klik kanan mouse pada kontrol st_horizontal, pilih menu Script, klik dropdown event dan pilih event mouseup, kemudian ketikkan skrip bawah ini: //Hide the bar This.BackColor = il_HiddenColor //Resize Bars wf_ResizeBars() //Resize the panels wf_ResizePanels()

8. Klik icon Save untuk menyimpan perubahan skrip.

7.5.5 Tombol Default Sheet

Pada bagian menu sheet yang telah dibahas sebelumnya, terdapat menu untuk menggerakkan baris data pada sheet seperti Awal (Ctrl+H, bergerak ke baris pertama), Mundur (Ctrl+N, bergerak ke baris sebelumnya), Maju (Ctrl+J, bergerak ke baris berikutnya), dan Akhir (bergerak ke baris akhir).

Selain menu di atas, pada sheet (termasuk window preview laporan) juga berlaku penekanan tombol (tombol default) untuk menggerakkan baris data, yaitu anak panah atas/bawah—maju/mundur baris Ctrl+Home—ke baris pertama, PageUp—mundur 1 halaman, PgDn—maju 1 halaman dan Ctrl+End—ke baris akhir.

7.5.6 Skrip Window

Banyak sekali kejadian-kejadian yang terjadi pada sheet, mulai dari kejadian sheet dibuka (open) sampai dengan sheet ditutup (Close). Semua kejadian ini dapat digunakan untuk melakukan sesuatu terhadap window tersebut.

Membuka Sheet

Sebelum Anda dapat memasukkan data atau menampilkan data pada sheet, Anda harus terlebih dahulu membuka sheet tersebut. Untuk membuka sheet, gunakan fungsi Opensheet().

Sintaks: OpenSheet(namasheet {, tipewindow }, mdiframe {, posisi {, susunan } } )

Page 40: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

193

Keterangan:

namasheet adalah nama sheet yang akan dibuka.

tipewindow adalah string obyek window yang harus sama dengan nama sheet. Tipewindow ini boleh diisi atau boleh dilewatkan.

mdiframe adalah nama window yang dapat menampung beberapa window sekaligus (MDI-Multi Document Interface) yang merupakan induk (parent) dari window sheet. Anda boleh langsung mengetikkan nama window MDI ini, yaitu w_utama, atau cukup mengetikkan parentwindow.

Posisi adalah nomor item menu window input di mana nama window ini dimasukkan ke menu tersebut. Pada menu m_utama hanya disediakan 4 (empat) item menu, yaitu File (1), Informasi (2), Window (3), dan Tentang (4). Dengan demikian Anda hanya dapat memberikan 0, 1, 2, 3, atau 4. Nomor item menu 0 (nol) sama dengan 4 (empat). Pada contoh di atas, diberikan angka 0 yang artinya item menu pull-down (Window) akan ditambah dengan nama-nama sheet yang sedang dibuka. Anda dapat berpindah dari satu sheet ke sheet yang lain dengan mengklik nama sheet yang ada pada menu Window tersebut.

susunan adalah bentuk susunan tampilan window input bilamana dibuka lebih dari satu window. Argumen ini dapat diisi dengan nilai data bertipe enumerated, yaitu:

Cascaded! (Default), yaitu window yang tidak aktif relatif berada di belakang window aktif.

Layered!, yaitu tampilan window input yang dibuka berlapis-lapis ke belakang window aktif.

Original!, yaitu tampilan window input sesuai dengan tampilan aslinya dan juga Cascade.

Sheet dibuka melalui menu utama dengan memberikan skrip. Untuk mengetikkan skrip ini, caranya adalah sebagai berikut:

Page 41: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

194

1. Klik tanda + pada nama file mylibrary.pbl

2. Klik ganda m_utama.

3. Klik tanda + pada &File.

4. Klik Data.

PowerBuilder secara otomatis akan membuka layar editor untuk mengetikkan skrip event clicked. Apabila event yang terbuka bukan event clicked, Anda dapat mengklik dropdown event kemudian memilih event clicked. Ketikkan skrip di bawah ini: opensheet(w_sheet,parentwindow,0,Layered!)

Menutup Sheet

Setelah selesai bekerja, sebaiknya sheet harus ditutup kembali. Untuk menutup sheet, gunakan fungsi Close() yang dilaksanakan oleh fungsi triggerevent() melalui menu sheet.

Sintaks: Close (namawindow)

Keterangan:

namawindow adalah nama window sebagai sheet yang dibuka dengan fungsi Opensheet ().

TriggerEvent

Sintaks: namaObyek.TriggerEvent ( event {, word, long } )

Keterangan:

namaObyek adalah nama obyek atau kontrol yang mempunyai event dan terhubung dengan namaObyek ini.

event adalah nama event yang akan dilaksanakan serta berupa data enumerated seperti Close!, Clicked!, dan sebagainya. Event ini juga boleh berupa string dari nama user event.

word adalah sebuah nilai yang disimpan dalam properti WordParm obyek Message.

Page 42: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

195

long adalah sebuah nilai yang disimpan dalam properti LongParm obyek Message.

Sheet ditutup melalui menu sheet. Untuk mengetikkan skrip ini, ikuti langkah-langkah di bawah ini:

1. Buka menu m_sheet.

2. Klik kanan mouse pada item menu Tutup untuk menampilkan menu pop-up, pilih Script, kemudian ketikkan skrip berikut ini: Close(parentwindow)

Event Resize

Sebelum window sheet ditampilkan, event ini pertama kali akan dijalankan secara otomatis untuk mengubah tampilan window sheet yang mengikuti resolusi monitor. Berikut ini penjelasan beberapa pernyataan baru yang digunakan pada skrip event resize.

Saat event resize pertama kali dijalankan, Anda harus menyimpan resolusi monitor ke variabel instance ii_newWidth dan ii_newHeight untuk keperluan perubahan besar jendela-jendela dalam sheet. Untuk mengetahui apakah event resize pertama kali dibuka atau tidak, periksalah nilai variabel ii_newWidth atau ii_newHeight. Nilai 0 pada variabel ini menandakan event resize pertama kali dijalankan.

Pekerjaan selanjutnya adalah menentukan lebar tampilan masing-masing kontrol. Lebar tampilan window sheet adalah 100% sama dengan nilai newWidth, yaitu lebar kontrol DataWindow dalam satuan pixel yang telah disesuaikan secara otomatis dengan resolusi tampilan monitor. Lebar ini dibagi tiga, yaitu untuk jendela menu tree, batas pemisah jendela menu tree dengan jendela DataWindow (vertikal), dan jendela DataWindow. Prosentase masing-masing tampilan ini adalah 13% dari nilai newWidth untuk jendela menu tree, 15 pixel untuk batas pemisah vertikal, dan ( 83% * newWidth ) - 15 pixel untuk jendela DataWindow. Lebar bar sheet adalah sama dengan lebar window sheet.

Tinggi tampilan jendela menu tree adalah tinggi kontrol DataWindow - (titik sumbu y kontrol p_bar + tinggi kontrol p_bar).

Titik koordinat kontrol dw_master adalah titik sumbu x berada pada titik sumbu x menu tree ditambah dengan lebar menu tree dan ditambah 15 pixel (lebar batas pemisah); sedangkan titik sumbu y

Page 43: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

196

berada pada titik sumbu y kontrol p_bar ditambah dengan tinggi kontrol p_bar.

Besar tampilan kontrol dw_master akan berubah jika obyek kontrol dw_detail kosong (tanpa detail). Perubahan ini dapat dilakukan dengan memeriksa obyek kontrol dw_detail. Jika kontrol dw_detail berisi obyek DataWindow detail dan tinggi obyek DataWindow master lebih dari 30% dari nilai newHeight, ubah tinggi kontrol dw_master menjadi 30% dari nilai newHeight, 15 pixel untuk batas pemisah horisontal, dan 70% dari nilai newHeight dikurangi 15 pixel untuk tinggi kontrol dw_detail. Titik sumbu x kontrol dw_detail berada pada titik sumbu y kontrol dw_master ditambah dengan tinggi kontrol dw_master ditambah 15 pixel. Tinggi kontrol dw_detail adalah sama dengan nilai newHeight dikurangi nilai titik sumbu y kontrol ini. Sebaliknya, jika obyek DataWindow detail tidak ada maka tinggi kontrol dw_master sama dengan tinggi menu tree dan tinggi kontrol dw_detail sama dengan nol (jendela detail tidak tampil).

Tampilan selanjutnya adalah tampilan kontrol st_cari dan dw_cari. Kontrol st_cari ditampilkan sejajar dengan titik sumbu x menu tree dan lebarnya juga sama dengan lebar menu tree, sedangkan kontrol dw_cari ditampilkan sejajar dengan titik sumbu x kontrol dw_master dan lebarnya juga sama dengan lebar kontrol dw_master.

Terakhir ubah tampilan batas pemisah, yaitu pertama dengan memindahkan kontrol st_vertikal ke titik sumbu x pada titik sumbu x menu tree ditambah dengan lebar menu tree dan titik sumbu y pada titik 148. Kedua, dengan memindahkan kontrol st_horizontal ke titik sumbu x pada titik sumbu x menu tree ditambah dengan lebar menu tree dan titik sumbu y pada titik sumbu y kontrol dw_master ditambah dengan tinggi kontrol dw_master. Ketiga, ubah ukuran kontrol st_ horizontal dengan lebar sama dengan kontrol dw_master dan tinggi sama dengan ii_TebalBar, yaitu 15 pixel.

Selengkapnya, skrip event resize adalah sebagai berikut: string ls_dw_master_tinggi //Default tampilan if ii_newWidth = 0 then ii_newWidth = newWidth ii_newHeight= newHeight end if p_bar.width = ii_newWidth

Page 44: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

197

tv_sheet.x = 0 tv_sheet.width = ii_newWidth * 0.17 tv_sheet.height = ii_newHeight - (p_bar.y + p_bar.height ) dw_master.x = tv_sheet.x + tv_sheet.width + 15 dw_master.y = (p_bar.y + p_bar.height) dw_master.width = ( ii_newWidth * 0.83 ) - 15 ls_dw_master_tinggi= dw_master.Describe(& "DataWindow.Detail.Height") dw_detail.x = dw_master.x dw_detail.width = dw_master.width if is_dw_detail <> '' then if integer(ls_dw_master_tinggi)>ii_newHeight * 0.30 or & ls_dw_master_tinggi = '' then dw_master.height = ii_newHeight * 0.30 end if dw_detail.y = (dw_master.y + dw_master.height) + 15 dw_detail.height = ii_newHeight - dw_detail.y else dw_master.height = tv_sheet.height dw_detail.y = (dw_master.y + dw_master.height) + 15 dw_detail.height = 0 end if st_cari.x = tv_sheet.x st_cari.width = tv_sheet.width dw_cari.x = dw_master.x dw_cari.width = dw_master.width // Set the color of the bars to make them invisible st_vertical.Move(tv_sheet.x + tv_sheet.width, 148 ) st_horizontal.Move(tv_sheet.x + tv_sheet.width , dw_master.y + dw_master.Height ) st_horizontal.Resize(dw_master.width, ii_TebalBar)

Event Open

Event ini dijalankan secara otomatis setelah event resize. Banyak yang dapat Anda lakukan saat event ini dijalankan, di antaranya menampilkan menu tree dan mengubah tampilan batas pemisah. Berikut ini penjelasan beberapa pernyataan baru yang digunakan pada skrip event Open.

Page 45: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

198

Menampilkan Menu Tree

Menu tree ditampilan dengan menambah item kontrol tv_sheet dengan fungsi InsertItemFirst.

Sintaks: kontrolTv.InsertItemFirst ( handleparent, label, indeksGambar)

Keterangan:

kontrolTv adalah nama kontrol treeview seperti tv_sheet.

InsertItemFirst adalah fungsi yang digunakan untuk menambah item treeview.

handleparent adalah handle induk (parent) dari item tree. Nilai 0 (nol) adalah untuk level pertama.

label adalah label (teks) yang akan ditampilkan pada treeview, yaitu Tabel Referensi dan Transaksi adalah level pertama; Kelompok, Subkelompok dan Perkiraan adalah level kedua dari Tabel Referensi, serta Jurnal dan Tutup Buku adalah level kedua dari Transaksi.

indeksGambar adalah nomor urut gambar yang telah diisi pada tab Pictures.

Berikut ini adalah skrip untuk menampilkan menu tree yang ditempatkan pada event open. long ll_level1 ll_level1 = tv_sheet.InsertItemFirst(0,"Tabel Referensi",1) tv_sheet.InsertItemFirst(ll_level1,"1.Kelompok",2) tv_sheet.InsertItemFirst(ll_level1,"2.Subkelompok",2) tv_sheet.InsertItemFirst(ll_level1,"3.Perkiraan",2) ll_level1 = tv_sheet.InsertItemFirst(0,"Transaksi",1) tv_sheet.InsertItemFirst(ll_level1,"Jurnal",2) tv_sheet.InsertItemFirst(ll_level1,"Tutup Buku",2)

Mengubah Tampilan Batas Pemisah

Cara mengubah tampilan batas pemisah adalah dengan mengetikkan skrip di bawah ini: // Set warna batas pemisah sesuai dengan warna bacground // window sheet agar tidak kelihatan (invisible) il_HiddenColor = BackColor //warna bacground window sheet st_Vertical.BackColor = il_HiddenColor

Page 46: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

199

st_horizontal.BackColor = il_HiddenColor //Ubah ukuran batas pemisah proporsional dgn tampilan sheet wf_ResizeBars() //Ubah ukuran jendela proporsional dengan tampilan sheet wf_ResizePanels()

Kotak Isian Cari Data

Agar pemakai dapat mengetikkan data yang akan dicari, Anda harus menyediakan 1 (satu) baris kosong sebagai kotak isian mengetikan untuk menggetikkan skrip di bawah ini: //Hubungkan kontrol dw_cari ke database dan baris kosong dw_cari.setTransObject(SQLCA) dw_cari.scrolltorow(dw_cari.insertrow(0))

Pemilihan Menu Tree

Pemilihan menu tree adalah untuk menampilkan data pada jendela master dan detail. Pemilihan menu tree akan menjalankan event selectionchanged pada kontrol tv_sheet. Ada beberapa pekerjaan yang harus dilakukan pada event ini, yaitu mengisi variabel instance, mengisi nama obyek DataWindow, menghubungkan kontrol DataWindow dengan database, memanggil data, mengambil key master (Primary Key), mengaktifkan kontrol DataWindow master, mengubah tampilan ukuran sheet sesuai dengan resolusi monitor dan mengeset tampilan menu sheet.

Mengisi Variabel Instance

Variabel instance ini diisi jika menu tree yang dipilih adalah submenu tree (1. Kelompok, 2. Subkelompok, 3. Perkiraan, Jurnal atau Tutup Buku) yang dipilih. Jika yang dipilih bukan submenu tree seperti Tabel Referensi atau Transaksi maka isi variabel instance adalah isi yang terakhir. Cara memeriksa menu mana yang dipilih adalah dengan memeriksa isi parameter newhandle treeview pada event selectionchanged seperti skrip di bawah ini: is_dw_detail = '' ii_keymaster= 1 ii_keyDetail = 0 is_wdEdit = '' idw_aktif = dw_master choose case newhandle case 2 //Menu 1.Kelompok is_judul = 'Tabel Referensi Kelompok'

Page 47: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

200

is_wmEdit = 'w_trn_kelompok_edit' is_dw_master = 'dwo_ref_kelompok_view' is_dwo_rpt = 'dwo_ref_kelompok_rpt' case 3 //Menu 2.Subkelompok is_judul = 'Tabel Referensi Subkelompok' is_wmEdit = 'w_trn_SubKelompok_edit' is_dw_master = 'dwo_ref_Subkelompok_view' is_dwo_rpt = 'dwo_ref_Subkelompok_rpt' case 4 //Menu 3.Perkiraan is_judul = 'Tabel Referensi Perkiraan' is_wmEdit = 'w_trn_perkiraan_edit' is_dw_master = 'dwo_ref_perkiraan_view' is_dwo_rpt = 'dwo_ref_perkiraan_rpt' case 6 is_judul = 'Transaksi Jurnal' is_wmEdit = 'w_trn_jurnal_edit' is_wdEdit = 'w_trn_jurnal_detail_edit' is_dw_master= 'dwo_trn_jurnal_view' is_dw_detail = 'dwo_trn_jurnal_detail_view' is_dw_rpt = '' case 7 //Menu Tutup Buku open (w_trn_tutup_buku, parent) end choose

Menu sheet

Pertama kali sheet dibuka, pemilihan menu secara default adalah menu pertama, yaitu Tabel Referensi (newhandle bernilai 1), berarti belum ada pilihan data untuk ditampilkan. Dengan demikian pemakai hanya dapat melakukan pemilihan menu tree dan menutup sheet, sedangkan menu edit sheet yang lainnya dalam keadaan tidak aktif (disable). Cara mematikan menu sheet adalah dengan skrip seperti di bawah ini: m_sheet.m_edit.m_buka.enabled = false m_sheet.m_edit.m_simpan.enabled = false m_sheet.m_edit.m_preview.enabled = false m_sheet.m_edit.m_baru.enabled = false m_sheet.m_edit.m_ubah.enabled = false m_sheet.m_edit.m_hapus.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false

Page 48: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

201

m_sheet.m_edit.m_tutup.enabled = true

Mengisi nama obyek DataWindow

Cara mengisi obyek DataWindow adalah dengan mengisi properti DataObject dengan string nama obyek DataWindow. Properti DataObject untuk kontrol dw_master diisi jika terjadi perubahan isi variabel is_dw_master, sedangkan properti DataObject untuk kontrol dw_detail tidak. Berikut ini adalah skrip untuk mengisi properti DataObject. if is_dw_master <> dw_master.dataobject then dw_master.dataobject = is_dw_master end if dw_detail.dataobject = is_dw_detail

SetTransObject()

Fungsi ini digunakan untuk menghubungkan kontrol DataWindow dengan database.

Sintaks: kontroldw.SetTransObject ( transaksi )

Keterangan:

kontroldw adalah nama kontrol DataWindow seperti dw_master, dw_detail.

transaksi adalah nama transaksi yang digunakan yaitu SQLCA. Fungsi ini dapat dijalankan setelah aplikasi terhubung dengan database, yaitu yang dilakukan pada saat mengklik tombol Login pada window w_login.

Retrieve()

Fungsi retrieve() adalah fungsi yang digunakan untuk memanggil data dari database dan menempatkannya dalam buffer kontrol DataWindow. Fungsi ini dijalankan dengan menjalankan user event ue_buka.

Sintaks: kontroldw.Retrieve ( {darftarArgumen } )

Page 49: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

202

Keterangan:

kontroldw adalah nama kontrol DataWindow seperti dw_master, dw_detail.

daftarargumen adalah argumen-argumen yang digunakan sebagai persyaratan pemanggilan data, jika tidak diikutsertakan maka semua data akan dipanggil sesuai dengan query (SELECT).

Setelah data dipanggil, aktifkan kontrol DataWindow dw_master, jalankan event rowfocuschanged dw_master, kosongkan kotak isian cari data, set fokus pada kotak isian cari data, dan atur tampilan menu edit. Skrip user event ue_panggil selengkapnya adalah seperti di bawah ini: dw_master.setTransObject(SQLCA) dw_detail.setTransObject(SQLCA) parent.triggerevent("ue_buka") dw_master.triggerevent(clicked!) dw_master.triggerevent(rowfocuschanged!) dw_cari.setFocus() if dw_master.rowcount() > 0 then m_sheet.m_edit.m_ubah.enabled = true m_sheet.m_edit.m_hapus.enabled = true m_sheet.m_edit.m_preview.enabled = true if dw_master.rowcount() > 1 then m_sheet.m_edit.m_maju.enabled = true m_sheet.m_edit.m_akhir.enabled= true end if else m_sheet.m_edit.m_ubah.enabled = false m_sheet.m_edit.m_hapus.enabled = false m_sheet.m_edit.m_preview.enabled = false end if

Mengambil KeyMaster

Keymaster adalah nama kolom master (primary key) yang diperlukan untuk pemanggilan detail. Nama kolom ini dapat diambil dengan fungsi describe().

Sintaks: kontroldw. Describe (daftar properti )

Page 50: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

203

Keterangan:

kontroldw adalah nama kontrol DataWindow seperti dw_master dan dw_detail.

daftar properti adalah daftar properti kontrol DataWindow yang diapit dengan tanda kutip dua (“).

Cara untuk mengambil nama kolom master yang ditempatkan pada urutan pertama (kolom 1) adalah sebagai berikut: is_kolMaster = dw_master.Describe("#1.Name")

Kolom master tidak selalu berada pada urutan pertama, bergantung pemilihan (select) yang dilakukan saat pembuatan DataWindow, bisa saja pada urutan pertama, kedua, terakhir, dan sebagainya. Yang perlu diketahui adalah urutan di mana kolom master (Primary Key) tersebut ditempatkan. Dengan demikian, skrip untuk mengambil kolom master menjadi seperti di bawah ini. is_kolMaster = dw_master.Describe("#" + & string( ii_keymaster ) + ".Name")

Keadaan tidak dapat diubah

Default data yang ditampilkan pada jendela data adalah pada keadaan yang tidak dapat diubah (read only=true). Keadaan ini dapat ditentukan dengan mengetikkan skrip di bawah ini: dw_master.object.datawindow.readonly = true if is_dw_detail <> '' then dw_detail.object.datawindow.readonly = true end if

Mengaktifkan kontrol DataWindow

Default kontrol DataWindow yang aktif adalah kontrol DataWindow master. Kontrol DataWindow ini dapat diaktifkan secara otomatis setelah pemilihan menu tree dengan menjalankan event clicked (akan dibahas pada pembahasan selanjutnya) pada kontrol dw_master seperti skrip di bawah ini. dw_master.triggerevent(clicked!) //Default DW aktif

atau idw_aktif = dw_master

Page 51: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

204

Mengubah tampilan ukuran sheet

Ukuran tampilan sheet akan disesuaikan dengan ukuran tampilan obyek DataWindow yang telah diisi pada properti DataObject. Untuk mengubah tampilan sheet, jalankan event resize dengan triggerevent seperti skrip di bawah ini: parent.triggerevent(resize!)

Event CloseQuery

Event ini dijalankan setelah event Close dijalankan. Event ini digunakan untuk menutup query yang teleh dibuka dengan fungsi Retrieve(). Sebelum query ditutup, Anda dapat memeriksa apakah telah terjadi perubahan data (data sudah disimpan atau belum). Jika pemakai telah melakukan perubahan data, Anda dapat menampilkan pertanyaan untuk memberi kesempatan kepada pemakai. Berikut ini penjelasan beberapa pernyataan baru.

DeletedCount ()

Fungsi ini akan mengembalikan jumlah baris yang telah ditandai untuk dihapus dalam database.

Sintaks: kontroldw.DeletedCount ( )

ModifiedCount()

Fungsi ini akan mengembalikan jumlah baris yang telah diubah pada buffer utama, yaitu tabel utama yang dipilih pada Upadate Properties.

Sintaks: kontroldw. ModifiedCount ()

Getitem()

Fungsi ini berguna untuk mengambil data (nilai) dari buffer kontrol DataWindow atau DataStore. Nama fungsi getitem harus disesuaikan dengan tipe data yang akan diambil. Fungsi untuk mengambil data bertipe numeric adalah getitemnumber(), untuk mengambil data bertipe desimal adalah dengan getitemdacimal(), untuk mengambil data bertipe tanggal adalah dengan getitemdate(), untuk mengambil data bertipe tanggal jam adalah dengan getitemdatetime(), untuk

Page 52: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

205

mengambil data bertipe jam adalah dengan getitemtime() dan untuk mengambil data bertipe string adalah dengan getitemstring()

Sintaks: kontroldw.GetItem ( baris, kolom {, bufferDw, nilaiAsli} )

Keterangan:

kontroldw adalah nama kontrol DataWindow seperti dw_master, dw_detail, dan dw_edit.

baris adalah nomor baris data yang akan diambil.

bufferDw adalah buffer DataWindow (opsional) yaitu Primary!, Delete!, Filter!.

nilaiAsli adalah kondisi. Jika bernilai true maka GetItemString mengembalikan data sesuai dengan data yang dipanggil (retrieve), sebaliknya jika bernilai false maka GetItemString mengembalikan data sesuai dengan data yang tampil di layar. Apabila Anda mengikutsertakan bufferDw maka nilaiAsli juga harus diikutsertakan.

AcceptText()

Fungsi ini digunakan untuk menyimpan isi data baris aktif pada kontrol DataWindow ke dalam buffer kontrol DataWindow. Sebelum data pada baris aktif dalam kontrol DataWindow diambil, fungsi ini harus dilaksanakan terlebih dahulu, jika tidak maka baris aktif adalah baris aktif sebelumnya. Fungsi ini akan mengembalikan nilai integer 1 bila berhasil dilaksanakan atau nilai integer -1 bila tidak berhasil dilaksanakan.

Sintaks: kontroldw.AcceptText()

Contoh: //Ambil isi kolom yang telah diketikkan ls_kode = dw_1.getitemstring(dw_1.getrow(),’pk_kode’) //hasil null if dw_master.AcceptText() = 1 Then ls_kode = dw_1.getitemstring(& dw_master.getrow(),’kp_kode’) //hasil misalnya 0001 end if

Page 53: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

206

Cara untuk mengetikkan skrip event CloseQuery adalah seperti di bawah ini:

1. Klik dropdown event dan pilih Closequery.

2. Ketikkan skrip di bawah ini: dw_master.AcceptText() dw_detail.AcceptText() long ll_rubah ll_rubah = dw_master.DeletedCount() + & dw_master.ModifiedCount() + & dw_detail.DeletedCount() + & dw_detail.ModifiedCount() IF ll_rubah > 0 then CHOOSE CASE MessageBox(& "Tutp Window", "Telah terjadi perubahan,& Simpan data?",Question!,YesNoCancel!,3) CASE 1 this.triggerevent("ue_simpan") Close(this) case 2 Close(this) CASE 3 Return 1 //kembali ke widow aktif, //jika tanpa return 1 sama dengan //Close(this) END CHOOSE END IF

Memindahkan Baris

Saat Anda berada pada sheet data, Anda dapat memindahkan baris (record) ke baris yang diinginkan, apakah itu hanya untuk menampilkan data atau untuk keperluan perbaikan data. Pada umumnya yang dilakukan adalah bergerak maju atau mundur satu baris atau bergerak ke awal/akhir baris. Hal ini dapat Anda lakukan dengan mengetikkan skrip pada user event yang telah Anda buat. Berikut ini penjelasan mengenai fungsi yang digunakan.

ScrollToRow()

Fungsi ini digunakan untuk memindahkan baris ke baris tertentu.

Page 54: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

207

Sintaks: kontroldw.ScrollToRow ( baris )

Keterangan:

baris adalah nomor baris yang dituju.

RowCount()

Fungsi ini digunakan untuk mengambil nomor baris terakhir atau jumlah data.

Sintaks: kontroldw.RowCount ()

GetRow()

Fungsi ini digunakan untuk mengambil nomor baris aktif.

Sintaks: kontroldw.GetRow ()

ScrollNextRow()

Fungsi ini digunakan untuk berpindah ke baris berikutnya atau maju satu baris dari baris aktif.

Sintaks: kontroldw.ScrollNextRow()

ScrollPriorRow()

Fungsi ini digunakan untuk berpindah ke baris sebelumnya atau mundur satu baris dari baris aktif.

Sintaks: kontroldw. ScrollPriorRow()

Cara mengetikkan skrip untuk memindahkan baris adalah sebagai berikut:

1. Klik dropdown event dan pilih ue_awal, kemudian ketikkan skrip di bawah ini: if not isvalid( idw_aktif ) then return idw_aktif.scrollToRow(1)

Page 55: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

208

2. Klik dropdown event dan pilih ue_akhir, kemudian ketikkan skrip di bawah ini: if not isvalid( idw_aktif ) then return idw_aktif.scrollToRow(idw_aktif.rowCount())

3. Klik dropdown event dan pilih ue_mundur, kemudian ketikkan skrip di bawah ini: if not isvalid( idw_aktif ) then return idw_aktif.scrollPriorRow()

4. Klik dropdown event dan pilih ue_maju, kemudian ketikkan skrip di bawah ini: if not isvalid( idw_aktif ) then return idw_aktif.scrollNextRow()

Menambah Data Baru

Langkah untuk menambah data baru akan dilakukan pada window edit sheet yang dipanggil melalui user event ue_baru. Window edit yang dipanggil sesuai dengan window edit masing-masing jendela data, misalnya jika data yang ditampilkan adalah data tabel referensi kelompok maka window editnya adalah window edit kelompok, jika data yang ditampilkan adalah data tabel referensi subkelompok maka window editnya adalah window edit subkelompok dan seterusnya. Pemanggilan window edit yang berbeda-beda pada user event ue_baru, dapat dilakukan dengan fungsi OpenWithParm().

Sintaks: OpenWithParm ( varWindow, parameter, tipeWindow{, induk } )

Keterangan:

varWindow adalah nama variabel bertipe window.

parameter adalah parameter yang akan dilewatkan dan bernilai string , yaitu baru atau isi kolom master.

tipeWindow adalah nama window yang akan dibuka berupa string seperti w_ref_kelompok_edit, w_ref_subkelompok-_edit, w_trn_jurnal_edit, dan w_trn_jurnal_detail_edit.

Page 56: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

209

induk adalah window yang akan dijadikan induk dari window yang akan dibuka, dalam hal ini adalah window sheet sebagai induk yang ditulis dalam kata cadangan this.

Sebelum window edit dipanggil, deklarasikan variabel bertipe window. Periksa DataObject DataWindow aktif. Jika kosong, tampilkan pesan Silakan pilih menu tree! dan pindah kembali ke window sheet.

Jika DataObject tidak kosong, periksa DataWindow aktif. Jika DataWindow aktif adalah master maka buka window edit master yang disimpan dalam variabel is_wmEdit, sebaliknya jika DataWindow aktif adalah detail maka buka window edit detail yang disimpan dalam variabel is_wdEdit. Skrip user event ue_baru selengkapnya adalah sebagai berikut: window lw_edit if idw_aktif.dataobject = '' then messagebox('Informasi','Silakan pilih menu tree!') return else if idw_aktif = dw_master then OpenWithParm(lw_edit, "baru", is_wmEdit, this) else OpenWithParm(lw_edit, "baru", is_wdEdit, this) end if end if

Pembahasan tentang window edit akan dibahas khusus pada bagian window edit.

Mengubah Data

Mengubah data dilakukan bila ada data yang ditampilkan di layar. Data dapat diubah dengan memanggil window edit sheet yang dipanggil melalui user event ue_ubah. Window edit yang dipanggil sesuai dengan window edit masing-masing jendela data seperti yang telah dijelaskan di atas. Window edit dibuka dengan fungsi OpenWithParm dengan mengirimkan paramater isi kolom master.

Untuk mengetikkan skrip user event ue_ubah, ikuti langkah-langkah di bawah ini:

1. Klik dropdown event dan pilih ue_ubah.

2. Ketikkan skrip di bawah ini:

Page 57: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

210

window lw_edit if not isvalid( idw_aktif ) then return is_keyMaster = dw_master.getItemString(& dw_master.getRow(),is_kolMaster) if idw_aktif = dw_detail then if dw_detail.rowCount()=0 OR dw_detail.getRow()=0 then return OpenWithParm(lw_edit, is_keyMaster + '!' + & string( ii_keymaster) + '!' + string( ii_keyDetail),& is_wdEdit, this) else m_sheet.m_edit.m_simpan.enabled = true m_sheet.m_edit.m_hapus.enabled = true OpenWithParm(lw_edit, is_keyMaster, is_wmEdit, this) end if

Menghapus Data

Adakalanya data yang telah dimasukkan ke dalam tabel (database) harus dihapus, mungkin data tersebut salah atau sudah tidak digunakan lagi. Berikut ini penjelasan beberapa pernyataan baru yang digunakan.

DeleteRow()

Digunakan untuk menghapus baris. Fungsi ini akan mengembalikan nilai integer 1 bila berhasil dilakukan atau nilai integer -1 bila tidak berhasil dilakukan.

Sintaks: kontroldw.DeleteRow( baris )

Keterangan:

baris adalah nomor baris yang akan dihapus.

Update()

Fungsi ini digunakan untuk mengubah tabel. Fungsi ini akan mengembalikan nilai integer 1 bila berhasil dilakukan atau nilai integer -1 bila tidak berhasil dilakukan. Fungsi ini secara otomatis akan melaksanakan fungsi AcceptText().

Sintaks: kontroldw.Update ( { accept {, resetflag } } )

Page 58: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

211

Keterangan:

accept adalah kondisi bernilai true atau false dari hasil pelaksanaan fungsi AcceptText().

resetflag adalah kondisi bernilai true untuk me-reset flag update kontrol DataWindow atau berfungsi sebaliknya untuk nilai false.

Commit

Adalah pernyataan yang digunakan untuk menyimpan secara permanen semua perubahan yang dilakukan terhadap data sejak diluncurkan terakhir kali.

Sintaks: COMMIT {USING ObyekTransaksi} ;

Keterangan:

ObyekTransaksi adalah nama obyek transaksi, default-nya adalah SQLCA

RowsMove()

Fungsi ini digunakan untuk menghapus sejumlah baris dari buffer delete dan menyisipkannya ke kontrol DataWindow (atau DataStore) lain, dalam hal ini kontrol DataWindow yang diedit datanya (dw_master atau dw_detail). Fungsi RowsMove() dijalankan bilamana penghapusan data gagal sehingga data yang telah dihapus (dalam buffer delete) harus dikembalikan ke kontrol DataWindow asalnya.

Sintaks: kontroldw.RowsMove(mulai, akhir, bufferAsal, dwTujuan, sebelum, bufferTujuan)

Keterangan:

kontroldw adalah nama kontrol DataWindow seperti dw_master, dw_detail dan dw_edit.

mulai adalah nomor baris awal penghapusan.

akhir adalah nomor baris akhir penghapusan.

Page 59: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

212

bufferAsal adalah sebuah buffer DataWindow asal seperti Primary!, Delete!, Filter!. Dalam kasus penghapusan, data yang digunakan adalah buffer Delete!

dwTujuan kontrol DataWindow tujuan data yang disisipkan, dalam hal ini adalah kontrol DataWindow sheet.

sebelum adalah nomor baris ke berapa data disisipkan. Agar tidak terlihat perubahan pada sheet data, sebaiknya data disisipkan ke baris asal data sebelum dihapus.

bufferTujuan adalah sebuah buffer DataWindow tujuan seperti Primary!, Delete!, Filter!. Dalam kasus penghapusan, data yang digunakan adalah buffer Primary!.

SelectRow()

Fungsi ini digunakan untuk memberi tanda baris yang diklik (dipilih).

Sintaks: kontroldw.SelectRow ( baris, pilih )

Keterangan:

kontroldw adalah nama kontrol DataWindow (sebaiknya dengan tipe presentasi tabular atau grid) seperti dw_master dan dw_detail.

baris adalah nomor baris yang akan dipilih.

pilih adalah kondisi true untuk baris yang akan dipilih dengan warna terang. Kondisi false akan membebaskan pemilihan baris.

SetRow()

Fungsi ini digunakan untuk mengeset baris aktif (current row).

Sintaks: kontroldw. SetRow ( baris )

Keterangan:

kontroldw adalah nama kontrol DataWindow (sebaiknya dengan tipe presentasi tabular atau grid) seperti dw_master dan dw_detail.

Page 60: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

213

baris adalah nomor baris yang diinginkan sebagai baris aktif.

Rollback

Pernyataan ini digunakan untuk membatalkan semua operasi database sejak pernyataan commit terakhir dilaksanakan.

Sintaks: ROLLBACK {USING ObyekTransaksi } ;

Untuk mengetikkan skrip untuk menghapus data, langkah-langkahnya adalah sebagai berikut:

1. Klik dropdown event dan pilih ue_hapus.

2. Ketikkan skrip di bawah ini: if not isvalid( idw_aktif ) or idw_aktif.getrow() = 0 then return long ll_baris ll_baris = idw_aktif.getrow() if messageBox("Hapus","Anda ingin menghapus data ini?",& Question!,YesNoCancel!) = 1 then if idw_aktif = dw_master then is_keyMaster = dw_master.getItemString(& dw_master.getRow(),is_kolMaster) end if idw_aktif.deleteRow(0) if idw_aktif.update() = 1 then commit using sqlca ; else idw_aktif.RowsMove(1, 1, Delete!, idw_aktif,& ll_baris , Primary!) rollback using sqlca; end if end if if idw_aktif.rowcount() = 0 then m_sheet.m_edit.m_hapus.enabled = false m_sheet.m_edit.m_ubah.enabled = false else m_sheet.m_edit.m_hapus.enabled = true m_sheet.m_edit.m_ubah.enabled = true end if

Page 61: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

214

idw_aktif.selectRow(idw_aktif.getrow(),true) idw_aktif.setRow(idw_aktif.getrow()) if idw_aktif = dw_master then idw_aktif.triggerevent(rowfocuschanged!) end if

Menyimpan Data

Agar data yang telah diketikkan dapat dipanggil kembali, pemakai harus menyimpannya terlebih dahulu sebelum keluar dari aplikasi.

Untuk mengetikkan skrip penyimpanan data, ikuti langkah-langkah di bawah ini:

1. Klik dropdown event dan pilih ue_simpan.

2. Ketikkan skrip di bawah ini: if not isvalid( idw_aktif ) then return if idw_aktif.update() = 1 then commit using sqlca ; else messageBox("Simpan","Penyimpanan data gagal!",StopSign!) end if

Kontrol DataWindow

Skrip pada kontrol DataWindow diketikkan pada event clicked, dberror, doubleclicked, rbuttondown, rowfocuschanged, dan ue_tombol.

Event clicked

Ketika pemakai mengklik jendela data, kontrol DataWindow yang aktif adalah kontrol DataWindow pada jendela data tersebut (this). Tampilkan judul (title) window sesuai dengan judul jendela data, kemudian set tampilan menu edit.

Untuk mengetikkan skrip event clicked kontrol DataWindow, ikuti langkah-langkah di bawah ini:

1. Kontrol dw_master:

Klik tab Layout.

Klik kanan mouse pada kontrol DataWindow dw_master dan pilih Script.

Klik dropdown event dan pilih event clicked.

Ketikkan skrip di bawah ini:

Page 62: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

215

idw_aktif = this parent.title = is_judul + ' (Master)' if rowcount() > 0 then m_sheet.m_edit.m_ubah.enabled = true m_sheet.m_edit.m_hapus.enabled = true m_sheet.m_edit.m_preview.enabled = true if rowcount() > 1 then if getrow() = 1 then m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_maju.enabled = true m_sheet.m_edit.m_akhir.enabled = true elseif getrow() < rowcount() then m_sheet.m_edit.m_mundur.enabled = true m_sheet.m_edit.m_awal.enabled = true m_sheet.m_edit.m_maju.enabled = true m_sheet.m_edit.m_akhir.enabled = true elseif getrow() = rowcount() then m_sheet.m_edit.m_mundur.enabled = true m_sheet.m_edit.m_awal.enabled = true m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false end if else m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false end if else m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false m_sheet.m_edit.m_ubah.enabled = false m_sheet.m_edit.m_hapus.enabled = false m_sheet.m_edit.m_preview.enabled = false end if

2. Kontrol dw_detail:

Klik tab Layout.

Page 63: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

216

Klik kanan mouse pada kontrol DataWindow dw_detail dan pilih Script.

Klik dropdown event dan pilih event clicked.

Ketikkan skrip di bawah ini: idw_aktif = this parent.title = is_judul + ' (Detail)' if rowcount() > 0 then m_sheet.m_edit.m_ubah.enabled = true m_sheet.m_edit.m_hapus.enabled = true m_sheet.m_edit.m_preview.enabled = true if rowcount() > 1 then if getrow() = 1 then m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_maju.enabled = true m_sheet.m_edit.m_akhir.enabled = true elseif getrow() < rowcount() then m_sheet.m_edit.m_mundur.enabled = true m_sheet.m_edit.m_awal.enabled = true m_sheet.m_edit.m_maju.enabled = true m_sheet.m_edit.m_akhir.enabled = true elseif getrow() = rowcount() then m_sheet.m_edit.m_mundur.enabled = true m_sheet.m_edit.m_awal.enabled = true m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false end if else m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false end if else m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false m_sheet.m_edit.m_ubah.enabled = false m_sheet.m_edit.m_hapus.enabled = false m_sheet.m_edit.m_preview.enabled = false

Page 64: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

217

end if

Event dberror

Event dberror digunakan untuk memanggil fungsi f_dberror yang akan menampilkan pesan kesalahan yang terjadi saat operasi database.

Untuk mengetikkan skrip event dberror kontrol DataWindow, ikuti langkah-langkah di bawah ini:

1. Kontrol dw_master:

Klik tab Layout.

Klik kanan mouse pada kontrol DataWindow dw_master dan pilih Script.

Klik dropdown event dan pilih event dberror.

Ketikkan skrip di bawah ini: return f_dberror (sqldbcode,sqlerrtext,is_judul)

2. Kontrol dw_detail:

Klik tab Layout.

Klik kanan mouse pada kontrol DataWindow dw_detail dan pilih Script.

Klik dropdown event dan pilih event dberror.

Ketikkan skrip di bawah ini: return f_dberror (sqldbcode,sqlerrtext,is_judul)

Event doubleclicked

Event doubleclicked digunakan untuk mengeset kontrol DataWindow aktif, menampilkan judul window sheet, dan mengubah data dengan menjalankan user event ue_ubah.

Untuk mengetikkan skrip event doubleclicked kontrol DataWindow, ikuti langkah-langkah di bawah ini:

1. Kontrol dw_master:

Klik tab Layout.

Klik kanan mouse pada kontrol DataWindow dw_master dan pilih Script.

Page 65: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

218

Klik dropdown event dan pilih event doubleclicked.

Ketikkan skrip di bawah ini: idw_aktif = this parent.title = is_judul + ' (Master)' parent.triggerevent("ue_ubah")

2. Kontrol dw_detail:

Klik tab Layout.

Klik kanan mouse pada kontrol DataWindow dw_detail dan pilih Script.

Klik dropdown event dan pilih event doubleclicked.

Ketikkan skrip di bawah ini: idw_aktif = this parent.title = is_judul + ' (Detail)' parent.triggerevent("ue_ubah")

Event rowfocuschanged

Event rowfocuschanged pada kontrol dw_master digunakan untuk memanggil data detail sesuai dengan kode master (pirmarykey), menampilkan informasi baris pada microhelp (status line), dan mengeset tampilan menu perpidahan baris. Event rowfocuschanged pada kontrol dw_detail digunakan untuk menampilkan informasi baris pada microhelp (status line) dan mengeset tampilan menu perpidahan baris serta menampilkan pointer baris aktif (selection).

Untuk mengetikkan skrip event rowfocuschanged kontrol DataWindow, ikuti langkah-langkah di bawah ini:

1. Kontrol dw_master:

Klik tab Layout.

Klik kanan mouse pada kontrol DataWindow dw_detail dan pilih Script.

Klik dropdown event dan pilih event rowfocuschanged.

Ketikkan skrip di bawah ini: if this.rowcount() = 0 or this.getrow()=0 then return long ll_baris, ll_jml_baris

Page 66: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

219

idw_aktif = this if this.rowcount() > 0 then is_kolMaster = this.describe("#" + & string( ii_keymaster ) + ".name") is_keyMaster= this.getitemstring(this.getrow(),& is_kolMaster) end if dw_detail.retrieve(is_keyMaster) ll_jml_baris = long(this.rowCount()) if ll_jml_baris < 1 then parent.parentWindow().setMicroHelp(& "Master->Data kosong") else ll_baris = long(this.getRow()) parent.parentWindow().setMicroHelp(& "Master->Baris "+string(this.getRow())+ & " dari "+string(this.rowCount())) end if if rowcount() > 1 then if getrow() = 1 then m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_maju.enabled = true m_sheet.m_edit.m_akhir.enabled = true elseif getrow() < rowcount() then m_sheet.m_edit.m_mundur.enabled = true m_sheet.m_edit.m_awal.enabled = true m_sheet.m_edit.m_maju.enabled = true m_sheet.m_edit.m_akhir.enabled = true elseif getrow() = rowcount() then m_sheet.m_edit.m_mundur.enabled = true m_sheet.m_edit.m_awal.enabled = true m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false end if else m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false end if selectRow(0,false) //Deselect selectRow(getRow(),true) //select baris aktif

2. Kontrol dw_detail:

Klik tab Layout.

Page 67: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

220

Klik kanan mouse pada kontrol DataWindow dw_detail dan pilih Script.

Klik dropdown event dan pilih event rowfocuschanged.

Ketikkan skrip di bawah ini: if this.rowcount() = 0 or this.getrow()=0 then return long ll_baris, ll_jml_baris ll_jml_baris = long(this.rowCount()) if ll_jml_baris < 1 then parent.parentWindow().setMicroHelp(& "Master->Data kosong") else ll_baris = long(this.getRow()) parent.parentWindow().setMicroHelp(& "Master->Baris "+string(this.getRow())+ & " dari "+string(this.rowCount())) end if if rowcount() > 1 then if getrow() = 1 then m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_maju.enabled = true m_sheet.m_edit.m_akhir.enabled = true elseif getrow() < rowcount() then m_sheet.m_edit.m_mundur.enabled = true m_sheet.m_edit.m_awal.enabled = true m_sheet.m_edit.m_maju.enabled = true m_sheet.m_edit.m_akhir.enabled = true elseif getrow() = rowcount() then m_sheet.m_edit.m_mundur.enabled = true m_sheet.m_edit.m_awal.enabled = true m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false end if else m_sheet.m_edit.m_mundur.enabled = false m_sheet.m_edit.m_awal.enabled = false m_sheet.m_edit.m_maju.enabled = false m_sheet.m_edit.m_akhir.enabled = false end if selectRow(0,false) //Deselect selectRow(getRow(),true) //select baris aktif

Page 68: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

221

Event editchaged dw_cari

Event ini digunakan untuk memindahkan pointer baris ke baris yang ditemukan. Pencarian data dilakukan dengan fungsi find() pada kolom aktif. Jika pencarian berhasil, fungsi find akan mengembalikan nilai sesuai dengan nomor baris (row) yang ditemukan.

Sintaks: kontroldw.Find ( ekspresi, mulai, akhir)

Keterangan:

kontroldw adalah nama kontrol DataWindow (sebaiknya dengan tipe presentasi tabular atau grid) seperti dw_master dan dw_detail.

ekspresi adalah string yang berisi nilai logika (boolean) sebagai kriteria pencarian data.

mulai adalah nomor baris (record) awal dari data (record) yang akan dicari, sebaiknya mulai diisi dengan 1 (baris pertama).

akhir adalah nomor baris akhir dari data yang akan dicari, sebaiknya akhir diisi dengan jumlah baris (rowcount).

Untuk mengetikkan skrip event modified dw_cari, ikuti langkah-langkah di bawah ini:

1. Klik tab Layout.

2. Klik kanan mouse pada kontrol dw_cari dan pilih Script.

3. Klik dropdown event dan pilih event editchanged.

4. Ketikkan skrip di bawah ini: long ll_baris int li_panjang string ls_data,ls_kolom,ls_ekspresi,ls_tipe accepttext() ls_data = getitemstring(1,'cari') li_panjang = len( ls_data ) ls_kolom = idw_aktif.GetColumnName()

Page 69: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

222

if ls_kolom = '' then return ls_tipe = trim(left(lower(idw_aktif.describe(ls_kolom+".coltype")),5)) if ls_tipe <> "char(" or ls_tipe <> 'varch' or ls_tipe <> 'text' then return //Data yang dicari hanya data string ls_kolom = "left(" + ls_kolom + "," ls_kolom = ls_kolom + string(li_panjang) + ")" //Expresi di bawah ini error jika ada data dengan tanda kutip dua seperti "xx" ls_ekspresi = ls_kolom + ' = "'+ ls_data +'"' ll_baris = idw_aktif.find( ls_ekspresi , 1, & idw_aktif.rowcount()) idw_aktif.scrolltorow( ll_baris )

7.6 Window Edit Window edit adalah window yang bertipe response dan digunakan untuk memasukkan atau mengubah data pada sheet.

Pada window edit terdapat 4 (empat) kontrol obyek, yaitu kontrol groupbox (gb_1), kontrol DataWindow edit (dw_edit), kontrol tombol Simpan (cb_simpan), dan tombol Batal (cb_batal).

7.6.1 Pembuatan Window

Untuk membuat window edit, ikuti langkah-langkah di bawah ini.

1. Lakukan langkah-langkah seperti membuat window-window sebelumnya.

2. Klik tab General.

3. Ketikkan Menambah data dalam kotak isian Title.

4. Klik dropdpwn WindowType dan pilih response!.

5. Klik dropdpwn WindowState dan pilih normal!.

6. Klik dropdpwn BackColor dan pilih Destop (warna latar sesuai dengan warna destop windows).

7. Klik icon Save atau pilih menu File | Save atau Save As.

8. Ketikkan nama (obyek) window w_edit.

Page 70: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

223

9. Klik nama file pustaka tempat penyimpanan window ini, yaitu mylibrary.pbl.

10. Klik OK.

Langkah selanjutnya adalah menempatkan kontrol DataWindow edit (dw_edit), groupbox (gb_1) sebagai bingkai kontrol DataWindow, kontrol tombol Simpan (cb_simpan), dan tombol Batal (cb_batal) seperti Gambar 7.10. Cara untuk menempatkan keempat kontrol ini adalah seperti langkah-langkah di bawah ini:

gb_1 dw_edit cb_simpan cb_batal

Gambar 7.10 Layout Window Edit

1. Klik tab Layout.

2. Kontrol DataWindow:

Klik dropdown kontrol, pilih Create DataWindow control.

Klik area di mana kontrol ditempatkan (perhatikan Gambar 7.10), maka akan terbentuk kontrol dw_1.

Ganti dw_1 menjadi dw_edit dalam kotak isian Name.

3. Kontrol GroupBox:

Klik dropdown kontrol dan pilih Create GroupBox control.

Klik area di pojok kiri atas kontrol dw_edit, maka akan terbentuk kontrol gb_1.

Klik mouse pada posisi kanan kontrol gb_1.

Tarik mouse ke kanan sampai tampilan groupbox beada di sebelah kanan kontrol dw_edit.

Page 71: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

224

Klik tab General dan hapus teks None pada kotak isian Text.

Klik dropdown BorderStyle dan pilih StyleRised!.

4. Kontrol tombol Simpan:

Klik dropdown kontrol dan pilih Create CommandButton control.

Klik area di bawah kontrol gb_1, maka akan terbentuk kontrol cb_1.

Ganti cb_1 menjadi cb_simpan dalam kotak isian Name.

Ketikkan &Simpan dalam kotak isian Text.

5. Kontrol tombol Batal:

Klik dropdown kontrol dan pilih Create CommandButton control.

Klik area di sebelah kann kontrol cb_simpan, maka akan terbentuk kontrol cb_1.

Ganti cb_1 menjadi cb_batal dalam kotak isian Name.

Ketikkan &Batal dalam kotak isian Text.

6. Rapikan tampilan kontrol seperti Gambar 7.10.

7.6.2 Pendeklarasian Variabel Instance

Ada dua buah variabel instance yang dibutuhkan window edit adalah seperti diperlihatkan dalam tabel 7.2.

Tabel 7.2 Variabel Instance Window Edit

Nama Variabel Tipe Keterangan

il_baris long No baris data

is_parm string String parameter: Baru atau keyMaster

Cara untuk mendeklarasikan variabel instance di atas adalah dengan mengklik tab Declare InstanceVariable pada window w_edit, kemudian mengetikkan skrip di bawah ini: long il_baris

Page 72: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

225

string is_parm

7.6.3 Skrip Window

Ada beberapa event pada window edit yang harus Anda beri skrip, yaitu kejadian open, dberror, penekanan tombol, clicked pada tombol Simpan dan Batal.

Sebelum Anda dapat memasukkan data atau mengubah data pada window edit, Anda harus terlebih dahulu membuka window tersebut. Saat window dibuka, ada beberapa hal yang harus dilakukan seperti menempatkan window di tengah-tengah layar dengan memangil fungsi f_center_w(), menghubungkan kontrol DataWindow dengan database, mengeset secara otomatis keymaster saat penambahan data baru, dan menampilkan data untuk diubah. Berikut ini beberapa pernyataan baru yang digunakan dalam window edit.

Message

Message adalah sebuah obyek yang digunakan untuk membaca parameter yang dilewatkan pada window dibuka atau parameter yang dilewatkan pada window ditutup.

Sintaks: Message.<properti>

Keterangan:

properti adalah properti message dari parameter yang akan dibaca. Tipe data parameter dapat berupa numeric, string, atau obyek PowerBuilder.

Contoh: //Buka window w_ref_perkiraan_edit dengan melewatkan parameter ‘baru’ is_wmEdit = ‘w_ref_perkiraan_edit’ OpenWithParm(lw_edit, "baru", is_wmEdit, w_sheet) //Pada event buka, baca parameter dari properti message yaitu StringParm is_parm = message.StringParm

InsertRow()

Fungsi ini digunakan unntuk melakukan penambahan data baru.

Page 73: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

226

Sintaks: kontroldw.InsertRow ( baris )

Keterangan:

baris adalah nomor baris di mana baris baru disisipkan. Untuk penambahan data baru di akhir baris, berikan nilai 0 (nol).

RowsCopy()

Fungsi ini untuk menyalin (copy) sejumlah baris dari obyek kontrol DataWindow (atau DataStore) ke kontrol obyek kontrol DataWindow (atau DataStore) lainnya.

Sintaks: kontroldw.RowsCopy (mulai, akhir, bufferAsal, dwTujuan, sebelum, bufferTujuan)

Keterangan:

kontroldw adalah nama kontrol DataWindow seperti dw_master, dw_detail dan dw_edit.

mulai adalah nomor baris awal penyalinan.

akhir adalah nomor baris akhir penyalinan.

bufferAsal adalah sebuah buffer DataWindow asal seperti Primary!, Delete!, Filter!. Untuk penyalinan data dari window edit ke sheet, yang digunakan adalah buffer Primary!

dwTujuan kontrol DataWindow tujuan data disisipkan, dalam hal ini adalah kontrol DataWindow sheet.

sebelum adalah nomor baris ke berapa data disisipkan.

bufferTujuan adalah sebuah buffer DataWindow tujuan seperti Primary!, Delete!, Filter!. Dalam kasus penyalinan, data yang digunakan adalah buffer Primary!

SetItem()

Fungsi ini untuk memasukkan data (nilai) ke kotak isian (kolom) dalam kontrol DataWindow atau DataStore.

Page 74: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

227

Sintaks: kontroldw.SetItem (baris, kolom, data )

Keterangan:

kontroldw adalah nama kontrol DataWindow seperti dw_master, dw_detail, dan dw_edit.

baris adalah pada nomor baris berapa data dimasukkan.

kolom adalah pada nomor kolom ke berapa atau pada kolom apa (string nama obyek kolom) data dimasukkan.

data adalah data yang akan dimasukkan. Tipe data yang akan dimasukkan harus sama dengan tipe kolom penampung data.

Trim()

Fungsi ini digunakan untuk menghapus spasi kosong di sebelah kiri dan kanan sebuah string.

Sintaks: Trim ( string )

Keterangan:

string adalah string yang akan dihapus spasi kosongnya.

Left()

Fungsi ini berfungsi untuk mengambil sejumlah karakter dari sebuah string.

Sintaks: Trim ( string, n )

Keterangan:

string adalah string yang akan dihapus spasi kosongnya.

n adalah banyak karakter yang akan diambil.

Setredraw()

Fungsi ini untuk menata ulang tampilan obyek setelah terjadi perubahan propertinya.

Page 75: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

228

Sintaks: kontroldw.SetItem (kondisi)

Keterangan:

kontroldw adalah nama kontrol DataWindow seperti dw_master, dw_detail, dan dw_edit.

koidisi adalah kondisi berlogika true atau false.

Event Open Window

Untuk mengetikkan skrip event open, ikuti langkah-langkah di bawah ini:

1. Klik tab Layout.

2. Klik kanan mouse pada area window untuk menampilkan menu pop-up, kemudian pilih Script.

3. Klik dropdown Event List.

4. Pilih event Open, kemudian ketikkan skrip di bawah ini: string ls_kolMaster,ls_keyMaster,ls_kolDetail,ls_keyDetail f_center_w( this ) dw_edit.settransobject(sqlca) is_parm = message.StringParm if message.StringParm = "baru" then dw_edit.insertRow(1) if w_sheet.ii_keyDetail > 0 and & w_sheet.idw_aktif = w_sheet.dw_detail then ls_kolMaster = w_sheet.dw_master.describe(& "#" + string( w_sheet.ii_keyMaster ) + ".name") ls_keyMaster = w_sheet.dw_master.getitemstring( & w_sheet.dw_master.getrow(),ls_kolMaster) dw_edit.setItem(1,ls_kolMaster,ls_keyMaster) end if else title = "Mengubah data" if w_sheet.ii_keyDetail > 0 and & w_sheet.idw_aktif = w_sheet.dw_detail then ls_kolDetail = w_sheet.dw_detail.describe( "#" + & string( w_sheet.ii_keyDetail ) + ".name") ls_keyDetail = w_sheet.dw_detail.getitemstring( & w_sheet.dw_detail.getrow(),ls_kolDetail)

Page 76: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

229

end if dw_edit.retrieve(is_parm,ls_keyDetail) end if

Event Dberror

Untuk mengetikkan skrip event dberror, ikuti langkah-langkah di bawah ini:

1. Klik tab Layout.

2. Klik kanan mouse pada area kontrol DataWindow dw_edit untuk menampilkan menu pop-up, kemudian pilih Script.

3. Klik dropdown Event List.

4. Pilih event dberror, kemudian ketikkan skrip di bawah ini: return f_dberror (sqldbcode,sqlerrtext,w_sheet.is_judul)

Event User Event ue_tombol

Untuk mengetikkan skrip event dberror, ikuti langkah-langkah di bawah ini:

1. Klik tab Layout.

2. Klik kanan mouse pada kontrol DataWindow dw_edi dan pilih script.

3. Klik dropdown event dan pilih (New Event).

4. Ketikkan ue_tombol pada Event Name.

5. Klik dropdown EventID dan pilih pbm_dwnkey.

6. Ketikkan skrip di bawah ini: if w_sheet.idw_aktif = w_sheet.dw_master then return f_tombolTekan(this,keyflags,w_sheet.ii_keyMaster) else return f_tombolTekan(this,keyflags,w_sheet.ii_keyDetail) end if

Event clicked tombol Simpan

Untuk mengetikkan skrip event clicked tombol Simpan, ikuti langkah-langkah di bawah ini:

1. Klik tab Layout.

2. Klik kanan mouse pada kontrol CommandButton cb_simpan dan pilih Script.

Page 77: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

230

3. Klik dropdown event dan pilih clicked.

4. Ketikkan skrip di bawah ini: string ls_tipe_kolom,ls_nama_kolom int li_jml_kolom, li_i any la_data dw_edit.acceptText() if is_parm = "baru" then if dw_edit.RowsCopy(1,1, Primary!, w_sheet.idw_aktif, & w_sheet.idw_aktif.rowCount()+1, Primary!) = -1 then messagebox('Baru','Tambah data gagal!') return end if w_sheet.idw_aktif.scrollToRow(& w_sheet.idw_aktif.rowCount()+1) w_sheet.idw_aktif.setRow(w_sheet.idw_aktif.rowCount()+1) else il_baris = w_sheet.idw_aktif.getRow() li_jml_kolom = integer(& dw_edit.object.datawindow.column.count) for li_i = 1 to li_jml_kolom //Ambil data pada kolom ke-li_i dalam dw_edit la_data = dw_edit.object.data[1,li_i] //Set data pada kolom ke-li_i ke dw aktif sheet w_sheet.idw_aktif.setITem(il_baris,li_i,la_data) Next end if if w_sheet.idw_aktif.update() = 1 then commit using SQLCA ; w_sheet.idw_aktif.setredraw(true) Close(parent) else rollback using SQLCA ; if is_parm = "baru" then w_sheet.idw_aktif.deleteRow(& w_sheet.idw_aktif.rowCount()) end if dw_edit.setFocus() messagebox("Informasi","Gagal update data!")

Page 78: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

231

return end if m_sheet.m_edit.m_simpan.enabled = false m_sheet.m_edit.m_hapus.enabled = true

Event clicked tombol Batal

Untuk mengetikkan skrip event clicked event tombol Simpan, ikuti langkah-langkah di bawah ini:

1. Klik tab Layout.

2. Klik kanan mouse pada kontrol CommandButton cb_batal dan pilih Script.

3. Klik dropdown event dan pilih clicked.

4. Ketikkan skrip di bawah ini: Close ( parent )

7.7 Window Tutup Buku Proses tutup buku adalah untuk memindahkan saldo rekening nominal (pendapat dan biaya) ke rekening laba ditahan (return earning), rekening setoran dan prive/deviden ke rekening modal serta menjumlahkan saldo mutasi ke saldo awal rekening.

7.7.1 Pembuatan Window

Untuk membuat window tutup buku, langkah-langkahnya adalah sebagai berikut:

1. Buat window baru dengan title Tutup Buku.

2. Buat kontrol teks statis st_1 dengan teks Sebelum proses tutup buku dilakukan.

3. Buat kontrol teks statis st_2 dengan teks pastikan Anda telah mencetak laporan.

4. Buat kontrol teks statis st_3 dengan teks periode sebelumnya!

5. Buat 2 (dua) buah tombol untuk tombol Proses (cb_1) dan Batal (cb_2).

Page 79: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

232

6. Rapikan tampilan window.

7. Simpan window nama w_tutup_buku ke dalam file transaksi.bpl.

Gambar 7.11 Layout window Tutup Buku

7.7.2 Skrip Window

Window ini mempunyai 3 (tiga) skrip, yaitu skrip event open, skrip tombol Proses, dan skrip tombol Cancel.

Event Open f_center_w (this)

Tombol Keluar

Klik kanan mouse pada kontrol CommandButton Cancel (cb_2) dan pilih Script, kemudian ketikan Close ( parent ).

Tombol Proses

Skrip tombol Proses berisi query untuk meng-update tabel perkiraan. Query ini tidaklah kita ketikkan secara manual, tetapi menggunakan fasilitas paste SQL. Langkah-langkah untuk membuat skrip tombol proses adalah sebagai berikut:

1. Klik tab Layout.

2. Klik kanan mouse pada kontrol cb_1 (Proses) dan pilih Script.

Page 80: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

233

3. Tampilkan pertanyaan dengan skrip di bawah ini: if Messagebox("Tutup tahun","Proses?",Exclamation!,YesNo!,2)=2 then Close ( parent ) return end if

4. Deklarasikan variabel yang diperlukan: double ldb_income,ldb_expenses,ldb_rl,ldb_debet double ldb_kredit,ldb_saldo double ldb_sld_debet,ldb_sld_kredit,ldb_mut_debet double ldb_mut_kredit long ll_tutup,ll_i,ll_data date ld_tanggal string ls_pk_tmp,ls_pk_kode,ls_pk_kode_reld_tanggal = today()

5. Ikuti langkah-langkah di bawah ini untuk menjumlahkan pendapatan:

Ketikkan //Jumlahkan pendapatan.

Klik icon Past SQL dan pilih Select.

Klik tabel subkelompok, perkiraan, dan kelompok.

Klik kolom pk_mutasi_kredit dan pk_mutasi_debet.

Klik kolom kelompok.tp_nama pada Column dan ketikkan INCOME pada Value.

Klik icon Into, lalu ketikkan :ldb_income pada baris pertama dan x (sembarangan) pada baris kedua, kemudian klik OK.

Klik icon Return.

Ketikkan fungsi sum() sehingga skrip untuk menjumlahkan pendapatan adalah seperti di bawah ini: SELECT sum( perkiraan.pk_mutasi_kredit - perkiraan.pk_mutasi_debet ) into :ldb_income FROM subkelompok, perkiraan, kelompok WHERE ( perkiraan.sk_kode=subkelompok.sk_kode) and ( kelompok.tp_kode =subkelompok.tp_kode) and ( kelompok.tp_nama = 'INCOME' ) ;

Page 81: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

234

6. Menjumlahkan biaya:

Salin skrip yang telah dibuat pada langkah 5 di atas ke bawah skrip tersebut dan modifikasi skrip tersebut sehingga selengkapnya skrip untuk menjumlahkan biaya adalah seperti di bawah ini: //Jumlahkan biaya SELECT sum( & perkiraan.pk_mutasi_debet - & perkiraan.pk_mutasi_kredit ) into :ldb_expenses FROM subkelompok, perkiraan, kelompok WHERE ( perkiraan.sk_kode = & subkelompok.sk_kode ) and ( kelompok.tp_kode = & subkelompok.tp_kode ) and ( kelompok.tp_nama = 'EXPENSES') ;

7. Ketikkan skrip di bawah ini untuk mencari Rugi Laba: //Cari rugi/laba ldb_rl = ldb_income - ldb_expenses

8. Ketikkan skrip di bawah ini untuk menghitung jumlah jurnal yang belum tutup buku: //Hitung jumlah transaksi yang belum tutup buku SELECT count(jr_tutup) INTO :ll_tutup FROM jurnal WHERE jr_tutup = '0' ;

9. Ketikkan skrip di bawah ini untuk menghitung modal: //Buat kursor untuk prive/deviden DECLARE c_modal CURSOR FOR SELECT perkiraan.pk_kode, perkiraan.pk_mutasi_debet, perkiraan.pk_mutasi_kredit FROM perkiraan, subkelompok, kelompok WHERE (subkelompok.sk_kode=perkiraan.sk_kode) and (kelompok.tp_kode=subkelompok.tp_kode ) and ( ( kelompok.tp_nama = 'CAPITAL' ) AND ( substring(perkiraan.pk_kode,3,1) = '2' ) ) ; SELECT count(perkiraan.pk_kode) INTO :ll_tutup FROM subkelompok, perkiraan, kelompok WHERE (subkelompok.sk_kode=perkiraan.sk_kode ) and

Page 82: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

235

( kelompok.tp_kode=subkelompok.tp_kode ) and ( ( kelompok.tp_nama = 'CAPITAL' ) AND ( substring(perkiraan.pk_kode,3,1) = '2' ) ) ; open c_modal ; for ll_i = 1 to ll_tutup fetch c_modal into :ls_pk_kode, :ldb_debet, :ldb_kredit; // perkiraan setoran modal ls_pk_tmp = left(ls_pk_kode,2) + '1' + right(ls_pk_kode,7) //tambahkan modal dengan setoran dan kurangi modal dengan prive/deviden UPDATE perkiraan SET pk_saldo_kredit = pk_saldo_kredit + pk_mutasi_kredit - ( :ldb_debet - :ldb_kredit ) WHERE ( perkiraan.pk_kode = :ls_pk_tmp ) ; Next Close c_modal ;

10. Ketikkan skrip di bawah ini untuk mengambil kode perkiraan laba ditahan: //Ambil kode perkiraan Laba ditahan SELECT perkiraan.pk_kode INTO :ls_pk_kode_re FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode ) and ( kelompok.tp_kode = subkelompok.tp_kode ) and ( ( kelompok.tp_nama = 'RT-EARNING' ) ) ;

11. Ketikkan skrip di bawah ini untuk untuk menambahkan semua mutasi ke salado awal asset: //Tambahkan semua mutasi ke salado awal (asset) DECLARE c_assets CURSOR FOR SELECT perkiraan.pk_kode, perkiraan.pk_saldo_debet, perkiraan.pk_saldo_kredit, perkiraan.pk_mutasi_debet, perkiraan.pk_mutasi_kredit FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode) and ( kelompok.tp_kode = subkelompok.tp_kode ) and ( kelompok.tp_nama = 'ASSETS' ) ; SELECT count( perkiraan.pk_kode ) INTO :ll_data

Page 83: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

236

FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode) and (kelompok.tp_kode=subkelompok.tp_kode ) and ( kelompok.tp_nama = 'ASSETS' ) ; open c_assets ; for ll_i = 1 to ll_data fetch c_assets into :ls_pk_kode,:ldb_sld_debet,& :ldb_sld_kredit,:ldb_mut_debet,& :ldb_mut_kredit ; ldb_saldo = ldb_sld_debet - ldb_sld_kredit + & ldb_mut_debet - ldb_mut_kredit //Normal saldo adalah debet if ldb_saldo > 0 then ldb_sld_debet = ldb_saldo ldb_sld_kredit= 0 else ldb_sld_debet = 0 ldb_sld_kredit= abs( ldb_saldo ) end if UPDATE perkiraan SET pk_saldo_debet = :ldb_sld_debet, pk_saldo_kredit = :ldb_sld_kredit WHERE perkiraan.pk_kode = :ls_pk_kode ; Next Close c_assets ;

12. Ketikkan skrip di bawah ini untuk menambahkan semua mutasi ke saldo awal utang: //Tambahkan semua mutasi ke salado awal (utang) DECLARE c_utang CURSOR FOR SELECT perkiraan.pk_kode, perkiraan.pk_saldo_debet, perkiraan.pk_saldo_kredit, perkiraan.pk_mutasi_debet, perkiraan.pk_mutasi_kredit FROM subkelompok, perkiraan, kelompok WHERE(perkiraan.sk_kode=subkelompok.sk_kode) and (kelompok.tp_kode =subkelompok.tp_kode) and ( kelompok.tp_nama = 'LIABILITIES' ) ; SELECT count( perkiraan.pk_kode ) INTO :ll_data FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode) and

Page 84: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

237

(kelompok.tp_kode =subkelompok.tp_kode) and ( kelompok.tp_nama = 'LIABILITIES' ) ; open c_utang ; for ll_i = 1 to ll_data fetch c_utang into :ls_pk_kode,:ldb_sld_debet,& :ldb_sld_kredit,:ldb_mut_debet,:ldb_mut_kredit ; ldb_saldo = ldb_sld_kredit - ldb_sld_debet + & ldb_mut_kredit - ldb_mut_debet //Normal saldo adalah kredit if ldb_saldo > 0 then ldb_sld_debet = 0 ldb_sld_kredit= ldb_saldo else ldb_sld_debet = abs( ldb_saldo ) ldb_sld_kredit= 0 end if UPDATE perkiraan SET pk_saldo_debet = :ldb_sld_debet, pk_saldo_kredit = :ldb_sld_kredit WHERE perkiraan.pk_kode = :ls_pk_kode ; Next Close c_utang ;

13. Ketikkan skrip di bawah ini untuk menambahkan laba ditahan dengan rugi/laba tahun berjalan: //Laba ditahan + laba/rugi UPDATE perkiraan SET pk_saldo_kredit = pk_saldo_kredit + :ldb_rl , pk_tanggal= :ld_tanggal WHERE pk_kode= :ls_pk_kode_re ; Nolkan mutasi //Nolkan mutasi UPDATE perkiraan SET pk_mutasi_debet = 0, pk_mutasi_kredit = 0, pk_tanggal = :ld_tanggal ;

14. Ketikkan skrip di bawah ini untuk untuk memeriksa berhasil atau tidaknya proses tutup buku: if sqlca.sqlnrows < 0 then rollback using sqlca; messagebox("Informasi","Tutup buku gagal!",Information!,Ok!,1) Close ( parent ) return end if

Page 85: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

238

messagebox("Information","Tutup buku selesai!",Information!,Ok!,1) Close ( parent )

15. Simpan window dengan nama w_trn_tutup_buku ke dalam file transaksi.pbl.

7.7.3 Listing Skrip

Skrip tombol Proses selengkapnya adalah seperti listing berikut ini: if Messagebox("Tutup tahun","Proses?",Exclamation!,YesNo!,2)=2 then Close ( parent ) return end if double ldb_income,ldb_expenses,ldb_rl,ldb_debet, ldb_kredit,ldb_saldo double ldb_sld_debet,ldb_sld_kredit,ldb_mut_debet, ldb_mut_kredit long ll_tutup,ll_i,ll_data date ld_tanggal string ls_pk_tmp,ls_pk_kode,ls_pk_kode_re ld_tanggal = today() //Jumlahkan pendapatan SELECT sum( perkiraan.pk_mutasi_kredit - perkiraan.pk_mutasi_debet ) into :ldb_income FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode ) and (kelompok.kp_kode =subkelompok.kp_kode ) and ( kelompok.kp_nama = 'INCOME' ) ; //Jumlahkan biaya SELECT sum( perkiraan.pk_mutasi_debet - perkiraan.pk_mutasi_kredit ) into :ldb_expenses FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode ) and (kelompok.kp_kode=subkelompok.kp_kode ) and ( kelompok.kp_nama = 'EXPENSES') ; //Cari laba/rugi ldb_rl = ldb_income - ldb_expenses //Hitung jumlah transaksi yang belum ditutup

Page 86: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

239

SELECT count(jr_tutup) INTO :ll_tutup FROM jurnal WHERE jr_tutup = '0' ; //Modal DECLARE c_modal CURSOR FOR SELECT perkiraan.pk_kode, perkiraan.pk_mutasi_debet, perkiraan.pk_mutasi_kredit FROM perkiraan, subkelompok, kelompok WHERE (subkelompok.sk_kode=perkiraan.sk_kode) and (kelompok.kp_kode = subkelompok.kp_kode ) and ( ( kelompok.kp_nama = 'CAPITAL' ) AND ( substring(perkiraan.pk_kode,3,1) = '2' ) ) ; SELECT count(perkiraan.pk_kode) INTO :ll_tutup FROM subkelompok, perkiraan, kelompok WHERE (subkelompok.sk_kode=perkiraan.sk_kode ) and ( kelompok.kp_kode = subkelompok.kp_kode ) and ( ( kelompok.kp_nama = 'CAPITAL' ) AND ( substring(perkiraan.pk_kode,3,1) = '2' ) ) ; open c_modal ; for ll_i = 1 to ll_tutup fetch c_modal into :ls_pk_kode, :ldb_debet,& :ldb_kredit; ls_pk_tmp = left(ls_pk_kode,2) + '1' + & right(ls_pk_kode,7) //perkiraan setoran modal //tambahkan modal dengan setoran dan //kurangi modal dengan prive/deviden UPDATE perkiraan SET pk_saldo_kredit = pk_saldo_kredit + & pk_mutasi_kredit - ( :ldb_debet - :ldb_kredit ) WHERE ( perkiraan.pk_kode = :ls_pk_tmp ) ; Next Close c_modal ; //Ambil kode perkiraan Laba ditahan SELECT perkiraan.pk_kode INTO :ls_pk_kode_re FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode ) and (kelompok.kp_kode = subkelompok.kp_kode ) and ( ( kelompok.kp_nama = 'RT-EARNING' ) ) ;

Page 87: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

240

//Tambahkan semua mutasi ke salado awal (asset) DECLARE c_assets CURSOR FOR SELECT perkiraan.pk_kode, perkiraan.pk_saldo_debet, perkiraan.pk_saldo_kredit, perkiraan.pk_mutasi_debet, perkiraan.pk_mutasi_kredit FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode ) and (kelompok.kp_kode=subkelompok.kp_kode ) and ( kelompok.kp_nama = 'ASSETS' ) ; SELECT count( perkiraan.pk_kode ) INTO :ll_data FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode ) and (kelompok.kp_kode=subkelompok.kp_kode ) and (kelompok.kp_nama = 'ASSETS' ) ; open c_assets ; for ll_i = 1 to ll_data fetch c_assets into :ls_pk_kode,:ldb_sld_debet, :ldb_sld_kredit,:ldb_mut_debet,:ldb_mut_kredit ; ldb_saldo = ldb_sld_debet - ldb_sld_kredit + ldb_mut_debet - ldb_mut_kredit //Normal saldo adalah debet if ldb_saldo > 0 then ldb_sld_debet = ldb_saldo ldb_sld_kredit= 0 else ldb_sld_debet = 0 ldb_sld_kredit= abs( ldb_saldo ) end if UPDATE perkiraan SET pk_saldo_debet = :ldb_sld_debet, pk_saldo_kredit = :ldb_sld_kredit WHERE perkiraan.pk_kode = :ls_pk_kode ; Next Close c_assets ; //Tambahkan semua mutasi ke salado awal (utang) DECLARE c_utang CURSOR FOR SELECT perkiraan.pk_kode, perkiraan.pk_saldo_debet, perkiraan.pk_saldo_kredit, perkiraan.pk_mutasi_debet, perkiraan.pk_mutasi_kredit

Page 88: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

241

FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode ) and (kelompok.kp_kode =subkelompok.kp_kode ) and (kelompok.kp_nama = 'LIABILITIES' ) ; SELECT count( perkiraan.pk_kode ) INTO :ll_data FROM subkelompok, perkiraan, kelompok WHERE (perkiraan.sk_kode=subkelompok.sk_kode ) and (kelompok.kp_kode=subkelompok.kp_kode ) and ( kelompok.kp_nama = 'LIABILITIES' ) ; open c_utang ; for ll_i = 1 to ll_data fetch c_utang into :ls_pk_kode,:ldb_sld_debet,& :ldb_sld_kredit,:ldb_mut_debet,& :ldb_mut_kredit ; ldb_saldo = ldb_sld_kredit - ldb_sld_debet + & ldb_mut_kredit - ldb_mut_debet //Normal saldo adalah kredit if ldb_saldo > 0 then ldb_sld_debet = 0 ldb_sld_kredit= ldb_saldo else ldb_sld_debet = abs( ldb_saldo ) ldb_sld_kredit= 0 end if UPDATE perkiraan SET pk_saldo_debet = :ldb_sld_debet, pk_saldo_kredit = :ldb_sld_kredit WHERE perkiraan.pk_kode = :ls_pk_kode ; Next Close c_utang ; //Laba ditahan + laba/rugi UPDATE perkiraan SET pk_saldo_kredit = pk_saldo_kredit + :ldb_rl , pk_tanggal= :ld_tanggal WHERE pk_kode= :ls_pk_kode_re ; //Nolkan mutasi UPDATE perkiraan SET pk_mutasi_debet = 0, pk_mutasi_kredit = 0, pk_tanggal = :ld_tanggal ; if sqlca.sqlnrows < 0 then

Page 89: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

242

rollback using sqlca; messagebox("Informasi",& "Tutup buku gagal!",Information!,Ok!,1) Close ( parent ) return end if messagebox("Information",& "Tutup buku selesai!",Information!,Ok!,1) Close ( parent )

7.8 Window Preview Window preview adalah window yang digunakan untuk menampilkan data ke layar dalam mode print preview (print layout) dan dapat dicetak ke printer. Pekerjaan yang sering dilakukan pada window ini adalah setup printer, pindah halaman (maju/mundur), memperbesar atau memperkecil tampilan (zoom) dan mencetak ke printer. Semua pekerjaan ini akan dilakukan oleh DataWindow yang akan dibahas pada Bab 8.

7.8.1 Pembuatan Window

Untuk membuat window preview laporan, ikuti langkah-langkah di bawah ini:

1. Lakukan seperti membuat window-window sebelumnya.

2. Ketikkan Title window Priview Laporan.

3. Berikan tipe window Main.

4. Klik tombol select (…) MenuName untuk memilih menu sheet laporan yang disimpan dalam file mylibrary.pbl.

5. Klik menu m_laporan.

6. Klik OK.

7. Klik icon Save.

8. Ketikkan nama window w_preview.

9. Klik file pustaka mylibrary.pbl.

10. Klik OK.

Page 90: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

243

7.8.2 Pembuatan Bar Sheet

Bar sheet digunakan sebagai bantalan untuk menempatkan kontrol gambar (logo perusahaan) dan kontrol DataWindow pemanggilan data (retrieve). Untuk membuat bar sheet, ikuti langkah-langkah di bawah ini:

1. Klik icon Picture dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Pircture control.

2. Klik area di atas bagian pojok kiri atas, maka akan terbentuk kontrol gambar dengan nama p_1.

3. Klik kontrol gambar p_1:

Klik tab General.

Ganti nama kontrol gambar p_1 menjadi p_bar.

Klik tombol select (…) PictureName.

Pilih file gambar barputih.bmp.

4. Posisi dan ukuran bar:

Klik tab Other.

Ketikkan 0 pada kotak isian X dan Y.

Ketikkan 1362 pada kotak isian Width.

Ketikkan 156 pada kotak isian Height.

5. Kontrol gambar logo perusahaan:

Klik kontrol p_bar.

Klik icon Picture dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Picture control.

Klik area di atas pojok kiri atas kontrol gambar p_bar (bertumpuk dengan kontrol p_bar), maka akan terbentuk kontrol p_1.

Ganti nama kontrol gambar p_1 menjadi p_logo.

Page 91: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

244

Klik tombol select (…) PictureName, kemudian pilih file gambar logo perusahaan. Sebagai contoh, penulis menggunakan file gambar power-it.jpg.

Atur ukuran tampilan gambar logo.

6. Kontrol DataWindow Panggil:

Klik tab kontrol p_bar.

Klik icon DataWindow dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create DataWindow control.

Klik area di sebelah kanan kontrol st_cari, maka akan terbentuk kontrol dw_1.

Ganti nama kontrol dw_1 menjadi dw_panggil.

Atur posisi dan ukuran kontrol.

7.8.3 Pembuatan Kontrol DataWindow

Kontrol DataWindow preview (dw_preview) digunakan untuk menghubungkan window preview dengan obyek DataWindow dan menampilkan data dalam mode print preview. Langkah-langkah untuk membuat kontrol DataWindow master adalah sebagai berikut:

1. Klik icon DataWindow dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create DataWindow control.

2. Klik area di sebelah kanan kontrol p_logo, maka akan terbentuk kontrol dw_1.

3. Ganti nama kontrol dw_1 menjadi dw_preview.

4. Berikan tanda centang pada kotak cek HScrollBar dan VScrollBar.

5. Atur ukuran dan posisi kontrol.

Page 92: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

245

p_logo p_bar dw_panggil dw_preview

Gambar 7.12 Layout Window Preview

7.8.4 Skrip Window

Ada 4 (empat) event pada window preview yang harus Anda berikan skrip, yaitu event open, resize, penekanan tombol pada kontrol dw_panggil, dan rbuttondown pada kontrol dw_preview.

Event Resize

Pada event ini Anda dapat menyesuaikan ukuran tampilan kontrol p_bar dan dw_preview. Skrip resize window w_preview selengkapnya adalah sebagai berikut: p_bar.width = newWidth dw_preview.width = newWidth dw_preview.y = (p_bar.y + p_bar.height) dw_preview.height = newHeight - (p_bar.y + p_bar.height)

Event Open

Saat window dibuka, tempatkan kontrol dw_panggil di tengah-tengah window dengan memanggil fungsi f_center_dw(), lalu baca parameter yang dilewatkan untuk mengambil string obyek DataWindow laporan, dan hubungkan kontrol dw_preview dengan database.

Periksa apakah ada DataWindow pemanggil laporan? Jika ada maka isi properti DataObject pada kontrol dw_panggil dengan is_dw_pgl, hubungkan kontrol dw_panggil dengan database, buat baris kosong

Page 93: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

246

untuk memberikan kesempatan kepada pemakai untuk memilih kode perkiraan (khusus pada laporan buku besar), selanjutnya panggil/tampilkan laporan sesuai dengan keymaster pada window sheet. Sebaliknya jika tidak ada DataWindow pemanggil laporan berarti laporan ditampilkan sesuai dengan data yang ditampilkan pada window sheet, yaitu dengan menyalin isi kontrol DataWindow dw_master ke kontrol DataWindow dw_preview.

Ubah tampilan laporan seperti hasil cetakan (preview) dengan mengisi properti preview dengan string yes dan tampilkan tanda mistar. Skrip event open selengkapnya adalah sebagai berikut: string ls_parm, ls_dw_rpt,ls_dw_pgl ls_parm = message.StringParm ls_dw_rpt = left( ls_parm, pos( ls_parm, '!') -1 ) ls_dw_pgl = right( ls_parm, len( ls_parm ) - ( len( & ls_dw_rpt ) + 1 ) ) dw_preview.dataobject = ls_dw_rpt dw_preview.settransobject(sqlca) if left( dw_preview.dataobject, 7 ) = 'dwo_rpt' then if ls_dw_pgl <> '' then dw_panggil.dataobject = ls_dw_pgl dw_panggil.settransobject(sqlca) dw_panggil.visible = true dw_panggil.scrolltorow(dw_panggil.insertrow(0)) if left( dw_preview.dataobject, & 10 ) = 'dwo_rpt_rl' then dw_panggil.setitem(1,"tahun",& year(today())) dw_panggil.setitem(1,"kd_step",'1') end if dw_panggil.setfocus() else dw_preview.retrieve() end if else dw_panggil.visible = false if isvalid( w_sheet ) then dw_preview.object.data = w_sheet.dw_master.object.data // dw_preview.object.p_logo.filename= gs_logo dw_preview.object.perusahaan.text= gs_perusahaan dw_preview.object.motto.text = gs_motto end if end if

Page 94: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

247

dw_preview.object.datawindow.print.preview = 'yes' dw_preview.Object.DataWindow.print.Preview.Rulers = 'yes' f_center_dw ( dw_panggil )

User Event ue_tombol

User event ini berfungsi sebagai konfirmasi bahwa laporan yang akan ditampilkan sesuai dengan pilihan yang telah dilakukan pemakai.

Untuk membuat dan mengetikkan skrip user event ue_tombol pada kontrol DataWindow, ikuti langkah-langkah di bawah ini:

1. Klik tab Layout.

2. Klik kanan mouse pada kontrol DataWindow dw_panggil dan pilih Script.

3. Klik dropdown event dan pilih (New Event).

4. Ketikkan ue_tombol pada Event Name.

5. Klik dropdown EventID dan pilih pbm_dwnkey.

6. Ketikkan skrip di bawah ini: string ls_pk_kode accepttext() ls_pk_kode = getitemstring(1,'pk_kode') dw_preview.retrieve(ls_pk_kode) dw_preview.object.datawindow.print.preview = 'yes' dw_preview.Object.DataWindow.print.Preview.Rulers = 'yes'

Pembahasan tentang obyek DataWindow pemanggil buku besar akan dibahas pada Bab 8.

Event rbuttondown

Skrip pada event ini hanya berfungsi sebagai variasi tampilan menu Tampilan dan bersifat opsional. Untuk mengetikkan skrip Event rbuttondown, caranya adalah sebagai berikut:

1. Klik tab Layout.

2. Klik kanan mouse pada kontrol dw_preview dan pilih Script.

3. Klik dropdown event dan pilih event rbuttondown.

4. Ketikkan skrip di bawah ini:

Page 95: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

248

m_laporan lm_menuid //deklarasikan variabel lm_menuid secara local lm_menuid = parent.menuid //isi variabel lm_menuid dengan m_report //Tempatkan posisi menu Display pada posisi mouse diklik lm_menuid.m_tampilan.PopMenu (parent.PointerX(), parent.PointerY())

7.9 Window Pilihan Cetak Window pilihan cetak (print opntion) adalah window yang digunakan untuk mengatur printer dan pemilihan halaman yang akan dicetak ke printer. Dalam buku ini penulis menggunakan window w_dw_print_options dari Examples PowerBuilder yang telah diubah tampilan dan teksnya dan kemudian penulis simpan ulang dengan nama w_pilihan_cetak.

Gambar 7.13 Layout Window Pilihan Cetak

7.10 Window Ukuran Kertas Window ukuran kertas adalah window untuk menentukan ukuran kerstas dan batas-batas (margin) kertas pada laporan.

Page 96: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

249

7.10.1 Pembuatan Window

Untuk membuat window laporan, ikuti langkah-langkah di bawah ini:

1. Lakukan seperti membuat window-window sebelumnya.

2. Ketikkan Ukuran kertas dan Margin sebagai title.

3. Gunakan tipe window restponse.

4. Klik tab Other, ketikkan 1467 pada kotak isian Width dan 1004 pada kotak isian Height.

5. Klik icon Save.

6. Ketikkan nama window w_ukuran_kertas.

7. Klik file pustaka mylibrary.pbl.

8. Klik OK.

p_bar st_judul tabpage_1 tab_1

Gambar 7.14 Layout Sementara Window Ukuran Kertas

7.10.2 Pembuatan Bar Sheet

Bar sheet digunakan sebagai bantalan untuk menempatkan kontrol teks judul. Untuk membuat bar sheet, ikuti langkah-langkah di bawah ini:

Page 97: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

250

1. Klik icon Picture dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Pircture control.

2. Klik area di atas bagian pojok kiri atas, maka akan terbentuk kontrol gambar dengan nama p_1.

3. Klik kontrol gambar p_1:

Klik tab General.

Ganti nama kontrol gambar p_1 menjadi p_bar.

Klik tombol select (…) PictureName.

Pilih file gambar barputih.bmp.

4. Posisi dan ukuran bar:

Klik tab Other.

Ketikkan 0 pada kotak isian X dan Y.

Ketikkan 1463 pada kotak isian Width.

Ketikkan 112 pada kotak isian Height.

5. Kontrol teks judul:

Klik kontrol p_bar.

Klik icon Static Text dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Static Text control.

Klik area di atas pojok kiri atas kontrol gambar p_bar (bertumpuk dengan kontrol p_bar), maka akan terbentuk kontrol st_1.

Ganti nama kontrol gambar st_1 menjadi st_judul.

Ketikkan UKURAN KERTAS DAN MARGIN pada kotak isian Text.

Berikan warna putih pada background teks.

Atur ukuran tampilan kontrol.

Page 98: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

251

7.10.3 Pembuatan Tab

Tab digunakan untuk pilihan ukuran kertas dan batas-batas (margin) kertas. Untuk membuat tab ikuti langkah-langkah di bawah ini:

1. Klik icon Tab dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Tab control.

2. Klik area di bawah sebelah kiri kontrol p_bar, maka akan terbentuk kontrol tab_1 dan tabpage_1.

3. Klik arean tab_1, klik tab Other, ketikkan 1362 pada kotak isian Width dan 636 pada kotak isian Height.

4. Kontrol tabpage_1:

Tabpage_1 digunakan untuk menentukan kertas seperti orientasi kertas, ukuran kertas, dan sumber kertas. Berikut ini adalah langkah-langkah untuk membuat tabpage_1.

Klik area kontrol tabpage_1, klik tab TabPage, lalu ganti teks none dengan Kertas dalam kotak isian TabText.

Klik icon GroupBox dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create GroupBox control. Klik area di pojok kiri atas kontrol tabpage_1, maka akan terbentuk kontrol gb_1. Ganti nama kontrol gb_1 menjadi gb_kertas dan ganti teks none menjadi Kertas dalam kotak isian Text.

Klik icon Text dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Text control. Klik area di pojok kiri atas kontrol gb_kertas, maka akan terbentuk kontrol st_1. Ganti ganti teks none menjadi Orientasi: dalam kotak isian Text.

Klik icon Text dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Text control. Klik area di bawah kontrol st_1, maka akan terbentuk kontrol st_2. Ganti ganti teks none menjadi Ukuran: dalam kotak isian Text.

Klik icon Text dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Text control. Klik area di bawah kontrol st_2, maka akan

Page 99: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

252

terbentuk kontrol st_3. Ganti ganti teks none menjadi Sumber: dalam kotak isian Text.

Klik icon DropDownListBox dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create DropDownListBox control. Klik area di sebelah kanan kontrol st_1, maka akan terbentuk kontrol ddlb_1. Ganti menjadi ddlb_orientasi. Klik tab Items, ketikkan Default pada kotak isian item dan tekan tombol Enter, ketikkan Landscape pada kotak isian item dan tekan tombol Enter dan ketikkan Portrait pada kotak isian item.

Klik icon DropDownListBox dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create DropDownListBox control. Klik area di sebelah kanan kontrol st_1, maka akan terbentuk kontrol ddlb_1 dan ganti menjadi ddlb_ukuran. Klik tab Items, kemudian ketikkan ukuran kertas di bawah ini secara berurutan dan akhiri dengan menekan Enter setiap barisnya:

Default paper size for the printer1

Letter 8 1/2 x 11 in2

LetterSmall 8 1/2 x 11in3

Tabloid 17 x 11 inches4

Ledger 17 x 11 in5

Legal 8 1/2 x 14 in6

Statement 5 1/2 x 8 1/2 in7

Executive 7 1/4 x 10 1/2 in8

A3 297 x 420 mm9

A4 210 x 297 mm10

A4 Small 210 x 297 mm11

A5 148 x 210 mm12

B4 250 x 354 mm13

B5 182 x 257 mm14

Folio 8 1/2 x 13 in15

Page 100: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

253

Quarto 215 x 275mm16

10x14 in17

11x17 in18

Note 8 1/2 x 11 in19

Envelope #9 3 7/8 x 8 7/820

Envelope #10 4 1/8 x 9 1/221

Envelope #11 4 1/2 x 10 3/822

Envelope #12 4 x 11 1/27623

Envelope #14 5 x 11 1/224

C size sheet25

D size sheet26

E size sheet27

Envelope DL 110 x 220mm28

Envelope C5 162 x 229 mm29

Envelope C3 324 x 458 mm30

Envelope C4 229 x 324 mm31

Envelope C6 114 x 162 mm32

Envelope C65 114 x 229 mm33

Envelope B4 250 x 353 mm34

Envelope B5 176 x 250 mm35

Envelope B6 176 x 125 mm36

Envelope 110 x 230 mm37

Envelope Monarch 3.875 x 7.5 in38

6 3/4 Envelope 3 5/8 x 6 1/2 in39

US Std Fanfold 14 7/8 x 11 in40

German Std Fanfold 8 1/2 x 12 in41

German Legal Fanfold 8 1/2 x 13 in

Page 101: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

254

Klik icon DropDownListBox dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create DropDownListBox control. Klik area di sebelah kanan kontrol st_1, maka akan terbentuk kontrol ddlb_1. Ganti menjadi ddlb_sumber. Klik tab Items, kemudian ketikkan sumber kertas (paper source) di bawah ini secara berurutan dan akhiri dengan menekan Enter setiap barisnya.

Default1

Upper2

Lower3

Middle4

Manual5

Envelope6

Envelope manual7

Auto8

Tractor9

Gambar 7.15 Layout sementara window ukuran kertas dengan Tabpage_1

Smallfmt10

Largefmt11

Page 102: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

255

Large capacity14

Cassette

5. Kontrol tabpage_2:

Tabpage_2 digunakan untuk menentukan batas-batas (margin) kertas. Berikut ini adalah langkah-langkah untuk membuat tabpage_2.

Klik kanan mouse kontrol tab_1, pilih menu Inser TabPage, maka terbentuk kontrol tabpage_2.

Klik area kontrol tabpage_2, klik tab TabPage, ganti teks none dengan Margin dalam kotak isian TabText.

Klik icon GroupBox dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create GroupBox control. Klik area di pojok kiri atas kontrol tabpage_2, maka akan terbentuk kontrol gb_1. Ganti nama kontrol gb_1 menjadi gb_margin dan ganti teks none menjadi Margin dalam Centimeter dalam kotak isian Text.

Klik icon Text dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Text control. Klik area di pojok kiri atas kontrol gb_margin, maka akan terbentuk kontrol st_4. Ganti ganti teks none menjadi Kiri: dalam kotak isian Text.

Klik icon EditMask dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create EditMask control. Klik area di sebelah kanan kontrol st_4, maka akan terbentuk kontrol em_1. Ganti dengan em_kiri. Klik tab Mask, klik dropdown MaskDataType dan ketikkan ###.## dalam kotak isian Mask.

Klik icon Text dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Text control. Klik area di sebelah kanan kontrol em_kiri, maka akan terbentuk kontrol st_5. Ganti ganti teks none menjadi Kanan: dalam kotak isian Text.

Klik icon EditMask dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create EditMask control. Klik area di sebelah kanan kontrol st_5, maka akan terbentuk kontrol em_2 dan ganti dengan

Page 103: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

256

em_kanan. Klik tab Mask, klik dropdown MaskDataType dan ketikkan ###.## dalam kotak isian Mask.

Klik icon Text dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Text control. Klik area di bawah kontrol st_4 dan sejajar dengan kontrol em_kiri, maka akan terbentuk kontrol st_6. Ganti ganti teks none menjadi Atas: dalam kotak isian Text.

Klik icon EditMask dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create EditMask control. Klik area di sebelah kanan kontrol st_6, maka akan terbentuk kontrol em_3 dan ganti dengan em_atas. Klik tab Mask, klik dropdown MaskDataType dan ketikkan ###.## dalam kotak isian Mask.

Klik icon Text dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create Text control. Klik area di bawah kontrol st_5 dan sejajar dengan kontrol em_kanan, maka akan terbentuk kontrol st_7. Ganti ganti teks none menjadi Bawah : dalam kotak isian Text.

Klik icon EditMask dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create EditMask control. Klik area di sebelah kanan kontrol st_7, maka akan terbentuk kontrol em_4 dan ganti dengan em_bawah. Klik tab Mask, klik dropdown MaskDataType dan ketikkan ###.## dalam kotak isian Mask.

6. Kontrol CommandButton OK:

Klik icon CommandButtorn dalam PainterBar1 atau klik dropdown kontrol untuk menampilkan icon kontrol, kemudian klik icon Create CommandButtorn control. Klik area di bawah atas kontrol tab_1, maka akan terbentuk kontrol cb_1. Ganti nama kontrol cb_1 menjadi cb_ok dan ganti teks none menjadi OK dalam kotak isian Text.

Page 104: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

257

Gambar 7.16 Layout window ukuran kertas

7. Kontrol icon Save untuk menyimpan perubahan.

8. Struktur:

Struktur di sini digunakan menampung properti kertas. Langkah-langkah untuk membuat struktur properti kertas adalah seperti di bawah ini:

Klik icon New dalam PainterBar1.

Klik tab Pb Object.

Klik dropdown Type dan klik integer.

Ketikkan i_kiri dalam kotak isian Variable Name.

Tekan tombol Enter.

Ulangi langkah d dan e di atas untuk membuat variabel i_kanan, i_atas, i_bawah, i_orientasi, i_ukuran dan i_sumber.

Klik icon Save.

Klik file pustaka mylibrary.pbl tempat penyimpanan struktur.

Ketikkan str_ukuran_kertas.

Klik tombol OK.

Page 105: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

258

7.10.4 Skrip Window

Ada 2 (empat) event pada window ukuran kertas yang harus Anda berikan skrip, yaitu event open, clicked pada kontrol cb_ok.

Event Open

Saat window dibuka, tempatkan posisi window di tengah-tengah window dengan memanggil fungsi f_center_w(this). Deklarasikan variabel bertipe struktur dengan obyek str_ukuran_kertas, kemudian isi masing-masing properti pada tab kertas. Skrip event open selengkapnya adalah sebagai berikut: f_center_w( this ) str_ukuran_kertas str_kertas str_kertas = message.powerobjectparm tab_1.tabpage_margin.em_kiri.text = string(str_kertas.i_kiri) tab_1.tabpage_margin.em_kanan.text = string(str_kertas.i_kanan) tab_1.tabpage_margin.em_atas.text = string(str_kertas.i_atas) tab_1.tabpage_margin.em_bawah.text = string(str_kertas.i_bawah) tab_1.tabpage_kertas.ddlb_orientasi.selectitem(str_kertas.i_orientasi) tab_1.tabpage_kertas.ddlb_ukuran.selectitem(str_kertas.i_ukuran) tab_1.tabpage_kertas.ddlb_sumber.selectitem(str_kertas.i_sumber)

Event Clicked kontrol cb_ok

Event ini digunakan untuk mengambil propeti kertas dan dikembalikan dengan fungsi Closewithreturn(). Untuk mengetikkan skrip event clicked kontrol cb_ok, ikuti langkah-langkah berikut ini:

1. Klik tab Layout.

2. Klik kanan mouse pada kontrol DataWindow cb_ok dan pilih Script.

3. Ketikkan skrip di bawah ini: str_ukuran_kertas str_kertas string ls_orientasi, ls_ukuran, ls_sumber ls_orientasi= tab_1.tabpage_kertas.ddlb_orientasi.text ls_ukuran = tab_1.tabpage_kertas.ddlb_ukuran.text ls_sumber = tab_1.tabpage_kertas.ddlb_sumber.text str_kertas.i_kiri = double(& tab_1.tabpage_margin.em_kiri.text) * 1000 str_kertas.i_kanan = double(& tab_1.tabpage_margin.em_kanan.text) * 1000

Page 106: Membuat Aplikasi GL dengan PowerBuilder 9.0 dan SQL Server 2000

259

str_kertas.i_atas = double(& tab_1.tabpage_margin.em_atas.text) * 1000 str_kertas.i_bawah = double(& tab_1.tabpage_margin.em_bawah.text) * 1000 str_kertas.i_orientasi = & tab_1.tabpage_kertas.ddlb_orientasi.selectitem(& ls_orientasi,0) - 1 str_kertas.i_ukuran = & tab_1.tabpage_kertas.ddlb_ukuran.selectitem(& ls_ukuran,0) - 1 str_kertas.i_sumber = & tab_1.tabpage_kertas.ddlb_sumber.selectitem(& ls_sumber,0) - 1 Closewithreturn(parent, str_kertas)

4. Klik icon Save untuk menyimpan perubahan.