FoxPro/Visual FoxPro - Nombre de la Etiqueta de acuerdo al Objeto

   
Vista:

Nombre de la Etiqueta de acuerdo al Objeto

Publicado por Gabriel (406 intervenciones) el 11/05/2011 04:30:23
Amigos :

He podido implementar a mi formulario una Rutina para Validar que no
se dejen datos vacios en un formulario de Ingreso.

Utilizo el siguiente codigo para recorrer todos los objetos del
formulario

FOR lnObjecto = 1 TO THISFORM.OBJECTS.COUNT

Pues bien cuando un usuario no ingrese por mencionar el Color de la
Prenda, el Sistema mostrara un Mensaje de Aviso de dicha omision...

Lo que deseo hacer es que tambien en el Texto del Mensaje se muestre
el Titulo de la etiqueta de dicho objeto.

Ej.-
IF Empty(&lcContenido)
Messagebox("Es necesario Ingresar el Dato del --> " + ;
" >> Color << ", 16, "Aviso del Sistema")
Return
Endif

Que faltaria al codigo para resolver mi problema.

Gracias por la ayuda que me puedan brindar...

atte.,

Gabriel
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

Nombre de la Etiqueta de acuerdo al Objeto

Publicado por Javier (12 intervenciones) el 11/05/2011 05:58:51
Hola, si entendí bien, podrías asignar a la propiedad StaturBarText el texto que tu quieres mostrar por medio de messagebox().
El código quedaría así

FOR nObjeto = 1 TO THISFORM.OBJECTS.COUNT

cNombreObjeto = THISFORM.objects(nObjeto).Name
cMensaje = THISFORM.&cNombreObjeto..StatusBarText

xValor = THISFORM.&cNombreObjeto..Value

IF Empty( xValor )
Messagebox("Es necesario Ingresar el Dato del --> >> " + cMensaje + " << ", 16, "Aviso del Sistema")
Return
Endif

next


En otro post te conteste lo de tu consulta del formulario que "retorna" más de un valor usando arrays.

Saludos
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

Nombre de la Etiqueta de acuerdo al Objeto

Publicado por victor perez (278 intervenciones) el 11/05/2011 20:23:47
Hola Gabriel,

Mira, Yo utilizo la siguiente rutina:

LOCAL lnObjecto,lcContenido,lcNombre,lcFoco
FOR lnObjecto = 1 TO THISFORM.OBJECTS.COUNT
IF THISFORM.OBJECTS(lnObjecto).COMMENT="%"
lcNombre = THISFORM.OBJECTS(lnObjecto).NAME
lcContenido = "ThisForm." + lcNombre + ".Value"
IF EMPTY(&lcContenido)
MESSAGEBOX("Faltan Datos por Ingresar. Verifique.","DATOS INCOMPLETOS")
lcFoco = "ThisForm." + lcNombre + ".SetFocus"
&lcFoco
RETURN 0
ENDIF
ENDIF
ENDFOR

Como apreciaras, tengo un % en la propiedad comment del campo para que solo aquellos campos con ese contenido sean verificados y que no puedan dejarse en blanco.

En mi caso, por ejemplo, manejo la ficha de mis pacientes...entonces un paciente puede no tener datos en mas de un campo y por eso uso esta opcion.

Ademas, mas que decirle donde esta el asunto que falta, el sistema te manda directamente a ese campo que falta....Siempre inicia desde el primer campo que falta y que tiene campo.comments="%" , segun el TAB ORDER asignado.

Con una pequeña modificacion puedes hacer que te exprese el nombre del campo que te falta.

El SetFocus que apunta al 1er campo que cumpliendo la condicion de .Comment="%", tiene que ser usado , en mi caso desde el boton GRABAR. Recuerda que SETFOCUS no puede usarse en un evento VALIDATE.

Saludos y pruebalo, veras que es bien útil.

A mi me sirve un monton pues una cuadricula no puede estar sin nombre, sin apellidos, sin dirección, sin fecha de nacimiento, sin SEXO, etc...pero puede estar sin Seguro Social, Sin Cedula (cuando son menores de edad y los padres o familiares desconocen el numero de cedula), etc.

Saludos,


Victor - Panama -
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