Kamis, 23 September 2010

Memindah database MySQL tanpa menginstalnya

Tutorial berikut adalah bagaimana memindah database MySQL tanpa menginstal MySQL pada suatu komputer yang akan dijadikan server. Hal ini juga bisa dilakukan jika kita hendak membuat installer database suatu aplikasi secara praktis.
Contoh berikut adalah bagaimana memindah database MySQL pada partisi D: sehingga tidak masalah jika PC server mengalami kerusakan sehingga mengharuskan install ulang atau format pada partisi C:.
Hal yang perlu disiapkan adalah buat folder baru dengan nama "MYSQLKU" yang nantinya akan dipindahkan ke partisi D:, dan nantinya folder "MYSQLKU" ini akan berisi folder dan file sebagai berikut :
1. Folder "bin" berisi file : libmySQL.dll, mysql.exe, mysqld.exe, mysqld.map, mysqld.pdb, mysqldump.exe.
2. Folder "data" berisi folder "test", folder "mysql" dan folder lainnya sesuai dengan database yang anda miliki. Pokoknya copy aja semua isi folder "test", "mysql" dan folder data lain secara utuh.
3. Folder "MySQL Datafiles" berisi file ibdata1.
4. Folder "share" berisi folder "english" beserta isinya. (Pokoknya copy aja secara utuh folder "english")
5. File my.ini dengan perubahan setting isi file nya sebagai berikut :
port=3306
basedir="D:/MySQLKU/"
datadir="D:/MySQLKU/Data/"
innodb_data_home_dir="D:/MySQLKU/MySQL Datafiles/"
6. File mysql-install.bat, jika belum ada dapat dibuat dengan notepad kemudian save as nya sebagai All Files dengan nama mysql-install.bat. File inilah yang nantinya sebagai launcher database MySQL, dan cukup dieksekusi sekali saja, maka setiap kali PC server menyala service MySQL akan otomatis berjalan dengan sendirinya.
Adapun isi file mysql-install.bat sebagai berikut :
@echo off
net stop Mysqlku
sc delete Mysqlku
netsh firewall add allowedprogram D:\MYSQLKU\bin\mysqld.exe Mysqlku
D:\MYSQLKU\bin\mysqld.exe --install Mysqlku --defaults-file=D:/MYSQLKU/my.ini
net start Mysqlku
7. File mysql-uninstall.bat. Berfungsi untuk menghentikan service MySQL pada PC server. Isi file nya sebagai berikut.
@echo off
net stop Mysqlku
sc delete Mysqlku

Setelah semua file dan folder sudah disiapkan di folder "D:/MYSQLKU", tinggal eksekusi saja file mysql-install.bat. Maka service MySQL sudah dapat berjalan.
Untuk membuat File Installer database ini dapat menggunakan aplikasi sederhana semacam Winrar dengan Archiving options "Create SFX archive" dan ikuti petunjuk sederhananya.
Perlu diketahui meskipun total ukuran filenya bisa mencapai di atas 50MB, akan tetapi setelah melalui proses kompresi dengan Winrar ukuran file nya akan menurun secara drastis menjadi kurang dari separuhnya.
Demikian semoga membantu. mohon koreksi jika ada yang masih kurang.

Rabu, 22 September 2010

Terbilang Rupiah

Berikut ini akan ditampilakn listing terbilang dalam mata uang rupiah yang sederhana dan cukup panjang.
Yang dibutuhkan dalam fungsi ini adalah adanya 2 textbox txtter1 dan txtter2 serta 1 edit box untuk menampilkan terbilangnya.
Copy paste saja listing berikut dan buat method baru dengan nama terbilang.
Masukkan nominal uang dalam txtter1, kemudian buat command button untuk memanggil method terbilang, maka hasilnya akan ditampilan dalam edit box yang telah dibuat.
Selamat mencoba dan semoga membantu.
* xxxxxxxxxxxxxxxxx awal listing terbilang xxxxxxxxxxxxxxx
thisform.txtter2.value=str(thisform.pageframe1.page4.txtter1.value)
thisform.txtter1.inputmask="999,999,999,999.00"

x = alltrim(thisform.txtter2.value)
digit = len(x)
posisi = digit
satuan = substr(x,posisi,1)
belasan = substr(x,posisi-1,2)
puluhan = substr(x,posisi-1,1)
ratusan = substr(x,posisi-2,1)
ribuan = substr(x,posisi-3,1)
belasanribu = substr(x,posisi-4,2)
satuanribu = substr(x,posisi-3,1)
sepuluhanribu = substr(x,posisi-4,2)
puluhanribu = substr(x,posisi-4,1)
seratusanribu = substr(x,posisi-5,3)
ratusanribu = substr(x,posisi-5,1)
jutaan = substr(x,posisi-6,1)
belasanjuta = substr(x,posisi-7,2)
satuanjuta = substr(x,posisi-6,1)
sepuluhanjuta = substr(x,posisi-7,2)
puluhanjuta = substr(x,posisi-7,1)
seratusanjuta = substr(x,posisi-8,3)
ratusanjuta = substr(x,posisi-8,1)
milyar = substr(x,posisi-9,1)
belasanmilyar = substr(x,posisi-10,2)
satuanmilyar = substr(x,posisi-9,1)
sepuluhanmilyar = substr(x,posisi-10,2)
puluhanmilyar = substr(x,posisi-10,1)
seratusanmilyar = substr(x,posisi-11,3)
ratusanmilyar = substr(x,posisi-11,1)

terbilang1 =""

if satuan = "0"
terbilang1 = ""
else
if satuan = "1"
terbilang1 = "satu"
else
if satuan = "2"
terbilang1 = "dua"
else
if satuan = "3"
terbilang1 = "tiga"
else
if satuan = "4"
terbilang1 = "empat"
else
if satuan = "5"
terbilang1 = "lima"
else
if satuan = "6"
terbilang1 = "enam"
else
if satuan = "7"
terbilang1 = "tujuh"
else
if satuan = "8"
terbilang1 = "delapan"
else
if satuan = "9"
terbilang1 = "sembilan"
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif

terbilang2=""

if belasan = "10"
terbilang1 = "sepuluh"
else
if belasan = "11"
terbilang1 = "sebelas"
else
if belasan = "12"
terbilang1 = "dua belas"
else
if belasan = "13"
terbilang1 = "tiga belas"
else
if belasan = "14"
terbilang1 = "empat belas"
else
if belasan = "15"
terbilang1 = "lima belas"
else
if belasan = "16"
terbilang1 = "enam belas"
else
if belasan = "17"
terbilang1 = "tujuh belas"
else
if belasan = "18"
terbilang1 = "delapan belas"
else
if belasan = "19"
terbilang1 = "sembilan belas"
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif

if puluhan = "2"
terbilang2 = "dua puluh "
else
if puluhan = "3"
terbilang2 = "tiga puluh "
else
if puluhan = "4"
terbilang2 = "empatpuluh "
else
if puluhan = "5"
terbilang2 = "lima puluh "
else
if puluhan = "6"
terbilang2 = "enam puluh "
else
if puluhan = "7"
terbilang2 = "tujuh puluh "
else
if puluhan = "8"
terbilang2 = "delapan puluh "
else
if puluhan = "9"
terbilang2 = "sembilan puluh "
endif
endif
endif
endif
endif
endif
endif
endif

terbilang3=""

if ratusan = "1"
terbilang3 = "seratus "
else
if ratusan = "2"
terbilang3 = "dua ratus "
else
if ratusan = "3"
terbilang3 = "tiga ratus "
else
if ratusan = "4"
terbilang3 = "empat ratus "
else
if ratusan = "5"
terbilang3 = "lima ratus "
else
if ratusan = "6"
terbilang3 = "enam ratus "
else
if ratusan = "7"
terbilang3 = "tujuh ratus "
else
if ratusan = "8"
terbilang3 = "delapan ratus "
else
if ratusan = "9"
terbilang3 = "sembilan ratus "
endif
endif
endif
endif
endif
endif
endif
endif
endif

terbilang4=""

if ribuan = "1" and (substr(x,posisi-5,2)="00" or digit=4)
terbilang4 = "seribu "
else
if ribuan = "1"
terbilang4 = "satu ribu "
else
if ribuan = "2"
terbilang4 = "dua ribu "
else
if ribuan = "3"
terbilang4 = "tiga ribu "
else
if ribuan = "4"
terbilang4 = "empat ribu "
else
if ribuan = "5"
terbilang4 = "lima ribu "
else
if ribuan = "6"
terbilang4 = "enam ribu "
else
if ribuan = "7"
terbilang4 = "tujuh ribu "
else
if ribuan = "8"
terbilang4 = "delapan ribu "
else
if ribuan = "9"
terbilang4 = "sembilan ribu "
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif
**************************** 0 s.d. 9999 oke *******************************************

terbilang5=""

if belasanribu = "10"
terbilang4 = "sepuluh ribu "
else
if belasanribu = "11"
terbilang4 = "sebelas ribu "
else
if belasanribu = "12"
terbilang4 = "dua belas ribu "
else
if belasanribu = "13"
terbilang4 = "tiga belas ribu "
else
if belasanribu = "14"
terbilang4 = "empat belas ribu "
else
if belasanribu = "15"
terbilang4 = "lima belas ribu "
else
if belasanribu = "16"
terbilang4 = "enam belas ribu "
else
if belasanribu = "17"
terbilang4 = "tujuh belas ribu "
else
if belasanribu = "18"
terbilang4 = "delapan belas ribu "
else
if belasanribu = "19"
terbilang4 = "sembilan belas ribu "
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif

if puluhanribu = "2"
terbilang5 = "dua puluh "
else
if puluhanribu = "3"
terbilang5 = "tiga puluh "
else
if puluhanribu = "4"
terbilang5 = "empat puluh "
else
if puluhanribu = "5"
terbilang5 = "lima puluh "
else
if puluhanribu = "6"
terbilang5 = "enam puluh "
else
if puluhanribu = "7"
terbilang5 = "tujuh puluh "
else
if puluhanribu = "8"
terbilang5 = "delapan puluh "
else
if puluhanribu = "9"
terbilang5 = "sembilan puluh "
endif
endif
endif
endif
endif
endif
endif
endif

if sepuluhanribu = "20"
terbilang5 = "dua puluh ribu "
else
if sepuluhanribu = "30"
terbilang5 = "tiga puluh ribu "
else
if sepuluhanribu = "40"
terbilang5 = "empat puluh ribu "
else
if sepuluhanribu = "50"
terbilang5 = "lima puluh ribu "
else
if sepuluhanribu = "60"
terbilang5 = "enam puluh ribu "
else
if sepuluhanribu = "70"
terbilang5 = "tujuh puluh ribu "
else
if sepuluhanribu = "80"
terbilang5 = "delapan puluh ribu "
else
if sepuluhanribu = "90"
terbilang5 = "sembilan puluh ribu "
endif
endif
endif
endif
endif
endif
endif
endif

terbilang6=""

if ratusanribu= "1"
terbilang6 = "seratus "
else
if ratusanribu= "2"
terbilang6 = "dua ratus "
else
if ratusanribu= "3"
terbilang6 = "tiga ratus "
else
if ratusanribu= "4"
terbilang6 = "empat ratus "
else
if ratusanribu= "5"
terbilang6 = "lima ratus "
else
if ratusanribu= "6"
terbilang6 = "enam ratus "
else
if ratusanribu= "7"
terbilang6 = "tujuh ratus "
else
if ratusanribu= "8"
terbilang6 = "delapan ratus "
else
if ratusanribu= "9"
terbilang6 = "sembilan ratus "
endif
endif
endif
endif
endif
endif
endif
endif
endif
* ******************** tepat seratusan ribu **************
if seratusanribu= "100"
terbilang6 = "seratus ribu "
else
if seratusanribu= "200"
terbilang6 = "dua ratus ribu "
else
if seratusanribu= "300"
terbilang6 = "tiga ratus ribu "
else
if seratusanribu= "400"
terbilang6 = "empat ratus ribu "
else
if seratusanribu= "500"
terbilang6 = "lima ratus ribu "
else
if seratusanribu= "600"
terbilang6 = "enam ratus ribu "
else
if seratusanribu= "700"
terbilang6 = "tujuh ratus ribu "
else
if seratusanribu= "800"
terbilang6 = "delapan ratus ribu "
else
if seratusanribu= "900"
terbilang6 = "sembilan ratus ribu "
endif
endif
endif
endif
endif
endif
endif
endif
endif

