FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Funcionamiento de DIALOG
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Funcionamiento de DIALOG
Posted: Tue Feb 05, 2008 12:20 PM

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.

Saludos. Fernando
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Funcionamiento de DIALOG
Posted: Tue Feb 05, 2008 04:23 PM

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.

Saludos. Fernando
Posts: 1446
Joined: Mon Oct 10, 2005 02:38 PM
Funcionamiento de DIALOG
Posted: Tue Feb 05, 2008 04:52 PM
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.


Est谩s mezclando la definici贸n del DIALOG con funciones/procedimientos.

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.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Funcionamiento de DIALOG
Posted: Tue Feb 05, 2008 05:11 PM

Gracias Five.

En principio da error de compilaci贸n pero seguir茅 por ese camino.

Saludos. Fernando
Posts: 299
Joined: Mon Oct 22, 2007 03:03 PM
Funcionamiento de DIALOG
Posted: Wed Feb 06, 2008 12:49 PM

La forma que te da fivewidi es la forma correcta de hacer las cosas, lo 煤nico es la funci贸n debe retornarte un valor cierto o falso, Al Utilizar la propiedad Valid; si retorna falso, no sale del get, as铆 que debes decidir el comportamiento visual del m贸dulo.

Saludos



Angel, Valencia, Venezuela



xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
Posts: 133
Joined: Fri Nov 30, 2007 11:34 AM
Funcionamiento de DIALOG
Posted: Wed Feb 06, 2008 04:25 PM

Gracias ADBLANCO

Ya lo tengo, en princioio daba errores por temas tontos como un a"tilde" en una funci贸n, pero ya est谩 funcionando.

Saludos. Fernando

Continue the discussion