Rabu, 29 Oktober 2008

Import Data dari xls ke dbf (sederhana)

Ini merupakan script yang saya ambil dari forum foxpro ( komunitas foxpro )saya sich belum ngetest tapi katanya berjalan lancar liat aja di bawah

1. Awalnya buat sebuah file xls ... disini saya beri nama shipping.xls
2. Pada baris I buat header field
3. Kebetulan dalam proses import ini, saya ingin me-import tanggal, jadi kolom untuk
tanggalnya buat format cell-nya DATE(MM,DD,YY) sesuai kebutuhan.
4. Kemudian atur header dan kolom bagian tanggal untuk tidak bisa diubah, selanjutnya protect sheet.
5. Selanjutnya menu import pada VFP dibuat seperti ini :

------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Set talk OFF
Set Stat OffSET CENTURY on
SET DATE BRITISH
SET EXCLUSIVE off
SET CONFIRM on
SET DELETED on
set safety off

SELECT 1
USE itship ALIAS SHIP


****** Buat file dbf untuk proses import awal ******
CREATE TABLE tempunit ;
(no_ship c(20), kd_mesin c(6), no_mesin c(7), no_rangka c(17), ;
tahun c(4), model c(3), tipe c(15), kd_warna c(2), warna c(20), ;
tgl_masuk D(8))

SELECT 2
USE tempunit SHARED AGAIN

APPEND FROM shipping TYPE xls &&& Import data dari file xls ke file dbf yg di-create sebelumnya

SELECT * FROM tempunit INTO CURSOR impunit readwrite
GO TOP
DELETE &&& Menghapus record pertama (header)
WAIT WINDOW "Proses Import Data Unit .... Tekan Sembarang Tombol"

ship=0

****** Proses import ke file dbf sebenarnya ******
GO top
DO WHILE ! EOF()

SELECT 1
******* jika data ditemukan, maka data tidak akan diimport *******
LOCATE FOR kd_mesin+no_mesin = impunit.kd_mesin+impunit.no_mesin

IF !FOUND()
APPEND BLANK
******** Tambahan saja, penandaan bahwa data ini bukan melalui proses input manual, tapi proses Import Data
IF TRIM(impunit.no_ship)=""
REPLACE ship.no_ship WITH "IMP-"+kode_md+"-"+DTOC(impunit.tgl_masuk)
else
REPLACE ship.no_ship WITH "IMP-"+impunit.no_ship
endi

REPLACE ship.kd_mesin WITH impunit.kd_mesin
REPLACE ship.no_mesin WITH impunit.no_mesin
REPLACE ship.no_rangka WITH impunit.no_rangka
REPLACE ship.tahun WITH impunit.tahun
REPLACE ship.model WITH impunit.model
REPLACE ship.tipe WITH impunit.tipe
REPLACE ship.kd_warna WITH impunit.kd_warna
REPLACE ship.warna WITH impunit.warna
REPLACE ship.tgl_masuk WITH impunit.tgl_masuk
REPLACE ship.stat_unit WITH "A"
thisform.lbldata.caption="Data : "+kd_mesin+no_mesin
ship=ship+1
endi
SELECT impunit
SKIP
ENDDO

thisform.lbldata.Caption=""
MESSAGEBOX("Proses Import Selesai :"+STR(ship)+" data",64,"SELESAI")
thisform.command2.Caption="SELESAI"

SELECT 1
USE itship ALIAS SHIP
IF! FILE('itship.cdx')
INDEX ON kd_mesin+no_mesin TAG mesin
ELSE
SET INDEX TO itship.cdx
ENDIF
SET ORDER TO tag mesin

CLOSE TABLES &&& hapus file temporary yang dibuat pada awal
DELETE FILE tempunit.dbf

1 komentar: