FoxPro/Visual FoxPro - VALID vs LOSTFOCUS

 
Vista:

VALID vs LOSTFOCUS

Publicado por Claudia (91 intervenciones) el 10/04/2007 20:10:15
Como les comentaba en un post anterior, tengo un TEXTBOX donde se lleva a cabo la siguiente secuencia de eventos

WHEN -> GOTFOCUS -> (cargo el dato) -> VALID -> LOSTFOCUS -> VALID

donde el último VALID no tendría que ejecutarse

Les mando el códico del LOSTFOCUS y del VALID para que lo evalúen, tal como me lo pidieron:

[ VALID ]
do case

case this.value=0
return .t.

case this.value<0
=messagebox("Está facturando en Negativo", 0+48+0, "Atención")
return .T.

endcase

[LOSTFOCUS]
do case
case this.readonly or this.value=0
thisform.codstktxt.setfocus && HACE FOCO EN OTRO TEXTBOX

otherwise
thisform.okStock.setfocus &&HACE FOCO EN UN BOTON DE OK
endcase
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:VALID vs LOSTFOCUS

Publicado por Ernesto Hernandez (4623 intervenciones) el 10/04/2007 20:18:33
cuando cargas el dato que se tiene que cumplir ?
que pasa si el dato es 5 eso siginifica que es mayor de 0 por que habria de decir que estoy facturando en negativo

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VALID vs LOSTFOCUS

Publicado por Plinio (7841 intervenciones) el 10/04/2007 20:39:35
- Yo pondria todo el codigo en el Lostfocus
- El siguiente codigo lo haria asi

case this.value<0
=messagebox("Está facturando en Negativo", 0+48+0, "Atención")
NODEFAULT
return .F.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:VALID vs LOSTFOCUS

Publicado por Ernesto Hernandez (4623 intervenciones) el 11/04/2007 00:43:25
De acuerdo contigo compañero entonces seria asi
DO CASE
CASE This.Value<0
=MessageBox("Está facturando en Negativo", 0+48+0, "Atención")
NoDefault
Return .F.
OTHERWISE
DO CASE
CASE This.ReadOnly or This.Value=0
ThisForm.codstktxt.SetFocus && HACE FOCO EN OTRO TEXTBOX
OTHERWISE
ThisForm.okStock.SetFocus &&HACE FOCO EN UN BOTON DE OK
ENDCASE


Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:VALID vs LOSTFOCUS

Publicado por neo (1604 intervenciones) el 10/04/2007 21:02:28
[ LOST FOCUS ]

IF this.value=0
return .t.
ELSE
case this.value<0
=messagebox("Está facturando en Negativo", 0+48+0, "Atención")
return .T.

ENDIF

do case
case this.readonly or this.value=0
thisform.codstktxt.setfocus && HACE FOCO EN OTRO TEXTBOX

otherwise
thisform.okStock.setfocus &&HACE FOCO EN UN BOTON DE OK
endcase

SUERTE►
Nota es mejor en este caso, todo el codigo en el "Lost Focus", ya que ahí no hay restricciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:VALID vs LOSTFOCUS

Publicado por jorge (423 intervenciones) el 10/04/2007 23:45:41
Hola
1) Algunas validaciones de foco, las puedes hacer en el WHEN del siguiente campo de esta forma controlas que si no se cumple la validacion correspondiente con un SETFOCUS regresas al campo que desees.

2) la validacion puedes hacerla en el LOSTFOCUS, pero esta se haria invariablemente, aun haciendo click con el mouse en otro objeto.

3) tambien puedes hacer validaciones en el KEYPRESS de tu objeto, ahi validas si presionas ENTER, TAB, etc.. y puedes restringir y redireccionar el foco al objeto que deseas.

4) Tambien puedes involucrar FDU's o PROCEDIMIENTOS para hacer la validacion en el VALID, de esta forma estas fuera del objeto y de tal forma, en este procedimiento o funcion, puedes controlar tu enfoque de objetos

Recuerda la secuencia en que VFP ejecuta sus objetos ej;
WHEN, GOTFOCUS, KEYPRESS, VALID, LOSTFOCUS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar