Mejor de esta manera para que tengas un ejemplo completo....
#include "FiveWin.ch"
#include "XBrowse.ch"
STATIC CODBCO, NOMBCO, CTABCO, CTACTA, GRA, NREG, oDlg, oBrw
STATIC TNUEVO := .T.
FUNCTION MAIN()
聽 聽 LOCAL oWnd, oBar, oMeter, oText
聽 聽 SET Deleted On
聽 聽 SET _3DLOOK ON
聽 聽 lMkDir("DATA")
聽 聽 IF .NOT. FILE ("DATA\BANCO.DBF")
聽 聽 聽 聽 DbCreate( "DATA\BANCO", { { "BCO_CODIGO", "C", 12, 0 },;
聽 聽 聽 聽 聽 聽 { "BCO_DESCRI", "C", 30, 0 },;
聽 聽 聽 聽 聽 聽 { "BCO_CUENTA", "C", 20, 0 } } )
聽 聽 ENDIF
聽 聽 USE DATA\BANCO ALIAS BCO NEW
聽 聽 index on BCO->BCO_CODIGO to DATA\BANCO
聽 聽 DEFINE WINDOW oWnd
聽 聽 聽 聽 DEFINE BUTTONBAR oBar OF oWnd
聽 聽 聽 聽 DEFINE BUTTON OF oBar ACTION CBANCO(.T.)
聽 聽 聽 聽 DEFINE BUTTON OF oBar ACTION CBANCO(.F.)
聽 聽 聽 聽 oBrw := TXBrowse():New( oWnd )
聽 聽 聽 聽 oBrw:blDblClick := { | nRow, nCol, nKey | CBANCO(.F.)}
聽 聽 聽 聽 oBrw:bKeyDown := { | nKey, nFlags | CBANCO( .F., oBrw )}
聽 聽 聽 聽 oBrw:SetRDD()
聽 聽 聽 聽 oBrw:CreateFromCode()
聽 聽 聽 聽 oWnd:oClient := oBrw
聽 聽 ACTIVATE WINDOW oWnd ;
聽 聽 聽 聽 ON INIT oBrw:SetFocus()
RETURN (.T.)
FUNCTION CBANCO(TNUEVO)
聽 聽 STATIC oDlg, oGet, oCodigo, oNombre, oNumero, oCuenta, oBtn
聽 聽 SetGetColorFocus() // change GET colors when focused
聽 聽 SET 3DLook OFF
聽 聽 BCONUEVO(TNUEVO)
聽 聽 DEFINE DIALOG oDlg ;
聽 聽 聽 聽 TITLE IF(TNUEVO, "Incluir Cuenta Bancaria","Modificar Cuenta Bancaria")
聽 聽 聽 聽
聽 聽 聽 聽 cCODANT := BCO->BCO_CODIGO
聽 聽 聽 聽 @ 1,1 GET oCodigo VAR CODBCO OF oDlg SIZE 40, 10 VALID CHKBANCO(CODBCO, cCODant)
聽 聽 聽 聽 @ 2,1 GET oNombre VAR NOMBCO OF oDlg SIZE 40, 10
聽 聽 聽 聽 @ 3,1 GET oNumero VAR CTABCO OF oDlg SIZE 40, 10
聽 聽 聽 聽 @ 3.3,1 BUTTON oBtn PROMPT "&Grabar" OF oDlg ;
聽 聽 聽 聽 聽 聽 ACTION (GRABA(.T., TNUEVO), oDlg:END(), oBrw:Refresh())
聽 聽 聽 聽 @ 3.3,10 BUTTON oBtn PROMPT "&Salir" OF oDlg ;
聽 聽 聽 聽 聽 聽 ACTION oDlg:END()
聽 聽 ACTIVATE DIALOG oDlg CENTERED
RETURN NIL
STATIC FUNCTION BCONUEVO(TNUEVO)
聽 聽 IF TNUEVO
聽 聽 聽 聽 NREG:=BCO->(RECNO())
聽 聽 聽 聽 CODBCO := SPACE(12)
聽 聽 聽 聽 NOMBCO := SPACE(30)
聽 聽 聽 聽 CTABCO := SPACE(30)
聽 聽 ELSE
聽 聽
聽 聽 聽 聽 NREG:=BCO->(RECNO())
聽 聽 聽 聽 CODBCO := BCO->BCO_CODIGO
聽 聽 聽 聽 NOMBCO := BCO->BCO_DESCRI
聽 聽 聽 聽 CTABCO := BCO->BCO_CUENTA
聽 聽 ENDIF
RETURN (.T.)
STATIC FUNCTION GRABA(GRA, TNUEVO)
聽 聽 IF GRA
聽 聽 聽 聽 IF TNUEVO
聽 聽 聽 聽 聽 聽 BCO->(DBGOTO(NREG))
聽 聽 聽 聽 聽 聽 BCO->(DBAPPEND())
聽 聽 聽 聽 ENDIF
聽 聽 聽 聽 BCO->(RLOCK())
聽 聽 聽 聽 BCO->BCO_CODIGO := CODBCO
聽 聽 聽 聽 BCO->BCO_DESCRI := NOMBCO
聽 聽 聽 聽 BCO->BCO_CUENTA := CTABCO
聽 聽 聽 聽 BCO->(DBUNLOCK())
聽 聽 ENDIF
RETURN (.T.)
STATIC FUNCTION CHKBANCO( COD, cCODant)
LOCAL nRegAnt := BCO->(RECNO())
BCO->( dbGOTOP( ) )
IF BCO->(DBSEEK( COD ))
MsgBeep()
MsgStop("El C贸digo del Banco ya se encuentra Registrado" + CHR(13)+;
"C贸digo: "+BCO->BCO_CODIGO,"Inclusi贸n Inv谩lida de Usuario")
RETURN(.F.)
ENDIF
BCO->(DBGOTO(nRegAnt))
RETURN(.T.)
=====>
Bayron Landaverry
xBasePHP.com
(215)2226600 Philadelphia,PA, USA
MayaBuilders@gMail.com
Guatemala
FWH25.06--Harbour 3.0.0--BCC7.7--UEstudio 10.10
Windows 10
FiveWin, One line of code and it's done...