Page 1 of 1
Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 6:58 pm
by jvtecheto
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
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 7:16 pm
by karinha
Code: Select all
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.
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 7:27 pm
by jvtecheto
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.
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 7:32 pm
by karinha
Disculpa, no comprendo. Puede muestra el código fuente?
Gracias.
Saludos.
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 7:36 pm
by jvtecheto
[quote="karinha"]Disculpa, no comprendo. Puede muestra el código fuente?
Si, claro.
Tengo varios VALIDs en el dialogo.
por ejemplo:
Code: Select all
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 _"))
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.
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 7:41 pm
by karinha
con BTNBMP ,
Code: Select all
REDEFINE BTNBMP oBtn1 ID 750 RESOURCE "ACCEPT" OF oDlg ACTION IF(lSalida,(lSave:= .T. , oDlg:End()),STOP("Introduzca todos _"))
oBtn1:lCancel := .T.
REDEFINE BTNBMP oBtn2 ID 751 RESOURCE "CANCEL" OF oDlg ACTION oDlg:End()
oBtn2:lCancel := .T.
Saludos.
Re: Saltar VALIDs en Dialogo
Posted: Fri May 24, 2019 7:49 pm
by jvtecheto
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.