terbilang7 =""

if jutaan = "1"
terbilang7 = "satu juta "
else
if jutaan = "2"
terbilang7 = "dua juta "
else
if jutaan = "3"
terbilang7 = "tiga juta "
else
if jutaan = "4"
terbilang7 = "empat juta "
else
if jutaan = "5"
terbilang7 = "lima juta "
else
if jutaan = "6"
terbilang7 = "enam juta "
else
if jutaan = "7"
terbilang7 = "tujuh juta "
else
if jutaan = "8"
terbilang7 = "delapan juta "
else
if jutaan = "9"
terbilang7 = "sembilan juta "
endif
endif
endif
endif
endif
endif
endif
endif
endif

* xxxxxxxxxxx s.d 9 juta sih oke xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

terbilang8=""

if belasanjuta = "10"
terbilang7 = "sepuluh juta "
else
if belasanjuta = "11"
terbilang7 = "sebelas juta "
else
if belasanjuta = "12"
terbilang7 = "dua belas juta "
else
if belasanjuta = "13"
terbilang7 = "tiga belas juta "
else
if belasanjuta = "14"
terbilang7 = "empat belas juta "
else
if belasanjuta = "15"
terbilang7 = "lima belas juta "
else
if belasanjuta = "16"
terbilang7 = "enam belas juta "
else
if belasanjuta = "17"
terbilang7 = "tujuh belas juta "
else
if belasanjuta = "18"
terbilang7 = "delapan belas juta "
else
if belasanjuta = "19"
terbilang7 = "sembilan belas juta "
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif

if puluhanjuta = "2"
terbilang8 = "dua puluh "
else
if puluhanjuta = "3"
terbilang8 = "tiga puluh "
else
if puluhanjuta = "4"
terbilang8 = "empat puluh "
else
if puluhanjuta = "5"
terbilang8 = "lima puluh "
else
if puluhanjuta = "6"
terbilang8 = "enam puluh "
else
if puluhanjuta = "7"
terbilang8 = "tujuh puluh "
else
if puluhanjuta = "8"
terbilang8 = "delapan puluh "
else
if puluhanjuta = "9"
terbilang8 = "sembilan puluh "
endif
endif
endif
endif
endif
endif
endif
endif

if sepuluhanjuta = "20"
terbilang8 = "dua puluh juta "
else
if sepuluhanjuta = "30"
terbilang8 = "tiga puluh juta "
else
if sepuluhanjuta = "40"
terbilang8 = "empat puluh juta "
else
if sepuluhanjuta = "50"
terbilang8 = "lima puluh juta "
else
if sepuluhanjuta = "60"
terbilang8 = "enam puluh juta "
else
if sepuluhanjuta = "70"
terbilang8 = "tujuh puluh juta "
else
if sepuluhanjuta = "80"
terbilang8 = "delapan puluh juta "
else
if sepuluhanjuta = "90"
terbilang8 = "sembilan puluh juta "
endif
endif
endif
endif
endif
endif
endif
endif

terbilang9 =""

