Hello,
Saya lagi belajar bikin program pakai vfp input data langsung ke grid
memakai RV, header dan detail.
tapi saya mendapat kesulitan waktu mau input record yang kedua, selalu
record yang terdahulu akan hilang setelah di kasih focus.
Ini koding yang saya bikin, tolong di koreksi salahnya dimana.
dia selalu hilang, jika di kasih setfocus atau refresh.
Klu saya coba, hanya pakai 1 file bisa ajak nggak jadi masalah.
Sepertinya salahnya di relation, tapi nggak tahu yang mana yang salah.
tks.
Event load
PUBLIC Nnamadb,Nserver,Ndbuser,Ndbpass
Nnamadb = 'lintas'
Nserver = 'Localhost'
Ndbuser = 'root'
Ndbpass = ''
StringCon = "DRIVER={MySQL ODBC 3.51
Driver};DESC=;DATABASE="+Nnamadb+";SERVER="+Nserver+";UID="+Ndbuser+";PASSWORD="+Ndbpass+";PORT=;OPTION=;STMT=;"
koneksi = SQLSTRINGCONNECT(StringCon)
SELECT 0
USE rv_chat ALIAS fchat
INDEX ON no_acct TAG chat
SELECT 0
USE rv_dtl_jur ALIAS dtl_jur CONNSTRING StringCon
*INDEX ON no_dok + STR(RECNO(),7) TAG dtl_jur
INDEX ON no_dok + STR(no_urut,3) TAG dtl_jur
CURSORSETPROP("Buffering",5)
SET RELATION TO no_acct INTO fchat
SELECT 0
USE rv_hdr_jur ALIAS hdr_jur CONNSTRING StringCon
INDEX ON no_dok TAG hdr_jur
CURSORSETPROP("Buffering",3)
SET RELATION TO ALLTRIM(no_dok) INTO dtl_jur ADDI
Event Init
thisform.grid_21.ColumnCount = 8
WITH this.grid_21
.RecordSource= " "
.RecordSourceType= 1
.RecordSource= "dtl_jur"
.DeleteMark = .F.
.RecordMark = .F.
.ReadOnly = .T.
.AllowCellSelection = .F.
.column1.ControlSource="dtl_jur.no_urut"
.column2.ControlSource="dtl_jur.no_acct"
.column3.ControlSource="dtl_jur.ket"
.column4.ControlSource="dtl_jur.t_db"
.column5.ControlSource="dtl_jur.t_cr"
.column6.ControlSource="dtl_jur.kode_user"
.column7.ControlSource="dtl_jur.tgl_edit"
.column8.ControlSource="dtl_jur.no_dok"
.column1.Width = 25
.column2.Width = 75
.column3.Width = 300
.column4.Width = 100
.column5.Width = 100
.column6.Width = 100
.column7.Width = 100
.column8.Width = 100
.column9.Width = 100
.column1.Header1.Caption = "Urut"
.column2.Header1.Caption = "No Acct"
.column3.Header1.Caption = "Keterangan"
.column4.Header1.Caption = "Debet"
.column5.Header1.Caption = "Kredit"
.column6.Header1.Caption = "Kode User"
.column7.Header1.Caption = "Tgl Edit"
.column8.Header1.Caption = "No Dok"
.HighlightStyle = 1
.HighlightForeColor = RGB(255,255,0)
.HighlightBackColor = RGB(255,0,0)
ENDWITH
thisform.grid_21.column6.text1.SelectOnEntry = .T.
Event cmd_baru
SELECT hdr_jur
SET FILTER TO
thisform.set_notabaru = .T.
thisform.no_urut = 1
thisform.txtno_dok.SetFocus
Proc LostFocus.txttanggal
IF thisform.set_notabaru
***
* Nota Baru
***
IF MESSAGEBOX("Data Ok, Lanjut Ke Detail [Y/N] ? : ",4+32+256,"Tambah Data
Baru") = 6
SELECT hdr_jur
SET ORDER TO 1
GO TOP
xno_dok = thisform.txtno_dok.value
xtanggal = thisform.txttanggal.txtdate.Value
xtgl_edit = DATETIME()
IF SEEK(xno_dok)
**
* Data Lama
***
ELSE
***
* Tambah Data Baru Header
***
SELECT hdr_jur
INSERT INTO hdr_jur (no_dok, tanggal, kode_user,ip_adds,tgl_edit) VALUE
(xno_dok,xtanggal, muser,Nip_adds,xtgl_edit)
=Tableupdate(.f.)
**
* Append Data Detail
**
SELECT dtl_jur
INSERT INTO dtl_jur (no_dok, kode_user, tgl_edit) VALUES (xno_dok,
muser,
xtgl_edit)
thisform.grid_21.ReadOnly = .F.
thisform.grid_21.AllowCellSelection = .T.
thisform.grid_21.Refresh
thisform.grid_21.column1.txtno_urut.ReadOnly = .F.
thisform.grid_21.column1.txtno_urut.Value = thisform.no_urut
thisform.grid_21.column1.txtno_urut.SetFocus
thisform.grid_21.ActivateCell(thisform.grid_21.ActiveRow,1)
ENDI
ELSE
thisform.txno_dok.SetFocus
ENDI
ENDI
***
* Entry Data Detail di Grid dan Update data Header & Detail
***
proc lostfocus.txtt_cr
xtgl_edit = DATETIME()
SELECT hdr_jur
TABLEUPDATE(.F.)
SELECT dtl_jur
TABLEUPDATE(.T.)
thisform.no_urut = thisform.no_urut + 1
xno_urut = thisform.no_urut
xno_dok = thisform.txtno_dok.value
INSERT INTO dtl_jur (no_dok, no_urut, kode_user, tgl_edit) VALUES (xno_dok,
xno_urut,
muser, xtgl_edit)
*=TABLEUPDATE()
*LOCATE FOR no_dok + STR(no_urut,3) = xno_dok + STR(xno_urut,3)
****
* Record yang sudah di Entry pertama kali akan hilang/tidak
* berhasil di tampilkan kembali, tapi klu lihat di MYSQL datanya
* ada, hal ini terjadi sehabis mendapat event refresh atau setfocus
* di gridnya.
****
thisform.grid_21.Refresh
thisform.grid_21.SetFocus
thisform.grid_21.AllowCellSelection = .T. && waktu Entry
thisform.grid_21.column1.txtno_urut.ReadOnly = .F.
thisform.grid_21.column1.txtno_urut.Value = dtl_jur.no_urut
thisform.grid_21.column1.txtno_urut.SetFocus
***
* Saya juga coba bikin tombol Add tersendiri hasil juga demikian
***
Proc cmd_addDetail
SELECT hdr_jur
xno_dok = thisform.txtno_dok.value
xtgl_edit = DATETIME()
SELECT dtl_jur
INSERT INTO dtl_jur (no_dok, kode_user, tgl_edit) VALUES (xno_dok, muser,
xtgl_edit)
thisform.grid_21.ReadOnly = .F.
thisform.grid_21.AllowCellSelection = .T.
thisform.grid_21.Refresh
thisform.grid_21.SetFocus
thisform.grid_21.column1.txtno_urut.ReadOnly = .F.
thisform.grid_21.column1.txtno_urut.Value = thisform.no_urut
*thisform.grid_21.ActivateCell(thisform.grid_21.ActiveRow,1)
**
* Hilang disini setelah setfocus
***
thisform.grid_21.column1.txtno_urut.SetFocus
--
Salam,
Fansul
------------------------------------
--
www.itcenter.or.id - Komunitas Teknologi Informasi Indonesia
Gabung, Keluar, Mode Kirim : [EMAIL PROTECTED]
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ITCENTER/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ITCENTER/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:[EMAIL PROTECTED]
mailto:[EMAIL PROTECTED]
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/