Saltar VALIDs en Dialogo

Saltar VALIDs en Dialogo

Postby jvtecheto » Fri May 24, 2019 6: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
User avatar
jvtecheto
 
Posts: 602
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Saltar VALIDs en Dialogo

Postby karinha » Fri May 24, 2019 7:16 pm

Code: Select all  Expand view  RUN

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
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Saltar VALIDs en Dialogo

Postby jvtecheto » Fri May 24, 2019 7: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
User avatar
jvtecheto
 
Posts: 602
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Saltar VALIDs en Dialogo

Postby karinha » Fri May 24, 2019 7: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
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Saltar VALIDs en Dialogo

Postby jvtecheto » Fri May 24, 2019 7:36 pm

[quote="karinha"]Disculpa, no comprendo. Puede muestra el código fuente?

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

Code: Select all  Expand view  RUN


  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
User avatar
jvtecheto
 
Posts: 602
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain

Re: Saltar VALIDs en Dialogo

Postby karinha » Fri May 24, 2019 7:41 pm

con BTNBMP ,


Code: Select all  Expand view  RUN

   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
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Saltar VALIDs en Dialogo

Postby jvtecheto » Fri May 24, 2019 7: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.

:P

Saludos.

Jose.
Fwh 24.07 64 bits + Harbour 64 bits 3.2dev(r2407221137) + MSVC64
User avatar
jvtecheto
 
Posts: 602
Joined: Mon Mar 04, 2013 4:32 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: cmsoft and 55 guests