if ratusanjuta = "1"
terbilang9 = "seratus "
else
if ratusanjuta = "2"
terbilang9 = "dua ratus "
else
if ratusanjuta = "3"
terbilang9 = "tiga ratus "
else
if ratusanjuta = "4"
terbilang9 = "empat ratus "
else
if ratusanjuta = "5"
terbilang9 = "lima ratus "
else
if ratusanjuta = "6"
terbilang9 = "enam ratus "
else
if ratusanjuta = "7"
terbilang9 = "tujuh ratus "
else
if ratusanjuta = "8"
terbilang9 = "delapan ratus "
else
if ratusanjuta = "9"
terbilang9 = "sembilan ratus "
endif
endif
endif
endif
endif
endif
endif
endif
endif
* ******************** tepat seratusan juta **************
if seratusanjuta= "100"
terbilang9 = "seratus juta "
else
if seratusanjuta= "200"
terbilang9 = "dua ratus juta "
else
if seratusanjuta= "300"
terbilang9 = "tiga ratus juta "
else
if seratusanjuta= "400"
terbilang9 = "empat ratus juta "
else
if seratusanjuta= "500"
terbilang9 = "lima ratus juta "
else
if seratusanjuta= "600"
terbilang9 = "enam ratus juta "
else
if seratusanjuta= "700"
terbilang9 = "tujuh ratus juta "
else
if seratusanjuta= "800"
terbilang9 = "delapan ratus juta "
else
if seratusanjuta= "900"
terbilang9 = "sembilan ratus juta "
endif
endif
endif
endif
endif
endif
endif
endif
endif

terbilang10 =""

if milyar = "1"
terbilang10 = "satu milyar "
else
if milyar = "2"
terbilang10 = "dua milyar "
else
if milyar = "3"
terbilang10 = "tiga milyar "
else
if milyar = "4"
terbilang10 = "empat milyar "
else
if milyar = "5"
terbilang10 = "lima milyar "
else
if milyar = "6"
terbilang10 = "enam milyar "
else
if milyar = "7"
terbilang10 = "tujuh milyar "
else
if milyar = "8"
terbilang10 = "delapan milyar "
else
if milyar = "9"
terbilang10 = "sembilan milyar "
endif
endif
endif
endif
endif
endif
endif
endif
endif

* xxxxxxxxxxx s.d 9 milyar sih oke xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

terbilang11=""

if belasanmilyar = "10"
terbilang10 = "sepuluh milyar "
else
if belasanmilyar = "11"
terbilang10 = "sebelas milyar "
else
if belasanmilyar = "12"
terbilang10 = "dua belas milyar "
else
if belasanmilyar = "13"
terbilang10 = "tiga belas milyar "
else
if belasanmilyar = "14"
terbilang10 = "empat belas milyar "
else
if belasanmilyar = "15"
terbilang10 = "lima belas milyar "
else
if belasanmilyar = "16"
terbilang10 = "enam belas milyar "
else
if belasanmilyar = "17"
terbilang10 = "tujuh belas milyar "
else
if belasanmilyar = "18"
terbilang10 = "delapan belas milyar "
else
if belasanmilyar = "19"
terbilang10 = "sembilan belas milyar "
endif
endif
endif
endif
endif
endif
endif
endif
endif
endif

if puluhanmilyar = "2"
terbilang11 = "dua puluh "
else
if puluhanmilyar = "3"
terbilang11 = "tiga puluh "
else
if puluhanmilyar = "4"
terbilang11 = "empat puluh "
else
if puluhanmilyar = "5"
terbilang11 = "lima puluh "
else
if puluhanmilyar = "6"
terbilang11 = "enam puluh "
else
if puluhanmilyar = "7"
terbilang11 = "tujuh puluh "
else
if puluhanmilyar = "8"
terbilang11 = "delapan puluh "
else
if puluhanmilyar = "9"
terbilang11 = "sembilan puluh "
endif
endif
endif
endif
endif
endif
endif
endif

if sepuluhanmilyar = "20"
terbilang11 = "dua puluh milyar "
else
if sepuluhanmilyar = "30"
terbilang11 = "tiga puluh milyar "
else
if sepuluhanmilyar = "40"
terbilang11 = "empat puluh milyar "
else
if sepuluhanmilyar = "50"
terbilang11 = "limapuluh milyar "
else
if sepuluhanmilyar = "60"
terbilang11 = "enam puluh milyar "
else
if sepuluhanmilyar = "70"
terbilang11 = "tujuh puluh milyar "
else
if sepuluhanmilyar = "80"
terbilang11 = "delapan puluh milyar "
else
if sepuluhanmilyar = "90"
terbilang11 = "sembilan puluh milyar "
endif
endif
endif
endif
endif
endif
endif
endif

terbilang12 =""

if ratusanmilyar = "1"
terbilang12 = "seratus "
else
if ratusanmilyar = "2"
terbilang12 = "duaratus "
else
if ratusanmilyar = "3"
terbilang12 = "tigaratus "
else
if ratusanmilyar = "4"
terbilang12 = "empatratus "
else
if ratusanmilyar = "5"
terbilang12 = "limaratus "
else
if ratusanmilyar = "6"
terbilang12 = "enamratus "
else
if ratusanmilyar = "7"
terbilang12 = "tujuhratus "
else
if ratusanmilyar = "8"
terbilang12 = "delapanratus "
else
if ratusanmilyar = "9"
terbilang12 = "sembilanratus "
endif
endif
endif
endif
endif
endif
endif
endif
endif
* ******************** tepat seratusan milyar **************
if seratusanmilyar = "100"
terbilang12 = "seratus milyar "
else
if seratusanmilyar = "200"
terbilang12 = "duaratus milyar "
else
if seratusanmilyar = "300"
terbilang12 = "tigaratus milyar "
else
if seratusanmilyar = "400"
terbilang12 = "empatratus milyar "
else
if seratusanmilyar = "500"
terbilang12 = "limaratus milyar "
else
if seratusanmilyar = "600"
terbilang12 = "enamratus milyar "
else
if seratusanmilyar = "700"
terbilang12 = "tujuhratus milyar "
else
if seratusanmilyar = "800"
terbilang12 = "delapanratus milyar "
else
if seratusanmilyar = "900"
terbilang12 = "sembilanratus milyar "
endif
endif
endif
endif
endif
endif
endif
endif
endif


if val(thisform.txtter2.value) = 0
matauang = "nihil"
else
matauang = " rupiah"
endif

SEMUA=(terbilang12+ terbilang11 + terbilang10 + terbilang9 + terbilang8 + terbilang7 + terbilang6 + terbilang5 + terbilang4 + terbilang3 + terbilang2 + terbilang1 + matauang)

THISFORM.edit1.Value=PROPER(left(semua,1))+substr(semua,2,100)

* xxxxxxxxxxxxxxxxx akhir listing terbilang xxxxxxxxxxxxxxx

Selasa, 21 September 2010

Add Glass XP Widgets to your Visual Foxpro Screens

Google, Yahoo, Vista have all got them. Now so has Visual Foxpro and you. I am talking about those little apps called Widgets that you can use to clutter your screen with.

Using PNG graphics that are supported by VFP is one way to create very cool widgets. I have described here how PNG's with an Alpha mask can be used to show some cool glass-like pseudo "forms".

Now I will describe here how this can be extended to creating glass widgets. While we have always had widgets, and have used them, the technique described here will give you a draggable Glass Widget, similar to Vista. And best of all this can be achieved in XP!

For this post I will create a clock widget. You can download the complete source from the Attachment at the end of the post.

The clock is a simple VFP class that will autorun when dropped on a form and the form run. The trick behind the Glass effect is in the background PNG image of the class:


While it looks like a plain old black & white graphic, it contains an Alpha Channel mask embedded in it. The PNG format supports saving this mask in the image and the VFP image object respects and uses this mask. If you open this image in a paint program that supports masks, like Photoshop, (I use Paint Shop Pro) then you can see the mask.When this image is loaded into a VFP image object, the mask takes effect and makes certain areas transparent based on the information in the mask.

Thus all it takes is to insert an image object into a transparent container and the effect is complete. The clock class just adds the code for the date, year and movement of the hands. There is also code in the image class to allow dragging the container, so that the clock can be moved.Check out the code in the Mouse events of the image object class.

The clock can be instantiated in the _screen or, if you are using a top level form as the basis of your application, as I have described here and here, then this technique and class can be used.

Below you can see the Glass outer area that allows the background image to seep through. This area is also used to drag and drop the clock to a new location. The colours you can easily change since I have included the full source. Run the exe and drag the clock around. Careful when you drop it though, as we dont want to break the Glass! Smile [:)]

Here is the clock running inside a top level form.


http://weblogs.foxite.com/bernardbout/archive/2006/11/04/2798.aspx

Simple Login

Form login digunakan untuk memastikan user yang menggunakan aplikasi utama adalah user yang berhak. Contoh berikut adalah penggunaan form login dengan menggunakan database MySQL 5.1 dan konektor MySQL ODBC 5.1 Driver.

Sebelum menggunakan form tersebut pastikan telah dibuat dulu main program dengan nama main.prg dengan isi sebagai beikut :
*********************************************************************
set talk off
set dele on
set exclusive on
set safety off
set date short
PUBLIC koneksi, namakursor
koneksi=0
SET DATE BRITISH
SET CENTURY ON
SET EXCLUSIVE OFF
SET NOTIFY OFF
SET CARRY OFF
SET MULTILOCKS ON

lcLastSetPath=SET("PATH")
*CD "\co_program\"
SET PATH TO ;
clear all
DO FORM "c:/Co_Program/login.scx"
_screen.visible=.f.
read events
*************************************************
Serta harus dipastikan adanya tabel di MySql denan nama user column name c(10), pass c(10).
Buatlah property dengan nama baru,namakursor,koneksi.
Kemudian isilah script form login sebagai berikut :
*procedure init
ipdb="127.0.0.1"
userdb="root"
passdb="rahasia"
namedb="kopkarP"
SQLSETPROP(0,"DispLogin",3)
mstr = "DATABASE="+namedb+";SERVER="+ipdb+";port=3306;UID="+userdb+";PWD="+passdb+";provider=MSDASQLR;DRIVER={MySQL ODBC 5.1 Driver};"
THISFORM.Koneksi = SQLSTRINGCONNECT( mstr )
IF THISFORM.Koneksi <= 0
thisform.lbkonek.Caption="Koneksi Ke Server Database MySQL Gagal"
ELSE
thisform.lbkonek.Caption="Koneksi Ke Server Database MySQL Berhasil"
ENDIF
THISFORM.namakursor = "QT"+SUBSTR(SYS(2015), 5)
koneksi = thisform.koneksi
namakursor=thisform.namakursor
***************************************************************************
*Method tampil_data
SELECT ( namakursor )
THISFORM.text1.VALUE=pass
thisform.text2.Value=mac
THISFORM.REFRESH
***************************************************************************
*Procedure thisform.txtname.LostFocus
IF EMPTY( THISFORM.txtNAME.VALUE )
RETURN
ENDIF

IF Koneksi <= 0
=MESSAGEBOX("Anda Belum Koneksi Ke Server Database MySQL ", 0+16, "Konfirmasi")
QUIT
ELSE

mtf = namakursor
msql = "select * from user WHERE name = '" + THISFORM.txtname.Value + "';"
IF SQLEXEC(Koneksi, msql, "&mtf") <= 0
=MESSAGEBOX("Proses Query Ke MySQL Gagal", 0+16, "PESAN")
QUIT
RETURN
ENDIF

THISFORM.Baru = .T.
THISFORM.nilai_awal

IF USED("&mtf")
SELECT &mtf
GO TOP
IF !EOF()
THISFORM.Baru = .F.
THISFORM.tampil_data
ENDIF
ENDIF
RETURN
ENDIF
************************************************************
*Procedure cmd_ok.click

IF EMPTY( THISFORM.txtname.Value )
MESSAGEBOX("Username Harus diisi!!",0+48,"Perhatian")
THISFORM.Txtname.SETFOCUS()
RETURN
ENDIF
IF EMPTY( THISFORM.Txtpass.Value )
MESSAGEBOX("Password Harus diisi!!",0+48,"Perhatian")
THISFORM.Txtpass.SETFOCUS()
RETURN
ENDIF
SET EXACT ON
IF ALLTRIM(thisform.txtpass.Value)=ALLTRIM(thisform.text1.Value)
MESSAGEBOX('Anda mempunyai Hak Akses',0+64,'Informasi')
do FORM 'c:/co_program/main.scx' &&Jika user dan pass benar maka akan tampil form main.scx
THISFORM.RELEASE
ELSE
MESSAGEBOX('User atau Password salah',0+16,'Informasi')
ENDIF
************************************************************************
*Methode tampil_data
THISFORM.text1.VALUE = '/*56569as8*//656 '
THISFORM.REFRESH
************************************************************************
Keterangan :
object text1 ditampilkan visible=.F.

