Thursday, January 11, 2007

How to Capture PABX Data II

Setelah sekian lama mencoba, ternyata cara pertama tidak ketemu jawabannya.
Aku coba buat cara lain yang penting bisa mengakomodasi kepentingan capture data. inti logikanya seperti ini.
Saya buat cursor dengan field tampung dengan tipe memo. pada saat oncomm terlaksana, tambahkan yang ada di buffer kedalam field memo pada kursor tampung tadi. kemudian dengan sintaks MLINE() lakukan deteksi jumlah line dalam field memo tersebut, untuk ini saya tetapkan angka 5 line untuk melakukan deteksi jumlah baris yang telah tercipta untuk membangkitkan procedure lainnya. Selama proses deteksi ini disable dulu OnComm sementara sampai dengan proses eksekusi prosedur terselesaikan. sintaksnya seperti ini


IF This.commEvent = 2
REPLACE logbilling.logbill WITH logbilling.logbill+Thisform.olecontrol1.Input
IF MEMLINE(logbilling.LogBill)>=5
nJmlLine = MEMLINES(logbilling.logbill)
i = 1
Thisform.olecontrol1.Break = .T.
DO WHILE i < 5
cChar = MLINE(logbilling.LogBill,i)
IF ASC(LEFT(cChar,1)) >= 48
Thisform.proses(cChar)
ENDIF
i = i + 1
ENDDO
cVarLine = ""
IF i < nJmlLine
DO WHILE i <= nJmlLine
cVarLine = cVarLine + MLINE(logbilling.LogBill,i)
i = i + 1
ENDDO
ELSE
REPLACE LogBilling.LogBill WITH cVarLine
ENDIF
Thisform.olecontrol1.Break = .F.
ENDIF
Thisform.Refresh
ENDIF


letakkan potongan program diatas dalam oncomm event pada olecontrol (comm control).
prosedure proses digunakan untuk mengolah data hasil transfer dari PABX. dengan sintak substr() lakukan pemilahan data yang berupa satu baris menjadi data2 yang sesuai semisal, tanggal, durasi, phone line dsb.
Sampai disini seharusnya anda sudah bisa membuat billing system berbasis PABX. bila ada yang kurang jelas silahkan kirim email ke ediwe2000@yahoo.com. atau berikan comment disini.