FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Saltar VALIDs en Dialogo
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 06:58 PM

Hola amigos:

Cuando editamos datos en un dialogo, tenemos valids en varios GETs, es habitual entonces cuando entras en uno de ellos
no funciona la salida del dialogo, el boton de cancelar.

¿Como se pueden saltar los VALIDs de los GETs y conseguir salir al pulsar el boton de cancelar.?

Gracias por vuestra inestimable ayuda.

Saludos

Jose

Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 07:16 PM
Code (fw): Select all Collapse
FUNCTION PRODUTOS()

   REDEFINE GET aGet[4] VAR nProduto PICTURE "@K" ID 23 OF oDlg              ;
      UPDATE COLORS CLR_BLACK, CLR_WHITE FONT oFont BITMAP "BUSCAR"          ;
      VALID(  PEGA_PRODUTOS_NFE(  oLbx, aGet, nProduto, DeOndePartiu := "BUSCAPORCODIGO" ) )
      ACTION...

   aGet[4]:cToolTip := OemToAnsi( "<F7> - Mostra os Produtos(Estoque) Cadastrados" )
   aGet[4]:lBtnTransparent := .T.       // transparent button
   aGet[4]:bKeyDown := { |nKey| IF( nKey == VK_F7, Eval( aGet[4]:bAction ), Nil ) }

...// AQUI:

   REDEFINE BUTTON oSaida ID 303  OF oDlg                                    ;
            ACTION ( oDlg:End() ) CANCEL

...

RETURN NIL

FUNCTION PEGA_PRODUTOS_NFE( oLbx, aGet, CodProduto, DeOndePartiu )

   LOCAL nNProduto, cCNomeProd, nVrProduto

   IF GETASYNCKEY( VK_UP )
      RETURN( .T. )
   ENDIF

   IF GETASYNCKEY( VK_DOWN )
      RETURN( .T. )
   ENDIF

   IF EMPTY( CodProduto )
      RETURN( .T. )
   ENDIF

...

RETURN NIL


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 07:27 PM

Gracias Joao.

El caso es que la aplicacion que estoy migrando desde la version 2.1 a 19.03 tenia esa clausula y creia que era redundante, no me
acordaba que era para eso y lo habia borrado.

Por cierto voy creo por un 80% completado, practicamente esta operativa para mi, no para un usuario que no conozca la aplicacion.

El caso es que se salta los VALIDs uno a uno , si tienes varios,

¿No habra alguna manera de saltarlos todos y salir sin mas?

Saludos.

Jose.

Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 07:32 PM

Disculpa, no comprendo. Puede muestra el código fuente?

Gracias.

Saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 07:36 PM
karinha wrote:Disculpa, no comprendo. Puede muestra el código fuente?

Si, claro.
Tengo varios VALIDs en el dialogo.
por ejemplo:

Code (fw): Select all Collapse
  REDEFINE GET oObra VAR cObra ID 102 OF oDlg ;
    PICTURE "9999";
    VALID ( (Rellena(oObra)) .AND.;
    (IF( ApuaObr->(DbSeek(cObra)),.T.,(cObra:=Busqueda("Obr"),ApuaObr->(DbSeek(cObra)),.T.) ) ) .AND.;
    (IF(!ApuaObr->Cerrada,(oDlg:UPDATE(),oArt:SetFocus(),.T.),(Stop("¡Obra Cerrada!"),oObra:bGotFocus:={ || cObra:="",oObra:SelectAll(),oDlg:Refresh()},.F.))) ) UPDATE

  oObra:bKeyDown:={|nKey| IIF(nKey=VK_ADD,(cObra:=Busqueda("Obr"),oArt:SetFocus(),oDlg:Update()), ) }

  REDEFINE GET oArt VAR cArt ID 103 OF oDlg ;
    PICTURE "9999";
    VALID (Rellena(oArt)) .AND.;
    ( IF( ApuaArt->(DbSeek(cArt)),(oDlg:UPDATE(),oCantidad:SetFocus(),.T.),;
    (cArt:=Busqueda("Art"),ApuaArt->(DbSeek(cArt)),oDlg:Update(),oCantidad:SetFocus(),.T.) ) ) UPDATE

   // Luego al final tengo los 2 botones.
   REDEFINE BTNBMP ID 750 RESOURCE "ACCEPT" OF oDlg ACTION IF(lSalida,(lSave:= .T. , oDlg:End()),STOP("Introduzca todos los campos"))
   REDEFINE BTNBMP ID 751 RESOURCE "CANCEL" OF oDlg ACTION oDlg:End() CANCEL


Entonces para salir del dialogo si estoy en el primer GET oObra, al pulsar el boton de CANCEL me lleva al segundo
VALID oArt. No sale directamente.

Saludos.

Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 07:41 PM
con BTNBMP ,


Code (fw): Select all Collapse
   REDEFINE BTNBMP oBtn1 ID 750 RESOURCE "ACCEPT" OF oDlg ACTION IF(lSalida,(lSave:= .T. , oDlg:End()),STOP("Introduzca todos los campos"))


   oBtn1:lCancel := .T.

   REDEFINE BTNBMP oBtn2 ID 751 RESOURCE "CANCEL" OF oDlg ACTION oDlg:End()

   oBtn2:lCancel := .T.


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 607
Joined: Mon Mar 04, 2013 04:32 PM
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 07:49 PM

Eso Joao.

Muchas gracias por ayudar siempre, en serio es un placer contar con usuarios como tu.

Yo he vuelto a Fivewin por los usuarios del foro y Antonio.

Saludos.

Jose.

:P

Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64

Continue the discussion