GASY Software
DISUSUN OLEH:
GEDE JULIARSA, SE.MSi
1
1
Pendahuluan
Pokok Bahasan:
Pemrograman Dalam Microcomputer
Konsep Pemrograman Berorientasi Object
Elemen-Elemen Program
Mengenal Visual FoxPro
Komponen microcomputer system terdiri dari: keyboard, mouse, monitor, system unit,
data storage device, printer dan controller device. Komponen fisik dalam system
microcomputer disebut perangkat keras (hardware), sebaliknya sebagai perantara perangkat
keras disebut perangkat lunak (software) yang berisi kumpulan instruksi yang dapat dimengerti
oleh hardware. Kumpulan instruksi-instruksi yang terstruktur disebut dengan program.
Proses membaca instruksi dalam suatu program oleh perangkat keras disebut menjalankan
program (running the program). Tahapan instruksi berjalan melibatkan berbagai fungsi,
prosedur, metod, dan object. Goldstein (1987), menyebutkan bahwa tahapan pemrograman
yaitu menampilkan data di layar; menerima data dari user melalui keyboard atau device input
lainnya; merespon data yang diterima dari user, benar atau salah; proses menggambarkan
data dalam bentuk graphics di layar; mencetak data ke printer; menyimpan data untuk
kemudian bisa diambil atau dibuka kembali.
2
Basic, Turbo Basic, dBase, FoxBase, FoxPro, Visual FoxPro, Delphi, Oracle, Clipper, Visual
Basic, Microsoft Access, dan masih banyak lagi.
Penyimpanan Data
Jenis data sangat menentukan bagaimana data tersebut disimpan dan bagaimana data dapat
digunakan. Anda dapat mengalikan dua angka secara bersama, tetapi anda tidak dapat
mengalikan karakter. Anda dapat mencetak karakter dalam huruf besar, tetapi anda tidak
dapat mencetak angka dalam huruf besar. Beberapa jenis data primer dalam Visual FoxPro
dijelaskan dalam tabel berikut ini:
Jenis Data
Jenis Contoh
Numeric 123
3.1415
7
Logical .T.
.F.
Date {^1998-01-01}
Data Containers
Data containers menyediakan fasilitas bentuk operasi sama dalam suatu kelompok data secara
multiple. Jika anda menyimpan informasi dalam container, dan mengembangkan operator-
operator dalam container, anda dapat mengganti data lama dengan data baru dan
menjalankan program yang sama. Tabel berikut menjelaskan beberapa container utama untuk
data dalam Visual FoxPro:
3
Jenis Keterangan
Variables Element tunggal data yang disimpan dalam RAM (Random Access
Memory) komputer
Table Records Kumpulan baris dengan field yang telah ditentukan, dan disimpan
dalam disk.
Kontainer dan jenis data merupakan satu bangunan saling terkait dalam mengelola data,
dengan menggunakan operator, function, dan command.
Menggunakan Operator
Operasi logika yang digunakan dalam Visual FoxPro adalah sebagai berikut:
Perlu diingat bahwa anda harus menggunakan jenis data yang sama dalam satu operator.
Perhatikan contoh berikut ini:
nFirst = 123 nSecond = 45
cFirst = "123" cSecond = "45"
Dua operasi berikut akan memberikan hasil berbeda, karena jenis data dalam variabel tersebut
berbeda.
? nFirst + nSecond Hasilnya adalah 168
? cFirst + cSecond Hasilnya adalah 12345
Operator pertama mengerjakan jenis variabel numerik, sedangkan operator yang kedua jenis
variabel karakter.
Akan terjadi kesalahan (mismatch error) apabila anda mencoba membuat operator seperti
berikut ini:
? cFirst + nSecond
4
Visual FoxPro menyediakan fasilitas untuk menangani perbedaan jenis data, yaitu dengan
menggunakan fungsi-fungsi konversi. Misalnya STR(), VAL(), LTRIM(). Dengan fungsi
tersebut, maka kesalahan dapat diperbaiki dengan menulis operator sebagai berikut:
? cFirst + LTRIM(STR(nSecond)) Hasilnya: 12345
? VAL(cFirst) + nSecond Hasilnya: 168
Menggunakan Function
Functions (Fungsi) menghasilkan nilai spesifik sesuai jenis data. Misalnya, fungsi STR()
menghasilkan nilai Character, sedangkan VAL() menghasilkan nilai Numerik. Begitu juga
halnya dengan fungsi-fungsi lainnya.
Ada lima cara atau teknik pemanggilan fungsi dalam Visual FoxPro, yaitu:
Menentukan variabel untuk merekam nilai yang dihasilkan dari fungsi. Misalnya
variabel dHariIni digunakan untuk merekam tanggal hari ini, maka penulisan code
programnya adalah:
dHariIni = DATE( )
Digabungkan dalam perintah Visual FoxPro yang lain. Misalnya membuat perintah
untuk mengubah default direktory.
CD GETDIR( )
Menampilkan nilai kedalam screen / Window. Contoh penulisan code program untuk
menampilkan waktu.
? TIME( )
Memanggil fungsi tanpa menyimpan nilai dari hasil yang dikembalikan oleh fungsi.
Misalnya, fungsi untuk membuat cursor dalam kondisi off, adalah:
SYS(2002)
Menggabungkan beberapa fungsi dalam satu baris perintah. Misalnya mengubah nilai
variabel tanggal menjadi karakter hari, yaitu:
? DOW(DATE( ))
Menggunakan Command
Sebuah perintah mengakibatkan aksi yang ditunjukkan. Setiap command mempunyai syntax
khusus, yang mengindikasikan bahwa apa yang harus dimasukkan atau diikutkan sehingga
suatu perintah dapat bekerja. Ada clausul optional dikaitkan dengan commands dari cakupan
clausul yang lebih detil dalam sebuah commands.
Sebagai contoh adalah command USE memberikan instruksi untuk membuka atau menutup
sebuah tabel.
5
USE customer
Membuka file tabel CUSTOMER pada area kerja aktif, dan
sekaligus menutup file tabel yang sedang dibuka pada area aktif
tersebut
USE customer IN 0
Membuka file tabel CUSTOMER pada area berikutnya yang
tersedia dan belum digunakan
USE customer IN 0 ;
ALIAS mycust Membuka file tabel CUSTOMER pada area berikutnya yang
tersedia dan belum digunakan dengan nama alias/samaran
MYCUST.
Sebagai illustrasi, misalnya sebuah perusahaan mempekerjakan 10.000 karyawan dan setiap
karyawan diberikan tambahan Rp.30.000 setiap peningkatan volume penjualan 3%, dan
tambahan Rp.10.000 apabila peningkatan penjualan mencapai 6%. Asumsi bahwa nama field
untuk menampung jumlah tambahan adalah Insentif, dan kenaikan penjualan adalah
GrowSales.
Code Keterangan
SCAN
SCAN dan ENDSCAN adalah mengeksekusi setiap
rekord yang ada dalam tabel, dan kemudian
memindahkan pointer ke rekord berikutnya
IF growsales = 0.03
REPLACE ; Setiap rekord, jika kenaikan penjualan = 3%, maka
Insentif WITH 30000 nilai 30000 akan direkam dalam field insentif
Tanda semicolon (;) setelah REPLACE berarti bahwa
command dilanjutkan pada beris berikutnya.
ENDIF
Akhir dari kondisional pernyataan IF
IF growsales = 0.06
REPLACE Insentif ; Setiap rekord, jika kenaikan penjualan = 6%, maka
WITH 40000 nilai 30000+10000 akan direkam dalam field insentif
ENDIF
Akhir dari kondisional pernyataan IF
ENDSCAN
6
Pencabangan Kondisional (Conditional Branching)
Pencabangan kondisional menunjukkan suatu pengujian kondisi dan kemudian tergantung dari
hasil pengujian tersebut akan mengakibatkan operasi berbeda. Ada dua perintah dalam Visual
FoxPro yang menunjukkan pencabangan kondisional, yaitu:
Pengulangan (Looping)
Pengulangan menunjukkan bahwa proses eksekusi satu atau lebih baris perintah dalam
lingkup waktu yang sama. Ada tiga perintah pengulangan dalam Visual FoxPro, yaitu:
DO WHILE ... ENDDO
FOR ... ENDFOR
SCAN ... ENDSCAN
Contoh:
Select Employee
GO TOP
DO WHILE NOT EOF() && Lakukan pengulangan jika belum
&& sampai akhir file (eof = end of file )
IF GROWSALES=.03
REPLACE ;
INSENTIF ;
WITH 30000
ENDIF
SKIP && memindahkan pointer rekord berikutnya
ENDDO
7
Mengumpulkan elemen-elemen yang sejenis
Pengujian program keseluruhan
Pemrograman artinya adalah menyuruh mesin untuk melakukan apa yang kita inginkan. Pada
awalnya, program dibuat dengan cara yang sederhana. Seorang pemrogram harus
menuliskan program satu per satu dan memeriksa kesalahan sendiri. Hal ini memerlukan
waktu yang lama. Perangkat lunak telah berkembang sehingga sekarang anda dapat
membuat dan memeriksa program dengan mudah karena sudah disediakan fasilitas-fasilitas
yang mudah dan menarik.
Pemrograman berorientasi object saat ini dikembangkan karena 1). aplikasi yang
dibutuhkan semakin kompleks, perilaku user terhadap perkembangan Microsoft Windows yang
mana pemakai komputer tidak lagi memerlukan aplikasi yang mengontrol pemakai tetapi
pemakai ingin mengontrol jalannya program, 2) proses pengembangan relatif cepat/hemat
waktu, 3) tampilan visual, 4) kebutuhan untuk mengakses data dari berbagai format, 5)
pengembangan database client/server.
Elemen-Elemen Program
Dalam sebuah aplikasi program berisi kumpulan kata-kata yang merupakan bahasa
pemrograman yang disediakan, dan kumpulan bahasa interface lainnya yang digabungkan
membentuk suatu bahasa sehingga dapat dijalankan oleh mesin komputer. Pada umumnya
susunan elemen-elemen dalam aplikasi program berisi:
Perintah dasar dan function yang sudah ada, untuk melaksanakan aksi
tertentu.
Literal dan konstanta yang bernama, yang dipakai dalam operasi.
Data yang permanen yang disimpan dalam tabel.
8
Operator aritmatik yang dipakai pada bilangan, operator string untuk
memanipulasi data karakter
Evaluator logic untuk proses perbandingan.
Pengulangan.
Komentar.
Tampilan pada gambar 1.1 akan nampak dalam beberapa detik dan selanjutnya akan
ditampilkan screen Visual FoxPro 6.0 seperti pada gambar 1.2.
9
Gambar 1.2. Screen Visual FoxPro 6.0
Bagian-bagian yang ada pada Screen Visual FoxPro 6.0 dapat diuraikan sebagai berikut:
Main Menu
Bar Bagian yang terletak di baris menu, berfungsi untuk memandu pemakai
dalam menggunakan program.
10
ToolBar Bagian yang
berfungsi untuk mempercepat pemanggilan instruksi. Berisi Toolbar
standar yaitu New, Open, Save, Print, Explorer, Cut, Copy, Paste,
Undo, Redo, Run.
11
2
Persiapan Pemrograman
Pokok Bahasan:
Membuat Folder Aplikasi
Mengubah Direktory Default
Membuat File Project
Membuat File Program/Aplikasi
Sebagai contoh susunan folder nampak seperti gambar 2.1. Folder aplikasi dibuat dalam
kelompok ProD3. Didalam folder ProD3 berisi sub-folder yang digunakan untuk menyimpan
setiap jenis file yaitu file Data, Forms, Reports, Library, Programs, Include, Help, Graphics
dan Menu.
Gambar 2.1
Susunan Folder
1. Pada menu Tools, Klik Options. Setelah perintah ini dilakukan maka akan muncul
tampilan seperti gambar 2.2
12
Gambar 2.2. Options File Locations
3. Dari gambar 2.3, kemudian ubah lokasi direktory dengan nama folder yang telah dibuat.
Selanjutkan pilih perintah Ok. Jika langkah ini benar dilakukan maka tampilan akan
kembali seperti gambar 2.2, lalu pilih perintah Set As Default, dan perintah Ok.
1. Dari menu File, pilih New. Selanjutnya muncul seperti gambar 2.3.
13
Gambar 2.3
Kotak Dialog New
2. Dari kotak dialog New ( seperti Gambar 2.3) tentukan jenis file Project dan pilih New File.
Kemudian muncul tampilan kotak dialog Create seperti gambar 2.4.
Gambar
2.4
Kotak
Dialog
Create
3. Dari gambar 2.4 tentukan nama project, misalnya Proj1. Kemudian pilih command Save.
Bila langkah 1, 2, dan 3 telah dilakukan dengan benar maka selanjutnya akan ditampilkan
project manajer seperti pada gambar 2.5. Dari gambar 2.5, kemudian dibangun aplikasi
program sesuai dengan rancangan sistem yang dikembangkan.
14
Gambar 2.5
Kotak Dialog
Project
Manager
a. Dari project manager, Pilih Code, kemudian Klik New. Setelah proses ini akan muncul
kotak editor seperti gambar 2.5.
Gambar 2.5
Kotak Editor Code
CLEAR ALL
CLEAR EVENTS
c. Setelah menulis instruksi, simpan instruksi tersebut pada folder Progs dengan nama
file Prg1. Tekan Tombol [Ctrl-W] untuk menyimpan instruksi. Jika benar dilakukan
15
maka muncul kotak dialog seperti gambar 2.6. Selanjutnya isi nama file program dan
pilih command Save.
Gambar 2.6
Kotak Dialog
Save As
d. Membuat sub-program menu. Caranya adalah dari project manajer Code, Pilih New
sehingga muncul kotak dialog Code Editor, lalu ketik instruksi berikut ini dan simpan
dengan nama Prg2 pada folder Progs.
** Nama File: Progs\Prg2.Prg
DEFINE PAD Menu1 OF _Msysmenu PROMPT "\<Menu"
DEFINE PAD Menu2 OF _Msysmenu PROMPT "E\<XIT"
16
Gambar 2.7
Project Manajer
Documents dan Kotak
Dialog New Form
Gambar 2.8
Form
Designer
Dari form designer ini (seperti gambar 2.8), simpanlah form tersebut pada folder Forms
dengan nama Form1. Caranya adalah dari menu File, pilih Save-As, dan perhatikan kotak
dialog save-as, lalu beri nama form. Ulangi langkah membuat form untuk mendesign form2
dan form3.
17
1. Dari project manajer, pilih Build. Setelah proses ini muncul seperti gambar 2.9.
Gambar 2.9
Kotak Dialog Building
Program
2. Lalu pilih Ok. Setelah proses selesai, dan tidak ada kesalahan penulisan instruksi maka
aplikasi sudah siap dijalankan.
18
3
Mengenal Class dan Object
Pokok Bahasan:
Class dan Object Visual FoxPro
Form Property, Event dan Method
ToolBar Form Control
Merancang Form
Benda atau sesuatu yang nampak disekeliling kita adalah object. Obyek mempunyai
sifat-sifat, perilaku dan interaksi antar obyek. Misalnya, mobil adalah benda yang mempunyai
sifat-sifat seperti bentuk, warna, ukuran dan berat. Mobil dapat digunakan karena adanya
mesin yang terpasang, dan setiap komponen yang dimiliki saling berhubungan sehingga terjadi
gerak. Dalam kontek pemrograman Visual FoxPro, dan kalau disimak dari contoh obyek mobil
maka sifat-sifat mobil tersebut disebut dengan property, jaringan mesin-mesin disebut method
dan interaksi jaringan mesin yang mengakibatkan gerak disebut event. Object utama dalam
Visual FoxPro adalah Form.
Mobil Form
Property:
Nama, Tinggi, Berat Property: Tinggi,Lebar, Judul
19
Obyek: Property, Event dan Method
Sebuah obyek mempunyai berbagai property atau attribut. Sebuah telpon misalnya, adalah
mempunyai warna dan ukuran. Jika telpon digunakan di kantor, maka tentu ditempatkan pada
suatu lokasi misalnya diatas meja kerja, sehingga akan memudahkan untuk digunakan baik
menerima maupun mengirim pesan.
Obyek yang dibuat dalam Visual FoxPro juga mempunyai berbagai property yang
ditentukan oleh kelas didasarkan pada obyek tersebut. Property tersebut dapat di tentukan
pada saat merancang atau pada waktu dijalankan.
Sebagai contoh misalnya, beberapa property dari Check Box adalah sebagai berikut:
Property Keterangan
Caption Teks disebelah check box
Enabled Menentukan apakah user dapat memilih atau mengubah nilai.
ForeColor Warna teks caption
Left Posisi kiri dari check box
Top Posisi atas dari check box
Visible Menentukan apakah check box nampak (visible) atau tidak
Setiap obyek yang dibuat dan dapat merespon aktivitas dengan benar disebut events.
Event adalah suatu yang spesifik dan akan timbul karena aktivitas, dapat diprakarsai oleh user
yang lain atau karen sistem. Events, dalam kontek ini adalah disebabkan oleh interaksi user.
Misalnya, pada contoh pesawat telpon, event dipicu ketika user menggunakan telpon, atau
ketika user menekam tombol-tombol untuk memanggil.
Perilaku pemakai termasuk dalam pemicu event adalah klik dan memindahkan mouse
dan menekan tombol keyboard. Metode-metode (Methods) adalah prosedur-prosedur yang
berhubungan dengan suatu obyek. Event dapat memiliki method yang sesuai.
Event Keterangan
Click User meng-Klik check box.
GotFocus User memilih check box dengan meng-Klik atau menekan tombol Tab
LostFocus User memilih kontrol lain, meninggalkan check-box
Methods dari check box:
Method Keterangan
Refresh Mengupdate nilai dari check box yang memperlihatkan adanya
perubahan data
SetFocus Fokus ada pada check box karena menekan tombol TAB
20
Karakteristik Class
Class mempunyai karakteristik karakteristik yang membuatnya sangat berguna untuk
menciptakan software yang reusable (mempunyai banyak fungsi), dan mudah dipelihara dan
dikembangkan, yaitu: Encapsulation, Subclasses, Inheritance
Subclass dapat memberikan fungsi setiap class yang dibuat dan berbagai penambahan kontrol
yang diinginkan. Fleksibelitas ini merupakan feature yang diberikan class. Proses pembuatan
subclass adalah satu langkah pemrograman utuk mengurangi jumlah code yang harus ditulis.
Class dapat digunakan pada setiap kontrol, sifat ini disebut inheritance. Kemampuan ini
sangat bermanfaat dalam pemrograman karena apabila ada perubahan dalam suatu class,
maka perubahan tersebut dapat berlaku untuk semua kontrol yang ada.
Jenis Class
Ada dua jenis class dan merupakan perluasan dari obyek Visual FoxPro yaitu container class
dan control class.
Container Class
Containers dapat berisi obyek-obyek lain dan dapat diakses oleh obyek-obyek yang ada dalam
container. Misalnya, jika anda membuat suatu container class yang berisi dua list-box dan dua
command button dan kemudian menambahkan pada obyek form, maka setiap obyek dapat
dimanipulasi, dan dapat ditambahkan obyek lain.
Berikut ini adalah daftar kontrol yang terdapat dalam setiap container class yaitu:
Container Control
Command button groups Command buttons
Container Any controls
Control Any controls
Custom Any controls, page frame, container, custom
Form sets Forms, toolbars
Forms Page frames, any controls, containers, custom
Grid columns Headers and any objects except form sets,
forms, toolbars, timers, and other columns
Grids Grid columns
Option button groups Option buttons
Page frames Pages
Pages Any controls, containers, custom
Project Files, servers
Toolbars Any controls, page frame, container
21
Hirarki Class
Hirarki class dan container adalah dua entitas terpisah. Visual FoxPro melihat code events
melalui hirarki class, sedangkan obyek-obyek melihat referensi hirarki container. Sebagai
contoh dalam memanipulasi suatu form dalam form set, diperlukan referensi form set, form dan
control.
Penggunaan Pengenal/Referensi
Visual FoxPro menggunakan kata kunci Parent, THIS, THISFORM dan THISFORMSET untuk
penulisan dalam method dan event. Contoh instruksi yang terkait dengan kata kunci tersebut
adalah:
THISFORMSET.frm1.cmd1.Caption = "OK"
THISFORM.cmd1.Caption = "OK"
THIS.Caption = "OK"
THIS.Parent.BackColor = RGB(192,0,0)
Menentukan Properties
1. Menggunakan sintaks tunggal : Container.Object.Property = Value
Contoh:
frmPhoneLog.txtDate.Value = DATE( )
frmPhoneLog.txtDate.Enabled = .T.
frmPhoneLog.txtDate.ForeColor = RGB(0,0,0)
frmPhoneLog.txtDate.BackColor = RGB(192,192,192)
Memanggil Methods
Menggunakan syntax : Parent.Object.Method
Contoh:
frsFormSet.frmForm1.Show
frsFormSet.frmForm1.txtGetText1.SetFocus
Methods mengembalikan nilai dan digunakan sebagai ekspresi, misalnya:
Form1.Caption = Form1.GetNewCaption( )
22
dan obyek yang ada dalam aplikasi. Pendefinisian prosedur dan fungsi dalam Visual FoxPro
dapat dijelaskan sebagai berikut:
PROCEDURE myproc
**instruksi-instruksi
ENDPROC
Dalam pemrograman tradisional, prosedur berisi code yang ditulis untuk suatu proses tertentu,
tanpa mengembalikan suatu nilai, sedangkan fungsi berisi code untuk melakukan suatu
operasi dan mengembalikan suatu nilai. Dalam Visual FoxPro, fungsi merupakan
penyederhanaan dari prosedur. Penulisannya sebagai berikut:
FUNCTION myfunc
**instruksi-instruksi
ENDFUNC
Prosedur dan fungsi dapat dibuat pada suatu file program secara terpisah, dan untuk
menggunakan setiap prosedur dan fungsi digunakan perintah SET PROCEDURE TO.
Misalnya file prosedur diberikan nama FUNPROC.PRG, maka instruksi untuk mengaktifkan
adalah:
SET PROCEDURE TO funproc.prg
SET PROCEDURE TO funproc.prg
Menggunakan perintah DO
DO myproc
Menambahkan tanda kurung (parentheses) setelah nama fungsi
myfunc( )
Setiap method dalam class dapat dikembangkan melalui pengiriman dan penerimaan nilai dari
procedure atau function
Untuk dapat mengirim nilai ke dalam procedure atau function, maka perlu menambahkan
parameters. Misalnya:
PROCEDURE myproc( cString )
* The following line displays a message
MESSAGEBOX ("myproc" + cString)
ENDPROC
Penulisan seperti pada contoh (PROCEDURE myproc(cString)) berarti bahwa lingkup
parameter tersebut adalah lokal. Untuk memanggil prosedur tersebut dapat digunakan teknik
dibawah ini:
DO myproc WITH cTestString
DO myproc WITH "test string"
Atau
Myfunc(cTestString)
Myfunc("test string")
23
Pengiriman nilai dapat pula lebih dari satu, untuk membedakan setiap parameter diisi tanda
comma. Contoh:
PROCEDURE myproc( dDate, cString, nTimesToPrint )
FOR nCnt = 1 to nTimesToPrint
? DTOC(dDate) + " " + cString + " " + STR(nCnt)
ENDFOR
ENDPROC
Instruksi berikut adalah untuk memanggil prosedur, yaitu:
DO myproc WITH DATE(), "Hello World", 10
Menerima Nilai dari Function
Kondisi default nilai yang dikembalikan adalah true (.T.), namun dapat digunakan perintah
RETURN untuk mengembalikan suatu nilai. Contoh berikut adalah suatu fungsi tanggal untuk
mengetahui tanggal dua minggu lagi, yaitu:
FUNCTION plus2weeks
PARAMETERS dDate
RETURN dDate + 14
ENDFUNC
Instruksi untuk memanggil dan mengambil nilai yang dikembalikan disimpan dengan variabel
dDeadLine, adalah sebagai berikut:
dDeadLine = plus2weeks(DATE())
CVar1 = myfunc ( )
? myfunc( )
This.Value=myfunc ()
Verifikasi Parameter
Untuk mengenai jenis nilai yang dikirim atau yang dikembalikan oleh suatu prosedur atau
fungsi, apakah sesuai dengan kriteria yang ditentukan dalam penulisan parameter maka dapat
digunakan fungsi TYPE() dan PARAMETERS()
24
Fungsi berikut adalah penggunaan fungsi TYPE() untuk mendeteksi apakah variabel jenis
tanggal benar dikirimkan.
FUNCTION plus2weeks( dDate )
IF TYPE("dDate") = "D"
RETURN dDate + 14
ELSE
MESSAGEBOX( "Isilah dengan data jenis tanggal)
RETURN { - - }
ENDIF
ENDFUNC
Penggunaan fungsi PARAMETERS() adalah untuk mengetahui jumlah nilai parameter yang
dikirimkan. Prosedur berikut adalah suatu contoh nilai parameter yang harus dikirimkan adalah
3, dan jika kurang akan menghasilkan nilai .F..
PROCEDURE SaveValue( cStoreTo, cNewVal, lIsInTable )
IF PARAMETERS( ) < 3
MESSAGEBOX( "Kekurangan nilai parameter)
RETURN .F.
ENDIF
IF lIsInTable
REPLACE (cStoreTo) WITH (cNewVal)
ELSE
&cStoreTo = cNewVal
ENDIF
RETURN .T.
ENDPROC
Object Form
Form memiliki property yang menentukan bentuk form seperti posisi, ukuran dan warna dan
aspek perilaku form seperti apakah dapat diubah ukurannya atau tidak. Untuk memberikan
pemahaman mengenai object form, cobalah tuliskan perintah berikut dari jendela perintah.
Gambar 3.2
Membuat
Object Form
25
CREATE FORM adalah suatu bahasa perintah untuk membuat form. Syntax selengkapnya
adalah:
Methods: AddObject, AddProperty, Box, Circle, Cls, Draw, Hide, Line, Move,
NewObject, OLEDrag, Point, Print, Pset, ReadExpression, ReadMethod, Refresh,
Release, RemoveObject, ResetToDefault, SaveAs, SaveAsClass, SetAll, SetViewPort,
Show, ShowWhatsThis, TextHeight, TextWidth, WhatThisMode, WriteExpression,
WriteMethod, Zorder.
Didalam form designer, property, event dan method tersebut ditampilkan dalam sebuah jendela
properties. Gambar 3.3 Menunjukkan Properties FormDoc1.
26
Gambar 3.3
Gambar 3.4
Form Controls
Berisi variabel yang bertipe memo, atau untuk isian karakter yang
panjang.
Edit Box
27
Object perintah untuk melakukan proses atau perintah-perintah
Command tertentu.
Button
ActiveX Bound Ole Bound Control, adalah sebuah link ke aplikasi lain yang
Control biasanya berupa file vcx.
( Ole Bound
Control )
28
Line, adalah object garis
Line
Merancang Form
Untuk memberikan pemahaman mengenai object form, dan attribut object yang dimiliki yaitu
property, method dan event akan dijelaskan dalam illustrasi contoh contoh berikut ini.
Contoh 1. Membuat Form Pendataan Mahasiswa
29
Urutan Penyelesaian:
1. Membuka form designer
Melalui jendela command, ketik CREATE FORM
2. Mengubah nama form (Caption), dengan nama Pendataan Mahasiswa
Perhatikan properties window, pilih Caption, kemudian ganti nama form1 dengan
Pendataan Mahasiswa.
3. Mengisi object form dengan string dibawah ini melalui control form dengan
object Labels. String yang dibuat yaitu NIM, Nama, Tgl.Pendaftaran, Umur,
Hobby dan Pekerjaan Orang Tua.
a. Melalui form control, Klik Button Lock
b. Klik Labels, kemudian klik area form pada posisi yang sesuai dengan lay
out sehingga muncul Label1, ulangi mengklik sebanyak 6x sehingga
muncul Label1, Label2, Label3, Label4, Label5 dan Label6. Kembalikan
kondisi form control ke Select Object.
c. Ubah property Caption label1 dengan NIM, label2 dengan Nama
Mahasiswa, label3 dengan Tgl.Pendaftaran, label4 dengan Umur, label5
dengan Hobby, label6 dengan Pekerjaan Orang Tua
4. Membuat isian setiap variabel.
a. Klik TextBox, dan letakkan disebelah kanan NIM, Nama Mahasiswa,
Tgl.Pendaftaran dan Umur
b. Klik Option Group, dan letakkan disebelah kanan hobby.
c. Klik ComboBox, dan letakkan disebelah kanan Pekerjaan Orang Tua.
5. Membuat Garis, Klik Line dan letakkan pada bagian bawah pekerjaan orang tua
6. Membuat perintah (Rekam), (Bersihkan Isian/Ulangi) dan (Kembali). Klik
Command Button dan letakkan dibawah garis. Ubah property caption
command1 dengan Rekam. Ulangi langkah ini untuk membuat perintah yang
lainnya.
7. Menyimpan Form. Melalui menu File, Klik Save As, kemudian dari kotak dialog
Save As beri nama form dengan FormMhs.
8. Menjalankan Form. Klik Kanan pada area form, kemudian pilih Run Form.
Atau tekan Tombol Ctrl+E.
9. Modifikasi Form. Melalui jendela perintah, ketik: MODIFY FORM
10. 10. Menutup Form. Klik Control Box - Close
30
4
Mengenal Data
Pokok Bahasan:
Database dan Tabel
Teknik Merancang Struktur Tabel
Membuat, Membuka dan Menutup Tabel Melalui File Program
Tabel adalah file yang berisi kumpulan informasi yang disimpan dalam field/kolom tertentu
sesuai dengan jenis field. Jenis field dalam program Visual FoxPro dibedakan kedalam
karakter ( C ), tanggal (D), tanggal dan waktu (T), numeric (N), numeric (F), Integer (I), Double
(B), Currency (Y), Logical (L), Memo (M) dan General (G). Tabel 4.1 menunjukkan jenis field
yang digunakan dalam aplikasi Visual FoxPro.
31
N N d Numeric
F N d Floating Numeric
I - - Integer
B - d Double
Y - - Currency
L - - Logical
M - - Memo
G - - General
Kumpulan kertas-kertas yang berisi teks sebagai hasil proses pekerjaan bagian administrasi,
akuntansi, atau tugas-tugas kantor yang selalu bergelut dengan kertas dan ballpoint adalah
sumber informasi yang dapat dipahami dan tentu selanjutnya adalah mengkaji lebih lanjut
mengenai sifat informasi yang diperoleh.
Dalam bahasan ini, penulis ingin memberikan bayangan bahwa bagaimana tahapan untuk
merancang struktur tabel. Walaupun dalam topik ini tidak mengharuskan mahasiswa untuk
mampu menganalisa dan menyusun rancangan struktur tabel.
Sebagai contoh sederhana, cobalah bayangkan daftar absensi yang saudara tanda tangani
setiap mengikuti kuliah. Anggaplah daftar absensi seperti tabel 3.1. Berdasarkan daftar
absensi tersebut, dapat disusun rancangan struktur tabel sesuai dengan sifatnya.
Berdasarkan tabel 4.2, maka dapat disusun struktur tabel dalam program Visual FoxPro
sebagai berikut:
Field Fieldname Type Width
1 Nim Character 12
2 Nama Character 40
3 Paraf01 Character 1
4 Paraf02 Character 1
5 Paraf03 Character 1
6 Paraf04 Character 1
7 Paraf05 Character 1
32
8 Paraf06 Character 1
9 Paraf07 Character 1
10 Paraf08 Character 1
11 Paraf09 Character 1
12 Paraf10 Character 1
13 Paraf11 Character 1
14 Paraf12 Character 1
15 Paraf13 Character 1
16 Paraf14 Character 1
Gambar 4.1
Kotak Text Editor
33
NB Elemen Program
1 IF !FILE('TBLMHS.DBF')
2 CREATE TABLE TBLMHS ( NIM C(12), NAMA C(40), ;
3 PARAF01 C(1), PARAF02 C(1),PARAF03 C(1),;
4 PARAF04 C(1),PARAF05 C(1),PARAF06 C(1),;
5 PARAF07 C(1),PARAF08 C(1),PARAF09 C(1),;
6 PARAF10 C(1),PARAF11 C(1),PARAF12 C(1),;
7 PARAF13 C(1),PARAF14 C(1) )
8 ENDIF
3. Simpan file program dengan menekan Tombol Ctrl+W
4. Jalankan program pCreaTbl dengan mengetik perintah DO pCreaTbl
Maka file tabel yang diberi nama TBLMHS akan dibuat.
34
5
Mengenal Function dan Command
Pokok Bahasan:
Function dalam Visual FoxPro
Command dalam Visual FoxPro
ABS( )
Mengembalikan nilai absolut dari ekspresi numeric
ABS(nExpression)
Contoh:
? ABS(-45) && Displays 45
? ABS(10-30) && Displays 20
? ABS(30-10) && Displays 20
STORE 40 TO gnNumber1
STORE 2 TO gnNumber2
? ABS(gnNumber2-gnNumber1) && Displays 38
ACLASS( )
Membuat array class dari object, dan mengembalikan nilai numeric
ACLASS(ArrayName, oExpression)
Contoh:
CLEAR
frmMyForm = CREATEOBJECT("FormGrandChild")
FOR nCount = 1 TO ACLASS(gaNewarray, frmMyForm) && Creates an
array
? gaNewarray(nCount) && Displays the names of the classes
ENDFOR
RELEASE frmMyForm
35
ACOPY( )
Menyalin element dari satu array ke array lain
ACOPY(SourceArrayName, DestinationArrayName
[, nFirstSourceElement [, nNumberElements [, nFirstDestElement ]]])
Contoh:
CLOSE DATABASES
OPEN DATABASE (D:\prod3\data\testdata)
USE mhsd3
SELECT nama FROM mhsd3 ORDER BY jurusan ;
WHERE nilai>=70 INTO ARRAY gaJurusan
= ACOPY(gaJurusan, gaJurusanTemp)
CLEAR
DISPLAY MEMORY LIKE gaJurusanTemp
ADATABASES( )
Membuat array dari semua database terbuka termasuk lokasi tempat penyimpanan
ADATABASES(ArrayName)
Contoh:
SET PATH TO (d:\prod3\data\') && Sets path to database
OPEN DATABASE testdata && Buka database
CLEAR
? ADATABASES(gaDatabase) && Creates an array of open databases
DISPLAY MEMORY LIKE gadatabase && Displays the contents of the array
CLOSE DATABASES
ADBOBJECTS( )
Membuat variabel array dari database yang aktif
ADBOBJECTS(ArrayName, cSetting)
cSetting Nama
CONNECTION Nama Connection
RELATION Relasi Table
TABLE Nama Table
VIEW Nama View
Contoh:
OPEN DATABASE (d:\prod3\Data\testdata')
36
ADDBS( )
Menambah backslash ( \ ) jika diperlukan pada ekspresi path
ADDBS(cPath)
Contoh:
CLEAR
? ADDBS(D:\PROD3) && Display D:\PROD3\
? ADDBS(D:\PROD3\) && Display D:\PROD3\
ADEL( )
Menghapus suatu elemen array dari satu array dimensional, atau suatu baris atau kolom dari
dua array dimensional. Jika proses menghapus berhasil maka fungsi ini mengembalikan nilai
1, sebaliknya 0.
ADEL(ArrayName, nElementNumber [, 2])
Contoh:
CLOSE DATABASES
OPEN DATABASE ('d:\prod3\Data\testdata')
USE mhsd3 && buka tabel nilai mahasiswa
SELECT JURUSAN FROM mhsd3 ;
WHERE nilai>=70 ;
INTO ARRAY gaJurusan
gnCount = _TALLY
gcJurusan= 'Akuntansi'
CLEAR
DISPLAY MEMORY LIKE gaNilai*
ADIR( )
Membuat informasi mengenai file kedalam suatu array dan kemudian mengembalikan daftar
file
ADIR(ArrayName [, cFileSkeleton [, cAttribute [, nFlag]]])
Contoh:
SET DEFAULT TO d:\prod3\data
gnDbcnumber = ADIR(gaDatabase, '*.DBC') && Create array
CLEAR
FOR nCount = 1 TO gnDbcnumber && Loop for number of databases
? gaDatabase(nCount,1) && Display database names
ENDFOR
SET PATH TO HOME( ) && Set path to Visual FoxPro directory
37
AFIELDS( )
Menyajikan informasi mengenai struktur tabel kedalam array dan mengembalikan jumlah field
dalam tabel tersebut.
AFIELDS(ArrayName [, nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
OPEN DATABASE d:\prod3\data\testdata
USE mhsd3
gnFieldcount = AFIELDS(gaMyArray) && Create array
CLEAR
FOR nCount = 1 TO gnFieldcount
? gaMyArray(nCount,1) && Display field names
ENDFOR
AFONT( )
Memberikan informasi mengenai huruf yang ada kedalam sebuah array
AFONT(ArrayName [, cFontName [, nFontSize]])
Contoh:
CLEAR
=AFONT(gaFontArray) && Array containing font names
gnNumFonts = ALEN(gaFontArray) && Number of fonts
IF gnNumFonts > 10
gnNumFonts = 10 && Display first 10 fonts
ENDIF
AINS( )
Insert suatu elemen kedalam array satu dimensi atau kedalam baris atau kolom kedalam array
dua dimensi. Fungsi ini mengembalikan nilai numerik 1 jika elemen berhasil disisipkan.
AINS(ArrayName, nElementNumber [, 2])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\data\testdata)
USE mhsd3
SELECT Jurusan FROM mhsd3 ;
WHERE nilai>=70 ;
INTO ARRAY gaJurusan
gnCount = _TALLY
gcName = 'Pemasaran
CLEAR
DISPLAY MEMORY LIKE gaJurusan
IF ASCAN(gaJurusan, gcName) = 0 && Mencari jurusan pemasaran
*** Company not found-add it ***
DIMENSION gaJurusan[gnCount+1,1]
38
= AINS(gaJurusan, gnCount-1)
gaJurusan[gnCount-1] = gcName
ENDIF
DISPLAY MEMORY LIKE gaJurusan
ALEN( )
Mengembalikan jumlah dari elemen, baris dan kolom dalam suatu array.
ALEN(ArrayName [, nArrayAttribute])
Nilai nArrayAttribute, menentukan apakah fungsi ini mengembalikan jumlah elemen, baris atau
kolom, nilai 0 = jumlah elemen, 1 = baris dan 2= kolom
Contoh:
CLEAR
=AFONT(gaFontArray) && Array containing font names
gnNumFonts= ALEN(gaFontArray) && Number of fonts
IF gnNumFonts > 10
gnNumFonts = 10 && Display first 10 fonts
ENDIF
FOR nCount = 1 TO gnNumFonts
? ALLTRIM(gaFontArray(nCount)) && Display font name
?? ' This is an example of ' ;
+ ALLTRIM(gaFontArray(nCount)) FONT gaFontArray(nCount), 8
ENDFOR
ALIAS( )
Mengembalikan nama alias tabel dari area kerja yang ditentukan atau yang sedang aktif.
ALIAS([nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\data\testdata)
USE mhsd3
CLEAR
? ALIAS( ) && Display the alias
SELECT 0
USE mhsd3 AGAIN ALIAS MhsD3Fe
? ALIAS( ) && Display the alias
ALINES( )
Mengcopy setiap baris dalam ekspresi character atau field memo kedalam suatu baris karakter
menjadi array.
ALINES(ArrayName, cExpression [, lTrim] [cParseChar, , ,cParseChar])
Parameters
ArrayName, Nama array yang akan dibuat
CExpression, Ekspresi karakter atau field memo.
LTrim, Jika diisi .t. maka spasi kosong dihapus, sebaliknya .f.
CParseChar, Menentukan karakter linefeed CHR(10), carried return
CHR(13) pada setiap ekspresi karakter.
39
Contoh:
CLOSE DATABASES
CLEAR
SET TALK OFF
OPEN DATABASE (d:\prod3\data\testdata')
USE mhsd3
? ALINES(aMyarray,mhsd3.catatan,CHR(13)) && Displays 1
? ALINES(aMyarray,mhsd3.catatan,".") && Displays 7
? ALINES(aMyarray,mhsd3.catatan,",") && Displays 4
? ALINES(aMyarray,mhsd3.catatan," ") && Displays 75
? ALINES(aMyarray,mhsd3.catatan,".", ",") && Displays 10
? ALINES(aMyArray,mhsd3.catatan) && Displays 1
? aMyArray(1)
ALLTRIM( )
Menghapus spasis kosong pada ekpresi karakter.
ALLTRIM(cExpression)
Contoh:
CLEAR
=AFONT(gaFontArray) && Array containing font names
gnNumFonts= ALEN(gaFontArray) && Number of fonts
IF gnNumFonts > 10
gnNumFonts = 10 && Display first 10 fonts
ENDIF
APRINTERS( )
Menyajikan informasi nama printer yang disetup/diinstal dalam Windows Print Manager
kedalam suatu variabel memory
APRINTERS(ArrayName)
Contoh:
IF APRINTERS(gaPrinters) > 0
CLEAR
DISPLAY MEMORY LIKE gaPrinters
ELSE
WAIT WINDOW 'No printers installed.'
ENDIF
ASC( )
Mengembalikan nilai ANSI dalam suatu ekspresi karakter
ASC(cExpression)
Contoh:
STORE 'ABCDEFGHIJ' TO gcANSI && 10 characters
40
CLEAR
FOR nCOUNT = 1 TO 10
? SUBSTR(gcANSI, nCount,1) && Display a character
?? ASC(SUBSTR(gcANSI, nCount)) && Display ANSI value
ENDFOR
ASCAN( )
Mencari suatu array untuk setiap elemen yang berisi data sama dan jenis data yang
diekspresikan
ASCAN(ArrayName, eExpression [, nStartElement [, nElementsSearched [,
nSearchColumn [, nFlags ]]]])
Keterangan Parameters
nSearchColumn, Kolom array yang dicari. Gunakan 0 atau negatif untuk mencari seluruh
array.
Contoh:
CLOSE DATABASES
OPEN DATABASE ('d:\prod3\Data\testdata')
USE mhsd3 && buka tabel nilai mahasiswa
SELECT JURUSAN FROM mhsd3 ;
WHERE nilai>=70 ;
INTO ARRAY gaJurusan
gnCount = _TALLY
gcJurusan= 'Akuntansi'
CLEAR
DISPLAY MEMORY LIKE gaNilai*
ASORT( )
MenSort elemen-elemen dalam sebuah array dalam urutan ascending atau descending order.
Jika berhasil menghasilkan angka 1, sebaliknya 1.
ASORT(ArrayName [, nStartElement [, nNumberSorted [, nSortOrder [,
nFlags]]])
41
Instruksi berikut adalah membuat array yang diberi nama gaArray:
DIMENSION gaArray(3,2)
gaArray(1) = 'G'
gaArray(2) = 'A'
gaArray(3) = 'C'
gaArray(4) = 'Z'
gaArray(5) = 'B'
gaArray(6) = 'N'
=ASORT(gaArray,1)
Contoh:
CLOSE DATABASES
OPEN DATABASE ('d:\prod3\Data\testdata')
USE mhsd3 && buka tabel nilai mahasiswa
AT( )
Mengembalikan posisi awal berupa nilai numeric pada ekspresi karakter atau fiel memo
dengan ekspresi karakter atau field memo yang lain.
AT(cSearchExpression, cExpressionSearched [, nOccurrence])
Contoh:
STORE 'Now is the time for all good men' TO gcString
STORE 'is the' TO gcFindString
CLEAR
? AT(gcFindString,gcString) && Displays 5
STORE 'IS' TO gcFindString
? AT(gcFindString,gcString) && Displays 0, case-sensitive
BAR( )
Mengembalikan angka apabila item dari menu yang dibuat dengan fungsi DEFINE POPUP
BAR( )
Contoh:
*** Nama Program: BAR_EXAM.PRG ***
CLEAR
42
SET SYSMENU SAVE
SET SYSMENU TO
DEFINE PAD padConv OF _MSYSMENU ;
PROMPT '\<Conversions' COLOR SCHEME 3 KEY ALT+C, ''
DEFINE PAD padCard OF _MSYSMENU ;
PROMPT 'Card \<Info' COLOR SCHEME 3 KEY ALT+I, ''
ON PAD padConv OF _MSYSMENU ACTIVATE POPUP popConv
ON PAD padCard OF _MSYSMENU ACTIVATE POPUP popCard
DEFINE POPUP popConv MARGIN RELATIVE COLOR SCHEME 4
DEFINE BAR 1 OF popConv PROMPT 'Ar\<ea' KEY CTRL+E, '^E'
DEFINE BAR 2 OF popConv PROMPT '\<Length' KEY CTRL+L, '^L'
DEFINE BAR 3 OF popConv PROMPT 'Ma\<ss' KEY CTRL+S, '^S'
DEFINE BAR 4 OF popConv PROMPT 'Spee\<d' KEY CTRL+D, '^D'
DEFINE BAR 5 OF popConv PROMPT '\<Temperature' ;
KEY CTRL+T, '^T'
DEFINE BAR 6 OF popConv PROMPT 'T\<ime' KEY CTRL+I, '^I'
DEFINE BAR 7 OF popConv PROMPT 'Volu\<me' KEY CTRL+M, '^M'
PROCEDURE choice
PARAMETERS gnBar, gcPopup
WAIT WINDOW 'Anda memilih bar #' + LTRIM(STR(gnBar)) + ;
' dari popup ' + gcPopup NOWAIT
SET SYSMENU TO DEFAULT
BETWEEN( )
Menentukan nilai logika atau null, apakah suatu nilai dalam ekspresi berada diantara nilai yang
ditentukan.
BETWEEN(eTestValue, eLowValue, eHighValue)
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\data\testdata')
USE mhsd3
CLEAR
SCAN FOR BETWEEN(nilai,65,75)
? nim, nama
ENDSCAN
BOF( )
Menentukan apakah pointer rekord ada pada poisi awal
43
BOF([nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
CLEAR
OPEN DATABASE (d:\prod3\data\testdata)
USE mhsd3
GO BOTTOM
local recCtr, btnValue
recCtr = 0
btnValue = 1
DO WHILE btnValue = 1 AND NOT BOF()
? "Nama Mahasiswa : " + nama
recCtr = recCtr + 1
if (recCtr % 20) = 0 then
btnValue =MESSAGEBOX ("Klik OK untuk melanjutkan, ;
Cancel untuk kembali.",33)
clear
endif
Skip -1 && Move up one record
ENDDO
=MESSAGEBOX("Proses selesai",48)
CAPSLOCK( )
Mengembalikan mode tombol CAPS LOCK atau menset menjadi On atau Off
CAPSLOCK([lExpression])
Contoh:
glOldLock = CAPSLOCK( ) && Save original setting
= CAPSLOCK(.T.) && Turn CAPS LOCK on
= CAPSLOCK(glOldLock) && Return to original setting
= CAPSLOCK(!CAPSLOCK( ))
WAIT WINDOW
= CAPSLOCK(!CAPSLOCK( ))
WAIT WINDOW
= CAPSLOCK(glOldLock) && Return to original setting
CDOW( )
Mengembalikan nama hari dari ekspresi Date atau DateTime
CDOW(dExpression | tExpression)
Contoh:
STORE {^1998-02-16} TO gdDate
CLEAR
? CDOW(gdDate) && Displays Monday
CDX( )
Mengembalikan nama file index (CDX, coumpound index)
CDX(nIndexNumber [, nWorkArea | cTableAlias])
Contoh:
44
CLOSE DATABASES
OPEN DATABASE (d:\prod3\data\testdata')
USE mhsd3
CLEAR
FOR nCount = 1 TO 254
IF !EMPTY(TAG(nCount)) && Checks for tags in the index
? CDX(nCount) && Display structural index names
ELSE
EXIT && Exit the loop when no more tags are found
ENDIF
ENDFOR
CHR( )
Mengembalikan character dari angka kode ANSI
CHR(nANSICode)
Contoh:
CLEAR
FOR nCOUNT = 65 TO 75
? nCount && Display numeric value
?? ' ' + CHR(nCount) && Display character
ENDFOR
CHRSAW( )
Untuk mengetahui apakah suatu karakter tersimpan dalam buffer keyboard
CHRSAW([nSeconds])
Contoh:
SET TALK OFF
DEFINE WINDOW wEnter FROM 7,10 to 13,70 PANEL
ACTIVATE WINDOW wEnter
@ 1,3 SAY 'Customer: ' GET gcCustomer DEFAULT SPACE(40)
@ 3,3 SAY 'Address: ' GET gcAddress DEFAULT SPACE(40)
WAIT WINDOW 'Waiting for input' NOWAIT
IF NOT CHRSAW(5)
DEACTIVATE WINDOW wEnter
CLEAR GETS
ELSE
READ
DEACTIVATE WINDOW wEnter
ENDIF
RELEASE WINDOW wEnter
CHRTRAN( )
Mengganti setiap karakter dalam suatu ekspresi karakter.
CHRTRAN(cSearchedExpression, cSearchExpression,
cReplacementExpression)
Contoh:
? CHRTRAN('ABCDEF', 'ACE', 'XYZ') && Displays XBYDZF
? CHRTRAN('ABCD', 'ABC', 'YZ') && Displays YZD
? CHRTRAN('ABCDEF', 'ACE', 'XYZQRST') && Displays XBYDZF
45
CMONTH( )
Mengembalikan nama-nama bulan yang diberikan dari ekspresi Date atau DateTime
CMONTH(dExpression | tExpression)
Contoh:
? CMONTH(DATE( ))
STORE {^1998-02-16} TO gdDueDate
? 'Your payment was due in ', CMONTH(gdDueDate)
STORE gdDueDate+60 TO gdFinalDate
? 'You must pay by ', CMONTH(gdFinalDate)
CTOD( )
Mengubah ekspresi karakter menjadi ekspresi Date
CTOD(cExpression)
Contoh:
STORE 1998-02-16 TO cTanggal
dTanggal=CTOD(cTanggal)
CTOT( )
Mengembalikan nilai DateTime dari ekspresi karakter
CTOT(cCharacterExpression)
Contoh:
CURDIR( )
Mengembalikan nama direktory aktif
CURDIR([cExpression])
Contoh:
CLEAR
? 'Current directory: ', CURDIR( )
gcOldDir = SET('DEFAULT') + SYS(2003)
SET DEFAULT TO (HOME( ))
? 'Visual FoxPro directory: ', CURDIR( )
SET DEFAULT TO (gcOldDir)
? 'Current directory: ', CURDIR( )
46
DATE( )
Mengembalikan tanggal sistem, atau membuat tanggal yang sesuai.
DATE([nYear, nMonth, nDay])
Contoh:
CLEAR
SET CENTURY OFF
? DATE( ) && Displays today's date without the century
SET CENTURY ON
? DATE( ) && Displays today's date with the century
? DATE(1998, 02, 16) && Displays a year 2000-compliant Date value
DATETIME( )
Mengembalikan tanggal dan jam sistem, atau yang ditentukan
DATETIME([nYear, nMonth, nDay [, nHours [, nMinutes [, nSeconds]]]])
Contoh:
tNewyear = DATETIME(YEAR(DATE( ) ) + 1, 1, 1) && Next New Year
tToday = DATETIME( )
nSecondstonewyear = tNewyear - tToday
CLEAR
? "There are " + ALLTRIM (STR(nSecondstonewyear)) ;
+ " seconds to the next New Year."
CLEAR
SET CENTURY ON
SET DATE TO AMERICAN
? DATETIME(1998, 02, 16, 12, 34, 56) && Hasil: 02/16/1998 12:34:56 PM
DAY( )
Mengembalikan angka hari pada bulan yang diberikan oleh ekspresi Date atau DateTime
DAY(dExpression | tExpression)
Contoh:
STORE {^1998-03-05} TO gdBDate
CLEAR
? CDOW(gdBDate) && Displays Thursday
? DAY(gdBDate) && Displays 5
? 'That date is ', CMONTH(gdBDate), STR(DAY(gdBDate),2)
DBC( )
Mengambalikan nama dan path dari database aktif
DBC( )
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\data\testdata')
CLEAR
? DBC( ) && nampak path dan nama database
47
DBF( )
Mengembalikan nama tabel atau nama alias yang terbuka pada area tertentu
DBF([cTableAlias | nWorkArea])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3 IN 2 ALIAS mhsd3fe
CLEAR
? DBF(2) && nampak mhsd3.dbf
? DBF('mhsd3fe') && nampak mhsd3.dbf
CLOSE DATABASES
? DBF( ) && nampak kosong
DBSETPROP( )
Menentukan property database atau field, nama koneksi, tabel atau view
DBSETPROP(cName, cType, cProperty, ePropertyValue)
DBGETPROP( )
Mengembalikan property database, field, nama koneksi, tabel atau view
DBGETPROP(cName, cType, cProperty)
DBUSED( )
Mengembalikan nilai true (.T.) jika database yang disebutkan aktif
DBUSED(cDatabaseName)
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
CLEAR
? 'Testdata database open? '
?? DBUSED('testdata') && Displays .T.
? 'Test database open? '
?? DBUSED('test') && Displays .F.
48
DELETED( )
Mengembalikan nilai logika (.T. atau .F.) apakah sebuah rekord telah dihapus
DELETED([cTableAlias | nWorkArea])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
DELETE FROM mhsd3 WHERE nilai<65
CLEAR
LIST FIELDS nim, nama FOR DELETED( ) && List marked records
RECALL ALL && Unmark all records marked for deletion
DESCENDING( )
Mengembalikan nilai logika apakah indeks dibuat dengan urutan DESCENDING
DESCENDING([CDXFileName[, nIndexNumber [, nWorkArea | cTableAlias]]])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
CLEAR
DIRECTORY( )
Mengembalikan nilai true (.T.) jika direktory yang ditentukan ada pada disk
DIRECTORY(cDirectoryName)
DISKSPACE( )
Mengembalikan jumlah byte yang tersedia pada disk default atau yang dipilih
DISKSPACE([cVolumeName [, nType]])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
CLEAR
gnTableHead = HEADER( )
gnFileSize = gnTableHead + (RECSIZE( ) * RECCOUNT( ) + 1)
IF DISKSPACE( ) > (gnFileSize * 3)
WAIT WINDOW 'Sufficient diskspace to sort.'
ELSE
49
WAIT WINDOW 'Insufficient diskspace. Sort cannot be done.'
ENDIF
DisplayPath( )
DisplayPath(cFilename, nMaxLength)
Contoh:
? DISPLAYPATH('d:\prod3\data\mhsd3.dbf',10) & mhsd3.dbf
DMY( )
Mengembalikan ekspresu karakter dalam format dd-mm-yyyy dari ekspresi date atau datetime
DMY(dExpression | tExpression)
Contoh:
CLEAR
SET CENTURY OFF
? DMY(DATE( ))
SET CENTURY ON
? DMY(DATE( ))
DOW( )
Mengembalikan angka hari mingguan dari ekspresi Date atau DateTime
DOW(dExpression | tExpression [, nFirstDayOfWeek])
DRIVETYPE( )
Mengembalikan jenis drive yang digunakan
DRIVETYPE(cDrive)
50
DTOC( )
Mengubah jenis karakter dari ekspresi Date atau DateTime
DTOC(dExpression | tExpression [, 1])
DTOS( )
Mengembalikan karakter tanggal dalam format yyyymmdd dari ekspresi date atau datetime
DTOS(dExpression | tExpression)
Contoh:
CLEAR
? DTOS(DATE( ))
DTOT( )
Mengembalikan nilai DateTime dari ekspresi date
DTOT(dDateExpression)
Contoh:
? DTOT({^1998-02-16}) && Displays 02/16/1998 12:00:00am
EDITSOURCE( )
Membuka kotak editor untuk mengubah sumber program.
EditSource(cShortCutID | [ cFilename [, nLineNo] [, cClassName]
[, cMethodName|cProcName]])
Contoh:
EDITSOURCE('d:\prod3\progs\program1.prg',2)
EMPTY( )
Menentukan apakah suatu ekspresi yang dievaluasi kosong
EMPTY(eExpression)
EOF( )
Menentukan apakah posisi pointer rekord ada pada akhir file
EOF([nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
CLEAR
OPEN DATABASE (d:\prod3\data\testdata)
USE mhsd3
GO TOP
local recCtr, btnValue
recCtr = 0
btnValue = 1
51
DO WHILE btnValue = 1 AND NOT EOF()
? "Nama : " + Nama
recCtr = recCtr + 1
if (recCtr % 20) = 0 then
btnValue =MESSAGEBOX ("Klik OK=Lanjut,Cancel=Kembali,33)
clear
endif
Skip 1
ENDDO
=MESSAGEBOX("Selesai,48)
ERROR( )
Mengembalikan angka ERROR terhadap setiap kesalahan yang terjadi
ERROR( )
Contoh:
CLEAR
ON ERROR DO errhand WITH ERROR( ), MESSAGE( )
BRWSE
ON ERROR
RETURN
PROCEDURE errhand
PARAMETER errnum,message
? Message
? 'Error number: '+ ALLTRIM(STR(Errnum))
RETURN
EVALUATE( )
Untuk mengetahui jenis ekspresi dari ekspresi karakter
EVALUATE(cExpression)
EXP( )
Menghitung eksponen dari nilai e (ex ) dimana x adalah ekspresi numerik
EXP(nExpression)
Contoh:
? EXP(0) && Displays 1.00
? EXP(1) && Displays 2.72
FCOUNT( )
Mengembalikan jumlah field dalam sebuah tabel
FCOUNT([nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
52
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
SELECT 0
USE employee && Opens employee table
CLEAR
? FCOUNT('CUSTOMER') && Displays 13, # of fields in Customer
? FCOUNT('EMPLOYEE') && Displays 22, # of fields in Employee
FDATE( )
Mengembalikan tanggal waktu modifikasi terakhir suatu file
FDATE(cFileName [, nType])
Contoh:
? FDATE('FOXUSER.DBF', 1) && Displays the last modification DateTime
FIELD( )
Mengembalikan nama sebuah field dalam suatu tabel
FIELD(nFieldNumber [, nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
CLEAR
FOR gnCount = 1 TO FCOUNT( ) && Loop for number of fields
? FIELD(gnCount) && Display each field
NEXT
?
? 'Number of fields: ' + ALLTRIM(STR(gnCount -1))
FILE( )
Mengembalikan nilai true (.T.) jika file yang ditentukan ada pada disk
FILE(cFileName)
Contoh:
SET PATH TO d:\prod3\data
CLEAR
IF FILE('mhsd3.dbf')
WAIT WINDOW 'File mhsd3.dbf ada
ELSE
WAIT WINDOW 'File mhsd3.dbf tidak ada
ENDIF
FILTER( )
Mengembalikan ekspresi FILTER yang dibuat dari perintah SET FILTER
FILTER([nWorkArea | cTableAlias])
53
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
SET TALK ON
SET FILTER TO SUBSTR(nama,3,1)=A
CLEAR
? FILTER( )
STORE FILTER('mhsd3') TO gcOldFilter
SET FILTER TO Left(Nim,2)==01
? FILTER( )
SET FILTER TO &gcOldFilter
? FILTER( )
FLOCK( )
Mengunci file tabel pada area aktif atau tabel yang ditentukan, mengembalikan nilai .T. jika
proses penguncian berhasil, sebaliknya .F.
FLOCK([nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
SET REPROCESS TO 3 SECONDS
SELECT * FROM mhsd3 INTO TABLE mhsd3fe
IF FLOCK( )
REPLACE ALL nilai with 0
WAIT 'Proses selesai' WINDOW NOWAIT
ELSE
WAIT WINDOW 'File tidak bisa dikunci
ENDIF
FOUND( )
Mengembalikan nilai true (.T.) jika fungsi CONTINUE, FIND, INDEXSEEK( ), LOCATE, atau
SEEK berhasil menemukan yang dicari.
FOUND([nWorkArea | cTableAlias])
Contoh:
SET TALK OFF
CLOSE DATABASES
OPEN DATABASE (d:\prod3\data\testdata')
USE mhsd3
STORE 0 TO gnCount
LOCATE FOR NILAI=65
54
DO WHILE FOUND( )
gnCount = gnCount + 1
CONTINUE
ENDDO
WAIT WINDOW 'Total mahasiswa memperoleh nilai 65: ' ;
+ LTRIM(STR(gnCount)) NOWAIT
FSIZE( )
Mengembalikan ukuran dalam byte dari field yang ada pada sebuah tabel
FSIZE(cFieldName [, nWorkArea | cTableAlias] | cFileName)
Contoh:
SET COMPATIBLE OFF
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
CLEAR
? FSIZE('nama')
? FSIZE('nim')
FTIME( )
Mengembalikan waktu modifikasi terakhir
FTIME(cFileName)
FULLPATH( )
Mengembalikan path file yang ditentukan
FULLPATH(cFileName1 [, nMSDOSPath | cFileName2])
FV( )
Mengembalikan nilai yang akan datang dari suatu investasi financial
FV(nPayment, nInterestRate, nPeriods)
Contoh:
STORE 500 TO gnPayment && Monthly payment
GETBAR( )
Mengembalikan angka dari suatu item menu pada menu yang dibuat dengan perintah DEFINE
POPUP
GETBAR(MenuItemName, nMenuPosition)
55
Contoh:
CLEAR
ON KEY LABEL CTRL+Z DO showorder
WAIT WINDOW "Press CTRL+Z to refresh." NOWAIT
DEFINE POPUP popDemo MOVER FROM 2,2
DEFINE BAR 1 OF popDemo PROMPT 'One'
DEFINE BAR 2 OF popDemo PROMPT 'Two'
DEFINE BAR 3 OF popDemo PROMPT 'Three'
DEFINE BAR 4 OF popDemo PROMPT 'Four'
DO showorder
ACTIVATE POPUP popDemo
PROCEDURE showorder
CLEAR
@ 3,12 SAY '1 ' + PRMBAR('popDemo', GETBAR('popDemo',1))
@ 4,12 SAY '2 ' + PRMBAR('popDemo', GETBAR('popDemo',2))
@ 5,12 SAY '3 ' + PRMBAR('popDemo', GETBAR('popDemo',3))
@ 6,12 SAY '4 ' + PRMBAR('popDemo', GETBAR('popDemo',4))
RETURN
GETCOLOR( )
Menampilan kotak dialog Windows Color dan mengembalikan nilai warna yang dipilih
GETCOLOR([nDefaultColorNumber])
Contoh:
CLEAR
? GETCOLOR(255)
GETDIR( )
Menampilkan kotak dialog untuk memilih direktory
GETDIR([cDirectory [, cText [, cCaption [, nFlags [, lRootOnly]]]]])
GETENV( )
Mengembalikan isi variabel environment
GETENV(cVariableName)
GETFILE( )
Menampilkan kotak dialog membuka file
GETFILE([cFileExtensions] [, cText] [, cOpenButtonCaption]
[, nButtonType] [, cTitleBarCaption])
Contoh:
CLOSE DATABASES
SELECT 0
56
DO CASE
CASE 'Untitled' $ gcTable
CREATE (gcTable)
CASE EMPTY(gcTable)
RETURN
OTHERWISE
USE (gcTable)
BROWSE
ENDCASE
GETFONT( )
Menampilkan kotak dialog Font dan mengembalikan font yang dipilih
GETFONT(cFontName [, nFontSize [, cFontStyle [, nFontCharSet])
Contoh:
cMyFont = GETFONT( , , 'B')
GETPAD( )
Mengembalikan nama menu pada posisi menu bar yang ditentukan
GETPAD(cMenuBarName, nMenuBarPosition)
Contoh:
FOR gnCount = 1 TO CNTPAD('_msysmenu') && Number of pads
IF PRMPAD('_msysmenu', GETPAD('_msysmenu', gnCount)) = 'Edit'
RELEASE PAD (GETPAD('_msysmenu', gnCount)) OF _msysmenu
EXIT
ENDIF
ENDFOR
GETPICT( )
Menampilkan kotak dialog membuka file gambar dan mengembalikan nama gambar yang
dipilih
GETPICT([cFileExtensions] [, cFileNameCaption] [,
cOpenButtonCaption])
GETPRINTER( )
Menampilkan kotak dialog printer dan mengembalikan nama printer yang dipilih
GETPRINTER( )
Contoh:
CLEAR
cPrinter = GETPRINTER( ) && Displays the Windows Printer Dialog
*** Displays the name of the printer chosen ***
WAIT WINDOW IIF(EMPTY(cPrinter), 'No printer chosen', cPrinter)
57
GETWORDCOUNT( )
Menghitung kata dalam sebuah string
GetWordCount(cString[, cDelimiter])
Contoh:
cString = "AAA aaa, BBB bbb, CCC ccc."
? GetWordCount(cString) && 6 - character groups, delimited by "
"
? GetWordCount(cString, ",") && 3 - character groups, delimited by
","
? GetWordCount(cString, ".") && 1 - character group, delimited by "."
GETWORDNUM( )
Mengembalikan kata yang ditentukan dari sebuah string
GETWORDNUM(cString, nIndex[, cDelimiter])
Contoh:
cString = "AAA aaa, BBB bbb, CCC ccc."
? GetWordnum(cString,3) && Display: BBB
GOMONTH( )
Mengembalikan tanggal dari ekpsresi Date atau DateTime terhadap periode waktu sebelum
dan sesudah ekspresi tanggal tersebut
GOMONTH(dExpression | tExpression, nNumberOfMonths)
Contoh:
SET CENTURY ON
STORE GOMONTH({^1998-02-16}, 5) TO gdDeadLine
CLEAR
? gdDeadLine && Displays 07/16/1998
? GOMONTH({^1998-12-31}, 2) && Displays 02/28/1999
? GOMONTH({^1998-12-31}, -2) && Displays 10/31/1998
HEADER( )
Mengembalikan jumlah byte header dari file tabel yang ditentukan atau aktif
HEADER([nWorkArea | cTableAlias])
HOME( )
Mengembalikan nama-nama direktory dari Visual FoxPro dan Visual Studio
HOME([nLocation])
Contoh:
CLEAR
? 'Visual FoxPro startup directory: ', HOME( )
? 'Visual FoxPro installation directory: ', HOME(1)
? 'Visual FoxPro samples directory: ', HOME(2)
58
? 'Visual Studio common directory: ', HOME(3)
? 'Visual FoxPro graphics directory: ', HOME(4)
? 'MSDN samples directory: ', HOME(5)
? 'Visual Studio tools directory: ', HOME(6)
? 'Visual FoxPro user app data directory: ', HOME(7)
HOUR( )
Mengembalikan nilai jam dari ekspresi DateTime
HOUR(tExpression)
Contoh:
? HOUR(DATETIME( ))
? HOUR({^1998-02-16 10:42a}) && Displays 10
ID( )
Mengembalikan informasi mengenai jaringan yang sedang digunakan.
ID( )
IIF( )
Mengembalikan satu dari dua kondisi ekpresi logika
IIF(lExpression, eExpression1, eExpression2)
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
CLEAR
SCAN
? IIF(nilai>80,Nilai Absolut adalah A,Bukan A)
ENDSCAN
INDBC( )
Mengembalikan nilai true (.T.) jika object database adalah database aktif
INDBC(cDatabaseObjectName, cType)
Contoh:
CLOSE DATABASES
CREATE DATABASE mydbc && Creates a new database
CREATE TABLE mytable (field1 C(10)) && Automatically added to
database
CLOSE DATABASES
DELETE DATABASE mydbc DELETETABLES
59
INKEY( )
Mengembalikan angka key yang ditekan
INKEY([nSeconds] [, cHideCursor])
60
u 117 85 21 22
v 118 86 22 47
w 119 87 23 17
x 120 88 24 45
y 121 89 25 21
z 122 90 26 44
INS 22 22 146 162
HOME 1 55 29 151
DEL 7 7 147 163
END 6 49 23 159
PAGE UP 18 57 31 153
PAGE DOWN 3 51 30 161
UP ARROW 5 56 141 152
DOWN ARROW 24 50 145 160
RIGHT ARROW 4 54 2 157
LEFT ARROW 19 52 26 155
ESC 27 /27 */27 */1
ENTER 13 13 10 /166
BACKSPACE 127 127 127 14
TAB 9 15 148/* *
SPACEBAR 32 32 32/ 57
INLIST( )
Untuk menentukan apakah suatu ekspresi sesuai dengan ekspresi lain yang ada pada
kumpulan ekpresi
INLIST(eExpression1, eExpression2 [, eExpression3 ...])
Contoh:
SET TALK ON
STORE CMONTH(DATE( )) TO gcMonth
DO CASE
CASE INLIST(gcMonth,'January','February','March')
STORE 'First Quarter' TO gcReporTitle
CASE INLIST(gcMonth,'April','May','June')
STORE 'Second Quarter' TO gcReporTitle
CASE INLIST(gcMonth,'July','August','September')
STORE 'Third Quarter' TO gcReporTitle
OTHERWISE
STORE 'Fourth Quarter' TO gcReporTitle
ENDCASE
WAIT WINDOW gcReporTitle
INPUTBOX( )
Menampilkan kotak dialog isian untuk memasukkan string tunggal
INPUTBOX(cInputPrompt [, cDialogCaption] [, cDefaultValue] [,
nTimeout])
Contoh:
Y = "Nothing at all"
Y = INPUTBOX("TypeHere","Input ",Y,5000)
61
INSMODE( )
Mengembalikan mode tombil INSERT/INS atau men-set menjadi On atau Off
INSMODE([lExpression])
Contoh:
SET TALK ON
=INSMODE(.T.) && Set insert mode on
? INSMODE( )
= INSMODE(!INSMODE( )) && Toggle insert mode to opposite state
? INSMODE( )
INT( )
Mengubah ekspresi numerik dan mengembalikan nilai integer
INT(nExpression)
Contoh:
CLEAR
? INT(12.5) && Displays 12
? INT(6.25 * 2) && Displays 12
? INT(-12.5) && Displays -12
STORE -12.5 TO gnNumber
? INT(gnNumber) && Displays -12
ISALPHA( )
Untuk mengetahui apakah suatu ekpresi karakter adalah aphabetic
ISALPHA(cExpression)
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
CLEAR
DISPLAY nama
? ISALPHA(nama) && Displays .T.
DISPLAY nim
? ISALPHA(nim) && Displays .F.
ISBLANK( )
Untuk mengetahui apakah suatu ekpresi kosong
ISBLANK(eExpression)
Contoh:
CREATE TABLE mytable FREE (myfield C(20))
APPEND BLANK && Add new blank record
CLEAR
? ISBLANK(myfield) && Displays .T.
REPLACE myfield WITH 'John Smith' && Insert a value in the field
? ISBLANK(myfield) && Displays .F.
62
ISCOLOR( )
Menentukan apakah computer dapat menampilkan warna
ISCOLOR( )
ISDIGIT( )
Menentukan apakah karakter paling kiri dari suatu ekpresi karakter adalah angka 0 sampai 9
ISDIGIT(cExpression)
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
? ISDIGIT(nama) && Displays .F.
DISPLAY nilai
? ISDIGIT(ALLTRIM(STR(nilai))) && Displays .T.
ISEXCLUSIVE( )
Mengembalikan nilai true (.T.) jika tabel atau database dibuka Exclusive
ISEXCLUSIVE([cTableAlias | nWorkArea | cDatabaseName [, nType]])
Contoh:
cExclusive = SET('EXCLUSIVE')
SET EXCLUSIVE OFF
SET PATH TO (HOME(2) + 'data\')
OPEN DATA testdata && Opens the test databsase
USE customer && Not opened exclusively
USE employee IN 0 EXCLUSIVE && Opened exclusively in another work
area
IF ISEXCLUSIVE( )
REINDEX && Can only be done if table opened exclusively
ELSE
WAIT WINDOW 'The table has to be exclusively opened'
ENDIF
SET EXCLUSIVE &cExclusive
ISFLOCKED( )
Mengembalikan status file tabel apakah terkunci atau tidak
ISFLOCKED([nWorkArea | cTableAlias])
ISLOWER( )
Menentukan apakah karakter paling kiri dari sebuah ekspresi karakter adalah huruf kecil.
ISLOWER(cExpression)
Contoh:
CLEAR
? ISLOWER('redmond') && Displays .T.
? ISLOWER('Redmond') && Displays .F.
63
ISMOUSE( )
Mengembalikan nilai true (.T.) jika mouse terpasang dan dapat digunakan.
ISMOUSE( )
Contoh:
CLEAR
? IIF(ISMOUSE( ),Ada Mouse,Mouse tidak ada)
ISNULL( )
Mengembalikan nilai true (.T.) jika suatu ekspresi mempunyai nilai NULL
ISNULL(eExpression)
Contoh:
ISREADONLY( )
Menentukan apakah suatu tabel atau database dibuka read-only.
ISREADONLY([nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\data\testdata')
USE mhsd3 NOUPDATE
CLEAR
? ISREADONLY('mhsd3') && Returns .T.
ISRLOCKED( )
Mengembalikan status rekord, terkunci atau tidak
ISRLOCKED([nRecordNumber, [nWorkArea | cTableAlias]])
ISUPPER( )
Menentukan apakah karakter pertama dalam sebuah ekspresi karakter adalah huruf besar
ISUPPER(cExpression)
Contoh:
? ISUPPER('Belajar foxpro') && Displays .T.
? ISUPPER('belajar FoxPro') && Displays .F.
64
LASTKEY( )
Mengembalikan nilai integer tombol yang ditekan terakhir
LASTKEY( )
Contoh:
**Nama File: pQuit.prg
If Lastkey()=27 && tombol ESC ditekan
Clear event
Quit
Endif
LEFT( )
Mengembalikan karakter dimulai dari kiri sampai pada angka yang ditentukan.
LEFT(cExpression, nExpression)
Contoh:
CLEAR
? LEFT('Fakultas Ekonomi, 3) && Displays Fak
LEN( )
Mengembalikan jumlah karakter dalam suatu ekpresi karakter
LEN(cExpression)
Contoh:
? LEN('Fakultas Ekonomi)
LENC( )
Mengembalikan jumlah karakter dalam suatu ekpresi karakter atau memo field.
LENC(cExpression)
LIKE( )
Menentukan jika suatu ekspresi karakter sesuai dengan ekspresi karakter yang lain
LIKE(cExpression1, cExpression2)
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
CLEAR
? 'Semua mahasiswa yang namanya berisi huruf A
?
SCAN FOR LIKE('A', NAMA)
? nama
ENDSCAN
USE
65
LOCK( )
Mengunci satu atau lebih rekord dalam suatu tabel
LOCK([nWorkArea | cTableAlias]|
[cRecordNumberList, nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
SET REPROCESS TO 3 AUTOMATIC
STORE '1,2,3,4' TO gcRecList
gcOldExc = SET('EXCLUSIVE')
SET EXCLUSIVE OFF
SELECT 0
USE employee && Open Employee table
SELECT 0
USE customer && Open Customer table
? LOCK('1,2,3,4', 'customer') && Lock 1st 4 records in customer
? RLOCK(gcRecList, 'employee') && Lock 1st 4 records in employee
UNLOCK IN customer
UNLOCK IN employee
SET EXCLUSIVE &gcOldExc
LOOKUP( )
Menampilkan isi fiel dari tabel dengan ekspresi tertentu
LOOKUP(ReturnField, eSearchExpression, SearchedField [, cTagName])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\data\testdata')
USE mhsd3
CLEAR
@ 2,2 SAY LOOKUP(nama, 80, nilai)
LOWER( )
Mengembalikan ekspresi karakter tertentu dalam huruf kecil
LOWER(cExpression)
Contoh:
STORE 'FOX' TO gcName
CLEAR
? LOWER(gcName) && Displays fox
LTRIM( )
Mengembalikan ekspresi karakter dengan menghapus spasi kosong pada bagian kiri
LTRIM(cExpression)
Contoh:
STORE 'Denpasar ' TO gcKota
STORE ' Bali' TO gcPropinsi
CLEAR
66
? gcKota, gcPropinsi && Nampak: Denpasar Bali
? gcKota, LTRIM(gcPropinsi) && Nampak: Denpasar Bali
LUPDATE( )
Mengembalikan tanggal peubahan data terakhir
LUPDATE([nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\data\testdata')
USE mhsd3
CLEAR
? LUPDATE( )
MAX( )
Menilai sekumpulan ekspresi dan mengembalikan nilai maksimum
MAX(eExpression1, eExpression2 [, eExpression3 ...])
Contoh:
? MAX(1,3,2,3,4,5,6) && Hasilnya: 6
MDY( )
Mengembalikan ekspresi Date atau DateTime kedalam format month-day-year
MDY(dExpression | tExpression)
Contoh:
SET CENTURY OFF
CLEAR
? Longdate({^1998-02-16}) && Displays Monday, February 16, 98
SET CENTURY ON
? Longdate({^1998-02-16}) && Displays Monday, February 16, 1998
FUNCTION longdate
PARAMETERS gdDate
RETURN CDOW(gdDate) + ', ' + MDY(gdDate)
MEMLINES( )
Mengembalikan jumlah baris dalam sebuah field memo
MEMLINES(MemoFieldName)
Contoh:
CLOSE DATABASES
CLEAR
SET TALK OFF
CLOSE DATABASES
67
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
SET MEMOWIDTH TO 65
gnLine = 1
GOTO 2
SCAN NEXT 3
gnMemoSize = MEMLINES(catatan)
IF gnMemoSize = 0
STORE .T. TO glNoMemo
STORE 1 TO gnMemoSize
ELSE
STORE .F. TO glNoMemo
ENDIF
IF gnLine + gnMemoSize > 65
EJECT
gnLine = 1
ENDIF
@ gnLine,2 SAY 'Nama Mahasiswa: '+ Nama
gnLine = gnLine +1
@ gnLine,2 SAY 'Catatan : '
?? IIF(glNoMemo, 'Tidak ada catatan,Catatan)
gnLine = gnLine + gnMemoSize + 2
IF gnLine > 24
gnLine = 1
CLEAR
ENDIF
ENDSCAN
MEMORY( )
Mengembalikan jumlah memory yang tersedia untuk menjalankan program eksternal
MEMORY( )
MENU( )
Mengembalikan nama dari menu bar aktif sebagai karakter string
MENU( )
Contoh:
*** Simpan program dengan nama MENUEXAM.PRG
CLEAR
SET SYSMENU SAVE
SET SYSMENU TO
DEFINE PAD padSys OF _MSYSMENU PROMPT '\<System' COLOR SCHEME 3 ;
KEY ALT+S, ''
DEFINE PAD padEdit OF _MSYSMENU PROMPT '\<Edit' COLOR SCHEME 3 ;
KEY ALT+E, ''
DEFINE PAD padRecord OF _MSYSMENU PROMPT '\<Record' COLOR SCHEME 3 ;
KEY ALT+R, ''
DEFINE PAD padWindow OF _MSYSMENU PROMPT '\<Window' COLOR SCHEME 3 ;
KEY ALT+W, ''
DEFINE PAD padReport OF _MSYSMENU PROMPT 'Re\<ports' COLOR SCHEME 3
KEY ALT+P, ''
DEFINE PAD padExit OF _MSYSMENU PROMPT 'E\<xit' COLOR SCHEME 3 ;
KEY ALT+X, ''
ON SELECTION MENU _MSYSMENU ;
DO choice IN menuexam WITH PAD(), MENU()
68
PROCEDURE choice
PARAMETER gcPad, gcMenu
WAIT WINDOW 'You chose ' + gcPad + ;
' from menu ' + gcMenu NOWAIT
IF gcPad = 'PADEXIT'
SET SYSMENU TO DEFAULT
ENDIF
MESSAGE( )
Mengembalikan pesan kesalahan sebagai karakter string atau isi dari baris program yang
menyebabkan kesalahan
MESSAGE([1])
Contoh:
ON ERROR DO Errhand
USE DataPelih
ON ERROR && restore system error handler
PROCEDURE Errhand
? 'Line of code with error: ' + MESSAGE(1)
? 'Error number: ' + STR(ERROR( ))
? 'Error message: ' + MESSAGE( )
MESSAGEBOX( )
Menampilkan kotak dialog konfirmasi
MESSAGEBOX(eMessageText [,cTitleBarText][,nDialogBoxType
][,nTimeout])
69
2 Cancel
3 Abort
4 Retry
5 Ignore
6 Yes
7 No
MESSAGEBOX("HELLO","MyTitle",36,1)
MESSAGEBOX("HELLO",36,"MyTitle",1)
MESSAGEBOX("HELLO",36,1)
MESSAGEBOX("HELLO",36,1,"MyTitle")
Contoh:
cMessageTitle = 'My Application'
cMessageText = 'Record not found. Would you like to search again?'
nDialogType = 4 + 32 + 256
* 4 = Yes and No buttons, 32 = Question mark icon
* 256 = Second button is default
nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)
DO CASE
CASE nAnswer = 6
WAIT WINDOW 'You chose Yes'
CASE nAnswer = 7
WAIT WINDOW 'You chose No'
ENDCASE
MIN( )
Menilai sekumpulan ekspresi dan mengembalikan nilai minimum
MIN(eExpression1, eExpression2 [, eExpression3 ...])
Contoh:
? MIM(1,3,2,3,4,5,6) && Hasilnya: 1
MINUTE( )
Mengembalikan angka menit dalam ekspresi DateTime
MINUTE(tExpression)
Contoh:
CLEAR
? MINUTE(DATETIME( ))
? MINUTE({^1998-02-16 10:42a}) && Displays 42
MLINE( )
Mengembalikan baris dari field memo sebagai karakter string
MLINE(MemoFieldName, nLineNumber [, nNumberOfCharacters])
Contoh:
CLEAR
SET TALK OFF
SET MEMOWIDTH TO 50
70
CLOSE DATABASES
CREATE TABLE tmemo (name c(10), notes m)
APPEND BLANK
FOR gnOuterLoop = 1 TO 5
FOR gnAlphabet = 65 TO 75
REPLACE notes WITH REPLICATE(CHR(gnAlphabet), 10) ;
+ CHR(13) ADDITIVE
NEXT
NEXT
STORE MEMLINES(notes) TO gnNumLines
STORE SECONDS( ) TO gnBegin
FOR gnCount = 1 TO gnNumLines
? MLINE(notes, gnCount)
NEXT
? STR(SECONDS( ) - gnBegin, 4, 2) + ' seconds'
MOD( )
Membagi satu ekspresi numeric dengan ekspresi numeric lainnya dan mengembalikan sisa
pembagiannya. Pengganti fungsi ini dapat digunakan operator %.
MOD(nDividend, nDivisor)
Contoh:
CLEAR
? MOD(36,10) && sisanya 6
? MOD((4*9), (90/9)) && sisanya 6
? MOD(25.250,5.0) && sisanya 0.250
MONTH( )
Mengembalikan angka bulan dari ekspresi Date atau DateTime
MONTH(dExpression | tExpression)
Contoh:
CLEAR
? DATE( ) && Menampilkan tanggal hari ini
? MONTH(DATE( )) && Menampilkan angka bulan
STORE {^1998-05-03} TO gdBuy
STORE MONTH(gdBuy + 31) TO gdMonth
? gdMonth && Menampilkan angka bulan juni yaitu 6
71
MTON( )
Mengembalikan nilai Numeric dari ekspresi Currency
MTON(mExpression)
Contoh:
STORE $24.95 TO gyMoney
CLEAR
? "gyMoney is type: "
?? TYPE('gyMoney') && Hasilnya Y, nilai jenis currency
gyMoney = MTON(gyMoney)
? "gyMoney mempunyai jenis : "
?? TYPE('gyMoney')
NDX( )
Mengembalikan nama file index (.IDX) dari tabel aktif atau tabel yang ditentukan.
NDX(nIndexNumber [, nWorkArea | cTableAlias])
NTOM( )
Mengembalikan nilai Currency dengan empat desimal dari ekspresi numeric
NTOM(nExpression)
NUMLOCK( )
Mengembalikan mode tombol NUM LOCK atau mengubah kondisi On atau Off
NUMLOCK([lExpression])
Contoh:
gcOldLock = NUMLOCK( )
WAIT WINDOW 'Tekan space bar, untuk mengubah Num Lock on'
= NUMLOCK(.T.)
WAIT WINDOW 'Tekan space bar, untuk mengubah Num Lock off'
= NUMLOCK(!NUMLOCK( ))
WAIT WINDOW 'Tekan space bar, untuk ke kondisi awal
= NUMLOCK(gcOldLock)
NVL( )
Mengembalikan nilai dari dua ekspresi yang bernilai tidak NULL
NVL(eExpression1, eExpression2)
Contoh:
STORE .NULL. TO glMyNull
CLEAR
? NVL(.T., glMyNull) && Hasilnya .T.
? NVL(glMyNull, glMyNull) && Hasilnya .NULL.
72
OCCURS( )
Mengembalikan angka hasil dari perhitungan karakter pengulangan dari ekspresi karakter
dengan ekpresi karakter lain, bila angka yang dihasilkan 0 berarti tidak ada karakter yang
dicari.
OCCURS(cSearchExpression, cExpressionSearched)
Contoh:
STORE 'abracadabra' TO gcstring
CLEAR
? OCCURS('a', gcstring) && a ada 5
? OCCURS('b', gcstring) && b ada 2
? OCCURS('c', gcstring) && c ada 1
? OCCURS('e', gcstring) && e tidak ada = 0
ON( )
Mengembalikan instruksi yang ditentukan dari setiap even pada perintah-perintah: ON
ERROR, ON ESCAPE, ON KEY LABEL atau ON PAGE
ON(cONCommand [, KeyLabelName])
ORDER( )
Mengembalikan nama dari kontrol file index atau tag dari tabel yang ditentukan
ORDER([nWorkArea | cTableAlias [, nPath]])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3 ORDER nim
? ORDER( ) && Hasilnya NIM
? ORDER('mhsd3, 1) && Displays MHSD3.CDX
PAD( )
Mengembalikan karakter huruf besar dari judul menu yang dipilih dari menu bar.
PAD([cMenuTitle [, cMenuBarName]])
73
Contoh:
*** Nama: PADEXAM.PRG ***
CLEAR
SET SYSMENU SAVE
SET SYSMENU TO
DEFINE PAD padSys OF _MSYSMENU PROMPT '\<System' COLOR SCHEME 3 ;
KEY ALT+S, ''
DEFINE PAD padEdit OF _MSYSMENU PROMPT '\<Edit' COLOR SCHEME 3 ;
KEY ALT+E, ''
DEFINE PAD padRecord OF _MSYSMENU PROMPT '\<Record' COLOR SCHEME 3 ;
KEY ALT+R, ''
DEFINE PAD padWindow OF _MSYSMENU PROMPT '\<Window' COLOR SCHEME 3 ;
KEY ALT+W, ''
DEFINE PAD padReport OF _MSYSMENU PROMPT 'Re\<ports' COLOR SCHEME 3
KEY ALT+P, ''
DEFINE PAD padExit OF _MSYSMENU PROMPT 'E\<xit' COLOR SCHEME 3 ;
KEY ALT+X, ''
ON SELECTION MENU _MSYSMENU ;
DO choice IN padexam WITH PAD( ), MENU( )
PROCEDURE choice
PARAMETERS gcPad, gcMenu
WAIT WINDOW 'Anda memilih ' + gcPad + ;
' dari menu ' + gcMenu NOWAIT
IF gcPad = 'PADEXIT'
SET SYSMENU TO DEFAULT
ENDIF
PARAMETERS( ), PCOUNT()
Mengembalikan angka dari parameter yang digunakan dalam memanggil program, procedure
atau fungsi.
PARAMETERS()
PCOUNT()
Contoh:
** Nama File: Pro1
DO testpar WITH 1,2,3
PROCEDURE testpar
PARAMETERS gn1,gn2,gn3
gcMessage = 'PARAMETERS( ) ='+ALLTRIM(STR(PARAMETERS( )))
74
WAIT WINDOW (gcMessage)
RETURN
Endproc
FUNCTION getavg
PARAMETERS gnPara1,gnPara2,gnPara3,gnPara4,gnPara5, ;
gnPara6,gnPara7,gnPara8,gnPara9
IF PARAMETERS( ) = 0 && atau IF Pcount()=0
RETURN 0
ENDIF
gnResult = 0
FOR gnCount = 1 to PARAMETERS( )
gcCompare = 'gnPara' +(STR(gnCount,1))
gnResult = gnResult + EVAL(gcCompare)
ENDFOR
gnResult = gnResult / (gnCount - 1)
RETURN gnResult
Endfunc
PAYMENT( )
Mengembalikan jumlah setiap pembayaran periodik atas pinjaman dengan bungan tetap
PAYMENT(nPrincipal, nInterestRate, nPayments)
Contoh:
STORE 100000 to gnPrincipal && Rp100,000 Pokok Pinjaman
STORE .105/12 TO gnInterest && 10.5% p.a.
STORE (20*12) TO gnPayments && Periode 20 tahun
CLEAR
? PAYMENT(gnPrincipal, gnInterest, gnPayments) && Hasil= 998.38
PCOL( )
Mengembalikan posisi kolom sekarang dari printer. Dapat juga digunakan operator $
PCOL( )
Contoh:
CLEAR
@ PROW( ), PCOL( )+12 SAY Saya sedang belajar
@ PROW( ), $+12 SAY Saya sedang belajar
PI( )
Mengembalikan konstanta PI = 3,14
PI( )
75
POPUP( )
Mengembalikan sebagai suatu string menu aktif jika menu sudah didefinisikan
POPUP([cMenuName])
PRINTSTATUS( )
Mengembalikan nilai logika true (.T.) jika printer atau device printer adalah online.
PRINTSTATUS( )
Contoh:
STORE PRINTSTATUS( ) TO glReady
IF NOT glReady
WAIT 'Printer belum aktif' WINDOW
ELSE
WAIT 'Printer siap!' WINDOW
ENDIF
PRMBAR( )
Mengembalikan teks dari suatu item menu
PRMBAR(cMenuName, nMenuItemNumber)
PRMPAD( )
Mengembalikan teks dari judul menu
PRMPAD(MenuBarName, MenuTitleName)
Contoh:
CLEAR
SET TALK OFF
STORE 'mnuExample' TO gcPopName
PROGRAM( )
Mengembalikan nama program yang sedang berjalan, atau baris prosedur program, atau nama
program yang sedang berjalan ketika terjadi kesalahan.
PROGRAM([nLevel])
76
Contoh:
ON ERROR DO errhand WITH PROGRAM( )
*** The next line should generate an error ***
USE datasalah && tidak ada data namanya ini
ON ERROR
PROCEDURE errhand
PARAMETERS gcProgram
WAIT 'Kesalahan terjadi pada program ' + gcProgram WINDOW
PROMPT( )
Mengembalikan teks judul menu dari menu bar atau item menu yang dipilih dari suatu menu
tertentu.
PROMPT( )
PROPER( )
Mengembalikan ekspresi karakter yang mana setiap awal kata diubah menjadi huruf besar.
PROPER(cExpression)
Contoh:
STORE 'fakultas ekonomi UNUD TO gcExpr1
STORE 'FAKULTAS EKONOMI UNUD TO gcExpr2
CLEAR
? PROPER(gcExpr1) && Hasilnya: Fakultas Ekonomi Unud
? PROPER(gcExpr2) && Hasilnya: Fakultas Ekonomi Unud
PROW( )
Mengembalikan angka baris sekarang dari printer atau head printer
PROW( )
Contoh:
@ PROW( ), PCOL( ) + 12 SAY 'Ekonomi Unud
@ PROW( ), $+12 SAY 'Selalu Jaya
PV( )
Mengembalikan nilai sekarang dari investasi
PV(nPayment, nInterestRate, nTotalPayments)
Contoh:
STORE 500 to gnPayment && Pembayaran setiap bulan
STORE .075/12 TO gnInterest && 7.5% p.a.
STORE 48 TO gnPeriods && Selama 48 bulan
CLEAR
? PV(gnPayment, gnInterest, gnPeriods) && Hasil: 20679.19
77
QUARTER( )
Mengembalikan angka kwartal 1,2,3, atau 4 dari ekspresi Date atau DateTime
QUARTER(dExpression | tExpression [, nMonth])
RAT( )
Mengembalikan angka posisi dari akhir karakter dalam karakter string lainnya
RAT(cSearchExpression, cExpressionSearched [, nOccurrence])
Contoh:
STORE 'abracadabra' TO string
STORE 'a' TO find_str
CLEAR
? RAT(find_str,string) && Hasil: 11
? RAT(find_str,string,3) && Hasil: 6
RECCOUNT( )
Mengembalikan jumlah rekord aktif atau dari tabel yang ditentukan
RECCOUNT([nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
NJumlahMhs=Reccount()
? Jumlah mahasiswa sebanyak +Ltrim(Str(nJumlahMhs,10))+ orang
RECNO( )
Mengembalikan angka nomer rekord aktif atau dari tabel yang ditentukan
RECNO([nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
OPEN DATABASE (d:\prod3\Data\testdata')
USE mhsd3
Locate for nilai=80
IF FOUND( )
? Mahasiswa ada pada nomor rekord: +Str(recno(),3)
else
? Tidak ada mahasiswa memperoleh nilai 80
ENDIF
RECSIZE( )
Mengembalikan ukuran atau lebar tabel
RECSIZE([nWorkArea | cTableAlias])
78
RELATION( )
Mengembalikan ekspresi relasional yang digunakan
RELATION(nRelationNumber [, nWorkArea | cTableAlias])
REPLICATE( )
Mengembalikan suatu karakter dari ekspresi karakter sejumlah angka pengulangan.
REPLICATE(cExpression, nTimes)
Contoh:
CLEAR
? REPLICATE('CINTA ',4) && Hasilnya: CINTA CINTA CINTA CINTA
RIGHT( )
Mengembalikan karakter bagian kanan dari suatu karakter string sejumlah tertentu
RIGHT(cExpression, nCharacters)
Contoh:
CLEAR
? RIGHT('FE UNUD', 5) && Hasilnya: UNUD
RLOCK( )
Mencoba untuk mengunci beberapa rekord atau satu record
RLOCK([nWorkArea | cTableAlias] | [cRecordNumberList, nWorkArea
| cTableAlias])
ROUND( )
Mengembalikan ekspresi numerik dalam aturan pembulatan tertentu
ROUND(nExpression, nDecimalPlaces)
Contoh:
SET DECIMALS TO 4
SET FIXED ON
CLEAR
79
RTRIM( )
Mengembalikan suatu karakter string yang dihasilkan dari ekspresi karakter dengan
menghapus spasi kosong pada bagian kanan/akhir.
RTRIM(cExpression)
SELECT( )
Mengembalikan angka dari area kerja yang aktif
SELECT([ 0 | 1 | cTableAlias ])
SPACE( )
Membuat spasi kosong
SPACE(nSpaces)
SQRT( )
Mengembalikan nilai square atau akar dari suatu ekspresi numerik
SQRT(nExpression)
STR( )
Mengembalikan karakter dari ekspresi numeric yang ditentukan
STR(nExpression [, nLength [, nDecimalPlaces]])
STUFF( )
Mengembalikasi suatu karakter dari penyisipan atau penggantian ekspresi karakter
STUFF(cExpression, nStartReplacement, nCharactersReplaced,
cReplacement)
Contoh:
STORE 'abcdefghijklm' TO gcString1
STORE '12345' TO gcString2
CLEAR
? STUFF(gcString1, 4, 0, gcString2) && insert
? STUFF(gcString1, 4, 3, gcString2) && replace
? STUFF(gcString1, 4, 6, '') && delete
? STUFF(gcString1, 4, 1, gcString2) && replace and insert
? STUFF(gcString1, 4, 4, gcString2) && replace and delete
? STUFF(gcString1,4,LEN(gcString1),gcString2) && replace, delete rest
SUBSTR( )
Mengembalikan suatu karakter string dari ekspresi karakter atau field memo
SUBSTR(cExpression, nStartPosition [, nCharactersReturned])
80
Contoh:
STORE '20040601' TO mystring
CLEAR
? SUBSTR(mystring, 1, 4) && Hasil: 2004
? SUBSTR(mystring, 5) && Hasil: 0601
TRANSFORM( )
Mengembalikan karakter string dari suatu ekspresi dalam format yang ditentukan oleh suatu
format code
TRANSFORM(eExpression, [cFormatCodes])
Contoh:
STORE 12.34 TO gnPrice
CLEAR
? TRANSFORM(gnPrice, '$$$$.99') && Displays $12.34
TYPE( )
Menguji suatu ekspresi dan mengembalikan jenis data dari isi ekspresi
TYPE(cExpression)
Contoh:
nTest = 1.01
cTest = "String"
CLEAR
? TYPE('customer.contact') && Displays C
? TYPE('(12 * 3) + 4') && Displays N
? TYPE('DATE( )') && Displays D
? TYPE('.F. OR .T.') && Displays L
? TYPE('ANSWER=42') && Displays U
? TYPE('$19.99') && Displays Y
? TYPE('nTest') && Displays N
? TYPE('cTest') && Displays C
UPPER( )
Mengembalikasi ekspresi karakter dalam huruf besar
UPPER(cExpression)
Contoh:
CLEAR
? UPPER('abcdefgh') && Displays ABCDEFGH
USED( )
Menentukan jika suatu alias digunakan atau suatu tabel terbuka pada area kerja tertentu
USED([nWorkArea | cTableAlias])
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
81
SELECT A
USE customer && Opens Customer table
SELECT B
USE orders && Opens Orders table
SELECT C
USE employee && Opens Employee table
? USED('A') && Displays .T.
? USED('B') && Displays .T.
? USED(4) && Displays .F.
VAL( )
Mengembalikan nilai numerik dari ekspresi karakter angka
VAL(cExpression)
Contoh:
CLEAR
STORE '12' TO A
STORE '13' TO B
? VAL(A) + VAL(B) && Displays 25.00
STORE '1.25E3' TO C
? 2 * VAL(C) && Displays 2500.00
WEEK( )
Mengembalikan angka yang menunjukkan urutan minggu pada tahun tertentu dari ekspresi
Date atau DateTime
WEEK(dExpression | tExpression [, nFirstWeek] [, nFirstDayOfWeek])
Contoh:
CLEAR
? WEEK(DATE( ))
? WEEK({^1998-02-16}) && Displays 8
YEAR( )
Mengembalikan angka tahun dari ekspresi Date atau DateTime
YEAR(dExpression | tExpression)
Contoh:
CLEAR
? YEAR(DATE( ))
82
Command dalam Visual FoxPro
&
Digunakan untuk menunjukkan substitusi macro
& VarName[.cExpression]
Contoh:
** 1
STORE SET('TALK') TO gcSaveTalk
SET TALK OFF
*
* Additional program code
*
SET TALK &gcSaveTalk && Restore original TALK setting
ACTIVATE MENU
Menampilan dan mengaktifkan menu bar
ACTIVATE MENU MenuBarName [NOWAIT] [PAD MenuTitleName]
ACTIVATE POPUP
Menampilkan dan mengaktifkan menu
ACTIVATE POPUP MenuName [AT nRow, nColumn]
[BAR nMenuItemNumber] [NOWAIT] [REST]
Contoh:
*** Nama: PRG2.prg
83
ADD TABLE
Menambah tabel bebas kedalam database aktif
ADD TABLE TableName | ? [NAME LongTableName]
Contoh:
CREATE DATABASE mydbc1
CREATE DATABASE mydbc2
SET DATABASE TO mydbc1
CREATE TABLE table1 (cField1 C(10), n N(10)) && Adds table to mydbc1
CLOSE TABLES && A table must be closed to remove it from a
database
REMOVE TABLE table1
SET DATABASE TO mydbc2
ADD TABLE table1
RENAME TABLE table1 TO table2
APPEND
Menambah satu atau lebih rekord baru pada akhir tabel
APPEND [BLANK] [IN nWorkArea | cTableAlias] [NOMENU]
Contoh:
Berikut ini contoh penggunaan APPEND BLANK untuk membuat tabel yang berisi 10 rekord,
perintah-perintah APPEND lainnya.
CLOSE DATABASES
CREATE TABLE Random (cValue N(3))
FOR nItem = 1 TO 10 && Append 10 records
APPEND BLANK
REPLACE cValue WITH 1 + 100 * RAND( ) && Insert random values
ENDFOR
CLEAR
LIST && Display the values
gnMaximum = 1 && Initialize minimum value
gnMinimum = 100 && Initialize maximum value
SCAN
gnMinimum = MIN(gnMinimum, cValue)
gnMaximum = MAX(gnMaximum, cValue)
ENDSCAN
84
? 'The minimum value is: ', gnMinimum && Display minimum value
? 'The maximum value is: ', gnMaximum && Display maximum value
85
* Display the procedures associated with the current database
DISPLAY PROCEDURES
DELETE FILE mytable.dbf && Erase temporary table
DELETE FILE mytable.fpt && Erase temporary table memo file
DELETE FILE mytemp.txt && Erase temporary text file
AVERAGE
Menghitung rata-rata aritmatika dari ekspresi numerik atau field
AVERAGE [ExpressionList] [Scope] [FOR lExpression1]
[WHILElExpression2]
[TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE orders && Open order table
CLEAR
AVERAGE Order_Amt && Calcuate averages of all orders
AVERAGE Order_Amt TO gnAvg && Store average to memory variable
? 'Average order amount: '
?? gnAvg && Display the average again
BLANK
Menghapus data dari seluruh (tanpa argumen) field yang ada dalam rekord aktif
BLANK [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE
lExpression2]
[NOOPTIMIZE] [IN nWorkArea | cTableAlias]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
CLEAR
DISPLAY && Displays the current record
SCATTER TO gaCustomer && Create array with record contents
BLANK && Clear the record
DISPLAY && Displays the blank record
GATHER FROM gaCustomer && Restore original record contents
DISPLAY && Display the restored record
BROWSE
Membuka window Browse dan menampilkan rekord tabel yang aktif atau tabel tertentu yang
dipilih.
BROWSE [FIELDS FieldList] [FONT cFontName [, nFontSize]]
[STYLE cFontStyle] [FOR lExpression1 [REST]] [FORMAT]
[FREEZE FieldName] [KEY eExpression1 [, eExpression2]] [LAST |
NOINIT]
[LOCK nNumberOfFields] [LPARTITION] [NAME ObjectName] [NOAPPEND]
[NOCAPTIONS] [NODELETE] [NOEDIT | NOMODIFY] [NOLGRID] [NORGRID]
[NOLINK] [NOMENU] [NOOPTIMIZE] [NOREFRESH] [NORMAL] [NOWAIT]
86
[PARTITION nColumnNumber [LEDIT] [REDIT]]
[PREFERENCE PreferenceName] [SAVE] [TIMEOUT nSeconds]
[TITLE cTitleText] [VALID [:F] lExpression2 [ERROR cMessageText]]
[WHEN lExpression3] [WIDTH nFieldWidth] [WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN] [COLOR SCHEME nSchemeNumber]
Contoh 1:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
IF _WINDOWS
BROWSE FIELDS contact FONT 'System', 15 STYLE 'NU'
ENDIF
IF _MAC
BROWSE FIELDS contact FONT 'Geneva', 14 STYLE 'NU'
ENDIF
Contoh 2:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE FIELDS phone :H = 'Phone Number:' , ;
company :H = 'Company:' ;
FREEZE phone
Contoh 3:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
SET ORDER TO postalcode
BROWSE KEY '10000', '30000'
Contoh 4:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE PARTITION 20 REDIT
Contoh 5
DEFINE WINDOW wBrowse FROM 1,1 TO 24,40 ;
CLOSE ;
GROW ;
COLOR SCHEME 10
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE WINDOW wBrowse ;
FIELDS phone :H = 'Phone Number:' , ;
company :H = 'Company:' ;
TIMEOUT 10
RELEASE WINDOW wBrowse
Contoh 6
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
BROWSE;
TITLE 'My Browse Window' ;
FIELDS phone :H = 'Phone Number' , ;
company :H = 'Company:'
87
Contoh 7:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
IF _WINDOWS OR _MAC
SET STATUS BAR ON
ENDIF
USE products
BROWSE FIELDS in_stock :V = in_stock < 100 ;
:F ;
:E = 'The stock amount must be less than 100'
Contoh 8:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
BROWSE FIELDS unit_price :P = '99,999.99'
Contoh 9:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
BROWSE FIELDS in_stock :B = 1, 100 :F
Contoh 10:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
BROWSE FIELDS prod_name :H = 'Product Name:', ;
unit_price :H = 'Price per Unit:'
Contoh 11:
CLEAR
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer ORDER cust_id IN 0 && Parent table
USE orders ORDER cust_id IN 0 && Child table
SELECT customer && Back to parent work area
SET RELATION TO cust_id INTO orders && Establish relationship
SET SKIP TO orders && One-to-many relationship
WAIT WINDOW 'Scroll to see shipping dates for each customer' NOWAIT
BROWSE FIELDS customer.cust_id :H='Customer Number', ;
customer.city :H='Customer City', orders.shipped_on
CALCULATE
Menunjukkan operasi finansial dan statistik terhadap field atau ekspresi yang melibatkan field
CALCULATE eExpressionList [Scope] [FOR lExpression1] [WHILE
lExpression2]
[TO VarList | TO ARRAY ArrayName] [NOOPTIMIZE]
[IN nWorkArea | cTableAlias]
eExpressionList
AVG(nExpression)
88
CNT( )
MAX(eExpression)
MIN(eExpression)
NPV(nExpression1, nExpression2 [, nExpression3])
STD(nExpression)
SUM(nExpression)
VAR(nExpression)
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE orders && Open Orders table
SET TALK ON
CLEAR
CALCULATE AVG(order_amt), MIN(order_amt), MAX(order_amt)
CALCULATE STD(order_amt), VAR(order_amt) TO gnStd, gnVar
CANCEL
Mengakhiri program berjalan
CANCEL
Contoh:
DO WHILE .T.
IF MESSAGEBOX("Do you want to continue?",36) <> 6
CANCEL
ENDIF
ENDDO
CD | CHDIR
Mengubah direktory default
CD cPath | CHDIR cPath
Contoh:
SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory
MKDIR mytstdir && Create a new directory
CHDIR mytstdir && Change to the new directory
= GETDIR( ) && Display the Select Directory dialog box
SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory
RMDIR mytstdir && Remove the new directory
= GETDIR( ) && Display the Select Directory dialog box
CHANGE
Menampilkan field-field untuk dimodifikasi
89
CHANGE [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE
lExpression2] [FONT cFontName [, nFontSize]] [STYLE cFontStyle]
[FREEZE FieldName]
[KEY eExpression1 [, eExpression2]] [LAST | NOINIT] [LPARTITION]
[NAME ObjectName] [NOAPPEND] [NOCAPTION] [NOCLEAR] [NODELETE]
[NOEDIT | NOMODIFY] [NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT]
[PARTITION nColumnNumber [LEDIT] [REDIT]] [PREFERENCE PreferenceName]
[REST] [SAVE] [TIMEOUT nSeconds] [TITLE cTitleText]
[VALID [:F] lExpression3 [ERROR cMessageText]] [WHEN lExpression4]
[WIDTH nFieldWidth] [WINDOW WindowName1]
[IN [WINDOW] WindowNam2 | IN SCREEN | IN MACDESKTOP]]
[COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
CLEAR
Menghapus item yang ditentukan atau item memory
CLEAR [ALL | CLASS ClassName | CLASSLIB ClassLibraryName | DEBUG |
DLLS
[cAliasNameList]| EVENTS | FIELDS | GETS | MACROS | MEMORY
| MENUS | POPUPS | PROGRAM | PROMPT | READ [ALL] | RESOURCES
[FileName] | TYPEAHEAD | WINDOWS]
CLOSE
Menutup berbagai jenis file
CLOSE [ALL | ALTERNATE | DATABASES [ALL] | DEBUGGER | FORMAT |
INDEXES
| PROCEDURE | TABLES [ALL]]
CLOSE MEMO
Menutup satu atau lebih memo yang sedang di edit
CLOSE MEMO MemoFieldName1 [, MemoFieldName2 ...] | ALL
COMPILE
Mengkompile ( mengubah file code program menjadi file program ) satu atau lebih source file
program dan membuat file obyek untuk setiap source file.
COMPILE [?] [CLASSLIB | LABEL | REPORT] FileName | FileSkeleton
CONTINUE
Melanjutkan pencarian berikutnya. Perintah ini digunakan bersama dengan perintah LOCATE.
Perintah ini dilanjutkan setelah perintah LOCATE berhasil menemukan rekord yang dicari.
Perintah ini akan diulangi sampai pada akhir file atau sesuai lingkup yang ditentukan.
CONTINUE
90
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
SET TALK OFF
STORE 0 TO gnCount
COPY FILE
Membuat duplikat berbagai jenis file
COPY FILE FileName1 TO FileName2
COPY MEMO
Mengkopi isi field memo menjadi file teks
COPY MEMO MemoFieldName TO FileName [ADDITIVE] [AS nCodePage]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE employee && Opens Employee table
COPY MEMO notes TO test.txt
WAIT WINDOW 'Memo contents now in test.txt' NOWAIT
MODIFY FILE test.txt
COPY MEMO notes TO test.txt ADDITIVE
WAIT WINDOW 'Memo contents added again to test.txt' NOWAIT
MODIFY FILE test.txt
DELETE FILE test.txt
COPY PROCEDURES
Mengkopi prosedur-prosedur yang disimpan dalam file database
COPY PROCEDURES TO FileName [AS nCodePage] [ADDITIVE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
COPY STRUCTURE
Membuat struktur file tabel sesuai dengan struktur file tabel yang aktif
91
COPY STRUCTURE TO TableName [FIELDS FieldList]
[[WITH] CDX | [WITH] PRODUCTION]
[DATABASE cDatabaseName [NAME cTableName]]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
COPY TO ARRAY
Mengkopi data dari tabel yang aktif menjadi array
COPY TO ARRAY ArrayName
[FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT
Skeleton]
[Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
DIMENSION gaTemp(3,10)
COPY NEXT 3 TO ARRAY gaTemp
DISPLAY MEMORY LIKE gaTemp
92
COPY TO
Membuat file baru dari file tabel yang sedang aktif dengan berbagai format.
COPY TO FileName [DATABASE DatabaseName [NAME LongTableName]]
[FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT
Skeleton]
[Scope] [FOR lExpression1] [WHILE lExpression2] [[WITH] CDX]
| [[WITH] PRODUCTION] [NOOPTIMIZE]
[[TYPE] [FOXPLUS | FOX2X | DIF | MOD
| SDF | SYLK | WK1 | WKS | WR1 | WRK | CSV | | XLS | XL5
| DELIMITED [WITH Delimiter | WITH BLANK | WITH TAB
| WITH CHARACTER Delimiter]]] [AS nCodePage]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
COPY NEXT 3 TO temp TYPE DELIMITED
WAIT WINDOW 'This is the delimited text file' NOWAIT
MODIFY FILE temp.txt
DELETE FILE temp.txt
COUNT
Menghitung jumlah rekord dalam sebuah file tabel aktif
COUNT [Scope] [FOR lExpression1] [WHILE lExpression2] [TO
VarName]
[NOOPTIMIZE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
CLEAR
COUNT FOR UPPER(city) = 'PARIS'
DISPLAY FIELDS company, contact FOR UPPER(city) = 'PARIS'
CREATE CLASS
Membuat file Class
CREATE CLASS ClassName | ? [OF ClassLibraryName1 | ?]
[AS cBaseClassName [FROM ClassLibraryName2]] [NOWAIT]
CREATE CLASSLIB
Membuat file Class library (.vcx)
CREATE CLASSLIB ClassLibraryName
Contoh:
CREATE CLASSLIB myclslib
CREATE CLASS myform OF myclslib AS "Form" && Creates new class
SET CLASSLIB TO myclslib ADDITIVE && Opens MyClsLib.VCX
93
CREATE
Membuat file tabel baru
CREATE [FileName | ?]
CREATE DATABASE
Membuat file database dan sekaligus membuka file database yang dibuat.
CREATE DATABASE [DatabaseName | ?]
Contoh:
CREATE DATABASE people
CREATE TABLE friends (FirstName C(20), LastName C(20))
CLEAR
DISPLAY TABLES && Displays tables in the database
DISPLAY DATABASES && Displays table information
CREATE PROJECT
Membuka struktur file program melalui kotak dialog Project Manager
CREATE PROJECT [FileName | ?] [NOWAIT] [SAVE] [WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN [NOSHOW] [NOPROJECTHOOK]
94
CREATE QUERY
Membuka kotak dialog Query Designer.
CREATE QUERY [FileName | ?] [NOWAIT]
CREATE REPORT
Membuat file laporan
CREATE REPORT FileName1 | ? FROM FileName2 [FORM | COLUMN]
[FIELDS FieldList] [ALIAS] [NOOVERWRITE] [WIDTH nColumns]
DEACTIVATE MENU
Menutup menu bar dari memory
DEACTIVATE MENU MenuName1 [, MenuName2 ...] | ALL
*** Name this program DEACMENU.PRG ***
CLEAR
SET SYSMENU SAVE
SET SYSMENU TO
ON KEY LABEL ESC KEYBOARD CHR(13)
DEFINE MENU example BAR AT LINE 1
DEFINE PAD convpad OF example PROMPT '\<Conversions' COLOR SCHEME 3 ;
KEY ALT+C, ''
DEFINE PAD cardpad OF example PROMPT 'Card \<Info' COLOR SCHEME 3 ;
KEY ALT+I, ''
ON PAD convpad OF example ACTIVATE POPUP conversion
ON PAD cardpad OF example ACTIVATE POPUP cardinfo
DEFINE POPUP conversion MARGIN RELATIVE COLOR SCHEME 4
DEFINE BAR 1 OF conversion PROMPT 'Ar\<ea' ;
KEY CTRL+E, '^E'
DEFINE BAR 2 OF conversion PROMPT '\<Length' ;
KEY CTRL+L, '^L'
DEFINE BAR 3 OF conversion PROMPT 'Ma\<ss' ;
KEY CTRL+S, '^S'
DEFINE BAR 4 OF conversion PROMPT 'Spee\<d' ;
KEY CTRL+D, '^D'
95
DEFINE BAR 5 OF conversion PROMPT '\<Temperature' ;
KEY CTRL+T, '^T'
DEFINE BAR 6 OF conversion PROMPT 'T\<ime' ;
KEY CTRL+I, '^I'
DEFINE BAR 7 OF conversion PROMPT 'Volu\<me' ;
KEY CTRL+M, '^M'
ON SELECTION POPUP conversion DO choice IN deacmenu WITH PROMPT( ),
POPUP( )
DEFINE POPUP cardinfo MARGIN RELATIVE COLOR SCHEME 4
DEFINE BAR 1 OF cardinfo PROMPT '\<View Charges' ;
KEY ALT+V, ''
DEFINE BAR 2 OF cardinfo PROMPT 'View \<Payments' ;
KEY ALT+P, ''
DEFINE BAR 3 OF cardinfo PROMPT 'Vie\<w Users' ;
KEY ALT+W, ''
DEFINE BAR 4 OF cardinfo PROMPT '\-'
DEFINE BAR 5 OF cardinfo PROMPT '\<Charges '
ON SELECTION POPUP cardinfo;
DO choice IN deacmenu WITH PROMPT( ), POPUP( )
PROCEDURE choice
PARAMETERS mprompt, mpopup
WAIT WINDOW 'You chose ' + mprompt + ;
' from popup ' + mpopup NOWAIT
DEACTIVATE POPUP
Menutup menu yang dibuat dengan DEFINE POPUP.
DEACTIVATE POPUP MenuName1 [, MenuName2 ...] | ALL
DEACTIVATE WINDOW
Menutup window dari screen
DEACTIVATE WINDOW WindowName1 [, WindowName2 ...] | ALL
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
CLEAR
DEFINE WINDOW wOutput1 FROM 2,1 TO 13,75 TITLE 'Output' ;
CLOSE FLOAT GROW ZOOM
ACTIVATE WINDOW wOutput1
DISPLAY
WAIT WINDOW 'Press a key to deactivate the window'
DEACTIVATE WINDOW wOutput1
RELEASE WINDOW wOutput1
96
DECLARE
Membuat array berdimensi satu atau dua
DECLARE ArrayName1 (nRows1 [, nColumns1])
[, ArrayName2 (nRows2 [, nColumns2])] ...
DEFINE BAR
Membuat item menu pada menu yang dibuat dengan DEFINE POPUP.
DEFINE BAR nMenuItemNumber1 | SystemItemName OF MenuName
PROMPT cMenuItemText [PICTURE cFileName] [PICTRES cMenubarName]
[BEFORE nMenuItemNumber2 | AFTER nMenuItemNumber3]
[FONT cFontName [, nFontSize]] [STYLE cFontStyle]
[KEY KeyLabel [, cKeyText]] [MARK cMarkCharacter]
[MESSAGE cMessageText] [SKIP [FOR lExpression]]
[COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
[MRU] [INVERT]
DEFINE CLASS
Membuat Class atau SubClass UDF dengan menentukan properties, events, dan methods dari
class atau subclass yang dibuat.
DEFINE CLASS ClassName1 AS ParentClass [OF ClassLibrary] [OLEPUBLIC]
[[PROTECTED | HIDDEN PropertyName1, PropertyName2 ...]
[Object.]PropertyName = eExpression ...]
[IMPLEMENTS cInterfaceName [EXCLUDE]
IN TypeLib | TypeLibGUID | ProgID ]
[ADD OBJECT [PROTECTED] ObjectName AS ClassName2 [NOINIT]
[WITH cPropertylist]]
[[PROTECTED | HIDDEN] FUNCTION | PROCEDURE Name[_ACCESS |_ASSIGN]
([cParamName [AS type] [@]])
[AS type] [HELPSTRING cHelpString]
THIS_ACCESS [NODEFAULT] cStatements [ENDFUNC | ENDPROC]]
[PEMName_COMATTRIB = nFlags | DIMENSION PEMName_COMATTRIB[5]
[PEMName_COMATTRIB[1] = nFlags
PEMName_COMATTRIB[2] = cHelpString
PEMName_COMATTRIB[3] = cPropertyCapitalization
PEMName_COMATTRIB[4] = cPropertyType
PEMName_COMATTRIB[5] = nOptionalParams]]
ENDDEFINE
DEFINE MENU
Membuat menu bar
DEFINE MENU MenuBarName [BAR [AT LINE nRow]]
[IN [WINDOW] WindowName | IN SCREEN] [FONT cFontName [,
nFontSize]]
[STYLE cFontStyle] [KEY KeyLabel] [MARK cMarkCharacter]
[MESSAGE cMessageText] [NOMARGIN]
[COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
97
DEFINE PAD
Membuat title menu (PAD) pada menu bar udf atau sistem menu bar Visual FoxPro
DEFINE PAD MenuTitle1 OF MenuBarName PROMPT cMenuTitleText
[AT nRow, nColumn] [BEFORE MenuName2 | AFTER MenuName3]
[NEGOTIATE cContainerPosition [, cObjectPosition]]
[FONT cFontName [, nFontSize]] [STYLE cFontStyle]
[KEY KeyLabel [, cKeyText]] [MARK cMarkCharacter]
[SKIP [FOR lExpression]] [MESSAGE cMessageText]
[COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
DEFINE POPUP
Membuat menu
DEFINE POPUP MenuName [FROM nRow1, nColumn1] [TO nRow2, nColumn2]
[IN [WINDOW] WindowName | IN SCREEN] [FONT cFontName [,
nFontSize]]
[STYLE cFontStyle] [FOOTER cFooterText] [KEY KeyLabel] [MARGIN]
[MARK cMarkCharacter] [MESSAGE cMessageText] [MOVER] [MULTISELECT]
[PROMPT FIELD FieldName | PROMPT FILES [LIKE FileSkeleton]
| PROMPT STRUCTURE] [RELATIVE] [SCROLL] [SHORTCUT]
[TITLE cMenuTitleText]
[COLOR SCHEME nSchemeNumber | COLOR ColorPairList]
DEFINE WINDOW
Membuat window dan menentukan attribut window yang dibuat
DEFINE WINDOW WindowName1 FROM nRow1, nColumn1 TO nRow2, nColumn2
| AT nRow3, nColumn3 SIZE nRow4, nColumn4
[IN [WINDOW] WindowName2 | IN SCREEN | IN DESKTOP [NAME
ObjectName]
[FONT cFontName [, nFontSize]] [STYLE cFontStyle]
[FOOTER cFooterText] [TITLE cTitleText] [HALFHEIGHT]
[DOUBLE | PANEL | NONE | SYSTEM | cBorderString]
[CLOSE | NOCLOSE] [FLOAT | NOFLOAT] [GROW | NOGROW] [MDI |
NOMDI]
[MINIMIZE | NOMINIMIZE] [ZOOM | NOZOOM] [ICON FILE FileName1]
[FILL cFillCharacter | FILL FILE FileName2]
[COLOR SCHEME nSchemeNumber | COLOR ColorPairList]]
DELETE - SQL
Memberikan tanda bahwa rekord telah dihapus (Mark)
DELETE FROM [DatabaseName!]TableName
[WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
Contoh:
CLOSE DATABASES
CLEAR
OPEN DATABASE HOME(2)+"Data\testdata"
USE customer && Open Customer table
DELETE FROM customer WHERE country = "USA" && Mark for deletion
CLEAR
98
LIST FIELDS company, country FOR DELETED( ) && List marked records
* If the file were packed at this point the records would be deleted
WAIT WINDOW "Records currently marked for deletion"+CHR(13) + ;
"Press any key to revert..."
DELETE
Memberikan tanda Marks bahwa rekord sudah dihapus
DELETE [Scope] [FOR lExpression1] [WHILE lExpression2]
[IN nWorkArea | cTableAlias] [NOOPTIMIZE]
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
DELETE DATABASE
Menghapus database dari disk
DELETE DATABASE DatabaseName | ? [DELETETABLES] [RECYCLE]
Contoh:
CLOSE ALL
CREATE DATABASE people
CREATE TABLE friends (FirstName C(20), LastName C(20))
CLEAR
DISPLAY TABLES && Displays tables in the database
DISPLAY DATABASES && Displays table information
CLOSE ALL
DELETE DATABASE people DELETETABLES
DELETE FILE
Menghapus suatu file dari disk
DELETE FILE [FileName | ?] [RECYCLE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
99
APPEND FROM customer FOR country = 'USA'
COPY TO temp TYPE DELIMITED
DIMENSION
Membuat variabel array dimensi satu atau dua
DIMENSION ArrayName1(nRows1 [, nColumns1])
[, ArrayName2(nRows2 [, nColumns2])] ...
Contoh:
DIMENSION gaArrayOne(10), gaArrayTwo[2,4], gaArrayThree(3,3)
DIMENSION gaArrayOne[10], gaArrayTwo(2,4), gaArrayThree[3,3]
* Contoh 1
DIMENSION marray(2)
STORE 'A' TO marray(1)
STORE 'B' TO marray(2)
CLEAR
DISPLAY MEMORY LIKE marray
DIMENSION marray(4)
DISPLAY MEMORY LIKE marray
WAIT WINDOW
* Contoh 2
DIMENSION marrayone(4)
STORE 'E' TO marrayone(1)
STORE 'F' TO marrayone(2)
STORE 'G' TO marrayone(3)
STORE 'H' TO marrayone(4)
CLEAR
DISPLAY MEMORY LIKE marrayone
DIMENSION marrayone(2,3)
DISPLAY MEMORY LIKE marrayone
WAIT WINDOW
* Contoh 3
DIMENSION sample(2,3)
STORE 'Goodbye' TO sample(1,2)
STORE 'Hello' TO sample(2,2)
STORE 99 TO sample(6)
STORE .T. TO sample(1)
CLEAR
DISPLAY MEMORY LIKE sample
100
CLEAR
DIR && Display tables in the current directory
DIR *.CDX && Display index files in the current directory
DIR A*.DBF && Display tables that begin with A
DIR *.* && Display all files, including those without extensions
DISPLAY
Menampilkan informasi mengenai tabel yang sedang aktif
DISPLAY [[FIELDS] FieldList] [Scope] [FOR lExpression1]
[WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE]
[TO PRINTER [PROMPT] | TO FILE FileName]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
CLEAR
DISPLAY FIELD cust_id, company, contact OFF NEXT 10
DISPLAY FILES
Menampilkan informasi mengenai file-file
DISPLAY FILES [ON Drive] [LIKE FileSkeleton]
[TO PRINTER [PROMPT] | TO FILE FileName]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
CLEAR
DISPLAY FILES LIKE *.DBC
DISPLAY MEMORY
Menampilkan isi variabel atau array aktif
DISPLAY MEMORY [LIKE FileSkeleton]
[TO PRINTER [PROMPT] | TO FILE FileName] [NOCONSOLE]
Contoh:
STORE 'Goodbye' TO sample1
STORE 'Hello' TO sample2
STORE .T. TO texit
STORE .F. TO mexit
CLEAR
DISPLAY MEMORY LIKE sam*
DISPLAY MEMORY LIKE ?exit
DISPLAY PROCEDURES
Menampilkan nama-nama prosedur yang disimpan dalam database aktif
DISPLAY PROCEDURES [TO PRINTER [PROMPT] | TO FILE FileName]
101
[NOCONSOLE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
CLEAR
DISPLAY PROCEDURES && Displays stored procedures in the database
DISPLAY STRUCTURE
Menampilkan struktur file tabel
DISPLAY STRUCTURE [IN nWorkArea | cTableAlias]
[TO PRINTER [PROMPT] | TO FILE FileName] [NOCONSOLE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
CLEAR
DISPLAY STRUCTURE
DISPLAY TABLES
Menampilkan nama-nama dan informasi mengenai seluruh tabel yang ada dalam database
aktif
DISPLAY TABLES [TO PRINTER [PROMPT] | TO FILE FileName] [NOCONSOLE]
Contoh:
CLOSE DATABASES
SET PATH TO (HOME(2) + 'Data\') && Sets path to database
OPEN DATABASE testdata && Open testdata database
CLEAR
DISPLAY TABLES && Displays information about tables in the database
CASE INLIST(month,'January','February','March')
STORE 'First Quarter Earnings' TO rpt_title
102
CASE INLIST(month,'April','May','June')
STORE 'Second Quarter Earnings' TO rpt_title
CASE INLIST(month,'July','August','September')
STORE 'Third Quarter Earnings' TO rpt_title
OTHERWISE
STORE 'Fourth Quarter Earnings' TO rpt_title
ENDCASE && Ends loop
WAIT WINDOW rpt_title NOWAIT
DO
Menjalankan program atau prosedur Visual FoxPro
DO ProgramName1 | ProcedureName [IN ProgramName2] [WITH
ParameterList]
DO FORM
Menjalankan form atau form set yang dibuat melalui form designer
DO FORM FormName | ? [NAME VarName [LINKED]] [WITH cParameterList]
[TO VarName] [NOREAD] [NOSHOW]
CLEAR
? 'Total items in stock valued over 20 dollars:'
?? gnStockTot
103
DROP TABLE
Mengeluarkan tabel dari database dan menghapus tabel tersebut dari disk
DROP TABLE TableName | FileName | ? [RECYCLE]
DROP VIEW
Menghapys view SQL dari database
DROP VIEW ViewName
EDIT
Menampilkan field-field untuk di edit
EDIT [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE
lExpression2]
[FONT cFontName[, nFontSize]] [STYLE cFontStyle] [FREEZE FieldName]
[KEY eExpression1[, eExpression2]] [LAST | NOINIT] [LPARTITION]
[NAME ObjectName] [NOAPPEND] [NOCAPTION] [NODELETE] [NOEDIT |
NOMODIFY]
[NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT]
[PARTITION nColumnNumber [LEDIT] [REDIT]]
[PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds]
[TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]]
[WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN [COLOR SCHEME nSchemeNumber]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT FIELDS location = ALLTRIM(city) + ', ' + country
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
IF _WINDOWS OR _MAC
SET STATUS BAR ON
ENDIF
USE products
EDIT FIELDS in_stock :V = in_stock < 100 ;
:F ;
:E = 'The stock amount must be less than 100'
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
EDIT FIELDS in_stock :B = 1, 100 :F
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Open products table
104
EDIT FIELDS prod_name :H = 'Product Name:', ;
unit_price :H = 'Price per Unit:'
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens customer table
IF _WINDOWS
EDIT FIELDS contact FONT 'System', 15 STYLE 'NU'
ENDIF
IF _MAC
EDIT FIELDS contact FONT 'Geneva', 14 STYLE 'NU'
ENDIF
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
SET ORDER TO postalcode
EDIT KEY '10000', '30000'
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens customer table
105
SET SKIP TO orders && One-to-many relationship
WAIT WINDOW 'Scroll to see shipping dates for each customer' NOWAIT
EDIT FIELDS customer.cust_id :H='Customer Number', ;
customer.city :H='Customer City', orders.shipped_on
EJECT
Mengirimkan formfeed ke printer
EJECT
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens customer table
EJECT PAGE
Mengirimkan conditional page advance ke printer
EJECT PAGE
ERASE
Menghapus file dari disk
ERASE FileName | ? [RECYCLE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens customer table
106
ERROR
Generates a Visual FoxPro error.
ERROR nErrorNumber | nErrorNumber, cMessageText1 | [cMessageText2]
Contoh:
ERROR 12 && Generates the Visual FoxPro error "Variable not found"
ERROR 12, 'Myvariable' && Variable 'Myvariable' not found error
ERROR 'My error message' && Generates 'My error message' error
EXIT
Exits a DO WHILE, FOR, or SCAN loop.
EXIT
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE products && Opens Products table
SET TALK OFF
gnStockTot = 0
CLEAR
? 'Total items in stock valued over 20 dollars:'
?? gnStockTot
EXPORT
Mengcopy data dari file tabel Visual FoxPro ke file dalam format yang berbeda
EXPORT TO FileName [TYPE]
DIF | MOD | SYLK | WK1 | WKS | WR1 | WRK | XLS | XL5
[FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2]
[NOOPTIMIZE] [AS nCodePage]
FLUSH
Menyimpan file tabel dan indeks yang telah dimodifikasi ke disk
FLUSH
107
FOR EACH ENDFOR
FOR EACH Var IN Group
Commands
[EXIT]
[LOOP]
ENDFOR | NEXT [Var]
Contoh:
DIMENSION cMyArray(3)
cMyArray[1] = 'A'
cMyArray[2] = 'B'
cMyArray[3] = 'C'
Contoh lain:
oExcel = CREATE("Excel.Application")
oExcel.Workbooks.ADD
Contoh:
PUBLIC oMyObject
oMyObject = CREATEOBJECT("frmTest")
oMyObject.SHOW
FOR i = 1 to 5
THIS.AddObject('THIS.MyArray[i]',;
'COMMANDBUTTON')
ENDFOR
108
FOR EACH oButton IN THIS.MyArray
oButton.FontItalic = .T.
ENDFOR obutton
j = 1
****** EXIT ******
FOR EACH oButton IN THIS.MyArray
oButton.Caption = "test" + str(j)
j = j+1
IF j > 3
EXIT
ENDIF
NEXT
j = 1
****** LOOP ******
FOR EACH oButton IN THIS.MyArray
IF j > 3
LOOP
ENDIF
j = j + 1
oButton.Left = 25
NEXT
ENDPROC
ENDDEFINE
Contoh:
CLEAR
FOR gnCount = 1 TO 10
? gnCount
ENDFOR
Contoh
SET TALK OFF
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
STORE 2 TO gnI && Initial value
STORE 10 TO gnJ && Final value
STORE 2 TO K && Step value
FOR gnCount = gnI TO gnJ STEP K
GOTO gnCount && Move record pointer
DISPLAY company && Display company name
ENDFOR
109
FREE TABLE
Mengeluarkan referensi database dari tabel
FREE TABLE TableName
FUNCTION
Awal pengidentifikasian udf
FUNCTION FunctionName
[LPARAMETERS parameter1[,parameter2},...]
Commands
[RETURN [eExpression]]
ENDFUNC
Atau:
FUNCTION FunctionName([parameter1[,parameter2},...])
Commands
[RETURN [eExpression]]
ENDFUNC
Contoh:
Local oHello
oHello=CREATEOBJECT("Hello")
=MESSAGEBOX(oHello.SayHello(),48)
RELEASE oHello
* Class definition code
DEFINE CLASS Hello AS CUSTOM
FUNCTION SayHello
RETURN "Hello World"
ENDFUNC
ENDDEFINE
GATHER
Menyimpan data dalam rekord yang sedang aktif dengan data dari suatu array, sekumpulan
variabel, atau obyek
GATHER FROM ArrayName | MEMVAR | NAME ObjectName
[FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]
[MEMO]
Contoh:
CREATE TABLE Test FREE ;
(Object C(10), Color C(16), SqFt n(6,2))
SCATTER MEMVAR BLANK
m.Object="Box"
m.Color="Red"
m.SqFt=12.5
APPEND BLANK
GATHER MEMVAR
BROWSE
Contoh 2:
CREATE TABLE Test FREE ;
(Object C(10), Color C(16), SqFt n(6,2))
110
SCATTER NAME oTest BLANK
oTest.Object="Box"
oTest.Color="Red"
oTest.SqFt=12.5
APPEND BLANK
GATHER NAME oTest
RELEASE oTest
BROWSE
GETEXPR
Menampilkan kotak dialog Expression Builder pada saat membuat suatu ekspresi dan
menyimpan ekspresi ke suatu variabel atau elemen array
GETEXPR [cCaptionText] TO MemVarName
[TYPE cExpressionType [; cErrorMessageText]]
[DEFAULT cDefaultExpression]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
GO | GOTO
Memindahkan pointer rekord ke nomer rekord yang diinginkan
GO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]
GO TOP | BOTTOM [IN nWorkArea | IN cTableAlias]
GOTO [RECORD] nRecordNumber [IN nWorkArea | IN cTableAlias]
GOTO TOP | BOTTOM [IN nWorkArea | IN cTableAlias]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Opens Products table
USE customer IN 0 && Opens Customer table
GO BOTTOM IN products
CLEAR
? RECNO('products')
GO TOP
? RECNO( ) && Displays 1
GO 5
? RECNO( ) && Displays 5
111
HELP
Membuka Help window.
HELP [Topic | ID nContextID] [IN [WINDOW] WindowName | IN [WINDOW]
SCREEN | IN [WINDOW] [NOWAIT]
HIDE MENU
Menyembunyikan satu atau lebih menu bar aktif
HIDE MENU MenuBarName1 [, MenuBarName2 ...] | ALL [SAVE]
HIDE POPUP
Menyembunyikan satu atau lebih menu aktif yang dibuat DEFINE POPUP.
HIDE POPUP MenuName1 [, MenuName2 ...] | ALL [SAVE]
HIDE WINDOW
Menyembunyikan window yang dibuat atau sistem window Visual FoxPro
HIDE WINDOW WindowName1 [, WindowName2 ... ] | ALL | SCREEN
[ IN [WINDOW] WindowNameN | IN [WINDOW] SCREEN | IN [WINDOW]
[BOTTOM | TOP | SAME]
Contoh:
DEFINE WINDOW wOutput1 FROM 6,1 TO 19,75 TITLE 'Output' ;
CLOSE FLOAT GROW ZOOM
ACTIVATE WINDOW wOutput1
IF ... ENDIF
Kondisi logika yang didasarkan pada kumpulan perintah
IF lExpression [THEN]
Commands
[ELSE
Commands]
ENDIF
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && Open customer table
112
GETEXPR 'Enter condition to locate ' TO gcTemp;
TYPE 'L' DEFAULT 'COMPANY = ""'
LOCATE FOR &gcTemp && Enter LOCATE expression
IF FOUND( ) && Was it found?
DISPLAY && If so, display the record
ELSE && If not found
? 'Condition ' + gcTemp + ' was not found ' && Display a message
ENDIF
USE
IMPORT
Menerima dari dari format file eksternal menjadi file tabel Visual FoxPro
IMPORT FROM FileName [DATABASE DatabaseName [NAME LongTableName]]
[TYPE] FW2 | MOD | PDOX | RPD | WK1 | WK3 | WKS | WR1 | WRK |
XLS
| XL5 [SHEET cSheetName] | XL8 [SHEET cSheetName] [AS
nCodePage]
INDEX
Membuat file indeks sehingga dapat ditampilkan sesuai logika urutan
INDEX ON eExpression TO IDXFileName | TAG TagName [OF CDXFileName]
[FOR lExpression] [COMPACT] [ASCENDING | DESCENDING]
[UNIQUE | CANDIDATE] [ADDITIVE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && Open customer table
INDEX ON company TO complist
CLEAR
DISPLAY STATUS
*
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && Open customer table
INDEX ON SUBSTR(city,1,5) + SUBSTR(company,1,6) TO citycomp
CLEAR
DISPLAY STATUS
*
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer && Open customer table
INDEX ON address TAG address
INDEX ON company TAG company OF custcdx
CLEAR
INSERT SQL
Menambah rekord pada akhir tabel yang berisi nilai field yang ditentukan
INSERT INTO dbf_name [(fname1 [, fname2, ...])]
VALUES (eExpression1 [, eExpression2, ...])
INSERT INTO dbf_name FROM ARRAY ArrayName | FROM MEMVAR
113
Contoh:
USE employee
INSERT INTO employee (emp_no, fname, lname, officeno) ;
VALUES (3022, "John", "Smith", 2101)
Contoh 2
CLOSE DATABASES
CLEAR
SELECT CUST2
BROWSE
KEYBOARD
Mengirimkan ekpresi karakter dalam buffer keyboard
KEYBOARD cKeyboardValue [PLAIN] [CLEAR]
LABEL
Mencetak label dari file tabel dan file label yang telah dibuat
LABEL [FORM FileName1 | FORM ?] [ENVIRONMENT] [Scope]
[FOR lExpression1] [WHILE lExpression2] [NOCONSOLE]
[NOOPTIMIZE] [PDSETUP] [PREVIEW [NOWAIT]] [NAME ObjectName]
[TO PRINTER [PROMPT] | TO FILE FileName2]
LIST
Menampilkan tabel atau informasi lingkungan secara berlanjut
LIST [FIELDS FieldList] [Scope] [FOR lExpression1]
[WHILE lExpression2] [OFF] [NOCONSOLE] [NOOPTIMIZE]
[TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
114
LIST STATUS [NOCONSOLE]
[TO PRINTER [PROMPT] | TO FILE FileName [ADDITIVE]]
LOCAL
Membuat variabel atau variabel array lokal
LOCAL VarList
LOCATE
Pencarian rekord berurutan Sequentially dari awal rekord sampai pada akhir ekspresi logika
yang dibuat
LOCATE [FOR lExpression1] [Scope] [WHILE] [NOOPTIMIZE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Open Customer table
SET TALK OFF
STORE 0 TO gnCount
LOCATE FOR ALLTRIM(UPPER(customer.country)) = 'GERMANY'
DO WHILE FOUND( )
gnCount = gnCount + 1
? company
CONTINUE
ENDDO
LOOP
Mengembalikan kontrol program secara langsung ke awal struktur pengulangan
LOOP
MD | MKDIR
Membuat direktory atau subdirektory pada disk
MD cPath | MKDIR cPath
Contoh:
SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory
MKDIR mytstdir && Create a new directory
CHDIR mytstdir && Change to the new directory
= GETDIR( ) && Display the Select Directory dialog box
SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory
RMDIR mytstdir && Remove the new directory
115
= GETDIR( ) && Display the Select Directory dialog box
MODIFY CLASS
Membuka Class Designer dan mengubah atau menambah class yang ada
MODIFY CLASS ClassName [OF ClassLibraryName1]
[AS cBaseClassName [FROM ClassLibraryName2]]
[NOWAIT] [METHOD MethodName] [SAVE]
MODIFY COMMAND
Membuka kotak editing program sehingga dapat melakukan perubahan atau membuat
program baru
MODIFY COMMAND [FileName | ?] [NOEDIT] [NOMENU] [NOWAIT]
[RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN]] [AS nCodePage] [SAME]
[SAVE]
MODIFY DATABASE
Membuka Database Designer, sehingga memungkinkan untuk mengubah database secara
interaktif
MODIFY DATABASE [DatabaseName | ?] [NOWAIT] [NOEDIT]
Contoh:
CLOSE DATABASES
SET PATH TO (HOME(2) + 'data\') && Sets path to database
MODIFY DATABASE testdata && Open testdata database
MODIFY FILE
Membuka kotak edit sehingga dapat mengubah dan membuat file teks
MODIFY FILE [FileName | ?] [NOEDIT] [NOMENU] [NOWAIT]
[RANGE nStartCharacter, nEndCharacter] [[WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN]] [AS nCodePage] [SAME]
[SAVE]
MODIFY FORM
Membuka Form Designer untuk membuat atau mengubah form
MODIFY FORM [FormName | ?][NOWAIT][METHOD MethodName]
[NOENVIRONMENT][SAVE]
[[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]]
Contoh:
MODIFY FORM (HOME(2) + 'solution\controls\timer\swatch.scx')
116
MODIFY GENERAL
Membuka window edit untuk field general dari rekord aktif
MODIFY GENERAL GeneralField1 [, GeneralField2 ...] [NOMODIFY]
[NOWAIT] [[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN
SCREEN]
MODIFY MEMO
Membuka editing window untuk field memod aktif
MODIFY MEMO MemoField1 [, MemoField2 ...] [NOEDIT] [NOMENU]
[NOWAIT] [RANGE nStartCharacter, nEndCharacter]
[[WINDOW WindowName1] [IN [WINDOW] WindowName2 | IN SCREEN]]
[SAME] [SAVE]
MODIFY REPORT
Membuka Report Designer untuk melakukan modifikasi atau membuat file laporan
MODIFY REPORT [FileName | ?] [[WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN]] [NOENVIRONMENT] [NOWAIT]
[SAVE]
MODIFY STRUCTURE
Menampilkan Table Designer, untuk membuat perubahan struktur tabel
MODIFY STRUCTURE
ON SELECTION BAR
Menentukan perintah yang dijalankan ketika item menu dipilih
ON SELECTION BAR nMenuItemNumber OF MenuName [Command]
ON SELECTION MENU
Menentukan perintah yang dijalankan jika judul menu pada menu bar dipilih
ON SELECTION MENU MenuBarName | ALL [Command]
OPEN DATABASE
Membuka database
OPEN DATABASE [FileName | ?] [EXCLUSIVE | SHARED] [NOUPDATE]
[VALIDATE]
PACK
Menghapus seluruh rekord yang telah ditandai Mark Deleted secara permanen
PACK [MEMO] [DBF] [Tablename ] [IN nWorkarea | cTableAlias]
117
PACK DATABASE
Menghapus rekord yang telah di tandai penghapusan dari database aktif
PACK DATABASE
Contoh:
CLOSE DATABASES
SET PATH TO (HOME(2) + 'data\') && Sets path to database
OPEN DATABASE testdata && Open the database
PACK DATABASE && Pack the current database
PARAMETERS
Menentukan variabel private, atau array
PARAMETERS Parameter1 [AS type [OF ClassLib]] [, Parameter2 [AS type
[OF ClassLib]]]
PROCEDURE
PROCEDURE ProcedureName
[LPARAMETERS parameter1[,parameter2},...]
Commands
[RETURN [eExpression]]
ENDFUNC
PROCEDURE ProcedureName([parameter1[,parameter2},...])
Commands
[RETURN [eExpression]]
ENDFUNC
PUBLIC
Mendefinisikan variabel atau array global
PUBLIC MemVarList
PRIVATE
Menyembunyikan variabel atau array tertentu yang dibuat dalam program yan sedang
dijalankan
PRIVATE VarList
PRIVATE ALL[LIKE Skeleton | EXCEPT Skeleton]
QUIT
Mengakhiri program Visual FoxPro atau kembali ke system operasi
QUIT
118
RD | RMDIR
Menghapus direktory atau folder dari disk
RD cPath | RMDIR cPath
Contoh:
SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory
MKDIR mytstdir && Create a new directory
CHDIR mytstdir && Change to the new directory
= GETDIR( ) && Display the Select Directory dialog box
SET DEFAULT TO HOME( ) && Restore Visual FoxPro directory
RMDIR mytstdir && Remove the new directory
= GETDIR( ) && Display the Select Directory dialog box
READ EVENTS
Memulai event
READ EVENTS
RECALL
Mengembalikan tanda mark (Unmarks) rekord yang telah ditandai penghapusan
RECALL [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
[IN nWorkArea | cTableAlias]
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens Customer table
DELETE FROM customer WHERE country = 'USA' && Mark for deletion
CLEAR
LIST FIELDS company, country FOR DELETED( ) && List marked records
RECALL ALL && Unmark all records marked for deletion
REINDEX
Membangun kembali file indeks yang dibuka
REINDEX [COMPACT]
Contoh:
cExclusive = SET('EXCLUSIVE')
SET EXCLUSIVE OFF
SET PATH TO (HOME(2) + 'Data\')
OPEN DATA testdata && Opens the test databsase
USE Customer && Not opened exclusively
USE Employee IN 0 EXCLUSIVE && Opened exclusively in another work
area
IF ISEXCLUSIVE( )
REINDEX && Can only be done if table opened exclusively
ELSE
WAIT WINDOW 'The table has to be exclusively opened'
ENDIF
119
REPLACE
Update rekord
REPLACE FieldName1 WITH eExpression1 [ADDITIVE]
[, FieldName2 WITH eExpression2 [ADDITIVE]] ... [Scope]
[FOR lExpression1] [WHILE lExpression2] [IN nWorkArea |
cTableAlias]
[NOOPTIMIZE]
REPORT
Menampilkan atau mencetak laporan sesuai file laporan yang dibuat melalui MODIFY
REPORT atau CREATE REPORT.
REPORT FORM FileName1 | ? [ENVIRONMENT] [Scope] [FOR lExpression1]
[WHILE lExpression2] [HEADING cHeadingText] [NOCONSOLE]
[NOOPTIMIZE] [PLAIN] [RANGE nStartPage [, nEndPage]]
[PREVIEW [[IN] WINDOW WindowName | IN SCREEN] [NOWAIT]]
[TO PRINTER [PROMPT] | TO FILE FileName2 [ASCII]] [NAME
ObjectName]
[SUMMARY]
RETURN
Mengembalikan kontrol program dari pemanggilan program
RETURN [eExpression | TO MASTER | TO ProcedureName]
RUN | !
Menjalankan program atau perintah eksternal
RUN [/N] MS-DOSCommand | ProgramName
120
CLEAR
SCATTER
Mengcopy data dari rekord aktif menjadi kumpulan variabel atau array
SCATTER [FIELDS FieldNameList | FIELDS LIKE Skeleton
| FIELDS EXCEPT Skeleton] [MEMO]
TO ArrayName | TO ArrayName BLANK | MEMVAR | MEMVAR BLANK
| NAME ObjectName [BLANK]
Contoh 1
CREATE TABLE Test FREE ;
(Object C(10), Color C(16), SqFt n(6,2))
SEEK
Mencari rekord pada tabel yang sudah di indeks
SEEK eExpression [ORDER nIndexNumber | IDXIndexFileName
| [TAG] TagName [OF CDXFileName] [ASCENDING | DESCENDING]]
[IN nWorkArea | cTableAlias]
SELECT - SQL
Membuka tabel dari satu atau lebih file tabel
SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] [Alias.] Select_Item
[[AS] Column_Name] [, [Alias.] Select_Item [[AS] Column_Name] ...]
FROM [FORCE][DatabaseName!]Table [[AS] Local_Alias]
[[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN
DatabaseName!] Table [[AS] Local_Alias] [ON JoinCondition ]
[[INTO Destination] | [TO FILE FileName [ADDITIVE] | TO PRINTER
121
[PROMPT] | TO SCREEN]] [PREFERENCE PreferenceName]
[NOCONSOLE] [PLAIN] [NOWAIT]
[WHERE JoinCondition [AND JoinCondition ...]
[AND | OR FilterCondition [AND | OR FilterCondition ...]]]
[GROUP BY GroupColumn [, GroupColumn ...]]
[HAVING FilterCondition] [UNION [ALL] SELECTCommand]
[ORDER BY Order_Item [ASC | DESC] [, Order_Item [ASC | DESC] ...]]
SELECT
Mengaktifkan area kerja yang ditentukan
SELECT nWorkArea | cTableAlias
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
SELECT 1 && Work area 1
USE customer && Opens Customer table
SKIP
Memindahkan pointer rekord ke awal atau ke akhir dalam suatu tabel
SKIP [nRecords] [IN nWorkArea | cTableAlias]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens Customer table
CLEAR
SKIP 4 IN 'customer'
? RECNO('customer') && Displays 5
GO BOTTOM
SKIP -5
? RECNO( )
SORT
Mengurut rekord dalam suatu tabel aktif dan hasilnya disimpan dalam suatu tabel baru
SORT TO TableNameON FieldName1 [/A | /D] [/C]
[, FieldName2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING]
[Scope] [FOR lExpression1] [WHILE lExpression2]
[FIELDS FieldNameList | FIELDS LIKE Skeleton
| FIELDS EXCEPT Skeleton] [NOOPTIMIZE]
122
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens Customer table
CLEAR
LIST FIELDS company, cust_id NEXT 3
SORT TO temp ON cust_id
USE temp
LIST FIELDS company, cust_id NEXT 3
WAIT WINDOW 'Now sorted on CUST_ID' NOWAIT
STORE
Menyimpan data menjadi kedalam suatu variabel, array atau elemen array
STORE eExpression TO VarNameList | ArrayNameList-or-
VarName | ArrayName = eExpression
Contoh:
STORE DATE( ) TO gdDate
STORE 50 TO gnNumeric
STORE 'Hello' TO gcCharacter
STORE .T. TO glLogical
STORE $19.99 TO gyCurrency
DIMENSION gaMyArray(2,2)
SET COMPATIBLE OFF
STORE 2 TO gaMyArray
CLEAR
DISPLAY MEMORY LIKE g*
SUM
Menjumlahkan field numerik dari tabel aktif sesuai dengan kondisi yang ditentukan
SUM [eExpressionList] [Scope] [FOR lExpression1] [WHILE
lExpression2]
[TO MemVarNameList | TO ARRAY ArrayName] [NOOPTIMIZE]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE products && Opens Products table
CLEAR
?
? 'Total in stock : ', gnInStock && Displays 3119.00
? 'Total on order: ', gnOnOrder && Displays 780.00
? 'Total # units : ', gnUnits && Displays 3899.00
123
TEXT [TO VarName [ADDITIVE] [TEXTMERGE] [NOSHOW]]
TextLines
ENDTEXT
Contoh:
CLEAR
CLOSE DATABASES
SET TALK OFF
SET TEXTMERGE ON && Enable embedding of expressions and functions
STORE FCREATE('names.txt') TO _TEXT && Create low-level file
IF _TEXT = -1 && Can't create low-level file then exit program
WAIT WINDOW 'Cannot create an output file; press a key to exit'
CANCEL
ENDIF
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
TEXT
CONTACT NAMES
<<DATE( )>> <<TIME( )>>
ENDTEXT
WAIT WINDOW 'Press a key to generate the first ten names'
SCAN NEXT 10
TEXT
<<contact>>
ENDTEXT
ENDSCAN
CLOSE ALL && Close the text file and the table
MODIFY FILE names.txt
ERASE names.txt
TOTAL
Menghitung jumlah-jumlah untuk field-field numerik dari file tabel aktif
TOTAL TO TableName ON FieldName [FIELDS FieldNameList] [Scope]
[FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
UNLOCK
Membuka rekord atau file tabel yang terkunci
UNLOCK [RECORD nRecordNumber] [IN nWorkArea | cTableAlias]
[ALL]
Contoh:
CLOSE DATABASES
SET REPROCESS TO 3 AUTOMATIC
STORE '1,2,3,4' TO gcRecList && Lock records 1 through 4
gcOldExc = SET('EXCLUSIVE') && Save the EXCLUSIVE setting
SET EXCLUSIVE OFF && Allow sharing of tables
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer && Opens Customer table
SELECT 0
USE employee && Opens Employee table
124
? LOCK('1,2,3,4', 'customer') && Lock the first 4 records in
customer
? RLOCK(gcRecList, 'employee') && Lock the first 4 records in
employee
UNLOCK IN customer
UNLOCK IN employee
SET EXCLUSIVE &gcOldExc && Restore original EXCLUSIVE setting
USE
Membuka file tabel dan indeks file atau SQL view.
USE [[DatabaseName!]Table | SQLViewName | ?]
[IN nWorkArea | cTableAlias] [ONLINE] [ADMIN] [AGAIN]
[NOREQUERY [nDataSessionNumber]] [NODATA] [INDEX IndexFileList
| ?
[ORDER [nIndexNumber | IDXFileName | [TAG] TagName [OF
CDXFileName]
[ASCENDING | DESCENDING]]]] [ALIAS cTableAlias] [EXCLUSIVE]
[SHARED] [NOUPDATE] [CONNSTRING cConnectString]
Contoh:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
ACTIVATE WINDOW View
WAIT
Menampilka pesan
WAIT [cMessageText] [TO VarName] [WINDOW [AT nRow, nColumn]] [NOWAIT]
[CLEAR | NOCLEAR] [TIMEOUT nSeconds]
WITH moemployee
.First_Name = 'John'
.Last_Name = 'Smith'
.Address = '16 Maple Lane'
.HireDate = {^1998-02-16}
ENDWITH
CLEAR
125
? moemployee.First_Name + ' '
?? moemployee.Last_Name
? moemployee.Address
? moemployee.HireDate
ZAP
Menghapus semua rekord dari tabel
ZAP [IN nWorkArea | cTableAlias]
126