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/