Demikian semoga membantu.

Interactive Searching

Berikut akan ditampilkan scipt pencarian dalam suatu tabel yang hasilnya akan dapat langsung ditampilkan dalam grid.
****-------------------------------------------------------------------------
*Procedure txtcari.interactivechange
****-------------------------------------------------------------------------
xfilter=UPPER(ALLTRIM(THISFORM.TXTCARI.Value))
Select * from ctabel where LIKE('*&xfilter*',UPPER(nama)) into cursor ctabel1
*? _TALLY
IF _TALLY=0
thisform.GRid1.recordsource ="ctabel"
thisform.aturtabel
GO TOP

ELSE
thisform.GRid1.RecordSource ="ctabel1"
thisform.aturtabel1
GO TOP
ENDIF

IF EMPTY(THIS.Value)
THISFORM.label1.visible= .F.
ELSE
THISFORM.label1.visible= .T.
IF _tally=0
THISFORM.label1.Caption="Tidak ada data dengan kriteria dimaksud"
ELSE
THISFORM.label1.Caption="Ditemukan sejumlah "+ALLTRIM(STR(_tally))+" data yang sesuai"
ENDIF
ENDIF
****-------------------------------------------------------------------------
Keterangan :
txtcari = text untuk pencarian berdasarkan nama
label1 = label untuk menampilkan keterangan jumlah data yang ditampilkan
grid1 = grid untuk menampilkan record hasil pencarian

method aturtabel = procedure pengaturan grid1
contoh isi method aturtabel
thisform..grid1.column1.ControlSource="ctabel.no_pen"
thisform.grid1.column2.ControlSource="ctabel.NAMA"
thisform.grid1.column3.ControlSource="ctabel.angsuran"
thisform.grid1.column4.ControlSource="ctabel.plafond"

Demikian semoga membantu. Mohon masukan jika ada yang lebih praktis....

Minggu, 19 September 2010

About Foxpro



Visual FoxPro adalah bahasa pemrograman berorientasi objek dan prosedural dari Microsoft. Awalnya bahasa pemrograman ini dikenal dengan nama FoxBASE yang diluncurkan oleh Fox Software pada awal 1984. Fox Technologies kemudian bergabung dengan Microsoft pada 1992 sehingga di depan nama FoxBASE ditambahkan awalan "Visual".

Versi terakhir FoxPro (9.0) dapat berjalan pada sistem operasi Mac OS, DOS, Windows, dan Unix. Visual FoxPro 3.0, versi "Visual" pertama, akhirnya tersingkir karena hanya mendukung Mac OS dan Windows, dan versi berikutnya hanya mendukung Windows saja. Versi terkini Visual FoxPro adalah berdasarkan teknologi COM dan Microsoft telah menyatakan bahawa mereka tidak berniat untuk mencipta versi Microsoft .NET.

Visual FoxPro dikenal sebagai bahasa pemrograman yang berorientasi pada objek dan prosedural dari Microsoft. Pemrograman berorientasi obyek ini (Object-oriented programmin, OOP) merupakan paradigma pemrograman yang dititikberatkan pada objek. Semua fungsi dan data di dalam paradigma ini dikemas dalam kelas-kelas atau objek-objek. Bila dibandingkan dengan logika pemrograman terstruktur memang agak berbeda. Setiap objek bisa mendapat pesan, mengolah data dan kemudian mengirim pesan ke objek lainnya.
Modelpengolahan datayang berorientasi pada objek bisa dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program dan digunakan luas dalam teknik software skala besar. Pendukung OOP menyatakan bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan bahasa lainnya dan metode OOP mudah dikembangkan dan dirawat.

FoxPro sejak awal memang dirancang sebagai tools yang fokus pada pengembangan aplikasi database. Dengan Visual FoxPro, kekuatan bahasa FoxPro tetap dapat dinikmati, diperindah oleh kemampuan visual development yang sedemikian mudah.Pengguna dapat lebih berkonsentrasi pada sistem dan proses aplikasi, sedangkan akses dan interface dapat dipercayakan pada kekuatan VISUAL dari Visual FoxPro.