Comprueba en la funcion de validacion o en el codeblock de validacion los valores a ver si sirve
if ::cCaption == ::oGet:Buffer
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
oGet:cCaption = "vacio" ... el valor es numerico pero no muestra nada
oGet:oGet:Buffer = "vacio" ... el valor es numerico pero no muestra nada
( oGet:cCaption == oGet:oGet:Buffer ) = ".T." .. muestra .T.
Esto lo hace auque tipee '0' o cualquier otro valor numerico.
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Activo varios Dialogos NOWAIT, dentro de la Ventana oWndIva
Se presentan todos correctamente PERO al final se activa un VALID OBRA() del Dialogo oDDAbmLin
que llamo desde la Funcion Lineas() que no he llamado AUN
Ya he probado a simplificar el problema es decir no llamar a todos para ver si hay "interferencias"
el valid de Obra lo he simplificado y solo saca un mensaje por pantalla , y SI lo hace pero NO debería
hasta que se le pase el control
Acabo de ver que lo activa el oLbx ¿?, ya que si comento la llamada A Lineas() FUNCIONA
por si acaso he eliminado e ON CHANGE con el mismo resultado,
No alcanzo a ver que sucede
---------------------------
DEFINE Window oWndIva From 0,0 to MaxRow(),MaxCol();
ICON oIconAbm;
COLOR "N/W+";
TITLE OemToAnsi("Apuntes con Iva");
BORDER NONE NOSYSMENU NOMINIMIZE NOMAXIMIZE
Barra()
Cfactura()
Dfactura()
Barra2() Linea()
Lineas()
DbSelectArea("civa")
oDCObra:Enable()
oBtnRas:SetFocus()
DEFINE MSGBAR PROMPT "Obras 32, (c) Go & Go Software 2016" ;
OF oWndIva KEYBOARD DATE
ACTIVATE Window oWndIva MAXIMIZED;
ON INIT (oWnd:Disable());
VALID(Cerrar(),oWnd:Enable())
----
Static Function Linea()
DEFINE DIALOG oDDAbmLin OF oWndIva RESOURCE "IVA_LIN" REDEFINE GET oObra VAR cObra ID 100 OF oDDAbmLin VALID Obra()
REDEFINE GET oFechal VAR dFechal ID 102 OF oDDAbmLin ReadOnly
REDEFINE GET oCuenta VAR cCuenta ID 103 OF oDDAbmLin ReadOnly
REDEFINE GET oConcep VAR cConcep ID 104 OF oDDAbmLin VALID Concepto()
REDEFINE GET oDescri VAR cDescri ID 105 OF oDDAbmLin
REDEFINE GET oImport VAR nImport PICTURE "@E 999,999,999.99" ID 106 OF oDDAbmLin VALID Importe()
REDEFINE GET oTipo VAR nTipo PICTURE "@E 99.99" ID 107 OF oDDAbmLin VALID (G_Linea(),.t.)
REDEFINE GET oNumasi VAR cNumasi ID 101 OF oDDAbmLin ReadOnly
REDEFINE BUTTON oBtnObr ID 109 OF oDDAbmLin ACTION (If(HelpObr(),VolHObra(.t.),VolHObra(.f.)),.t.)
REDEFINE BUTTON oBtnCto1 ID 112 OF oDDAbmLin ACTION (If(Helpcon(),VolHcon(.t.),VolHcon(.f.)),.t.)
ACTIVATE DIALOG oDDAbmLin NOWAIT;
Valid (oWndIva:End())
oDDAbmLin:Disable()
----
Static Function Lineas()
DEFINE DIALOG oDDAbmLins OF oWndIva RESOURCE "IVA_LINS"
REDEFINE LISTBOX oLbx;
FIELDS bliva->Obra,bliva->Asiento,;
dtoc(bliva->fecha),;
bliva->Cuenta,bliva->Concepto,;
bliva->Descrip,;
Transform(bliva->Base,"@E 999,999,999.99"),;
Transform(bliva->Tipo,"@E 99.99");
HEADERS "N.Obra","Asiento",;
xPadc("Fecha",75),xPadc("Cuenta",60),"Cpto.",;
xPadc("Descripcion",210),;
xpadc("Base",90),"Tipo";
FIELDSIZES 55,55,70,60,50,210,90,40;
ALIAS "BLIVA"; ON CHANGE Toma_Lin(); ID 110 OF oDDAbmlins
ACTIVATE DIALOG oDDAbmLins NOWAIT;
// on init (oDDAbmLins:Disable());
// Valid (.T.);
// oDDAbmLins:Disable()
return nil
-----
Static Function Obra()
Local lVuelta:=.f.
msginfo('obra')
Return lVuelta
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
DATA xValorOriginal
METHOD lOriginal()
// En metodo GotFocus() añade:
::xValorOriginal:= ::VarGet()
// Este metodo solo tiene sentido usarlo durante la edicion, especialmente en el VALID.
METHOD lOriginal()
RETURN ::xValorOriginal == ::VarGet()
Luego en el valid sólo tienes que preguntar por oGet:lOriginal(). Lo uso muchísimo en mis programas.
Salu2
Buenos días, intentaré reproducirlo a la tarde, aunque no "pillo" muy bien como hacerlo
de todas formas si opto por esta solución, habría que cambiar todos los GET con VALID ¿?
Muchas gracias
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04
Muchas gracias Antonio,
funciono perfectamente la primera opción,
voy viendo la Luz,
Un saludo
___________________________________________________
La mente es como un paracaídas, solo funciona si se abre
Harbour 3.2.0dev (r1601050904) , Fivewin 16.04