Lotus Approach - HACER LOS CAMPOS SOLO DE LECTURA POR MEDIO DE UN SCRIPT

 
Vista:

HACER LOS CAMPOS SOLO DE LECTURA POR MEDIO DE UN SCRIPT

Publicado por RAY (12 intervenciones) el 27/01/2013 21:46:38
HOLA A TODOS

COMO BIEN SABEMOS EN EL MANEJO DE BASES DE DATOS, EN OCASIONES POR SEGURIDAD REQUERIMOS PROTEGER LA INFORMACION.

MI NECESIDAD SURGEN EN EL MOMENTO QUE UN CAMPO CAMBIE DE ESTATUS Y PROTEJA LOS DEMAS CAMPOS. EJEMPLO:

SI UNA FACTURA YA ESTA PAGADA (ESTATUS), QUE EN ESE MOMENTO LOS DEMAS CAMPOS DE LA FACTURA YA NO SE PUEDAN MODIFICAR.
OJALA ESTO SE PUEDA HACER CON UN SCRIPT.


GRACIAS A TODOS
SALUDOS
RAY
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

HACER LOS CAMPOS SOLO DE LECTURA POR MEDIO DE UN SCRIPT

Publicado por Manolo (140 intervenciones) el 29/01/2013 09:09:34
Hola:

Tus deseos se han cumplido. Es sencillísimo:

Hacer que un campo sea de sólo lectura:

CurrentView.NOMBRE_DE_VISTA.Body.NOMBRE_DE_CAMPO.ReadOnly = 1


Hacer que un campo pueda ser modificado:

CurrentView.NOMBRE_DE_VISTA.Body.NOMBRE_DE_CAMPO.ReadOnly = 0

NOMBRE_DE_VISTA es el nombre de la vista tal y como aparece en la linea de estado. Es recomendable que NOMBRE_DE_VISTA no contenga espacios.

NOMBRE_DE_CAMPO es el nombre de campo tal como aparece en "Nombre del objeto" en la pestaña "Macros" de las propiedades del propio campo.

ReadOnly es la propiedad que define si un campo se puede modificar (0), o no (1).

Body es el cuerpo de la vista. Todos los campos que no pertenecen a un panel de repetición, pertenecen a "Body". Los paneles de repetición (si hay más de uno) se nombran como "RepeatingPanel", "RepeatingPanel1", "RepeatingPanel2", etc. de modo que la referencia a un campo que esté dentro de un panel de repetición sería:

CurrentView.RepeatingPanel.NOMBRE_DE_CAMPO

Con lo que dependiendo de la condición que se establezca:

If CurrentView.Body.ESTATUS.Text = "Pagado" then
CurrentView.Body.CAMPO1.ReadOnly = 1
CurrentView.Body.CAMPO2.ReadOnly = 1
CurrentView.Body.CAMPO3.ReadOnly = 1
CurrentView.Body.CAMPO4.ReadOnly = 1
else
CurrentView.Body.CAMPO1.ReadOnly = 0
CurrentView.Body.CAMPO2.ReadOnly = 0
CurrentView.Body.CAMPO3.ReadOnly = 0
CurrentView.Body.CAMPO4.ReadOnly = 0
End if

Y ya está.

Un saludo.

Manolo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

REALIZADO**HACER LOS CAMPOS SOLO DE LECTURA POR MEDIO DE UN SCRIPT

Publicado por RAY (12 intervenciones) el 29/01/2013 21:48:47
HOLA MANOLO

MUCHISISMAS GRACIAS ME FUE DE MUCHA UTILIDAD PORQUE INCLUSO TENIA PANELES DE REPETICION.

GRACIAS UNA VEZ MAS

SALUDOS
RAY
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

HACER LOS CAMPOS SOLO DE LECTURA POR MEDIO DE UN SCRIPT

Publicado por sergio (4 intervenciones) el 08/07/2015 18:05:49
Hola,

Alguien sabe como acceder a una línea diferente de la primera en un panel de repetición?

pensando como si fuera una matriz, tenemos filas con varios elementos dentro del panel y columnas que son los campos de tabla.

Gracias
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

HACER LOS CAMPOS SOLO DE LECTURA POR MEDIO DE UN SCRIPT

Publicado por Manolo (140 intervenciones) el 08/07/2015 19:20:17
Hola:
A efectos de manejo de campos en paneles de repetición, no se puede referenciar de ninguna manera el nº de linea del panel. Las lineas del panel sólo son accesibles mediante posicionamiento del cursor, y avance/retroceso de campo. Mediante programación sólo puedes acceder a la primera linea, o la última (para añadir registros). Tal vez si explicas un poco que quieres hacer, igual podemos darte alguna idea que te pueda servir. Lo que si puedes hacer con programación es ordernar los valores del panel a tu gusto, de modo que puedes hacer que la primera linea del panel sea la que quieras tú en cada momento, y así te quedará accesible en la primera linea. No sé si es esa tu necesidad. Ya nos contarás.

Un saludo.
Manolo.
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