Monday, July 21, 2008
Form Entri Employee - VFP
THISFORM.txtNoPokok.Value = ''
THISFORM.txtNoPokok.Enabled= .T.
THISFORM.txtNoInduk.Value = ''
THISFORM.txtNama.Value = ''
THISFORM.txtUnit.Value = ''
THISFORM.cmdSave.Enabled = .F.
THISFORM.cmdCancel.Enabled = .F.
THISFORM.cmdErase.Enabled= .F.
SELECT datakar.no_pokok,datakar.no_induk,datakar.nama,datakar.unit from datakar INTO CURSOR ListKar
SELECT ListKar
INDEX on RIGHT(ALLTRIM(no_pokok),4) TAG nop ADDITIVE
THISFORM.grid1.RecordSourceType = 1
THISFORM.grid1.RecordSource = "listkar"
THISFORM.grid1.column1.Width = 100
THISFORM.grid1.column1.header1.Caption = 'ID #1'
THISFORM.grid1.column2.Width = 100
THISFORM.grid1.column2.header1.Caption = 'ID #2'
THISFORM.grid1.column3.Width = 150
THISFORM.grid1.column3.header1.Caption = 'Name'
THISFORM.grid1.column4.Width = 125
THISFORM.grid1.column4.header1.Caption = 'Unit'
THISFORM.txtNoPokok.SetFocus
On Form1.Unload :
IsFormActive = .F.
LogData.ENABLED = .T.
On txtNoPokok.LostFocus :
*!* ID # 1
LOCAL c_NoPokok as String
c_NoPokok = THISFORM.txtNoPokok.Value
IF LEN(ALLTRIM(c_NoPokok)) # 0
SELECT * FROM datakar WHERE no_pokok = c_NoPokok INTO CURSOR CekNoPokok
SELECT CekNoPokok
GO TOP
IF !BOF()
LOCAL n_Jawab
n_Jawab = MESSAGEBOX("No. Pokok in sudah tercatat."+CHR(13)+"Edit data ini?",4+48+256,"Cek No. Pokok")
IF n_Jawab = 6 && YES
THISFORM.txtNoInduk.Value = CekNoPokok.no_induk
THISFORM.txtNama.Value = CekNoPokok.nama
THISFORM.txtUnit.Value = CekNoPokok.unit
THISFORM.txtNoPokok.Enabled= .F.
ENDIF
ENDIF
THISFORM.cmdSave.Enabled = .T.
THISFORM.cmdCancel.Enabled = .T.
THISFORM.cmdErase.Enabled= .T.
SELECT CekNoPokok
USE
ENDIF
On cmdSave.Click :
*!* Save Record
_SCREEN.MOUSEPOINTER = 11
LOCAL c_NoPokok as String,c_NoInduk as String,c_Nama as String,c_Unit as String
c_NoPokok = ALLTRIM(thisform.txtnoPokok.Value)
c_NoInduk = ALLTRIM(thisform.txtNoInduk.Value)
c_Nama = ALLTRIM(thisform.txtNama.Value)
c_Unit = ALLTRIM(thisform.txtUnit.Value)
SELECT no_pokok FROM datakar WHERE ALLTRIM(no_pokok) = c_NoPokok INTO CURSOR CekDataKaryawan
select CekDataKaryawan
GO top
IF !BOF()
**** update data
UPDATE datakar SET no_pokok = c_NoPokok,;
no_induk = c_NoInduk,;
nama = c_Nama,;
unit = c_Unit ;
WHERE ALLTRIM(no_pokok) = c_NoPokok
ELSE
**** insert data
INSERT INTO datakar ;
(no_pokok,;
no_induk,;
nama,unit) ;
VALUES ;
(c_NoPokok,;
c_NoInduk,;
c_Nama,;
c_Unit)
ENDIF
select CekDataKaryawan
USE
THISFORM.REFRESH
_SCREEN.MOUSEPOINTER = 0
On cmdCancel.Click:
*!* Cancel Entri/Edit Record
_SCREEN.MOUSEPOINTER = 11
THISFORM.REFRESH
_SCREEN.MOUSEPOINTER = 0
On cmdErase.Click:
*!* Erase Record
_SCREEN.MOUSEPOINTER = 11
LOCAL n_Jawab
n_Jawab = MESSAGEBOX("Hapus Data karyawan dengan No. Pokok ini?",4+32+256,"Hapus Data Karyawan")
IF n_Jawab = 6 && YES
DELETE FROM datakar WHERE ALLTRIM(no_pokok) = thisform.txtNoPokok.Value
ENDIF
THISFORM.REFRESH
_SCREEN.MOUSEPOINTER = 0
On cmdExit.Click:
IF TYPE("THISFORM.PARENT")="O"
THISFORMSET.RELEASE
ELSE
THISFORM.RELEASE
ENDIF
Saturday, July 19, 2008
Reduce Memory Usage in VFP
Within a timer, this function can be running periodically to reduce memory usage vfp application.
I have already try and work with well.
Function ReduceMemory()
Declare Integer SetProcessWorkingSetSize In kernel32 As SetProcessWorkingSetSize ;
Integer hProcess , ;
Integer dwMinimumWorkingSetSize , ;
Integer dwMaximumWorkingSetSize
Declare Integer GetCurrentProcess In kernel32 As GetCurrentProcess
nProc = GetCurrentProcess()
bb = SetProcessWorkingSetSize(nProc,-1,-1)
*EOFunct ReduceMemory()
this function created by Bernard Bout
Friday, July 18, 2008
Get Data Temperature Sensor with VFP
*** Com1 setting = "9600,n,8,1"
thisform.MsCom.settings = "9600,n,8,1"
thisform.timer1.Interval = 1000
** SENSOR 01
VAL_01 = ASC(substr(thisform.MsCom.Input,5,5))
thisform.text1.Value = VAL_01
** SENSOR 02
thisform.MsCom.Output = '02R;'
VAL_02 = ASC(substr(thisform.MsCom.Input,5,5))
thisform.text2.Value = VAL_02
** SENSOR 03
thisform.MsCom.Output=':03R;'
VAL_03 = ASC(substr(thisform.MsCom.Input,5,5))
thisform.text3.Value = VAL_03
** SENSOR 04
thisform.MsCom.Output=':04R;'
VAL_04 = ASC(substr(thisform.MsCom.Input,5,5))
thisform.text4.Value = VAL_04
** SENSOR 05
thisform.MsCom.Output=':05R;'
VAL_05 = ASC(substr(thisform.MsCom.Input,5,5))
thisform.text5.Value = VAL_05
thisform.MsCom.inBufferCount = 0
thisform.MsCom.Refresh
Friday, July 4, 2008
Connecting Data
VB6 - Non ODBC
Set db = New Connection
db.CursorLocation = adUseClient
db.Open “PROVIDER=MSDataShape;Data PROVIDER=” & _
“Microsoft.Jet.OLEDB.4.0;Data Source=” _
& App.Path & “\fpdata.mdb;Jet OLEDB:” & _
“Database Password=”;”
Visual Foxpro - ODBC
STORE SQLCONNECT(’exdata’, ‘admin’,”) TO gnConnHandle
IF gnConnHandle <= 0
= MESSAGEBOX(’Cannot make connection’, 16, ‘SQL Connect Error’)
*!* execute
SQLEXEC(gnConnHandle,”SELECT * FROM USER”,”USER”)
ENDIF
fingerprint with control czkem
Private Sub cmdDownload01_Click()
If lStatusKonek Then
If chkDownload.Value = 0 Then
cmdDownload01.Enabled = False
MousePointer = vbHourglass
End If
Dim dwEnrollNumber As Long
Dim dwVerifyMode As Long
Dim dwInOutMode As Long
Dim timeStr As String
Dim i As Long
Dim lAddNew As Boolean
Dim v1 As String, v2 As Long, v3 As Long
lvX.Refresh
If chkDownload.Value = 1 Then
lvX.ListItems.Clear
End If
v1 = CStr(!no_id)
v2 = !baudrate
v3 = !no_port
If CZKEM1.ReadGeneralLogData(v1) Then
i = 1
CZKEM1.ReadAllUserID v1 ”cboNoMesin01
While CZKEM1.GetGeneralLogDataStr(v1, dwEnrollNumber, dwVerifyMode, dwInOutMode, timeStr)
lvX.ListItems.Add i, , dwEnrollNumber
With lvX.ListItems(i)
.SubItems(1) = IIf(IsNull(timeStr), “”, timeStr)
.SubItems(2) = IIf(IsNull(v1), “”, v1)
.SubItems(3) = IIf(IsNull(dwVerifyMode), “”, IIf(dwVerifyMode = 1, “Fingerprint”, “Password”))
DoEvents
End With
Dim d_TimeStr As Date
d_TimeStr = CDate(Left(Right(Left(timeStr, 10), 2) & “-” & Mid(Left(timeStr, 10), 6, 2) & “-” & Left(Left(timeStr, 10), 4) & ” ” & Right(Trim(timeStr), 8), Len(Right(Left(timeStr, 10), 2) & “-” & Mid(Left(timeStr, 10), 6, 2) & “-” & Left(Left(timeStr, 10), 4) & ” ” & Right(Trim(timeStr), 8))))
lvX.ListItems.Add i, , dwEnrollNumber
With lvX.ListItems(i)
.SubItems(1) = IIf(IsNull(timeStr), “”, timeStr)
.SubItems(2) = IIf(IsNull(v1), “”, v1)
.SubItems(3) = IIf(IsNull(dwVerifyMode), “”, IIf(dwVerifyMode = 1, “Fingerprint”, “Password”))
DoEvents
End With
End If
End With
lvX.Refresh
Wend
End If
.MoveNext
Wend
End With
If chkDownload.Value = 0 Then
cmdDownload01.Enabled = True
MousePointer = vbDefault
End If
adoMesinConnect.Close
End If
End Sub