Herramientas de usuario

Herramientas del sitio


usu:edicion:proteger_un_campo

¡Esta es una revisión vieja del documento!


Protección de campo

Es posible proteger un campo para que uno o varios usuarios no puedan cambiar el contenido del campo protegido.

La protección se aplica tanto en las fichas donde aparece el campo, como en las rejillas.

Proteger un campo:

  1. Situarse en el campo a proteger.
  2. Seleccionar Edición/Protección de campo. Se abre una rejilla donde podemos meter los datos relevantes.
Campo Descripción
Usuario Poner el código del usuario para el que se quiere proteger el campo.
Escritura Poner 'N' para impedir los cambios sobre el campo.
Lectura Sin usar.
Condición Este campo se puede editar con F6, terminando la edición con la tecla Intro. Aquí se puede poner una condición que tiene que cumplir el registro actual para que esté activo la protección. Se explica más detallado abajo.

Condiciones

En algunos casos es necesario poner una condición, para refinar los registros al que el usuario no debería tener acceso.

Un ejemplo son todos los campos de las fichas basadas en la tabla de los terceros, por ejemplo clientes, proveedores, bancos, empleados.
Si queremos proteger el campo Forma de pago solo para los proveedores, tenemos que poner lo siguiente en el campo Condición:

TIPO = 'PR'

Otras condiciones permitidas son

TIPO in ('CL', 'PR')
TIPO = 'CL' or TIPO = 'PR'

Cambio masivo

Para hacer un cambio masivo para proteger un campo para varios usuarios de golpe, se puede adaptar la siguiente instrucción y ejecturala en la base de datos. Esto siempre se debería hacer como usuario SYSDBA y después de hablarlo con el servicio técnico de Smart.

insert into Z_CAMPOS_PROTEGIDOS (NOMBRE_TABLA, NOMBRE_CAMPO, USUARIO, LECTURA, ESCRITURA, CONDICION)
select 'TERCERO', 'COD_FORMA_PAGO', a.CODIGO, 'N', 'N', 'TIPO = ''PR'''
from USUARIO a
left join Z_CAMPOS_PROTEGIDOS b on a.CODIGO = b.USUARIO and b.NOMBRE_TABLA = 'TERCERO' and b.NOMBRE_CAMPO = 'COD_FORMA_PAGO'
where b.NOMBRE_TABLA is null
and a.CODIGO not in ('SYSDBA', 'Poner aquí los códigos de usuarios que deben de tener acceso');
usu/edicion/proteger_un_campo.1382608255.txt.gz · Última modificación: 2013/10/24 11:50 por stefan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki