Hola, foro
Estoy construyendo un folderex con muchos campos y me gustaría saber cómo actualizar los campos una vez grabado. Lo he intentado con ofld:refresh(), pero no actualiza los datos. Un ejemplo sencillo de lo que pretendo hacer es lo siguiente:
#include "FiveWin.ch"
function Main()
local oDlg, oFld, oNombre, cNombre, cApellido, oApellido
REQUEST DBFCDX
RDDSETDEFAULT ( "DBFCDX" )
DEFINE DIALOG oDlg SIZE 400, 300
USE TEST NEW ALIAS "TEST"
go top
cNombre =test->nombre
cApellido=test->apellido
@ 3, 5 FOLDEREX oFld PIXEL ;
PROMPT "&Uno", "&Dos" ;
SIZE 190, 120
@ 1, 1 GET oNombre VAR cNombre OF oFld:aDialogs[ 1 ]
@ 2, 1 GET oApellido VAR cApellido OF oFld:aDialogs[ 1 ]
@ 4, 14 BUTTON "Cambiar" of oFld:aDialogs[ 1 ] ACTION cambia(cNombre,oNombre, cApellido, oApellido, ofld)
@ 7.2, 14 BUTTON "Salir" ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
return nil
function cambia(cNombre, oNombre, cApellido, oApellido, oFld)
local oDlg2, cNombre2, oNombre2, cApellido2, oApellido2
cNombre2:=cNombre
cApellido2:=cApellido
DEFINE DIALOG oDlg2 SIZE 400, 300
@ 1, 1 GET oNombre2 VAR cNombre2 OF oDlg2 SIZE 60,10
@ 3, 1 GET oApellido2 VAR cApellido2 OF oDlg2 SIZE 60,10
@ 7.2, 10 BUTTON "Cambiar" of oDlg2 ACTION (graba(cNombre, oNombre, cApellido, oApellido,;
cNombre2, oNombre2, cApellido2, oApellido2, ofld), odlg2:end())
@ 7.2, 20 BUTTON "Cancelar" ACTION oDlg2:End()
ACTIVATE DIALOG oDlg2 CENTERED
return nil
Function graba(cNombre, oNombre, cApellido, oApellido,;
cNombre2, oNombre2, cApellido2, oApellido2, ofld)
TEST->nombre:= cNombre2
TEST->apellido:=cApellido2
cNombre:=cNombre2
oNombre:varput(cNombre2)
oNombre:refresh()
cApellido:=cApellido2
oApellido:varput(capellido2)
oApellido:refresh()
ofld:refresh()
Return nil
Un saludo