Sebuah table digunakan untuk menyimpan data. Data tersebut bisa bermacam - macam jenisnya. Kebanyakan data yang disimpan adalah data text...yang tentunya dengan type data yang bermacam - macam dari integer, numeric, char dan lain - lain. Tetapi ada kalanya kita perlu juga untuk menyimpan data selain text, yaitu misalnya Gambar. Data gambar ini biasanya terdapat pada table yang digunakan untuk menyimpan data - data profil baik, karyawan, mahasiswa, lokasi, bangunan dan lain - lain.
Di dalam Visual Foxpro atau lebih tepatnya jika kita menggunakan table bawaan Visual Foxpro yaitu DBF, ada beberapa cara atau teknik yang bisa digunakan untuk menyimpan gambar ke table. Beberapa teknik tersebut otomatis ada kelebihan dan juga ada kelemahannya. Untuk menyingkat pembahasan, sekarang kita langsung coba saja teknik untuk menyimpan gambar ke table tersebut :
Teknik (Save Url Image)
Dalam cara ini yang disimpan di dalam table adalah URL atau lokasi dari gambar yang berada di dalam disk / komputer kita. Urutan hal yang diperhatikan dan dipersiapkan untuk menggunakan teknik ini adalah :
- Buat 1 Field dengan type Character dengan panjang 254.
- Dalam transaksi di form, simpan URL gambar dan masukkan ke Field yang telah dibuat untuk menyimpan gambar tersebut. Contoh misal gambar tersebut sudah ditampilkan melalui kontrol image, maka bisa mengambil nilai dari property picture (image.picture) untuk disimpan ke table.
- Dan bila ingin menampilkan gambar ke kontrol image dari data table, bisa langsung atur property picture (image.picture) dengan nilai yang ada di Field yang digunakan untuk menyimpan gambar tersebut.
- Setelah table jadi dan gambar ingin ditampikan di report, berikut urutan langkahnya : (1) tambahkan kontrol "Picture/OLE Bound Control" ke dalam report, (2) atur Propertiesnya di Tab "General", di bagian "Control Source Type" pilih "Image File Name" dan (3) di bagian "Control Source" masukkan nama field gambar tersebut.
- Teknik ini adalah teknik yang sering digunakan, tetapi teknik ini memiliki kelemahan yaitu yang tersimpan di table sebenarnya bukan gambar melainkan hanya lokasi gambar, jadi ada kemungkinan gambar bisa dihapus atau diubah tanpa harus masuk ke program atau mengakses table terlebih dahulu. Selain itu bila nanti table di copy dan dijalankan atau dipake di tempat lain maka gambar tidak bisa secara otomatis ikut tercopy. Tetapi kelemahan itu sebenarnya bisa diatasi dengan sedikit kreatifitas dari teman - teman Foxpro Mania sekalian dengan sedikit logika untuk melakukan pengaturan File..!!!
Teknik berikut ini mencoba untuk benar - benar menyimpan gambar dan memasukkannya ke dalam table dengan memanfaatkan type data Memo yang dipunyai DBF. Dengan cara ini nanti File Gambar akan dikonversi ke text dan selanjutnya text tersebut yang akan disimpan di Memo. Text yang disimpan disini bukan hanya lokasi gambar tetapi memang gambar itu sendiri, jadi nanti jangan heran kalau ukuran table teman - teman akan membengkak jika menyimpan gambar yang berukuran besar. Urutan cara atau yang perlu diperhatikan untuk menggunakan teknik ini adalah sebagai berikut :
- Buat 1 Field dengan type data Memo.
- Dalam transaksi di form gunakan kontrol image dan property pictureval(perlu diingat kalau di teknik sebelumnya yang digunakan adalah propertypicture tapi disini adalah pictureval).
- Bila ingin menampilkan gambar ke image misal dengan melakukan pemilihan file gambar terlebih dahulu bisa pake syntaxImage1.Pictureval=FILETOSTR(GETPICT()). Fungsi Filetostradalah hal yang penting disini, karena fungsi itulah yang digunakan untuk mengkonversi dari file gambar ke text. Selanjutnya nilaiImage1.Pictureval lah yang yang dimasukkan atau disimpan ke dalam Field yang bertype data Memo tersebut.
- Bila ingin menampilkan gambar ke kontrol image dari data table, bisa langsung atur property pictureval (image.pictureval) dengan nilai yang ada di Field gambar yang bertype Memo tersebut.
- Dengan menggunakan teknik ini akan sedikit ribet saat ingin menampilkan image tersebut ke dalam report, tidak sesederhana seperti bila menggunakan teknik lainnya karena harus membuat program kecil untuk mengkonversi kembali data memo tersebut ke dalam file gambar dan kemudian baru ditampilkan ke report. Tetapi meskipun agak ribet sebenarnya sich gk terlalu ribet banget juga dan teknik ini lah yang lebih banyak disukai oleh para rekan - rekan senior Foxpro Mania.
Teknik ini adalah teknik dengan menggunakan salah satu fasilitas yang ada di DBF untuk menyimpan objek, yaitu dengan menggunakan field general. Dengan cara ini nanti gambar akan disimpan sebagai objek. Sebenarnya teknik ini lah yang paling sederhana, tetapi memiliki beberapa kelemahan yaitu diantaranya adalah gambar yang bisa dengan baik dikelola dengan teknik ini adalah gambar dengan format BMP dengan kualitas gambar yang tidak begitu baik. Sebenarnya gambar dengan format yang lain seperti JPG, GIF dan lain - lain, bisa disimpan tetapi nantinya bila ditampilkan baik di dalam form melalui kontrol image atau di dalam report yang tampak hanya berupa shortcut dan bukanlah gambar yang sebenarnya. Bila teman - teman ingin mencoba teknik ini berikut ini urutan langkahnya :
- Buat 1 Field dengan type General
- Untuk menyimpan ke dalam field general gunakan syntak :APPEND BLANKAPPEND GENERAL <nama field general> FROM <gambar yang akan ditambahkan>
- Bila ingin menampilkan ke dalam form dengan menggunakan kontrol, maka kontrol yang digunakan adalah kontrol OleBoundControl, tidak seperti teknik sebelumnya yang menggunakan kontrol image. Atur propertyControlSource dari OleBoundControl dengan nama field general yang digunakan untuk menampilkan gambar.
- Setelah table jadi dan gambar ingin ditampikan di report, urutan langkahnya adalah : (1) tambahkan kontrol "Picture/OLE Bound Control" ke dalam report, (2) atur Propertiesnya di Tab "General", di bagian "Control Source Type" pilih "General Field Name" dan (3) di bagian "Control Source" masukkan nama field general yang digunakan untuk menyimpan gambar tersebut. Meskipun teknik ini lebih sederhana daripada 2 teknik lainnya, tetapi teknik ini seringkali dihindari atau jarang digunakan yang dikarenakan beberapa kelemahan yang telah dijelaskan diatas. Sebagai catatan bila nanti meski telah menggunakan gambar dengan type BMP ternyata yang ditampilkan tetap hanya berupa shortcut, baik saat di ditampilkan dengan menggunakan OleBoundControl atau di dalam report, maka jalankan script ini assoc.bmp=Paint.Picture di dalam RUN atau di "Command Prompt" terlebih dahulu.
2 komentar:
Ribett. Amatt..pusing gmn save gmbarnya
knapa ya pake pictureval di win7 64 gak kluar gambar? padahal di OS lain normal2 saja. VFP SP2
Posting Komentar