Buenos días.
En un Cuadro de dialogo (de Siniestros) tengo varios GET, s. uno de ellos es el número de Póliza. Desearía poder comprobar sí la póliza ha tenido otros siniestro y por lo tanto tengo sus datos en el fichero de pólizas para poder dibujar el resto de los GET,s que son de ese fichero.
Lo he intentado con un bucle IF y dentro del bucle un refresco del cuadro, pero no lo logro.
¿Pueden ayudarme?.
Muchas gracias. Fernando.
Funcionamiento de DIALOG
Pongo el ejemplo de lo hecho.
/////////////////////////////////////////////////
DEFINE DIALOG oDlg RESOURCE "Dialog_1" TITLE "Altas siniestros" BRUSH oBrush
REDEFINE GET cRefe ID 10 OF oDlg
REDEFINE DbCombo oCbx VAR cClaveCia ID 11 OF oDlg;
alias "Compa";
ITEMFIELD "ClaveCia";
LISTFIELD "ClaveCia";
update
REDEFINE GET cNumSini ID 12 OF oDlg
REDEFINE GET fFeSini PICTURE "@D" ID 13 OF oDlg
REDEFINE GET fFeNotif PICTURE "@D" ID 14 OF oDlg
REDEFINE GET fFeVisita PICTURE "@D" ID 15 OF oDlg
REDEFINE GET cNumPoliza ID 16 OF oDlG
SELE 2
SET INDEX TO I1Poliza
SEEK cNumPoliza
IF .NOT. EOF()
cRamo:=Polizas->Ramo
cNombre:=Polizas->Nombre
cDomicilio:=Polizas->Domicilio
cPoblacion:=Polizas->Poblacion
cTelefono:=Polizas->Telefono
REDEFINE GET cRamo ID 17 OF oDlg
REDEFINE GET cNombre ID 18 OF oDlg
REDEFINE GET cDomicilio ID 19 OF oDlg
REDEFINE GET cTelefono ID 23 OF oDlg
REDEFINE GET cPoblacion ID 22 OF oDlg
oDlg:Refresh()
Else
REDEFINE GET cRamo ID 17 OF oDlg
REDEFINE GET cNombre ID 18 OF oDlg
REDEFINE GET cDomicilio ID 19 OF oDlg
REDEFINE GET cTelefono ID 23 OF oDlg
REDEFINE GET cPoblacion ID 22 OF oDlg
END IF
REDEFINE GET cNota ID 20 OF oDlg
/* REDEFINE LISTBOX oLb FIELDS Garant->NumGaranti,Garant->Garantia,STR(Garant->CapitalIni);
HEADERS "Nº Póliza","Garantía","Capital" ID 21 OF oDlg
SELE 1
INDEX ON Siniestr->NumPoliza TO TEMPORAL2 FOR Siniestr->NumPoliza==cNumPoliza
REDEFINE LISTBOX oLbfg FIELDS Siniestr->NumControl HEADERS "Refe" ID 24 OF oDlg
*/
REDEFINE BUTTON ID 25 OF oDlg ACTION (ILd:=.t., oDlg:Refresh())
REDEFINE BUTTON ID 26 OF oDlg ACTION oDlg:End()
REDEFINE BUTTON ID 27 OF oDlg ACTION (lPr:=.t., oDlg:End())
ACTIVATE DIALOG oDlg CENTERED
ERASE TEMPORAL.NTX
CLOSE DATABASES
/////////////////////////////////////
Intento que tras introducir el número de póliza se compruebe en el fichero de pólizas sí está la mencionada póliza y recuperar los datos de la misma. En CL 5, tras en GET podía hacer la comprobación y cargar las variables con su valor. Ahora en FWH no se como hacerlo.
Un saludo. Fernando.
/////////////////////////////////////////////////
DEFINE DIALOG oDlg RESOURCE "Dialog_1" TITLE "Altas siniestros" BRUSH oBrush
REDEFINE GET cRefe ID 10 OF oDlg
REDEFINE DbCombo oCbx VAR cClaveCia ID 11 OF oDlg;
alias "Compa";
ITEMFIELD "ClaveCia";
LISTFIELD "ClaveCia";
update
REDEFINE GET cNumSini ID 12 OF oDlg
REDEFINE GET fFeSini PICTURE "@D" ID 13 OF oDlg
REDEFINE GET fFeNotif PICTURE "@D" ID 14 OF oDlg
REDEFINE GET fFeVisita PICTURE "@D" ID 15 OF oDlg
REDEFINE GET cNumPoliza ID 16 OF oDlG
SELE 2
SET INDEX TO I1Poliza
SEEK cNumPoliza
IF .NOT. EOF()
cRamo:=Polizas->Ramo
cNombre:=Polizas->Nombre
cDomicilio:=Polizas->Domicilio
cPoblacion:=Polizas->Poblacion
cTelefono:=Polizas->Telefono
REDEFINE GET cRamo ID 17 OF oDlg
REDEFINE GET cNombre ID 18 OF oDlg
REDEFINE GET cDomicilio ID 19 OF oDlg
REDEFINE GET cTelefono ID 23 OF oDlg
REDEFINE GET cPoblacion ID 22 OF oDlg
oDlg:Refresh()
Else
REDEFINE GET cRamo ID 17 OF oDlg
REDEFINE GET cNombre ID 18 OF oDlg
REDEFINE GET cDomicilio ID 19 OF oDlg
REDEFINE GET cTelefono ID 23 OF oDlg
REDEFINE GET cPoblacion ID 22 OF oDlg
END IF
REDEFINE GET cNota ID 20 OF oDlg
/* REDEFINE LISTBOX oLb FIELDS Garant->NumGaranti,Garant->Garantia,STR(Garant->CapitalIni);
HEADERS "Nº Póliza","Garantía","Capital" ID 21 OF oDlg
SELE 1
INDEX ON Siniestr->NumPoliza TO TEMPORAL2 FOR Siniestr->NumPoliza==cNumPoliza
REDEFINE LISTBOX oLbfg FIELDS Siniestr->NumControl HEADERS "Refe" ID 24 OF oDlg
*/
REDEFINE BUTTON ID 25 OF oDlg ACTION (ILd:=.t., oDlg:Refresh())
REDEFINE BUTTON ID 26 OF oDlg ACTION oDlg:End()
REDEFINE BUTTON ID 27 OF oDlg ACTION (lPr:=.t., oDlg:End())
ACTIVATE DIALOG oDlg CENTERED
ERASE TEMPORAL.NTX
CLOSE DATABASES
/////////////////////////////////////
Intento que tras introducir el número de póliza se compruebe en el fichero de pólizas sí está la mencionada póliza y recuperar los datos de la misma. En CL 5, tras en GET podía hacer la comprobación y cargar las variables con su valor. Ahora en FWH no se como hacerlo.
Un saludo. Fernando.
Estás mezclando la definición del DIALOG con funciones/procedimientos.fergonm wrote:Pongo el ejemplo de lo hecho.
/////////////////////////////////////////////////
DEFINE DIALOG oDlg RESOURCE "Dialog_1" TITLE "Altas siniestros" BRUSH oBrush
REDEFINE GET cRefe ID 10 OF oDlg
REDEFINE DbCombo oCbx VAR cClaveCia ID 11 OF oDlg;
alias "Compa";
ITEMFIELD "ClaveCia";
LISTFIELD "ClaveCia";
update
REDEFINE GET cNumSini ID 12 OF oDlg
REDEFINE GET fFeSini PICTURE "@D" ID 13 OF oDlg
REDEFINE GET fFeNotif PICTURE "@D" ID 14 OF oDlg
REDEFINE GET fFeVisita PICTURE "@D" ID 15 OF oDlg
REDEFINE GET cNumPoliza ID 16 OF oDlG
SELE 2
SET INDEX TO I1Poliza
SEEK cNumPoliza
IF .NOT. EOF()
cRamo:=Polizas->Ramo
cNombre:=Polizas->Nombre
cDomicilio:=Polizas->Domicilio
cPoblacion:=Polizas->Poblacion
cTelefono:=Polizas->Telefono
REDEFINE GET cRamo ID 17 OF oDlg
REDEFINE GET cNombre ID 18 OF oDlg
REDEFINE GET cDomicilio ID 19 OF oDlg
REDEFINE GET cTelefono ID 23 OF oDlg
REDEFINE GET cPoblacion ID 22 OF oDlg
oDlg:Refresh()
Else
REDEFINE GET cRamo ID 17 OF oDlg
REDEFINE GET cNombre ID 18 OF oDlg
REDEFINE GET cDomicilio ID 19 OF oDlg
REDEFINE GET cTelefono ID 23 OF oDlg
REDEFINE GET cPoblacion ID 22 OF oDlg
END IF
REDEFINE GET cNota ID 20 OF oDlg
/* REDEFINE LISTBOX oLb FIELDS Garant->NumGaranti,Garant->Garantia,STR(Garant->CapitalIni);
HEADERS "Nº Póliza","Garantía","Capital" ID 21 OF oDlg
SELE 1
INDEX ON Siniestr->NumPoliza TO TEMPORAL2 FOR Siniestr->NumPoliza==cNumPoliza
REDEFINE LISTBOX oLbfg FIELDS Siniestr->NumControl HEADERS "Refe" ID 24 OF oDlg
*/
REDEFINE BUTTON ID 25 OF oDlg ACTION (ILd:=.t., oDlg:Refresh())
REDEFINE BUTTON ID 26 OF oDlg ACTION oDlg:End()
REDEFINE BUTTON ID 27 OF oDlg ACTION (lPr:=.t., oDlg:End())
ACTIVATE DIALOG oDlg CENTERED
ERASE TEMPORAL.NTX
CLOSE DATABASES
/////////////////////////////////////
Intento que tras introducir el número de póliza se compruebe en el fichero de pólizas sí está la mencionada póliza y recuperar los datos de la misma. En CL 5, tras en GET podía hacer la comprobación y cargar las variables con su valor. Ahora en FWH no se como hacerlo.
Un saludo. Fernando.
Seria mejor:
DEFINE DIALOG oDlg RESOURCE "Dialog_1" TITLE "Altas siniestros" BRUSH oBrush
REDEFINE GET cRefe ID 10 OF oDlg
REDEFINE DbCombo oCbx VAR cClaveCia ID 11 OF oDlg;
alias "Compa";
ITEMFIELD "ClaveCia";
LISTFIELD "ClaveCia";
update
REDEFINE GET cNumSini ID 12 OF oDlg
REDEFINE GET fFeSini PICTURE "@D" ID 13 OF oDlg
REDEFINE GET fFeNotif PICTURE "@D" ID 14 OF oDlg
REDEFINE GET fFeVisita PICTURE "@D" ID 15 OF oDlg
REDEFINE GET cNumPoliza ID 16 OF oDlG VALID ;
(Mifunción( oDlg, @cRamo, @cNombre, @cDomicilio, @cTelefono, @cPoblacion), .T.)
REDEFINE GET cRamo ID 17 OF oDlg UPDATE
REDEFINE GET cNombre ID 18 OF oDlg UPDATE
REDEFINE GET cDomicilio ID 19 OF oDlg UPDATE
REDEFINE GET cTelefono ID 23 OF oDlg UPDATE
REDEFINE GET cPoblacion ID 22 OF oDlg UPDATE
ACTIVATE DIALOG oDlg
../..
FUNTION Mifunción( oDlg, cRamo, cNombre, cDomicilio, cTelefono, cPoblacion)
SELE 2
SET INDEX TO I1Poliza
SEEK cNumPoliza
IF .NOT. EOF()
cRamo:=Polizas->Ramo
cNombre:=Polizas->Nombre
cDomicilio:=Polizas->Domicilio
cPoblacion:=Polizas->Poblacion
cTelefono:=Polizas->Telefono
oDlg:Refresh()
END IF
Return Nil
No se si funcionarà, pero el tipo de codificación debería ser así en mi modesta opinión.
Recuerda que el VALID debe devolver SIEMPRE un valor LOGICO, y en este caso siempre .T. sino el GET no perderia el FOCO.
Saludos
Carlos G.