0% encontró este documento útil (0 votos)
613 vistas96 páginas

Manual Tecnico Visual Hur

Este documento describe las herramientas de soporte de Visual HUR, un sistema para la administración de recursos humanos. Explica los pasos para instalar Visual HUR en las computadoras cliente, incluyendo la instalación de librerías como Microsoft ActiveX Data Objects y Microsoft Script Engine. También describe el módulo de seguridad, la conexión a la base de datos, la configuración del menú principal y otras herramientas para parametrizar el sistema.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
613 vistas96 páginas

Manual Tecnico Visual Hur

Este documento describe las herramientas de soporte de Visual HUR, un sistema para la administración de recursos humanos. Explica los pasos para instalar Visual HUR en las computadoras cliente, incluyendo la instalación de librerías como Microsoft ActiveX Data Objects y Microsoft Script Engine. También describe el módulo de seguridad, la conexión a la base de datos, la configuración del menú principal y otras herramientas para parametrizar el sistema.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

ASESORES EN INFORMÁTICA, S.A. DE C.V.

Sistema para la Administración de Recursos


Humanos
Visual HUR versión 3.1

Guía para la
Administración y
Parametrización

0
A S E S O R E S E N I N F O R M Á T I C A , S . A . D E C . V.

Administración y Parametrización
Visual HUR versión 3.1

ã Asesores en Informática, S.A. de C.V.


Boulevard El Hipódromo No. 638
Colonia San Benito, San Salvador, El Salvador
Teléfonos (503) 2263-8078, 2264-6078, 2263-8197 • Fax (503) 2264-8078
[Link]
Tabla de Contenidos
Panel con la configuración de cada campo de la
tabla que se está configurando 27

Herramientas Función VBScript de validación de campos. 29


Función VBScript que se ejecuta antes y después
de editar un campo. 30

de Soporte 1
Descripción de la Clase Categorías. 32
Integración de Reportes elaborados
con Seagate Crystal Reports 35
Instalación de Visual HUR 1 Panel de Reportes 36
Instalación de Microsoft ActiveX Data Objects Panel con Roles de Seguridad por Reporte 37
(ADO) 2 Panel con Módulos por Reporte 37
Instalación de Microsoft Script Engine (MSScript) 3 Panel con Parámetros del Reporte 37
Instalación de las librerias de Visual Basic SP6 en Ejemplo 38
la computadora Cliente para ejecutar Visual HUR 3
Creación de Conjuntos de Datos para
Registro de las librerías propias de Visual HUR en
la computadora Cliente 3
el Asistente de Generación de Hojas de
Excel 40
Establecer una conexión a la base de datos 4
Creación de una vista en el servidor de base de
Agregar el usuario al Módulo de Seguridad 4
datos 40
Modalidades de Instalación de Visual HUR 4
Integración del conjunto de datos a Visual HUR 41
Menú Principal de Visual HUR 6 Panel de Conjuntos de Datos (Panel 1) 42
Conexión a la Base de Datos 7 Panel con Áreas o Agrupaciones de las columnas
Activación de la Aplicación 8 de la vista contenidas en el Conjunto de Datos
(panel 2) 43
Módulo de Seguridad 9 Panel con Módulos para Utilización del Conjunto
de Datos (panel 3) 44
Herramientas de Panel con Roles de Seguridad con permiso para
utilizar el Conjunto de Datos (panel 4) 44
Parametrización 13 Panel con los Campos de la Vista contenidas en el
Administración del Diccionario de Conjunto de Datos (panel 5) 44
Listas de Valores 13 Integración de Plantillas de Word para
Propiedades de cada elemento del diccionario 15 generar Cartas y Constancias 45
Configuración de Controles de Creación de la Plantilla de Microsoft Word 45
Selección (Query Builder) 17 Creación de una vista en el servidor de base de
datos 47
Propiedades del Control de Selección 18
Integración de la Plantilla a Visual HUR 48
Propiedades del detalle de columnas del Control
de Selección 19 Panel de Plantillas de Word 48
Panel con Parámetros de Filtrado para la Plantilla
Configuración de Listas de Valores 49
para [Link] en formas de Panel con Roles de Seguridad por Reporte 51
ingreso de datos 19 Panel con Módulos por Reporte 51
Propiedades de la configuración de CodCombo 21
Integración de Procedimientos
Configuración de Columnas Almacenados o DTS ejecutados desde
“Dropdown List” en controles Grid de Visual HUR. 51
las formas de búsqueda. 21 Integración a Visual HUR 51
Propiedades de la configuración de Columnas
Panel de Procedimientos Configurados 52
“Dropdown List” de los controles “Grid” 22
Panel con Parámetros del Procedimiento
Configuración de Columnas “SubGrid” Almacenado 53
en controles Grid de las formas de Panel con Roles de Seguridad para la Ejecución
búsqueda. 23 del Procedimiento o DTS 53
Propiedades de la configuración de Columnas Panel con Módulos desde los cuales se puede
“SubGrid” de los controles “Grid” 24 ejecutar el Procedimiento o DTS 53
Configuración de las Secciones
Extensibles del Expediente de Personal Configuración del Cálculo
24
Modificación de la tabla correspondiente 25 de Planillas 54
Configuración de la Sección del Expediente 25 Creación de Cursores para el Cálculo de Planillas
Panel con las secciones configurables 26 55
Panel con la descripción de la llave primaria de la Configuración del Cálculo de Planillas: Ventana de
sección seleccionada 26 Administración de Factores 57
Configuración del Cálculo de Planillas: Ventana de
Creación o Modificación de Factores 61
¿Cómo funciona el programa de generación de
Planillas? 63
¿Cómo funciona el programa de autorización de
Planillas? 66
Documentación de la Clase Factores 66
Documentación de la clase Agrupadores 67
Ejemplo de configuración de Planillas 69
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Asesores en Informática, S.A. de C.V. 1


D E S I G N C U S T O M I Z ATI O N

Herramientas de Soporte
Introducción a las herramientas de
soporte de Visual HUR

A
demás de los módulos que administran la información,
Visual HUR contiene un conjunto de programas de
soporte. En esta sección se discute el proceso de
instalación de Visual HUR en las computadoras cliente. También
se describen los programas de soporte de la aplicación, como es
el caso del la activación del sistema, la conexión a la base de
datos, la configuración del menú principal de la aplicación y el
Módulo de Seguridad.

Estos temas serán tratados en este documento, el cual está


orientado a los técnicos en recursos humanos y en informática,
responsables del soporte para el funcionamiento de Visual HUR
en una instalación específica.

Instalación de Visual HUR


Visual HUR es una aplicación creada utilizando el modelo COM
propuesto por Microsoft, por lo que está compuesto de una serie
de programas ejecutables y un conjunto de componentes COM.
Esto conlleva que la instalación de Visual HUR comprende una
serie de pasos que permiten registrar librerías de ejecución de
Microsoft Visual Basic y de soporte como Microsoft ActiveX Data
Objects, así como los componentes del sistema.

Requerimientos de Hardware para los clientes

 Pentium III 1Ghz (Pentium IV recomendado)


 64Mb de RAM (para Windows 95, 98 o ME)
 128Mb de RAM (para Windows 2000 o XP)
 20Mb de espacio libre en disco duro

Requerimientos de Software para los clientes

Asesores en Informática, S.A. de C.V. 2


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

 Sistema Operativo Windows 2000 o superior (se recomienda Windows XP Profesional


SP2, ya que contra este sistema operativo la aplicación está certificada para operar
correctamente)
 Microsoft Office 2000 o superior (se requiere para clientes que tendrán permisos de
generar cartas y constancias o de utilizar el asistente para la generación de Consultas)
 Microsoft ActiveX Data Objects versión 2.7 o superior (ya viene instalado en
Windows XP)

Requerimientos de Software para el Servidor de Base de Datos


y/o de Aplicaciones

 Sistema Operativo Windows 2000 SP4 o superior (se recomienda Windows 2003 Server)
 Microsoft SQL Server 2000 o superior (se recomienda la versión 2005)

Si desea conocer los requerimientos de hardware para la


ejecución de SQL Server, diríjase al sitio de Microsoft SQL
Server en la Web.

A continuación se muestran los pasos requeridos para la


instalación del programa en el equipo que lo ejecutará.

Instalación de Microsoft ActiveX Data Objects (ADO)


Visual HUR requiere que la computadora cliente (la
computadora donde será ejecutado el sistema) cuente con la
versión 2.7 o superior de Microsoft ADO.

Si usted está instalando en un equipo con Windows XP, este paso no es


necesario, ya que viene instalada una versión compatible con Visual HUR.
En el directorio de instalación existe un fólder llamado Soporte
en el cual hay un fólder llamado ADO en el que se incluyen los
programas de instalación correspondientes.

Dependiendo del idioma del sistema operativo, es el ejecutable


que se debe utilizar para instalar ADO. En el directorio se
proveen instaladores para Windows en español y en inglés.

Idioma de Windows Ejecutable que debe utilizarse


Español Mdac_typ_270 [Link] (versión 2.7)
mdac_typ_280 [Link] (versión 2.8)
Inglés Mdac_typ_270.exe (versión 2.7)
mdac_typ_280.exe (versión 2.8)

Asesores en Informática, S.A. de C.V. 3


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Se incluye la versión 2.5 en el directorio de Instalación ya que


para computadores con versiones de Windows previas a la
versión 2000, se debe ejecutar primero el instalador de la
versión 2.5 y luego el de la versión 2.7.

Si desea obtener la versión más nueva de Microsoft ADO,


descargüela gratuitamente en el sitio en la Web de Microsoft en
Universal Data Access.

Instalación de Microsoft Script Engine (MSScript)


La librería de ejecución de Microsoft Script permite a Visual
HUR la ejecución de los factores de cálculo de la planilla. Esta
librería es instalada de manera automática al instalar Microsoft
Internet Explorer (IE) a partir de la versión 5.0 en adelante.

Si usted está instalando en un equipo con Windows XP, este paso no es


necesario, ya que viene instalada una versión compatible con Visual HUR.
Sin embargo, el directorio de instalación de Visual HUR provee
en el fólder Soporte\MsScript, los ejecutables para instalar por
separado esta librería. Si desea obtener las versiones más
actualizadas de estos componentes o si desea consultar más
información sobre este tema diríjase a Microsoft Windows
Scripting.

En el directorio pueden verse tres directorios, los cuales


determinan los instaladores que deben ser ejecutados, de la
siguiente forma:

Librería Ejecutable que se utiliza


Script Control OCX \Soporte\MsScript\Script Control
OCX\[Link]
Este componente instala el OCX para
manejo del Script Engine desde Visual
Basic (no es requerido instalarlo para
Windows 2000 o superior)
Microsoft Windows \Soporte\MsScript\Win 9x Me y
Script 5.6 para NT4\[Link] (en inglés)
Windows 9x, Me o NT \Soporte\MsScript\Win 9x Me y
NT4\[Link] (en español)
Microsoft Windows \Soporte\MsScript\Win2000 y
Script 5.6 para XP\[Link] (en inglés)
Windows 2000 o XP \Soporte\MsScript\Win2000 y
XP\[Link] (en español)

Asesores en Informática, S.A. de C.V. 4


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Instalación de las librerías de Visual Basic SP6 en la computadora


Cliente para ejecutar Visual HUR
Para instalar en una computadora cliente, es necesario ejecutar
el programa de instalación de las librerías de soporte de Visual
Basic. Esto se realiza ejecutando el instalador que se provee en
el directorio Instalacion\SetupRunTime\[Link]

Siguiendo las instrucciones del instalador se copiaran y


registrarán todos los componentes de la librería de soporte de la
aplicación.

Registro de las librerías propias de Visual HUR en la computadora


Cliente
Para registrar las librerías propias de Visual HUR debe
ejecutarse el programa [Link] que se encuentra
en el directorio de la aplicación. Este programa registra los
componentes propios de Visual HUR para su ejecución en la
computadora cliente.

La primera vez que se ejecuta se registran los componentes del


directorio BIN, luego se ejecuta de nuevo pero esta vez se
registran los componentes del directorio COM+

Al finalizar la aplicación estará lista para su ejecución.

Establecer una conexión a la base de datos


El siguiente paso es establecer la conexión a la base de datos.
Para ello siga los pasos planteados en la sección “Conexión a la
base de datos” más adelante en este documento.

Agregar el usuario al Módulo de Seguridad


Finalmente es necesario crear un usuario dentro del Módulo de
Seguridad de Visual HUR, y determinar que permisos de
seguridad tendrá.

Asesores en Informática, S.A. de C.V. 5


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Recuerde que cada usuario que tiene acceso a Visual HUR debe
estar registrado en el Módulo de Seguridad a través de su
usuario de red.

Más adelante en este documento se explica el funcionamiento


del Módulo de Seguridad.

Modalidades de Instalación de Visual HUR


Visual HUR puede ser instalado en tres modalidades diferentes,
las cuales se describen a continuación

Cliente Servidor Puro


En este esquema los ejecutables y los componentes de la
aplicación se instalan localmente en el computador cliente y se
direccionan las comunicaciones al servidor SQL Server
centralizado. Además se debe asegurar el acceso a directorios
compartidos donde se concentran las fotos de los expedientes y
los formatos de reportes y consultas.

Este esquema es apropiado para computadores móviles, que se


conectan al sistema desde diferentes puntos de la WAN. Ya que
el tráfico de red se concentraría al envío de datos entre el
servidor de base de datos y la computadora cliente.

También es el recomendado para situaciones en las cuales los


clientes tienen enlaces a la WAN con anchos de banda limitados
(menores de 256Kb)

A nivel de los clientes que utilizarán Visual HUR de esta manera,


se debe instalar el soporte de librerías de Visual Basic y de
Visual HUR a nivel local. El requerimiento mínimo es Windows
2000 Profesional y no más de 15 MB de espacio en disco para la
instalación de las librerías de soporte.

Esta opción es la que conlleva mayor trabajo de soporte para la


aplicación, ya que se tendrían que replicar cambios en los
ejecutables instalados en muchas computadoras.

Cliente Servidor a través de un “Application Server”


En este caso se sugiere instalar los objetos y componentes de
Visual HUR en un servidor de aplicaciones, que puede ser el
mismo de la base de datos o no.

El criterio para la instalación es optimizar el tráfico de la red,


para lo cual sería conveniente instalar la aplicación en un

Asesores en Informática, S.A. de C.V. 6


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

servidor que se esté lo más cercano a los clientes que utilizarán


Visual HUR.

En el caso de instalaciones en donde se centralizará la base de


datos en un país y se tendrán usuarios remotos en otros países,
con el afán de optimizar la ejecución del programa se debiera
instalar la aplicación en un servidor en cada país y solamente los
accesos a la base de datos se deberían centralizar.

El servidor para la aplicación no requiere de configuraciones


especiales ni mayor espacio en disco. El requerimiento mínimo
de Windows 2000 Server es suficiente para poner allí los
componentes y objetos de Visual HUR.

A nivel de los clientes que utilizarán Visual HUR, se debe instalar


el soporte de librerías de Visual Basic y de Visual HUR a nivel
local y luego tener acceso vía la red al servidor de aplicaciones
en donde se ubican los ejecutables y al servidor de base de
datos. El requerimiento mínimo es Windows 2000 Profesional y
no más de 5 MB de espacio en disco para la instalación de las
librerías de soporte.

Cliente Servidor a través de Terminal Server o Cytrix


En este caso se debe instalar la aplicación en el servidor que
proveerá los servicios de Terminal Server o Cytrix. Y a través de
la configuración de estos servicios se da acceso a los clientes
para ejecutar Visual HUR.

En el caso de instalaciones en donde se centralizará la base de


datos en un país y se tendrán usuarios remotos en otros países,
sería recomendable instalar un servidor Terminal Server o Cytrix
en cada país, con el afán de optimizar la utilización del ancho de
banda, de tal forma que únicamente sean datos los que fluyan
por la red.

Esta opción reduce los esfuerzos de mantenimiento de la


aplicación, ya que solo debe asegurarse el funcionamiento
correcto en los servidores que proveen el acceso a los usuarios.

Menú Principal de Visual HUR


El menú principal de Visual HUR es una
aplicación que instala un icono en la barra

Asesores en Informática, S.A. de C.V. 7


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

de tareas, a través de él pueden accederse a los diferentes


módulos del Visual HUR.

Al dar clic con cualquiera de los botones del ratón, aparecerá el


menú principal de Visual HUR. En este menú se listan aquellos
módulos a los cuales el usuario autenticado puede acceder.

Adicionalmente al listado de los módulos pueden verse tres


opciones más. La primera dice Acerca del Menú, esta opción
permite ver la identificación del menú y permite obtener
información sobre el sistema operativo y las aplicaciones
instaladas.

La segunda opción dice Configuración del


Menú permite al usuario configurar la
apariencia del menú principal de Visual
HUR.

Las configuraciones permitidas son:

 Agregar, modificar, eliminar o mover


opciones al menú. Adicionalmente a
los módulos del Visual HUR, el usuario
puede agregar programas al menú de
Visual HUR, tales como la calculadora,
el bloc de notas, etc.

 Cambiar el título del menú y el


mensaje de ayuda que muestra cuando
se posiciona el cursor del ratón sobre el icono en la barra de
tareas.

 Mostrar iconos de 16 o de 32 puntos para las opciones del


menú.

 Habilitar o deshabilitar la opción de configuración del menú y


la de descargar el menú.

En la gráfica que se muestra a continuación puede verse la


ventana de configuración descrita:

Asesores en Informática, S.A. de C.V. 8


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Al final del menú principal se muestra una opción que permite


descargar el menú principal.

Conexión a la Base de Datos


El programa [Link] que se encuentra en la
instalación de Visual HUR en la carpeta de Administración,
permite establecer los parámetros para la conexión a la base de
datos.

Al ejecutar este programa se muestra el siguiente diálogo:

Asesores en Informática, S.A. de C.V. 9


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Esta ventana permite configurar los parámetros de conexión


(comúnmente llamada Cadena de Conexión o DSN) y que
describe el servidor de base de datos al que se conecta la
aplicación, así como el usuario y contraseña para la conexión y el
esquema de base de datos que se utilizará.

Presionando el botón “Probar conexión”, puede verificar si los


parámetros son válidos y la conexión se pudo establecer
exitosamente. Luegodebería recibir una notificación como la
siguiente si los parámetros están correctos.

Luego puede presionar el botón Siguiente que le permite


finalizar el asistente para establecer la conexión.

Activación de la Aplicación
El programa [Link] que se encuentra en el
directorio de Instalación de Visual HUR en la carpeta de

Asesores en Informática, S.A. de C.V. 10


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Administración, permite activar o desactivar la ejecución de


Visual HUR en un computador.

Al instalar Visual HUR en un cliente, por defecto se ejecuta en


modo "demostración" en este modo Visual HUR puede
ejecutarse durante 30 días únicamente y alguna funcionalidad
del sistema está deshabilitada.

Para que Visual HUR pase a un modo de ejecución normal es


necesario registrar la aplicación, lo que significa introducir una
clave de liberación única para cada cliente donde se ejecuta
Visual HUR.

Si Visual HUR está instalado en modo "demostración", al


ejecutar este programa se muestra el siguiente diálogo:

Solicite al administrador del sistema que le provea de una clave


de liberación para poder ejecutar Visual HUR en modo normal.

Este programa también sirve para retirar la información del


registro de un computador, garantizando de esta manera que no
se tendrá acceso al sistema. En este caso al ejecutar este
programa se mostrará una ventana que pregunta si se desea
retirar la información de registro.

Asesores en Informática, S.A. de C.V. 11


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Módulo de Seguridad
El programa [Link] que se encuentra en el
directorio de Instalación de Visual HUR en la carpeta de
Administración, permite establecer los permisos de seguridad
que tienen los usuarios de Visual HUR.

Determina a través de roles de seguridad, compuestos por uno o


mas usuarios, que módulos pueden ejecutarse, que opciones de
cada módulo están activas (determinando permisos de consulta,
inserción, actualización, eliminación y autorización.

También permite establecer que secciones del expediente del


empleado son visibles para cada rol de seguridad.

Adicionalmente el módulo de seguridad permite especificar a


que empresas tiene acceso un rol de seguridad y dentro de cada
una de ellas, determina que unidades administrativas puede ver.
Esto permite que un rol de seguridad pueda ver expedientes y
acciones de personal de empleados que pertenecen a las
unidades administrativas a las cuales se le ha dado permiso a los
roles de seguridad.

También es posible determinar seguridad a nivel de Tipo de


Planilla, de tal manera que se pueda restringir el acceso de los
usuarios a los empleados que pertenecen a un Tipo de Planilla
específico.

Al ejecutar este programa primero se


solicitará del usuario la contraseña
correspondiente para poder ejecutar este
programa. Esta contraseña es especificada
por el administrador de la aplicación.

Si la contraseña es correcta, a continuación se muestra la


pantalla principal de éste módulo.

Asesores en Informática, S.A. de C.V. 12


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

El programa muestra una serie de paneles cada uno contiene


parámetros de seguridad aplicables al role seleccionado y una
barra de herramientas en la parte superior de la forma que
permiten administrar: Roles, Usuarios, Centros de Costo por
Usuario, Actualizar la vista y Cambiar la contraseña de ejecución
de este módulo.

El panel “Roles/Usuarios” muestra un listado de usuarios


agrupados por role de seguridad. Al seleccionar un usuario o un
rol, el programa cambia el contenido de los diferentes paneles
para mostrar la configuración de seguridad de cada uno de ellos.

Es posible asociar más de un role a un usuario, esto permite que


la creación de roles se haga de manera concreta y que la suma
de todos los permisos de los roles a que pertenece un usuario,
sean los permisos del usuario en la aplicación.

El panel “Accede a estos Módulos” lista los módulos de Visual


HUR, a los cuales tiene acceso un rol de seguridad, aquellos que
se muestran chequeados son los módulos que puede ejecutar.

El panel “Accede a estas Formas” lista las opciones existentes en


cada módulo y permite marcar aquellas a las cuales tendrá
acceso el rol de seguridad. Si se da doble clic sobre una de las
opciones se muestra una ventana que detalla el tipo de acceso
que se dará al rol.

Asesores en Informática, S.A. de C.V. 13


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Por ejemplo, al dar doble clic sobre la opción "Unidades" del


Módulo de "Estructura Organizativa", se puede determinar si el
rol de seguridad tendrá acceso a Agregar, Modificar, Eliminar o
Autorizar (si fuera aplicable para esa opción).

El panel “Acceso al Expediente” lista las diferentes secciones de


las cuales está compuesto el expediente del empleado y permite
determinar a cuales tendrá acceso el rol de seguridad.

En el panel “ESQUEMA” se podrá determinar a que empresas


tiene acceso el rol de seguridad seleccionado. Además podrá
determinarse dentro de cada empresa de qué unidades
administrativas podrá consultar expedientes o acciones de
personal.

Si está chequeada una empresa y no se especifica ninguna unidad, el


sistema asume que el rol de seguridad puede ver la totalidad de empleados y
acciones de la empresa.
Finalmente, en el panel “Tipos de Planilla por Rol” es posible
determinar para cada role de seguridad, que empleados de qué
tipos de planilla puede ver. Esta configuración permite que sea
posible delimitar qué roles pueden ver un tipo de planilla
“Confidencial”, por ejemplo.

Una vez se realicen modificaciones al esquema de seguridad se


debe presionar el botón Salvar que se mostrará habilitado en la
barra de herramientas. El botón Cancelar anulará cambios
realizados en el esquema de seguridad.

Recuerde que al momento de crear una nueva empresa, ningún rol de


seguridad podrá verla hasta que utilice este programa para darle acceso a
algún usuario.

Asesores en Informática, S.A. de C.V. 14


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Asesores en Informática, S.A. de C.V. 15


Herramientas de
Parametrización
Introducción a las herramientas de
Parametrización de Visual HUR

E
stas herramientas, permiten modificar el funcionamiento
de Visual HUR, adaptándolo a un implantación específica,
de acuerdo a los requerimientos del cliente. Consisten
fundamentalmente en configuraciones para las listas de valores
en los formularios de ingreso de datos y en columnas de las
formas que muestran listados de registros.

Además permite administrar la parametrización del expediente


del empleado, la integración de plantillas de Word y reportes de
Crystal Reports, y la generación de conjuntos de datos para que
los usuarios elaboren sus propias consultas de la información
almacenada por el sistema.

Estas configuraciones se acceden a través del Módulo de


Parametrización y Configuración ([Link]) que se
encuentra en el directorio “Administración” de la instalación de
Visual HUR.

Administración del Diccionario de Listas de


Valores
Visual HUR provee de un diccionario para mantener listas de
valores que se utilizan en el resto de opciones de configuración y
en las formas de ingreso de datos.

El objetivo de estas listas de valores es asociar a las columnas de


las tablas o a controles visuales en las formas listas de valores
estandarizadas, de tal manera que se si desea cambiar su
comportamiento se pueda realizar desde la herramienta de
configuración y no sea necesario modificar el código fuente del
sistema.

Asesores en Informática, S.A. de C.V. 16


A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Al ejecutar esta opción se muestra una ventana similar a la


siguiente gráfica.

La forma muestra una barra de herramientas en la parte


superior que permite: agregar, modificar, eliminar, actualizar la
vista, generar un script y copiar elementos del diccionario.

También muestra dos paneles, el de la izquierda lista todos los


elementos del diccionario y al seleccionar uno, en la parte de la
derecha se muestran las propiedades del elemento seleccionado.

En la parte inferior de la forma tiene un botón “Copiar Select al


Portapapeles”, con este botón se puede copiar la instrucción
select, incluyendo la cláusula “order by”, para que sea revisada
utilizando Query Analyzer de Microsoft SQL Server.

Es importante destacar que es posible generar scripts en T-SQL


para la creación de los elementos del diccionario, a través del
botón correspondiente en la barra de herramientas. Esta
característica permite de manera simple, trabajar en un
ambiente de desarrollo y luego generar los scripts de los
elementos modificados o añadidos para que sea ejecutado
posteriormente en el ambiente de producción.

Asesores en Informática, S.A. de C.V.


17
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Al presionar dicho botón se muestra una ventana de selección


similar a la siguiente gráfica:

En esta ventana el implantador puede seleccionar para cuáles


elementos del diccionario desea generar un script y luego debe
especificar el nombre del archivo en el cual se generará el script.
Finalmente presionando el botón “Generar” se ejecuta la acción.
Esta característica de generación de scripts es común para todas
las opciones de configuración de este módulo.

Propiedades de cada elemento del diccionario


Propiedad Descripción
Field Key Identificador de la lista de valores
Prompt Texto por defecto que se muestra a los usuarios cuando se
utiliza la lista de valores
Tipo Tipo de dato de la lista de valores. Corresponden a tipos de
datos soportados por la aplicación: Bolean, Date, DateTime,
Time, Float, Real, SmallInt, Int, y Text.
Tamaño Aplicable para tipos de datos Text, determina el largo en
caracteres.
Default Valor que utiliza por defecto la lista de valores (deben ser
valores congruentes con el tipo de dato)

Asesores en Informática, S.A. de C.V.


18
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Tipo de Lista Determina la fuente de la cual se obtiene la lista de valores,


las posibilidades son: No List, List y Select.
Cuando se especifica “No List”, es crear elementos del
diccionario que no estén asociados a una lista de valores,
sino que únicamente describan el tipo de dato y las
propiedades de formato para la exportación a Microsoft
Excel.
Cuando se especifica “List”, la lista de valores se forma con
valores constantes.
Cuando se especifica “Select” la lista de valores proviene de
la ejecución de una instrucción select contra la base de
datos.
Lista | FROM Cuando se especifica un tipo de lista “List” contiene un
texto con los elementos constantes de la lista.
Cuando se especifica un tipo de lista “Select” contiene la
instrucción que se ejecutará contra la base de datos para
llenar la lista de valores. (No se debe incluir cláusula order
by)
Order By Esta propiedad es opcional, y se debe utilizar cuando el tipo
de lista es “Select”.
Determina la cláusula “Order By” del “Select”.
Use Item Determina si la lista de valores tiene secuencias (código |
Data descripción) o cuando la instrucción select tiene columna
para código y columna para descripción.
Esta propiedad permite mostrar descripciones en las listas
de valores y almacenar los códigos correspondientes.
Expr. Item Determina si el código en la lista de valores corresponde a
Data una expresión que puede utilizarse en una cláusula WHERE
de un select.
Por ejemplo: Puede crearse una lista de valores para un
campo tipo fecha, de la siguiente forma:
month(fecha)=1|Enero;month(fecha)=2|Febrero;
month(fecha)=3|Marzo;...; month(fecha)=12|Diciembre
En este caso en el área código de la lista de valores se
encuentra una expresión SQL y el campo "Exp. In ItemData"
debe tener "Sí"
First Letter Determina si en una lista de valores constantes se utiliza el
primer carácter de la descripción como el código del campo.
Por ejemplo: si la lista de valores es
"Mensual;Quincenal;Semanal", entonces al definir "Sí" en
este campo se utilizarán las letras M, Q o S para almacenar
en la base de datos.
Alignment Determina la alineación preferida para el campo cuando se
utiliza en una hoja de Excel generada por el asistente.
Formato Formato de la columna cuando el campo se utiliza en una

Asesores en Informática, S.A. de C.V.


19
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

hoja de Excel generada por el asistente. Debe utilizarse la


sintaxis de formato de Microsoft Excel.
AutoFit Determina si la columna tendrá ancho automático cuando el
campo se utiliza en una hoja de Excel generada por el
asistente.
Máximo Si AutoFit = NO, determina el ancho máximo de la columna
cuando el campo se utiliza en una hoja de Excel generada
por el asistente.
WrapText Determina si se utiliza la función de justificación de Excel
cuando el campo se incluye en una hoja generada por el
asistente.

Las listas de valores deben crearse bajo las siguientes


condiciones:

 Si el tipo de lista es “List” (lista constante) entonces la lista de valores debe tener
secuencias así:
[Código1|]Valor1;[Código2|]Valor2;...;[CódigoN|]ValorN
Por ejemplo:
Diario;Mensual
1|Sin Lista;2|Lista Constante;3|Lista con SELECT
 Si el tipo de lista es “Select” (lista con una instrucción SELECT) este campo contiene la
instrucción SELECT para obtener la lista de valores. Por ejemplo:
select afp_codigo, afp_nombre from pla_afp_afps order

select uni_codigo, uni_nombre from pla_uni_unidad where uni_codcia =


<<CODCIA>>
Si en la instrucción select se halla la secuencia <<CODCIA>> o <<CODGRC>> o
<<USER>> estas serán reemplazadas por el código de la empresa o el código de grupo o el
username del usuario que utiliza la aplicación, respectivamente.
NO DEBEN INCLUIRSE CLÁUSULAS ORDER BY.

Configuración de Controles de Selección (Query


Builder)
Visual HUR provee un mecanismo para configurar los controles
de búsqueda y selección que se utilizan en las formas de los
diferentes módulos.

Asesores en Informática, S.A. de C.V.


20
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

El objetivo de este control es generar una instrucción “select”


que luego es utilizada para mostrar registros en una
presentación en tabla o para ejecutar algún proceso.

Por ejemplo en el Módulo de Expedientes de Personal, cuando se


buscan expedientes, se muestra una ventana con un control de
selección similar al que se presenta en la siguiente imagen.

Controles de Selección como estos pueden configurarse de


acuerdo a las necesidades de la implantación, utilizando esta
opción en el Módulo de Parametrización y Configuración.

La pantalla de configuración correspondiente que se muestra


luce como la siguiente imagen.

Asesores en Informática, S.A. de C.V.


21
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

La forma está compuesta por una barra de herramientas en la


parte superior, que permite: agregar, modificar, eliminar,
actualizar la vista, generar un script y copiar una configuración
de Query Builder.

Se presentan dos paneles, el superior tiene las diferentes


selecciones configuradas y en la parte inferior, el detalle de
columnas que se muestran en el control de selección.

Al seleccionar un registro del panel superior, se refresca el


detalle de columnas en el panel inferior.

Propiedades del Control de Selección


Propiedad Descripción
FormName Determina el nombre de la forma en código fuente en donde
se encuentra el control de Selección
Desc. Forma Descripción del control de selección
SelectFieldLi Listado de columnas utilizadas para la generación de la
st instrucción “select”

Asesores en Informática, S.A. de C.V.


22
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

SelectTableLi Listado de tablas o vistas que intervienen en la instrucción


st “select” generada. Puede incluir la cláusula “JOIN”, de tal
manera que sea posible relacionar columnas de diferentes
tablas.
SelectJoinCla Listado de expresiones lógicas que se generarán siempre en
use la cláusula “where” del “select” generado
SelectOderCl Listado de columnas que se utilizarán para la generación de
ause la cláusula “order by”

Propiedades del detalle de columnas del Control de Selección


Propiedad Descripción
No. Correlativo que identifica la columna. También determina
el orden en que se muestran las columnas en el control de
selección.
Prompt Texto que se muestra al usuario en el control de selección
FieldName Nombre de la columna o expresión T-SQL perteneciente a la
vista o tabla configurada y que se utiliza para generar la
cláusula WHERE
FieldKey Código de elemento en el Diccionario de Listas de Valores.
UseDatePick Usa control DatePicker para leer fechas, cuando el
er FieldType es Date o DateTime
DefaultExp Expresión por defecto para la columna
FieldType Solo de Lectura. Tipo de Lista de Valores
List Source Solo de Lectura. Lista de Valores
Use Solo de Lectura. Parámetros, UseItemData, UseFirstLetter y
Exp. In ItemData
Format Formato de la lista de valores

Configuración de Listas de Valores para


[Link] en formas de ingreso de
datos
Visual HUR provee un mecanismo para configurar las listas de
valores asociadas a controles [Link] en las formas
de ingreso de datos.

Este control permite configurar por fuera del código fuente, las
listas de valores, la descripción que muestran y su ordenamiento.

Asesores en Informática, S.A. de C.V.


23
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

A continuación se muestra un ejemplo tomado de la forma de


ingreso de unidades administrativas, en donde se utilizan 6
controles de este tipo.

Como puede verse en el


ejemplo, el Área
Funcional, el Tipo de
Unidad, la unidad de la
cual depende, la
empresa y el país en
donde se ubica
físicamente la unidad y
el código del empleado
que se desempeña como
Jefe de la Unidad, se
muestra un control
visual que presenta del
lado izquierdo el código
y del lado derecho la
descripción de una lista
de valores específica.

Esta sección trata sobre la configuración de estas listas de


valores que se muestran principalmente en las formas de ingreso
de datos.

Al ejecutar [Link] y Selecciona la opción CodCombo en


el menú vertical, se muestra la pantalla de configuración de
estas listas de valores.

Asesores en Informática, S.A. de C.V.


24
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

La pantalla muestra un listado en tabla de las configuraciones


existentes en la base de datos. Cada configuración está asociada
al nombre de la forma y el control en el código fuente de la
aplicación.

Propiedades de la configuración de CodCombo


Propiedad Descripción
Nombre de la Nombre de la forma en código fuente que se está
Forma configurando
Descripción Descripción de la forma (texto explicativo para facilitar la
de la Forma ubicación de formas en la configuración)
Nombre del Nombre del control en la forma del código fuente que se
Control está configurando.
FieldKey Código de elemento en el Diccionario de Listas de Valores.
DefaultExp Expresión por defecto para la lista de valores

Es importante señalar que por restricciones de diseño de


[Link], solamente se pueden asociar listas que corresponden a
campos tipo Smallint o Int. Además la lista de valores debe estar ordenada
por la columna que contiene el código en la lista de valores.

Asesores en Informática, S.A. de C.V.


25
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Configuración de Columnas “Dropdown List” en


controles Grid de las formas de búsqueda.
Visual HUR provee un mecanismo para configurar las listas de
valores asociadas a columnas “Dropdown List” en controles
“Grid” de las formas de búsqueda de datos.

Este control permite configurar por fuera del código fuente, las
listas de valores, la descripción que muestran y su ordenamiento,
para columnas de selección “dropdown list”. A continuación se
muestra un ejemplo del uso de esta configuración en la
aplicación.

Como puede verse en la imagen, la tabla tiene una lista de


valores para la especificación del Tipo de Requisito. Esta lista
puede ser administrada desde la opción “Grid Columns
Dropdown List” del módulo de Parametrización y Configuración.

A continuación se muestra una imagen de la pantalla de


configuración referida.

Asesores en Informática, S.A. de C.V.


26
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Para identificar una configuración se utiliza el nombre de la


forma, el nombre del control “grid” y la llave de la columna que
se desee enlazar a las listas de valores.

Propiedades de la configuración de Columnas “Dropdown List” de los


controles “Grid”
Propiedad Descripción
Nombre de la Nombre de la forma en código fuente que se está
Forma configurando
Nombre del Nombre del control “Grid” en la forma del código fuente
Grid que se está configurando.
Key de la “Key” de la columna en el “Grid” que se está configurando
Columna
FieldKey Código de elemento en el Diccionario de Listas de Valores.
Descripción Descripción de la forma (texto explicativo para facilitar la
de la Forma ubicación de formas en la configuración)
DefaultExp Expresión por defecto para la lista de valores

Asesores en Informática, S.A. de C.V.


27
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Configuración de Columnas “SubGrid” en


controles Grid de las formas de búsqueda.
Visual HUR provee un mecanismo para configurar las listas de
valores asociadas a columnas “Dropdown List” en controles
“Grid” de las formas de búsqueda de datos.

El objetivo es poder configurar columnas que muestran un Grid


Secundario, como mecanismo para seleccionar registros en
columnas de tablas de ingreso de datos tipo “Grid”.

A continuación se muestra como ejemplo, el SubGrid utilizado


para seleccionar el empleado a retirar en la pantalla de ingreso
de Retiros del Módulo de Acciones de Personal.

El Módulo de Parametrización y Configuración permite


configurar estos grid secundarios a través de una pantalla como
la que se muestra a continuación.

Asesores en Informática, S.A. de C.V.


28
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Propiedades de la configuración de Columnas “SubGrid” de los


controles “Grid”
Propiedad Descripción
Nombre de la Nombre de la forma en código fuente que se está
Forma configurando
Descripción Descripción de la forma (texto explicativo para facilitar la
de la Forma ubicación de formas en la configuración)
Nombre del Nombre del control “Grid Principal” en la forma del código
Grid fuente que se está configurando.
Key de la “Key” de la columna en el Grid Principal que se está
Columna configurando
Nombre del Nombre del control del “Grid Secundario” en la forma del
SubGrid código fuente que se está configurando.
Índice de la Índice de la columna en el Grid Secundario que se “enlaza”
columna con la columna en el Grid Principal.
Enlace
Instrucción Instrucción “select” que se ejecuta contra la base de datos y
Select del que llena los registros del Grid Secundario.
SubGrid

Asesores en Informática, S.A. de C.V.


29
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Configuración de las Secciones Extensibles del


Expediente de Personal
Visual HUR tiene la capacidad de ampliar o reducir
dinámicamente el contenido de información del expediente del
empleado. Para ello dispone de múltiples secciones que son
configurables, entre ellas están: la información sobre
documentos de identificación del empleado (tabla
pla_ide_ident_emp),
la información
relacionada con el
cálculo de salarios
(tabla

pla_dpl_datos_planilla), la información adicional al expediente


(tabla pla_ead_empleado_adic), etc.

Al momento de implantar Visual HUR se definen los


requerimientos de datos del expediente y se decide en cuál de
las secciones configurables se ubican dichos datos.

Esta imagen muestra la pantalla de ingreso de expedientes a la


base de datos. En esta pantalla se destaca el control visual sobre
el cual tratan estas configuraciones.

Con esta configuración también se pueden adecuar otros


ingresos de datos utilizados en la aplicación, tales como:
Contratación, Registro de Liquidaciones, Escenarios de
Liquidación, captura de parámetros para generación de períodos
de vacación, parámetros Generales por Empresa, etc.

En esta sección se tratan temas relacionados con VBScript, que


es el lenguaje en que se escriben las funciones de validación y
los eventos que se ejecutan antes y después de editado un campo

Asesores en Informática, S.A. de C.V.


30
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

de las secciones extensibles. Si desea información sobre este


lenguaje visite el sitio Microsoft Windows Script Technologies.

Ahora se discute el procedimiento para realizar la configuración


de secciones del expediente del empleado:

Modificación de la tabla correspondiente


Inicialmente el administrador de la aplicación debe modificar la
tabla que desea configurar, agregando, modificando o
eliminando campos. Esto se realiza a través de programa de
Administración de Microsoft SQL Server.

Configuración de la Sección del Expediente


A continuación debe ejecutarse la opción “Property Grid”
del módulo de Parametrización y Configuración de Visual
HUR que se encuentra en el directorio de instalación de Visual
HUR en la carpeta de Administración. El programa al ejecutarlo
luce como la gráfica que se muestra a continuación:

La ventana tiene una barra de herramientas en la parte superior,


que permite agregar, modificar o eliminar una configuración,
actualizar la vista, generar un script y hacer una copia de la

Asesores en Informática, S.A. de C.V.


31
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

configuración seleccionada. Finalmente tiene un botón para


probar la configuración desde esta pantalla, de tal forma que se
pueda verificar que no tiene errores sin salir del programa de
configuración.

Además el formulario se encuentra divido en una serie de


paneles con información relacionada con la configuración que se
está trabajando.

1. Panel con el listado de secciones, correspondientes a las tablas mencionadas anteriormente


(al seleccionar una tabla en este panel, se muestra la información relacionada en ella en los
paneles 2 y 3)
2. Panel con el listado la definición de la llave primaria de la tabla que se seleccionó en el
panel 1.
3. Panel con la tabla de descripción de campos de la tabla seleccionada en el panel 1.

Panel con las secciones configurables


En este panel aparece la lista de controles “Property Grid” que
se pueden configurar a través de esta herramienta, el panel
muestra las siguientes columnas:

Propiedad Descripción
ID ID único para identificar la Sección Configurable
Nombre de la Nombre de la Tabla en la Base de Datos
Tabla
Descripción de la Descripción de la Sección Configurable
Tabla

La tabla en la base de datos donde se almacena esta información


es: cfg_pg_tables

Panel con la descripción de la llave primaria de la sección


seleccionada
En este panel se lista los campos de la tabla que forman la llave
primaria de la tabla que se está configurando (si aplica). Este
panel muestra las siguientes columnas:

Propiedad Descripción
Índice Determina el nombre de índice correspondiente a la
llave primaria (si se deja en blanco el programa de
configuración sabrá que existen otros campos en la
tabla que no se están utilizando para almacenar
información)

Asesores en Informática, S.A. de C.V.


32
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

No. Determina el ordenamiento de los campos en la tabla


Nombre de la Nombre de la Columna de la Tabla configurada
Columna
Tipo Lista de valores con los tipos existentes para las
columnas de la tabla
Tamaño (opcional) Solamente aplica para campos tipo Texto y
determina el largo en caracteres de la columna de tipo
Char o Varchar.
¿CanBeNull? Determina si la columna puede quedar sin especificar al
momento de insertar o actualizar datos en la tabla
¿Llave Primaria? Determina si la columna forma parte de la llave
primaria de la tabla

Panel con la configuración de cada campo de la tabla que se está


configurando
En este panel se muestra una lista de definiciones para los
campos que formarán la sección configurable.

Las columnas de esta tabla son:

Propiedad Descripción
No. Determina el número de categoría al que pertenece el
campo configurado
Categoría Nombre de la categoría a la cual pertenece el campo
configurado
No Ordenamiento de los campos dentro de la misma
categoría
Empresa Código de Empresa en donde es visible este campo (si
el valor es Nulo, entonces este campo es visible en los
expedientes de todas las empresas)
Título o Es el texto que aparece como título o etiqueta para la
descripción del columna cuando se le presenta al usuario final en la
campo forma de ingreso de datos.
Nombre de la Nombre de la columna en la base de datos
Columna
FieldOnTable Determina si el campo corresponde a una columna de
la tabla destino de la sección configurable. Permite
crear campos que no se leen o actualizan en la tabla
destino
Tipo Lista de valores con los tipos posibles de las columnas
de la tabla

Asesores en Informática, S.A. de C.V.


33
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Tamaño (opcional) Solamente aplica para campos tipo Texto y


determina el largo en caracteres de la columna de tipo
Char o Varchar.
Formato (Opcional) determina el formato que se utiliza para
mostrar los datos en la pantalla. Sigue la sintaxis de
formato de Visual Basic Script (VBScript)
Default (opcional) determina el valor por defecto que tiene este
campo durante su lectura
Regla de Función escrita en VBScript que retorna un valor
Validación verdadero o falso y que permite validar si el valor
ingresado para el campo es válido.
Error de Cadena de caracteres que se muestra cuando la función
Validación de validación falla
¿CanBeNull? Determina si el campo es requerido o puede quedar sin
especificar
EditMode Determina si el campo es editable o no cuando se
visualiza desde la forma de ingreso de datos
Visible Determina si el campo es visible cuando se visualiza
desde la forma de ingreso de datos
Control de Determina el tipo de control visual que se utilizará para
Lectura ingresar datos (TextBox o ComboBox) Cuando se
especifica un ComoBox se activan las columnas
relacionadas con la lista de valores.
Multiline Para campos que se leen con un Textbox, permite
determinar si se muestra más de una línea o no
# Lines Número de líneas a mostrar cuando MultiLine = True
¿Select? Determina si la lista de valores se obtiene de una
instrucción SELECT o si por el contrario es una lista de
valores constantes
Lista de Valores Lista de valores para el campo o instrucción SELECT
que se ejecuta para obtenerla
Use First Letter Determina si en una lista de valores constantes se
utiliza el primer caracter de la descripción como el
código del campo. Por ejemplo: si la lista de valores es
"Mensual;Quincenal;Semanal", entonces al definir "Sí"
en este campo se utilizarán las letras M, Q o S para
almacenar en la base de datos
Código para el Función VBScript que se ejecuta antes de entrar a
evento BeforeEdit editar un valor en la forma de lectura
Código para el Función VBScript que se ejecuta después de terminar
evento AfterEdit la edición a un valor en la forma de lectura

Asesores en Informática, S.A. de C.V.


34
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Las listas de valores deben crearse bajo las siguientes


condiciones:

 Si el tipo de lista es “List” (lista constante) entonces la lista de valores debe tener
secuencias así:
[Código1|]Valor1;[Código2|]Valor2;...;[CódigoN|]ValorN
Por ejemplo:
Diario;Mensual
1|Sin Lista;2|Lista Constante;3|Lista con SELECT
 Si el tipo de lista es “Select” (lista con una instrucción SELECT) este campo contiene la
instrucción SELECT para obtener la lista de valores. Por ejemplo:
select afp_codigo, afp_nombre from pla_afp_afps order

select uni_codigo, uni_nombre from pla_uni_unidad where uni_codcia =


<<CODCIA>>
Si en la instrucción select se halla la secuencia <<CODCIA>> o <<CODGRC>> o
<<USER>> estas serán reemplazadas por el código de la empresa o el código de grupo o el
username del usuario que utiliza la aplicación, respectivamente.

Al posicionarse sobre un renglón de este panel puede


presionarse el icono de propiedades de la barra de herramientas
o la combinación de teclas <Ctrl-E> para mostrar una ventana
secundaria que facilita el ingreso de las funciones elaboradas
con VBScript. La pantalla que se muestra luce así:

Asesores en Informática, S.A. de C.V.


35
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Como puede verse en la ventana mostrada, en la parte superior


hay botones para ver la función de validación (ValidationRule), la
lista de valores (ListValues), la función del evento
BeforeEditCode y la función del evento AfterEditCode.

Al modificar estos campos en esta forma secundaria se modifican


en la tabla que se muestra en el programa de configuración.

Función VBScript de validación de campos.


Para cada columna es posible la creación de una función de
validación para el valor digitado por el usuario. Esta se ejecuta
luego de que el usuario modifica un valor en la forma de ingreso
de datos y trata de moverse al siguiente campo (luego de que el
control de edición pierde el “foco” y antes del evento AfterEdit).

Asesores en Informática, S.A. de C.V.


36
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

La función recibe como único parámetro el valor ingresado por


el usuario y debe retornar un valor verdadero o falso luego de
ejecutar la función. A continuación se muestra un ejemplo:

Function Validate(ByVal Value)


Validate = (value > 50 and value < 500)
End Function

Este es el texto que debe ingresarse en la columna “Regla de


Validación” si se desea asegurar que el valor ingresado por el
usuario en este campo esté entre 51 y 499 inclusive.

Recuerde que el campo “Error de Validación” le permite escribir


un mensaje de error que será mostrado al usuario cuando la
función de validación retorna un valor “falso”.

Función VBScript que se ejecuta antes y después de editar un campo.


Para cada columna en la configuración se permite la creación de
funciones que se ejecutan antes y después de editar campos en
la forma de ingreso de datos.

La función recibe como parámetros el objeto Cat que contiene la


estructura de datos en memoria donde se almacenan las
configuraciones de las categorías y campos de la forma de
ingreso de datos configurable, también recibe dos parámetros
más que identifican en que categoría y campo se encuentra
posicionado el cursor. La función no debe retornar ningún valor.
A continuación se muestra un ejemplo:

Function AfterEdit(Cat, CurCat, CurRow)


if Cat(CurCat).Rows(CurRow).Value = "S" then
Cat(CurCat).Rows(CurRow+1).EditMode = 0
else
Cat(CurCat).Rows(CurRow+1).EditMode = 2
end if
End Function

En este ejemplo antes de editar un campo, se investiga el valor


que tiene para deshabilitar el ingreso de datos en el siguiente
campo de la forma. Si el campo donde se encuentra posicionado
el usuario tiene un valor "S", entonces modifica la propiedad

Asesores en Informática, S.A. de C.V.


37
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

"EditMode" del siguiente campo para que permita editarlo, por


el contrario si tiene un valor "N", entonces lo marca como
deshabilitado para la modificación.

Estas funciones permiten realizar operaciones más complejas,


como por ejemplo, inicializar la lista de valores del próximo
campo, dependiendo del valor del campo en el que se encuentra
el usuario.

A continuación se muestra un ejemplo de este comportamiento:


El tiene un campo que requiere el código de país del usuario,
dependiendo del código de país seleccionado, el siguiente campo
debe tener en su lista de valores los departamentos
pertenecientes al país seleccionado, por lo que luego de editar el
campo "país" se ejecuta esta función que lee de la base de datos
los departamentos de ese municipio y genera la lista de
departamentos apropiada.

Function AfterEdit(Cat, CurCat, CurRow)


Dim conn
Dim oRS
Dim xSQL
Dim errMsg

Set conn = CreateObject("[Link]")


Set oRS = CreateObject("[Link]")

errMsg = ""
On Error Resume Next
[Link] [Link]
If [Link] = 0 Then
xSQL = "select dep_codigo, dep_nombre" & _
" from pla_dep_departamento" & _
" where dep_codpai = " & Cat(CurCat).Rows(CurRow).Value & _
" order by dep_nombre"
[Link] xSQL, conn, 3
If [Link] = 0 Then
If [Link] Then
Cat(CurCat).Rows(CurRow + 1).EditMode = 2
Else
With Cat(CurCat).Rows(CurRow + 1)
.EditMode = 0
.HasValueList = True
.[Link]
Do Until [Link]
.[Link] [Link]("dep_codigo").Value, _
[Link]("dep_nombre").Value
[Link]
Loop
End With
End If

Asesores en Informática, S.A. de C.V.


38
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Else
errMsg = "Error: " & [Link] & " - " & [Link]
End If
[Link]
[Link]
Else
errMsg = "Error: " & [Link] & " - " & [Link]
End If
On Error GoTo 0

if errMsg <> "" then


MsgBox errMsg & vblf & vblf & xSQL
end if
end function

Como puede verse en el ejemplo, el objeto Cat como una de sus


propiedades tiene el "String de Conexión" a la base de datos, por
lo que utilizando Microsoft ADO es posible establecer una
conexión a la base de datos y ejecutar una instrucción select.
Utiliza las funciones CreateObject("[Link]") y
CreateObject ("[Link]") para tal fin.

Además puede verse que para un campo en la forma de ingreso


de datos se tienen propiedades y métodos para controlar la lista
de valores, tales como .HasValueList (true/false), .[Link]
y .[Link]. Esto permite construir la lista de valores dentro
de la función ejecutada luego de editar el campo país.

Descripción de la Clase Categorías.


A continuación se hará una descripción detallada de las
propiedades y métodos de la Clase Categorías, que es la que se
envía como parámetro a las funciones con los eventos
AfterEditCode y BeforeEditCode de la configuración de campos.

rhPGCategories Clase con la colección de Categorías


ConnectString as String String de Conexión a la base de datos
DataAccessLayer as Objeto conexión a la base de datos ya
rhDataAccessLayer inicializado dentro de la aplicación.
UsuarioWindows as String Nombre de usuario validado en el arranque de
Windows.
Count as Long Número de elementos en la colección
Item (vntIndexKey) as rhPGCategory Elemento (vntIndexKey) de la colección
Add (Prompt as String, [Visible as Agrega un elemento a la colección
Boolean = True, [sKey as String])
Clear () Elimina todos los elementos de la colección

Asesores en Informática, S.A. de C.V.


39
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Remove (vntIndexKey) Elimina el elemento (vntIndexKey)

rhPGCategory Clase con el objeto categoría


Expanded as Boolean Determina si la clase esta expandida o
colapsada en la forma
Index as Integer Número de elemento en la colección
Prompt as String Título de la categoría
Rows as rhPGRows Colección de Renglones en la categoría

rhPGRows Clase con la colección de Renglones de una


Categoría
Count as Long Número de elementos en la colección
Item (vntIndexKey) as rhPGRow Elemento (vntIndexKey) de la colección
Add (Prompt As String, [FieldName Agrega un elemento a la colección
As String], [FieldType As
pg_FieldTypeConstants =
pg_Entero], [FieldSize As Integer],
[FormatString As String],
[DefaultValue], [EditMode As
pg_EditModeConstants = pg_Edit],
[CanBeNull As Boolean = False],
[InputControl As
pg_InputControlConstants =
pg_TextBox], [HasValueList As
Boolean = False], [SelectExpression
As String], [ValidateRule As String],
[ValidationErrorMsg As String],
[BeforeEditCode As String],
[AfterEditCode As String], [Visible
As Boolean = True], [Tag], [sKey As
String])
Clear () Elimina todos los elementos de la colección
Remove (vntIndexKey) Elimina el elemento (vntIndexKey)

rhPGRow Clase con el objeto Renglón


Actualizado as Boolean Determina si el renglón fue actualizado en la
base de datos
AfterEditCode as String Almacena la función de VBScript que se ejecuta
al salir del campo luego de editarlo
BeforeEditCode as String Almacena la función de VBScript que se ejecuta
antes de entrar a editar el campo
CanBeNull as Boolean Determina si el valor del renglón puede quedar
nulo
DefaultValue as Variant Valor por defecto para el renglón
EditMode as pg_EditModeConstants Modo de Edición del Renglón de acuerdo a las
constantes permitidas
FieldName as String Nombre del Campo en la Tabla
FieldOnTable as Boolean Determina si el renglón corresponde a una

Asesores en Informática, S.A. de C.V.


40
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

columna que existe físicamente en la tabla a la


cual se asoció el PropertyGrid
FieldSize as Integer Largo del Campo en la Tabla (aplica solamente
para FieldType = pg_Texto)
FieldType as pg_FieldTypeConstants Tipo de dato almacenado en la propiedad Value
del Renglón, de acuerdo las constantes
permitidas
FormatString as String Formato para mostrar la propiedad Value del
Renglón
HasValueList as Boolean Determina si utiliza la colección ValueList para
restringir los valores permitidos para la
propiedad Value
Index as Integer Correlativo de Renglón dentro de la misma
categoría
InputControl as Determina que control visual se utiliza para la
pg_InputControlConstants lectura del valor del renglón.
Multiline as Boolean Determina si el renglón utiliza un TextBox de
más de una línea o no.
Prompt Título del Renglón
SelectExpression as String Instrucción select que utiliza el renglón para
llenar su lista de valores
Tag as Variant Propiedad para contener cualquier información
que se desee almacenar
TextValue as String Texto del Renglón (es la propiedad Value,
formateada para ser presentada en la forma de
ingreso de datos)
ValidateRule as String Función de VBScript que valida el valor del
renglón
ValidationErrorMsg as String Mensaje de Error que muestra cuando falla la
función de validación del renglón
Value as Variant Valor del Renglón
ValueList as rhPGValueItems Colección con la lista de valores asociada al
renglón
Visible as Boolean Determina si el renglón está visible para edición
VisibleLines as Integer Si el renglón está configurado con MultiLine =
True, entonces permite determinar el número
de lineas visibles en el Textbox.
rhPGValueItems Clase con la colección de la lista de valores de
los renglones
Count as Long Número de elementos en la colección
Item (vntIndexKey) as Elemento (vntIndexKey) de la colección
rhPGValueItem
Add (Value, Description As String, Agrega un elemento a la colección
[Tag], [sKey As String])
Clear () Elimina todos los elementos de la colección
Remove (vntIndexKey) Elimina el elemento (vntIndexKey)

rhPGValueItem Clase con cada valor de la lista de valores


Description as String Descripción de la propiedad Value de la Lista
Index as Integer Número correlativo de valor en la lista

Asesores en Informática, S.A. de C.V.


41
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Tag as Variant Propiedad para contener cualquier información


que se desee almacenar
Value as Variant Valor de la Lista

pg_EditModeConstants Constantes para el Modo de Edición de los


Renglones
pg_Edit = 0 Determina que el renglón es editable
pg_NoEdit = 1 Determina que el renglón NO es editable
pg_NoEditAndDisabled = 2 Determina que el renglón NO es editable y se
muestra deshabilitado

pg_FieldTypeConstants Constantes para los tipos de dato que pueden


almacenarse en la propiedad Value del Renglón
pg_Booleano = 6 Corresponde al tipo Bit de la base de datos
pg_Byte = 0 Corresponde al tipo TinyInt de la base de datos
pg_Doble = 4 Corresponde al tipo Float de la base de datos
pg_Entero = 1 Corresponde al tipo SmallInt de la base de datos
pg_EnteroLargo = 2 Corresponde al tipo Int de la base de datos
pg_Fecha = 5 Corresponde al tipo DateTime de la base de
datos
pg_Memo = 8 Corresponde al tipo Text de la base de datos
pg_Simple = 3 Corresponde al tipo Real de la base de datos
pg_Texto = 7 Corresponde al tipo VarChar de la base de datos

pg_InputControlConstants Constantes para el Control Visual que se


utilizará para leer el renglón
pg_ComboBox = 2 Utiliza un ComboBox
pg_DatePicker = 1 Utiliza el DatePicker OCX
pg_TextBox = 0 Utiliza el TextBox

Integración de Reportes elaborados con Crystal Reports

Visual HUR tiene tres modalidades de generar información para


ser impresa, la primera es generando Hojas de Microsoft Excel,
la segunda es integrando plantillas de Microsoft Word para
generar cartas y constancias y la tercera es elaborando reportes
utilizando Crystal Reports y luego integrándolos en el sistema.

Esta sección trata sobre el programa de configuración para


integrar los reportes elaborados al sistema. Se asume que el
usuario conoce como elaborar reportes con Crystal Reports, por
lo que únicamente se discutirá su integración al Visual HUR.

Asesores en Informática, S.A. de C.V.


42
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Para obtener información sobre Crystal Reports diríjase a su


página en Internet en [Link]

Inicialmente el administrador de la aplicación debe crear un


reporte que se conecte a la base de datos de Visual HUR, el
reporte creado debe conectarse a la base de datos utilizando
ADO.

Luego debe copiar el reporte creado al directorio "Reportes" que


existe en el directorio de instalación de Visual HUR.

A continuación debe ejecutarse el programa que permite


indicarle a Visual HUR los parámetros de generación del
reporte, así como el(los) rol(es) de seguridad que tendrán acceso
a él y los ejecutables en donde será visible. Para ello debe
ejecutarse el programa [Link] que se encuentra en el
directorio de instalación de Visual HUR en la carpeta de
Administración y luego la opción “Reportes Estáticos”.

El programa al ejecutarlo luce como la gráfica que se muestra a


continuación:

En la parte superior de la ventana, se presenta una barra de


herramientas que permite: agregar, modificar o eliminar una
configuración de reportes estáticos. Además permite actualizar
la vista, generar un script T-SQL y copiar una configuración
específica.

Asesores en Informática, S.A. de C.V.


43
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

La ventana se encuentra divida en una serie de paneles con


información relacionada con el reporte que se está integrando a
Visual HUR.

1. Panel con el listado de reportes integrados al Visual HUR (al seleccionar un reporte en
este panel, se muestra la información relacionada en los paneles 2, 3 y 4)

2. Panel con el listado de roles de seguridad que pueden utilizar el reporte seleccionado
en el panel 1.

3. Panel con el listado de programas ejecutables o módulos de Visual HUR que se puede
utilizar el reporte seleccionado en el panel 1.

4. Panel con el listado de parámetros para filtrado de información que se pueden utilizar
en el reporte seleccionado en el panel 1.

Panel de Reportes
En este panel aparece una tabla que muestra los reportes que
han sido integrados a Visual HUR, el panel muestra las
siguientes columnas:

Propiedad Descripción
SetID Identificador único de reporte
Nombre del Nombre o descripción del Reporte
Reporte
Nombre del Nombre del Reporte creado con Crystal Reports
Archivo RPT (archivo .RPT existente en el directorio Reportes de la
instalación de Visual HUR)
¿Archivo? Determina si la salida del reporte va a una ventana de
vista previa o si se exporta a un archivo. Los reportes
que generan los disquetes para la transferencia
bancaria o para el seguro social, tiene "Sí" en este
parámetro
Tipo Cursor Determina si la fuente de datos para el reporte proviene
de una vista o de un procedimiento almacenado en la
base de datos.
Nombre Nombre del procedimiento almacenado o vista de la
Procedimiento cual proviene la información para el reporte

La tabla donde se almacena esta información en la base de datos


es: rep_res_reportes_estaticos

Panel con Roles de Seguridad por Reporte


En este panel se listan los roles de seguridad para los cuales está
visible el reporte seleccionado en el panel 1. Para agregar roles

Asesores en Informática, S.A. de C.V.


44
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

de seguridad se posiciona el cursor en la fila (*) de la tabla y se


selecciona el rol deseado.

Panel con Módulos por Reporte


En este panel se listan los módulos de Visual HUR en los cuales
está visible el reporte seleccionado en el panel 1. Para agregar
módulos se posiciona el cursor en la fila (*) de la tabla y se
selecciona el módulo deseado.

Panel con Parámetros del Reporte


En este panel se listan los parámetros que se utilizan para
generar la información en el reporte seleccionado en el panel 1.
En esta tabla se muestran las siguientes columnas:

Propiedad Descripción
Orden Determina el ordenamiento de los parámetros en la
ventana de generación de reportes preelaborados de
Visual HUR.
Nombre del Nombre del campo o parámetro para la generación del
Campo reporte.
Referencia al Referencia al Diccionario de Listas de Valores
FieldKey (FieldKey).
Prompt Determina el texto que aparece como explicación del
campo en la ventana de generación de reportes
¿CodCia? Determina si el parámetro es el código de empresa. El
código de empresa es conocido de antemano por todos
los módulos al momento de ejecutarlos. Entonces
cuando se determina que un campo de la tabla
corresponde al código de empresa, la ventana de
generación de reportes lo envía de manera automática
sin preguntarlo al usuario
¿Fecha? Determina si el parámetro corresponde a la fecha de
generación de reporte que el usuario puede ingresar en
la ventana de generación de reportes
¿Mensaje? Determina si el parámetro corresponde al texto libre
que puede ser ingresado por el usuario en la ventana de
generación de reportes

Convención de para los nombres de campo:

 Cuando se utiliza un campo que proviene de una vista en la base datos se deben encerrar
entre llaves y se debe anteponer al nombre del campo, el nombre del proveedor de base de
datos utilizado para crear el reporte. Por ejemplo: {ado.inn_codcia} significa que se está

Asesores en Informática, S.A. de C.V.


45
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

utilizando ADO como proveedor para los datos el reporte y se desea filtrar utilizando el
código de empresa de la tabla cuyo nombre es INN_CODCIA.
 El segundo caso es cuando se utiliza un campo que es un parámetro de un procedimiento
almacenado en la base de datos. En este caso debe ponerse el nombre del parámetro tal y
como fue definido al crear el procedimiento (es sensitivo a las mayúsculas y minúsculas)
sin anteponer el signo de arroba (@)
 El tercer tipo de parámetros es cuando se desea filtrar el reporte utilizando una fórmula
creada a nivel del reporte, en este caso se utiliza el nombre de la fórmula y no se encierra
entre llaves ni se especifica el proveedor de base de datos, Por ejemplo,
FECHA_REPORTE para pasar al reporte la fecha de generación que se desea utilizar.

Ejemplo
Para aclarar la utilización de este programa de configuración se
desarrollará el siguiente ejemplo:

Suponiendo que se desea integrar a Visual HUR un reporte que


genera un listado de empleados activos con su fecha de ingreso y
su antigüedad en meses, agrupado por unidad administrativa.

Inicialmente se debe crear un reporte en Crystal Reports que


genere este listado, tal y como se muestra en la gráfica
siguiente:

Para crear este reporte se uso la siguiente instrucción SQL,


conectada a través de ActiveX Data Objects (ADO).

select emp_codcia, emp_codigo, emp_nombre_empleado_x_nombre,


uni_codigo, uni_nombre

Asesores en Informática, S.A. de C.V.


46
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

from pla_emp_nombre_emp_v
join pla_plz_plaza on plz_codcia = emp_codcia
and plz_codigo = emp_codplz
join pla_uni_unidad on uni_codcia = plz_codcia
and uni_codigo = plz_coduni
where emp_estado = 'A'

También se creó una fórmula para obtener la antigüedad del


empleado. La formula se nombró: "Antigüedad" y tiene la
siguiente instrucción:

DateDiff("M", {ado.emp_fecha_ingreso}, CurrentDate).

Luego se posicionaron los campos en el reporte y se le dio


formato. Se salvó el reporte en el directorio "Reportes" del
directorio de instalación de Visual HUR.

Luego se ejecutó el programa de configuración [Link] y


se creo un nuevo reporte en el panel 1 con la siguiente
información:

 SetID: El siguiente número libre


 Nombre o descripción del Reporte: Listado de Empleados Activos y sus Antigüedades
 Nombre del Reporte creado con Crystal Reports: listEmp_Antiguedad.RPT
 ¿Archivo? = No
 Tipo Cursor = Tabla o Vista
 Nombre del Procedimiento en blanco

En el panel 2 se dio permiso al rol "Administradores" y en el


panel 3 se ingreso el módulo de Expedientes de Personal. Esto
garantiza que todos los usuarios cuyo rol de seguridad sea
“Administradores” pueden ver el reporte cuando ejecutan el
módulo de expedientes de personal.

Para generar el reporte se decidió que debía poder filtrarse por


unidad administrativa, es decir, generar el listado para un
departamento o gerencia en particular y que también se debía
permitir filtrar por la fórmula Antigüedad, para que el reporte
genere un listado de aquellas personas cuya antigüedad sea
igual a un número o en general, que cumplan con la expresión
que se puede incluir en la ventana de generación de reportes.

Asesores en Informática, S.A. de C.V.


47
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Para ello en el panel 4 se ingreso la siguiente información:

Orde Nombre del Referencia al ¿CodCi ¿Fech ¿Mensa


Prompt
n Campo Fieldkey a? a? je?
1 {ado.emp_codcia} DefaultSmallInt CodCIA Sí No No
2 {ado.uni_codigo} Unidad Unidad Admin. No No No
Antigüedad
3 {@Antiguedad} DefaultSmallInt No No No
(meses)

Nótese que se agrega al inicio el campo {ado.emp_codcia} para


que el generador filtre automáticamente la empresa en la cual se
encuentra autenticado el usuario al ejecutar el Módulo de
Expedientes de Personal, además note que para este campo la
columna ¿Codcia? esta marcada con un "Si".

El código de unidad administrativa está definido en su


comportamiento por el FieldKey = "Unidad" que se encuentra en
el Diccionario de Listas de Valores.

El parámetro para filtrar la antigüedad se escribió con la sintaxis


de Crystal como {@Antigüedad} y está asociado a un FieldKey
llamado "DefaultSmallInt" que permite manipular número
enteros entre -32766 y 32767.

Una vez se realizó esta configuración se puede iniciar el módulo


de Expedientes de Personal y generar el reporte.

Creación de Conjuntos de Datos para el Asistente


de Generación de Hojas de Excel
Visual HUR tiene tres modalidades de generar información para
ser impresa, la primera es generando Hojas de Microsoft Excel,
la segunda es integrando plantillas de Microsoft Word para
generar cartas y constancias y la tercera es elaborando reportes
utilizando Crystal Reports y luego integrándolos en el sistema.

Esta sección trata sobre el programa para la creación de los


conjuntos de datos que le permiten al asistente generar Hojas de
Microsoft Excel para la creación de consultas dinámicas de la
base de datos.

Asesores en Informática, S.A. de C.V.


48
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Creación de una vista en el servidor de base de datos


El primer paso es crear una vista en la base de datos que
permita obtener la información que se requiere para cada
conjunto de datos. Puede obtener mayor información sobre el
procedimiento para crear vistas en la base de datos consultando
el manual en línea de Microsoft SQL Server.

Por ejemplo, se creará un conjunto de datos para generar


estadísticas simples sobre las causas de las incapacidades
registradas en la base de datos:

create view estadisticas_incapacidades as


select ixe_codcia,
year(ixe_inicio) ixe_anio_inicio,
month(ixe_inicio) ixe_mes_inicio,
txi_descripcion ixe_tipo,
count(*) ixe_frecuencia,
sum(ixe_dias_incapacitado) ixe_dias_persona,
avg(ixe_dias_incapacitado) ixe_dias_promedio
from pla_ixe_incap_empleado
join pla_txi_tipo_incapacidad
on txi_codcia = ixe_codcia and txi_codigo = ixe_codtxi
group by ixe_codcia, year(ixe_inicio),
month(ixe_inicio), txi_descripcion

Esta vista retorna el número de eventos de incapacidad, la suma


total de días de incapacidad y el promedio de días de
incapacidad por tipo de incapacidad, y cada mes del año en cada
empresa existente en la base de datos.

Integración del conjunto de datos a Visual HUR


A continuación debe ejecutarse el programa que permite
crear o modificar los conjuntos de datos para el asistente
de generación de consultas dinámicas de Visual HUR. Para ello
debe ejecutarse el programa [Link] que se encuentra en
el directorio de instalación de Visual HUR y luego seleccionar la
opción “Conjuntos de Datos”.

El programa al ejecutarlo luce como la gráfica que se muestra a


continuación:

Asesores en Informática, S.A. de C.V.


49
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

La forma muestra una barra de herramientas en la parte


superior, por medio de la cual es posible agregar, modificar o
eliminar conjuntos de datos. Además permite actualizar la vista,
generar un script, copiar un conjunto de datos y mostrar una
forma para prueba de los conjuntos de datos desde dentro del
Módulo de Parametrización y Configuración.

La ventana se encuentra divida en una serie de paneles con


información relacionada con la el conjunto de datos que se está
integrando a Visual HUR.

1. Panel con el listado de conjuntos de datos creados e integrados al asistente de


generación de consultas dinámicas.

2. Panel con el listado de áreas o agrupaciones de campos contenidas en el conjunto de


datos seleccionado en el panel 1.

3. Panel con el listado de módulos en donde se puede utilizar el conjunto de datos


seleccionado en el panel 1.

4. Panel con el listado de roles de seguridad que puede utilizar el conjunto de datos
seleccionado en el panel 1 para generar consultas.

5. Panel con el listado de campos o columnas contenidos en cada área o agrupación del
conjunto de datos seleccionado en el panel 1.

Asesores en Informática, S.A. de C.V.


50
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Panel de Conjuntos de Datos (Panel 1)


En este panel aparece una tabla que muestra los conjuntos de
datos creados e integrados al Visual HUR, el panel muestra las
siguientes columnas:

Propiedad Descripción
DataSet ID Identificador único del conjunto de datos
Nombre del Nombre que se muestra en el asistente para generación
Conjunto de de consultas
Datos
Destino Determina el destino de las consultas generadas con
este conjunto de datos (actualmente sólo está
disponible el destino Excel Worksheet, en versiones
futuras se podrán seleccionar otros destinos).
Nombre de la Nombre de la tabla o vista en la base de datos que
Tabla o Vista de la retorna los registros que se utilizarán para crear el
base de datos conjunto de datos
Agrega al Where Permite indicar una expresión SQL que se agrega a la
cláusula WHERE de la instrucción SELECT que retorna
los registros del conjunto de datos
Descripción del Texto explicativo del tipo de información que se puede
conjunto de datos generar con este conjunto de datos. Se muestra al
usuario al seleccionar un conjunto en el asistente de
creación de consultas.
Nombre Default Nombre sugerido por defecto al crear una consulta
basada en este conjunto de datos
Título Default Título para la consulta que se sugiere por defecto al
crear una consulta basada en este conjunto de datos
Subtítulo Default Subtítulo para la consulta que se sugiere por defecto al
crear una consulta basada en este conjunto de datos

La tabla donde se almacena esta información es: wrp_set_sets

Continuando con el ejemplo que se está desarrollando, la


información que se debe ingresar en este panel es la siguiente:

Columna del
Valor a ingresar
Panel
DataSet ID rhds_acc99
Nombre Información Estadística sobre Incapacidades
Destino Excel Worksheet
Nombre Tabla o estadisticas_incapacidades

Asesores en Informática, S.A. de C.V.


51
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Vista
Agrega al Where ixe_codcia = <<CODCIA>>
Este conjunto de datos permite obtener información sobre el número
Descripción del de incapacidades, el total de días de incapacidad y el promedio de días
Conjunto de Datos de incapacidad por evento, para cada tipo de incapacidad definido
durante cada mes del año.
Nombre Default Nueva Consulta de Incapacidades
Título Default Título de la Nueva Consulta de Incapacidades
Subtitulo Default Subtítulo de la Nueva Consulta de Incapacidades

Panel con Áreas o Agrupaciones de las columnas de la vista


contenidas en el Conjunto de Datos (panel 2)
En este panel se listan las áreas o agrupaciones en las cuales se
presentarán los campos de la vista al usuario para la generación
de la consulta. Las columnas que deben llenarse en este panel
para cada área son las siguientes:

Propiedad Descripción
Area ID Identificador único de cada área del conjunto de datos
Orden Ordenamiento de áreas para presentarlas en el
asistente de generación de consultas
Prompt Nombre del área, el cuál aparece en el asistente de
generación de consultas

Continuando con el ejemplo que se está desarrollando, la


información que se debe ingresar en este panel es la siguiente:

Columna del
Valor a ingresar
Panel
Área ID 1
Orden 1
Prompt Incapacidades

Note que debe seleccionar el área recién creada para agregar los campos de
la vista en el panel 5
Panel con Módulos para Utilización del Conjunto de Datos (panel 3)
En este panel se listan los módulos de Visual HUR en los cuales
está visible el conjunto de datos seleccionado en el panel 1. Para
agregar módulos se posiciona el cursor en la fila (*) de la tabla y
se selecciona el módulo deseado.

Asesores en Informática, S.A. de C.V.


52
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Para fines del ejemplo que se está desarrollando debe agregarse


el módulo de Acciones de Personal a este panel

Panel con Roles de Seguridad con permiso para utilizar el Conjunto


de Datos (panel 4)
En este panel se listan los roles de seguridad para los cuales está
visible el conjunto de datos seleccionado en el panel 1. Para
agregar roles de seguridad se posiciona el cursor en la fila (*) de
la tabla y se selecciona el rol deseado.

Para fines del ejemplo que se está desarrollando debe agregarse


el rol Administradores a este panel.

Panel con los Campos de la Vista contenidas en el Conjunto de Datos


(panel 5)
En este panel se listan los campos contenidos en la vista y que el
conjunto de datos mostrará a los usuarios para que generen sus
consultas a partir de ellos. En esta tabla se muestran las
siguientes columnas:

Propiedad Descripción
Field Name Nombre del campo en la vista de la base de datos (esta
es la llave única que identifica al campo en el conjunto
de datos)
Field ID Referencia a la tabla de descripción de campos
(FieldKey).
Prompt Título del campo en el asistente de generación de
consultas
Orden Determina el ordenamiento de los campos en la
ventana de selección del campos del asistente de
generación de consultas de Visual HUR
GroupBy Determina si esta columna puede utilizarse para la
cláusula GROUP BY de la instrucción SELECT que
retorna los registros del conjunto de datos
Filter In Determina el mecanismo para realizar el filtrado de la
información, las opciones son en la cláusula WHERE o
en la cláusula HAVING. Normalmente todos los campos
se filtran en la cláusula WHERE
Replace Values Determina si al momento de generar la consulta se
muestra el código o la descripción, aplica para aquellos
campos cuyo Field ID apunta a un campo que tiene
definida una lista de valores
SQL Expression Permite ingresar una expresión SQL para agregar a las
columnas de la vista

Asesores en Informática, S.A. de C.V.


53
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Continuando con el ejemplo desarrollado, en este panel se


debería ingresar la siguiente información:

Orde Group Filter Replace


Field Name Field ID Prompt
n By In Values
DefaultSmallI
ixe_anio_inicio Año 1 Si Where No
nt
DefaultSmallI
ixe_mes_inicio Mes 2 Sí Where No
nt
ixe_tipo DefaultString Tipo Incapacidad 3 Sí Where No
DefaultSmallI
ixe_frecuencia Frecuencia 4 Sí Where No
nt
ixe_dias_person DefaultSmallI
Días Incapacidad 5 Sí Where No
a nt
ixe_dias_promed DefaultSmallI Promedio Días
6 Sí Where No
io nt Evento

Tome en cuenta que la columna ixe_codcia de la vista no se


agregó al listado de campos, ya que su uso para filtrar la
empresa se definió en la configuración “Agregar al Where” del
panel 1.

Todos los campos tiene Group By = Si y Filter In = Where. Esta


configuración es la que se requiere para cualquier campo de una
vista.

Una vez se realizó esta configuración se puede iniciar el módulo


de Acciones para generar la consulta.

Integración de Plantillas de Word para generar


Cartas y Constancias
Visual HUR tiene tres modalidades de generar información para
ser impresa, la primera es generando Hojas de Microsoft Excel,
la segunda es integrando plantillas de Microsoft Word para
generar cartas y constancias y la tercera es elaborando reportes
utilizando Crystal Reports y luego integrándolos en el sistema.

Esta sección trata sobre el programa de configuración para


integrar plantillas de Microsoft Word para la generación de
cartas y constancias para los empleados de la empresa. Está
fuera de este documento discutir el procedimiento para crear

Asesores en Informática, S.A. de C.V.


54
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

plantillas de Word, para ello diríjase al manual de Microsoft


Word para obtener una explicación sobre como crear este tipo de
documentos.

Creación de la Plantilla de Microsoft Word


Inicialmente el administrador de la aplicación debe crear una
plantilla de Microsoft Word (un archivo con extensión .DOT) que
cumpla con las siguientes condiciones:

 Debe ser posible crear una vista en la base de datos en la que cada registro debe coincidir
con una constancia o carta que se desea generar. Esto significa que no puede crearse una
vista en donde más de un registro sea requerido para formar el documento (no es posible
generar cartas o constancias en donde la vista genera una relación “maestro/detalle”).
 La plantilla debe tener el texto que será generado en cada carta o constancia, no
importando si ocupa una o más páginas por cada una.
 Puede utilizarse toda la gama de opciones de presentación y formateo válidas para los
documentos de Word.
 La Plantilla de Word no debe contener macros que sean ejecutados al crear documentos a
partir de la plantilla.
 Para ubicar los campos de la vista dentro del texto de la plantilla se utilizará la siguiente
notación:
<%=nombre_columna_de_la_vista%>
Se identifica la ubicación de los campos de la vista encerrando su nombre entre los
signos "<%=" y "%>" sin espacios en blanco dentro de los delimitadores. Por ejemplo:

<%=emp_primer_nom%> (inserta en este lugar el


primer nombre del empleado)

A continuación se muestra un ejemplo de una plantilla creada


para este fin:

Asesores en Informática, S.A. de C.V.


55
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Como puede verse en el ejemplo, los campos que corresponden a


la vista de la base de datos se han encerrado entre los
delimitadores "<%=" y "<%>" sin espacios en blanco u otros
caracteres dentro de ellos. Note también que se les puede
asignar formato, como tipo de letra, tamaño o alguna
decoración.

Note también que la página tiene encabezado y una imagen al


fondo de la página al estilo de una marca de agua.

Asesores en Informática, S.A. de C.V.


56
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Esta plantilla debe salvarse en el directorio "Plantillas" del


directorio de instalación de Visual HUR.

Creación de una vista en el servidor de base de datos


El siguiente paso es crear una vista en la base de datos que
permita obtener la información que se requiere para la
generación de las constancias. Puede obtener mayor información
sobre el procedimiento para crear vistas en la base de datos
consultando el manual en línea de Microsoft SQL Server.

Siguiendo el ejemplo mostrado en el paso anterior, se debe crear


la siguiente vista en la base de datos:

CREATE VIEW ConstanciaSimpleTrabajo AS


SELECT CIA_CODIGO AS codcia,
CIA_DES AS nombre_empresa,
EMP_CODIGO AS cst_codemp,
emp_nombres_apellidos nombre_empleado,
EMP_PRIMER_APE AS cst_primer_ape,
EMP_SEGUNDO_APE AS cst_segundo_ape,
EMP_APELLIDO_CAS AS cst_apellido_cas,
EMP_PRIMER_NOM AS cst_primer_nom,
EMP_SEGUNDO_NOM AS cst_segundo_nom,
convert(varchar, EMP_FECHA_INGRESO, 103) AS fecha_ingreso,
convert(varchar, convert(money, EMP_SALARIO),1) AS salario,
EMP_SALARIO cst_salario,
EMP_FECHA_INGRESO,
cia_rep_nombre AS firmante
FROM SIDE_GEN_CIA
INNER JOIN PLA_EMP_EMPLEADO ON CIA_CODIGO = EMP_CODCIA
where emp_estado = 'A'

Esta vista retorna un registro por cada empleado con la


información requerida por la plantilla de Word.

Note que los nombres de las columnas de la vista coinciden con los campos
insertados en la plantilla de Word.
Note también que en la plantilla aparecen dos columnas que no
corresponden a campos de la vista, <%=fecha_letras%> y <%=destinatario
%>, estas columnas serán leídas en al momento de generar la constancia
como veremos más adelante.
Integración de la Plantilla a Visual HUR
A continuación debe ejecutarse el programa que permite
indicarle a Visual HUR los parámetros de generación de las
cartas y constancias. Para ello debe ejecutarse el programa
[Link] que se encuentra en el directorio de instalación de

Asesores en Informática, S.A. de C.V.


57
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Visual HUR en la carpeta de Administración y luego seleccionar


la opción “Reportes de Word”.

El programa al ejecutarlo luce como la gráfica que se muestra a


continuación:

La ventana presenta una barra de herramientas en la parte


superior, la que permite: agregar, modificar y eliminar una
plantilla de Word integrada a Visual HUR. Además, es posible
actualizar la vista, generar un script T-SQL y copiar una
configuración.

La ventana se encuentra divida en una serie de paneles con


información relacionada con la plantilla que se está integrando a
Visual HUR.

1. Panel con el listado de plantillas integrados al Visual HUR (al seleccionar un plantilla
en este panel, se muestra la información relacionada en el panel 2)

2. Panel con el listado de parámetros para filtrado de información que se pueden utilizar
en con la plantilla seleccionada en el panel 1.

3. Panel con el listado de roles de seguridad que pueden utilizar el reporte seleccionado
en el panel 1.

4. Panel con el listado de programas ejecutables o módulos de Visual HUR que se puede
utilizar el reporte seleccionado en el panel 1.

Asesores en Informática, S.A. de C.V.


58
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Panel de Plantillas de Word


En este panel aparece una tabla que muestra las plantillas que
han sido integradas a Visual HUR, el panel muestra las
siguientes columnas:

Propiedad Descripción
SetID Identificador único de la plantilla
Nombre del Nombre o descripción del Reporte (nombre que se
Reporte muestra en la ventana de generación de cartas y
constancias)
Nombre de la Nombre de la Plantilla creado con Microsoft Word
Plantilla (archivo .DOT existente en el directorio Plantillas de la
instalación de Visual HUR)
Vista / Nombre de la vista en la base de datos o del
Procedimiento procedimiento almacenado que retorna los registros
que se utilizarán para generar la carta o constancia.
La tabla en la base de datos donde se almacena esta información
es: wdo_dot_templates

Panel con Parámetros de Filtrado para la Plantilla


En este panel se listan los parámetros con los cuales se puede
filtrar la información de la vista para generar las cartas o
constancias a través de una planilla de Word seleccionada en el
panel 1. En esta tabla se muestran las siguientes columnas:

Propiedad Descripción
Orden Determina el ordenamiento de los parámetros en la
ventana de generación de cartas y constancias de
Visual HUR.
Nombre del Se debe especificar el nombre de la columna de la vista.
campo Se puede especificar un nombre de columna inexistente
en la vista pero en este caso se debe marcar la columna
"Lee al Generar" con "Sí"
Referencia al Referencia al Diccionario de Listas de Valores
FieldKey (FieldKey)
Prompt Determina el texto que aparece como explicación del
campo en la ventana de generación de cartas y
constancias
¿Filtro? Determina si un campo aparece en la ventana de
generación de cartas y constancias y se habilita para
filtrar a través de él
¿CodCia? Determina si el parámetro es el código de empresa. El
código de empresa es conocido de antemano por todos
los módulos al momento de ejecutarlos. Entonces

Asesores en Informática, S.A. de C.V.


59
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

cuando se determina que un campo de la vista


corresponde al código de empresa, la ventana de
generación de cartas y constancias lo envía de manera
automática sin preguntarlo al usuario.
¿Visible? Determina si la columna se muestra en la tabla de
selección de registros para la generación de cartas y
constancias
¿Lee al Generar? Determina si el parámetro no corresponde a ninguna
columna de la vista y debe ingresarse por el usuario en
el momento de la generación de las cartas o
constancias
¿Conv. Letras? Determina si el campo debe convertirse utilizando las
funciones del objeto [Link] que se
halla en el directorio COM+ de la instalación de Visual
HUR. Este objeto permite convertir una fecha o un
valor numérico o el número de cédula de una persona a
letras.

Continuando con el ejemplo desarrollado, en el panel 3 se


debería ingresar la siguiente información:

¿Conv
¿Lee al
Orde Nombre del Referencia al ¿Filtr ¿CodCi ¿Visibl .
Prompt Gener
n Campo Fieldkey o? a? e? Letra
ar?
s?
1 codcia DefaultInt Empresa No Sí No No No
nombre_empre Nombre
2 DefaultString No No No No No
sa Empresa
Código de
3 cst_codemp Empleado Sí No Sí No No
Empleado
nombre_emple Nombre
4 DefaultString No No Sí No No
ado Empleado
Fecha
5 fecha_ingreso DefaultDate No No Sí No No
Ingreso
DefaultCurren
6 salario Salario No No Sí No No
cy
7 firmante DefaultString Firmante No No No No No
EmpPrimerAp Primer
8 cst_primer_ape Sí No No No No
e Apellido
cst_segundo_a EmpSegundoA Segundo
9 Sí No No No No
pe pe Apellido
Apellido
cst_apellido_ca EmpApellidoC
10 de Sí No No No No
s as
Casada
cst_primer_no EmpPrimerNo Primer
11 Sí No No No No
m m Nombre

Asesores en Informática, S.A. de C.V.


60
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

cst_segundo_n EmpSegundo Segundo


12 Sí No No No No
om Nom Nombre
emp_fecha_ing EmpFchIngres Fecha de
13 Sí No No No No
reso o Ingreso
DefuaultCurre
14 cst_salario Salario Sí No No No No
ncy
Fecha de
15 fecha_letras DefaultString Sí No Sí Sí No
Carta
Destinati
16 destinatario DefaultString Sí No Sí Sí No
ario

Nótese que se agrega al inicio el campo "codcia" para que el generador


filtre automáticamente la empresa en la cual se encuentra autenticado el
usuario al ejecutar el Módulo de Expedientes de Personal, además note que
para este campo la columna correspondiente esta marcada con un "Si".
Los campos que tienen "Sí" en la columna "¿Filtro?" son aquellas
por las cuales el usuario puede establecer filtros en la pantalla
de generación de cartas y constancias.

Los campos que tienen "Sí" en la columna "¿Visible?" son


aquellos que serán visible en la tabla que muestra el resultado
del filtro aplicado y que permite determinar que constancias
serán generadas.

Los campos que tienen "Sí" en la columna "¿Lee al Generar?" son


aquellos campos que están en la plantilla pero que no forman
parte de la vista creada, es decir se leen al momento de la
generación de la carta o constancia.

Una vez se realizó esta configuración se puede iniciar el módulo


de Expedientes de Personal y generar el reporte.

Panel con Roles de Seguridad por Reporte


En este panel se listan los roles de seguridad para los cuales está
visible el reporte seleccionado en el panel 1. Para agregar roles
de seguridad se posiciona el cursor en la fila (*) de la tabla y se
selecciona el rol deseado.

Para fines del ejemplo que se está desarrollando debe agregarse


el rol Administradores a este panel.

Panel con Módulos por Reporte


En este panel se listan los módulos de Visual HUR en los cuales
está visible el reporte seleccionado en el panel 1. Para agregar
módulos se posiciona el cursor en la fila (*) de la tabla y se
selecciona el módulo deseado.

Asesores en Informática, S.A. de C.V.


61
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Para fines del ejemplo que se está desarrollando debe agregarse


el módulo de Expedientes de Personal a este panel

Integración de Procedimientos Almacenados o


DTS ejecutados desde Visual HUR.
Esta sección trata sobre el programa de configuración para
integrar a Visual HUR la ejecución de procedimientos
almacenados o DTS (Microsoft SQL Server, Data Transformation
Service).

El objetivo de esta configuración es permitirle al implantador la


integración de la ejecución de procesos en el interfaz de Visual
HUR, de tal manera que sean los propios usuarios los que
ejecuten a su criterio, dichos procesos.

Si desea más información sobre la creación de procedimientos


almacenados o DTS, diríjase a la documentación de SQL Server.

Integración a Visual HUR


Para realizar la integración se debe ejecutar el programa
[Link] que se encuentra en el directorio de
instalación de Visual HUR en la carpeta de Administración
y luego seleccionar la opción “Store Proc. & DTS”.

Al ejecutar esta opción se muestra una pantalla similar a la


siguiente gráfica.

La forma que se muestre tiene una barra de herramientas en la


parte superior que permite: agregar, modificar y eliminar

Asesores en Informática, S.A. de C.V.


62
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

configuraciones. Además permite actualizar la vista y generar


un script T-SQL con la configuración.

La ventana se encuentra divida en una serie de paneles con


información relacionada con el procedimiento almacenado que
se está integrando a Visual HUR.

1. Panel con el listado de procedimientos integrados al Visual HUR (al seleccionar un


configuración en este panel, se muestra la información relacionada en el panel 2)

2. Panel con el listado de parámetros que serán enviados al procedimiento almacenado


seleccionado en el panel 1.

3. Panel con el listado de roles de seguridad que pueden ejecutar el procedimiento


seleccionado en el panel 1.

4. Panel con el listado de programas ejecutables o módulos de Visual HUR desde los
cuales se puede ejecutar el procedimiento seleccionado en el panel.

Panel de Procedimientos Configurados


En este panel aparece una tabla que muestra los procedimientos
que han sido integradas a Visual HUR, el panel muestra las
siguientes columnas:

Propiedad Descripción
SetID Identificador único del procedimiento
Nombre del Nombre o descripción del Procedimiento o DTS
Proceso (nombre que se muestra en la ventana de generación
en Visual HUR)
Nombre Nombre en la base de datos del Procedimiento o DTS
Procedimiento / que se está integrando a Visual HUR
DTS
Tipo Cursor Campo de lectura, que muestra el tipo de objeto
seleccionado en la columna anterior.

La tabla en la base de datos donde se almacena esta información


es: rep_sp_dts_procedures

Panel con Parámetros del Procedimiento Almacenado


En este panel se listan los parámetros que se enviarán al
procedimiento almacenado que se desea ejecutar. En esta tabla
se muestran las siguientes columnas:

Propiedad Descripción
Orden Determina el ordenamiento de los parámetros en la

Asesores en Informática, S.A. de C.V.


63
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

ventana de ejecución de procedimientos y DTS


Nombre del Nombre del parámetro del procedimiento almacenado
Campo
Referencia al Referencia al Diccionario de Listas de Valores
FieldKey (FieldKey).
Prompt Determina el texto que aparece como explicación del
campo en la ventana de ejecución de procedimientos y
DTS
¿CodCia? Determina si el parámetro es el código de empresa. El
código de empresa es conocido de antemano por todos
los módulos al momento de ejecutarlos. Entonces
cuando se determina que un campo de la tabla
corresponde al código de empresa, la ventana de
generación de reportes lo envía de manera automática
sin preguntarlo al usuario
¿Fecha? Determina si el parámetro corresponde a la fecha de
ejecución que el usuario puede ingresar en la ventana
de Visual HUR
¿Mensaje? Determina si el parámetro corresponde al texto libre
que puede ser ingresado por el usuario en la ventana de
ejecución de procedimientos o DTS

Panel con Roles de Seguridad para la Ejecución del Procedimiento o


DTS
En este panel se listan los roles de seguridad para los cuales está
visible el procedimiento seleccionado en el panel 1. Para agregar
roles de seguridad se posiciona el cursor en la fila (*) de la tabla
y se selecciona el rol deseado.

Panel con Módulos desde los cuales se puede ejecutar el


Procedimiento o DTS
En este panel se listan los módulos de Visual HUR en los cuales
está visible el procedimiento seleccionado en el panel 1. Para
agregar módulos se posiciona el cursor en la fila (*) de la tabla y
se selecciona el módulo deseado.

Asesores en Informática, S.A. de C.V.


64
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Configuración del Cálculo


de Planillas
Utilización de la herramienta de
configuración para crear cálculos de
planilla

V
isual HUR provee un mecanismo flexible para la
configuración de los cálculos requeridos para obtener los
salarios de los empleados. Este mecanismo está
compuesto por un mecanismo de creación de "cursores" para los
procesos de cálculo y la posibilidad de definir factores o fórmulas
para realizar los cálculos a partir de los cursores definidos.

Para la definición de cursores se utiliza el Módulo de


Parametrización y Configuración, mientras que para la definición
de fórmulas se puede realizar dentro del Módulo de
Administración de Salarios o dentro del Módulo de
Parametrización y Configuración

En este capítulo se discutirá en primer lugar el uso de este


mecanismo y posteriormente se desarrollará un ejemplo práctico
del cálculo de una planilla. Los temas tratados en esta sección
son:

 Creación de Cursores para Cálculo de Planillas


 Configuración del Cálculo de Planillas
 Tabla temporal y administración de factores o fórmulas de cálculo
 Ingreso, modificación y eliminación de factores o fórmulas de cálculo
 ¿Cómo funciona el programa de generación de planillas?
 ¿Cómo funciona el programa de autorización de planillas?
 Documentación de la Clase Factores y la Clase Agrupadores
 Ejemplo de configuración de planillas

En este capítulo se tratan temas relacionados con Microsoft


Visual Basic Script, que es el lenguaje en que se escriben las

Asesores en Informática, S.A. de C.V.


65
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

fórmulas o factores que se ejecutan para calcular salarios. Si


desea información sobre este lenguaje visite el sitio Microsoft
Windows Script Technologies. Adicionalmente se requieren
conocimientos previos de T-SQL que es el lenguaje de
manipulación de datos requerido para definir los cursores, sobre
este tema consulte el Manual en Línea de Microsoft SQL Server.

Creación de Cursores para el Cálculo de Planillas


La creación de cursores es indispensable para la realización de
los cálculos de planilla, ya que estos permiten obtener de la base
de datos la información que se requiere para ser procesada a
nivel de los factores o fórmulas de cálculo de salarios.

Existen tres tipos de cursor que pueden crearse:

 El cursor principal que define el universo de empleados que pueden participar de un


cálculo de planillas.
 Los cursores para obtener información y que se abren en modo de lectura exclusivamente.
 Los cursores para almacenar resultados de los cálculos y que se abren en modo de
lectura y escritura.

Estos tipos de cursor son creados a través del programa


[Link] que se encuentra en el directorio
Administración de la instalación de Visual HUR.

La opción dentro del módulo al ejecutarla luce como la gráfica


que se muestra a continuación:

Asesores en Informática, S.A. de C.V.


66
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

La ventana se encuentra divida en una serie de paneles con


información relacionada con los procesos de cálculo existentes
en Visual HUR.

1. Selector de Empresa. Permite cambiar la empresa para modificar los cursores


correspondientes a ella.

2. Panel con el listado de procesos de cálculo. Se muestran los dos procesos que son
implementados dentro de Visual HUR: fDefCalculo que relaciona el proceso de
cálculo de planillas con los cursores creados.

3. Panel con cada cursor definido para el proceso seleccionado en el panel 1.

4. Barra de herramientas para el proceso seleccionado en el panel 1. Permite agregar o


eliminar un cursor y navegar a través de ellos.

Nótese que en el panel 1 aparecen dos botones, "Agregar


Proceso" y "Generar Archivo". El botón de agregar procesos
permite crear un nuevo proceso y definir sus cursores, esta
acción es para uso exclusivo de personal de ASEINFO ya que es
necesario implementar en el código fuente la utilización de un

Asesores en Informática, S.A. de C.V.


67
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

nuevo proceso para que al agregarlo en este programa de


configuración se incluya dentro de algún Módulo de Visual HUR.

El botón "Generar Archivo" permite exportar a un archivo texto


el conjunto de cursores definidos para un proceso, esta
exportación permite que se pueda respaldar la información de
configuración.

Panel de Procesos
El objetivo de este panel es seleccionar el proceso del cual se
desean crear, modificar o eliminar cursores. Simplemente de un
clic sobre el proceso que desea configurar y muévase al panel 3
para navegar a través de los cursores creados o para agregar o
eliminar un cursor.

Panel de Cursores del Proceso Seleccionado


En este panel puede consultarse o modificarse la información de
cada cursor perteneciente al proceso seleccionado. El panel
consta de la siguiente información:

 Parámetro: Corresponde al nombre del cursor tal y como aparece en la pantalla de


configuración de fórmulas o factores.
 Orden: Ordenamiento de los cursores de cada proceso.
 Instrucción SELECT para definición de campos (no retorna registros): Acá se especifica
una instrucción SELECT que permite construir el listado de campos que posee el cursor,
preferentemente debe ser un SELECT que no retorne registros, ya que se utiliza
exclusivamente para determinar el listado de campos del cursor. En la pantalla de
definición de los factores o fórmulas de cálculo permite obtener el listado de campos que
se muestran al seleccionar un cursor.
 Instrucción SELECT para ejecutar el cálculo: Se especifica una instrucción SELECT que
retorna los registros que se desean obtener y que se procesarán con las fórmulas de cálculo
de planillas. Debe tener un listado de campos igual al de la instrucción SELECT anterior,
esta instrucción es la que efectivamente se ejecuta cuando se está realizando el proceso de
cálculo.
Note que en la cláusula WHERE de esta instrucción SELECT se pueden especificar las
secuencias <<CODCIA>>, <<CODTPL>> y <<CODPLA>> que al momento de ejecutar
los cálculos de planilla son sustituidas por el código de la empresa, código del tipo de
planilla y código del período de pago de la planilla que se está ejecutando.
 Cláusula ORDER BY de la instrucción SELECT anterior: Se especifica el listado de
campos que se incluirán en la cláusula ORDER BY del SELECT que retorna los registros
para la ejecución del cálculo del proceso.
 Nombre de los campos a reemplazar: En este grupo de información textual se debe
especificar cual es el nombre de los campos que se requieren para hacer las sustituciones
de las secuencias <<CODCIA>>, <<CODTPL>> y <<CODPLA>>.

Asesores en Informática, S.A. de C.V.


68
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Se requiere especificar cual es el nombre del campo que almacena el código de la empresa
(CODCIA), el código del tipo de planilla (CODTPL), el código del período de pago de la
planilla (CODPLA) y el código del empleado (CODEMP). Si alguno de estos campos no
existe en el SELECT especificado, simplemente se deja en blanco.
 Este Cursor es el Principal para Generar el Cálculo: Determina si este es el cursor que
define el universo de empleados existentes y que podrían participar de un cálculo.
Solamente puede haber un cursor marcado como el Principal.
 Este Cursor es Modificable al momento de Calcular la Planilla: Determina si el cursor se
abre en modo de escritura o no. Los cursores que tienen marcada esta opción son
susceptibles de realizar inserciones, actualizaciones o eliminaciones de registros.
Barra de Herramientas para los Cursores
En este panel se encuentra un botón para agregar nuevos
cursores y uno para eliminar el cursor que se está viendo en el
panel 2. Además aparecen cuatro botones de navegación por los
cursores el primero para ir al primer cursor definido, el segundo
para retroceder al cursor anterior, el tercero para avanzar al
siguiente cursor y el cuarto para ir al último cursor existente.

Configuración del Cálculo de Planillas: Ventana de Administración de


Factores
Para configurar el cálculo de planillas se debe utilizar la ventana
de creación de Tipos de Planilla en el módulo de Parametrización
y Configuración o en el Módulo de Salarios, en la barra de
herramientas puede verse un icono (calculadora color verde), el
cual al presionarlo muestra la configuración para el cálculo del
tipo de planilla seleccionado. Ver gráfica que se muestra a
continuación:

Al presionar el botón de configuración del cálculo se muestra la


ventana que aparece en la siguiente página

Esta ventana contiene el listado de factores o fórmulas de


cálculo requeridas para obtener los salarios de los empleados en
cada tipo de planilla definido. La ventana está dividida en una
serie de paneles los cuales se listan a continuación:

Asesores en Informática, S.A. de C.V.


69
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

1. Barra de Herramientas para la manipulación de factores.

2. Panel con información sobre la tabla temporal en donde se almacenan los resultados
de las fórmulas de cálculo de la planilla

3. Determina el factor que se utiliza como filtro para los empleados que participan de
este cálculo de planillas.

4. Panel con el listado de factores o fórmulas definidas para este cálculo de planillas

5. Panel con la asociación de cada factor a un tipo de ingreso, descuento o reserva


definido.

Barra de Herramientas para manipular Factores (panel 1)


La barra de herramientas permite:

 Agregar, modificar o eliminar el factor seleccionado en el panel 4.


 Generar un archivo texto con los factores creados para este cálculo de planillas en un
archivo .BAS
 Botones para subir y bajar el factor seleccionado en el panel 4, definiendo de esta manera
la precedencia en la ejecución de los factores.
 Botones para marcar todos o desmarcar todos o invertir la marca de todos los factores
del panel 4. La marca que aparece a la izquierda del nombre del factor en el panel 4
determina si cada factor se almacena o no en la tabla temporal definida en el panel 2.

Asesores en Informática, S.A. de C.V.


70
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Panel sobre la Tabla Temporal para Almacenar los resultados de la ejecución de los
factores de cálculo (panel 2)
Este panel muestra el listado de campos que serán almacenados
en una tabla temporal. Los campos que se muestran corresponde
a aquellos factores del panel 4 que están marcados para ser
almacenados (cheque que aparece a la izquierda del nombre del
factor).

El uso principal de la tabla temporal es permitirle al


administrador de Visual HUR poder corroborar que las fórmulas
están correctas, sin embargo es importante aclarar que esta
tabla temporal no se utiliza para generar el historial de ingresos
y descuentos que luego es reflejado en los reportes del sistema.

Además en la parte superior del panel se puede ver un campo


llamado "Prefijo" que permite definir una cadena de caracteres
que serán antepuestas al nombre del factor para formar el
nombre del campo en la tabla.

También se puede ingresar el nombre de la tabla temporal en


donde se almacenarán los resultados de la ejecución de la
formula.

Se requiere que por lo menos se salve un factor en la tabla (no


pueden estar todos sin marcar).

En la parte inferior del panel puede verse un botón "Generar la


Tabla", al presionar este botón la ventana creará la tabla en la
base de datos con los factores marcados. Si ya existiera la tabla
temporal, creará una copia de la misma con el nombre
copy_<nombre de la tabla> para conservar la información que
tenía ya que al generar de nuevo la tabla se perderá la
información almacenada. Utilizando el administrador corporativo
de SQL Server se pueden mover los datos existentes en la tabla
copia a la tabla recién generada.

Factor que se utiliza para filtrar los empleados (panel 3)


En el panel 3, se puede especificar seleccionando de una lista de
valores qué factor determina que empleados participan de este
cálculo de planillas.

Este factor debe ser el primero que se ejecuta y debe retornar


un valor verdadero o falso. La función principal de este factor es
filtrar que empleados participarán de este cálculo, a pesar de
que en el expediente del empleado se ha definido un tipo de

Asesores en Informática, S.A. de C.V.


71
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

planilla en el cual se le paga su salario, eso no significa que no


pueda participar de otro cálculo de planillas. Para ello debe
escribirse un factor que por cada empleado determine si cumple
con las condiciones para participar de este cálculo.

Panel de Factores de Cálculo (panel 4)


En este panel se muestra el listado de factores que componen el
cálculo de planillas ordenados de acuerdo a su precedencia de
ejecución. Note que cada factor listado tiene una marca a la
izquierda de su nombre el cual le indica a la ventana de
configuración que el resultado de la aplicación de ese factor será
almacenado en la tabla temporal correspondiente.

Además por cada factor puede verse su nombre, descripción, y


su asociación a un tipo de ingreso o descuento definido en el
sistema. Esta asociación se realiza a través del panel 5.

Asociación de los factores a los tipos de ingreso, descuento o reserva definidos


(panel 5)
Al seleccionar un factor en el panel 4, el panel 5 muestra su
asociación a un tipo de ingreso, descuento o reserva definido
para la empresa. Es importante establecer esta asociación para
que dentro de las fórmulas puedan asociarse los resultados al
historial de ingresos, descuentos o reservas de los empleados. Si
no se establece ninguna asociación el cálculo de planillas no se
podrá grabar registros en los historiales y los cálculos no se
reflejarán en ningún reporte.

Para establecer una asociación seleccione en el panel 4 el factor


deseado y luego en el panel 5 marque la asociación que
corresponde (ingreso, descuento o reserva) y luego seleccione de
la lista el tipo de ingreso, descuento o reserva al cual está
asociando el factor.

Configuración del Cálculo de Planillas: Ventana de Creación o


Modificación de Factores
Una vez seleccionado un factor en el panel 4, puede dar dos clics
sobre el nombre del factor o puede presionar el botón de
modificar factores de la barra de herramientas y se mostrará la
siguiente ventana:

Asesores en Informática, S.A. de C.V.


72
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Esta ventana permite crear o modificar los factores definidos


para un cálculo de planillas. Está dividida en una serie de
paneles los cuales se explican a continuación:

1. Identificación del Factor: Este panel permite nombrar el factor, ingresar el tipo de
resultado que genera y una descripción del factor. También muestra la precedencia del
factor respecto del resto de factores.

2. Listado de Cursores definidos para el proceso de cálculo de planillas (Este listado


proviene de los factores creados con el programa de creación de factores para cálculo
de planillas)

3. Listado de Columnas del cursor seleccionado en el panel 2.

4. Código VBScript que ejecuta el factor.

5. Botones para insertar la columna seleccionada en el panel 3 en el código VBScript,


verificar la existencia de errores de sintaxis en el código VBScript y salvar el factor o
cancelar las modificaciones.

Identificación del Factor (panel 1)


En este panel es posible ingresar la siguiente información:

 Identificador: Nombre del Factor (no puede contener espacios en blanco ni caracteres que
sean letras o números o el signo "_".
 Tipo de Resultado: Lista de valores para determinar el tipo de resultado de la fórmula
(Entero / Fecha / Real / Texto / Booelan), para el caso de resultados tipo "Texto" se activa

Asesores en Informática, S.A. de C.V.


73
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

el campo "Largo", que permite determinar el tamaño del texto que retornará para poder ser
creado correctamente en la tabla temporal.
 Precedencia (no es modificable) Determina el orden en el que se ejecutará el factor editado
respecto del resto de factores. Para modificar la precedencia utilice los botones con flechas
verticales de la ventana de administración de factores.
 Descripción: Permite ingresar una descripción más amplia del objetivo del factor.

Panel con el listado de Cursores (panel 2)


En este panel se muestra el listado de cursores definidos para
este cálculo. Al seleccionar un cursor en este panel se muestra
en el panel 3 el listado de campos que lo componen.

Si desea agregar un cursor a este panel utilice el programa de


configuración de cursores que se presentó al inicio de esta
sección del documento.

Nótese que además de los cursores en este panel se presenta la


estructura de datos de los factores, lo cual permite incluir dentro
de una función el valor de otro factor del esquema de cálculo de
la planilla.

Panel con el listado de Campos del Cursor Seleccionado (panel 3)


En este panel se muestra el listado de campos que componen el
cursor seleccionado en el panel 2.

Si desea agregar un cursor o modificarlo para incluir nuevos


campos en este panel utilice el programa de configuración de
cursores que se presentó al inicio de esta sección del documento.

Código VBScript que ejecuta el factor (panel 4)


En este panel está dividido en tres áreas, en la parte superior
puede verse el encabezado de la función VBScript del Factor (es
generado automáticamente por la ventana de edición de
factores) y en la parte inferior la línea de finalización de la
función.

En el medio se puede escribir el cuerpo del factor, es decir el


código VBScript que será ejecutado cuando se invoca a esta
función desde el programa de generación de planillas.

Es importante destacar que el código escrito debe corresponder


a la sintaxis definida para una función en VBScript, que los
parámetros son generados automáticamente por esta forma de
edición de factores y corresponden a los cursores utilizados
dentro de la función. Además es posible hacer referencia a otros

Asesores en Informática, S.A. de C.V.


74
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

factores de cálculo a través de una estructura de datos llamada


"Factores" y que es seleccionable en el panel 2.

Los cursores se envían como parámetros a las fórmulas como


clases [Link], lo que permite manipular los registros
devueltos por cada cursor, así como obtener información sobre el
tipo de los campos, largo, precisión, etc. Para consultar la
documentación de ADO puede dirigirse al sitio
[Link] en la Internet.

El otro tipo de parámetro que se envía a las fórmulas es la clase


Factores, que permite manipular las formulas que se están
ejecutando así como el valor que generan las fórmulas. Más
adelante en esta sección se describe la clase “Factores”.

Botones de la forma (panel 5)


En la parte inferior de la ventana se muestran cuatro botones los
cuales se explican a continuación:

 Insertar Columna: Este botón permite insertar en la posición donde se encuentra ubicado el
cursor en la función VBScript la columna seleccionada en el panel 3.
 Verificar Sintaxis: Este botón verifica la existencia de errores de sintaxis en la función
VBScript.
 Salvar: Salva el factor modificado
 Cancelar: Cierra la ventana cancelando las modificaciones realizadas al factor.

¿Cómo funciona el programa de generación de Planillas?


En esta sección del documento se explicará el funcionamiento
del proceso de generación de planillas y como se integra a los
cálculos de las fórmulas y a los cursores definidos.

El proceso de generación de planillas es el siguiente:

Asesores en Informática, S.A. de C.V.


75
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

 Elimina los datos de la tabla temporal correspondientes al período a generar (código de


empresa, código de tipo de planilla y código de período de pago especificados en la forma
de generación)
 Elimina los datos existentes en las tablas con el historial de ingresos y descuentos (tablas
pla_inn_ingresos y pla_dss_descuentos) utilizando el código de empresa, código de tipo de
planilla y código de período de pago especificados en la forma de generación
 Carga en el Script Engine las fórmulas definidas para el cálculo de planillas seleccionado y
el archivo de procedimientos globales proc_genpla.vbs que se encuentra en el directorio
BIN del directorio de instalación de Visual HUR.
 Ejecuta el proceso de generación de períodos de incapacidad para el período de pago
correspondiente. Al ingresar incapacidades solamente se ingresa la fecha de inicio y de
finalización de la misma. Conforme se van generando planillas para cada período de pago,
Visual HUR genera períodos de incapacidad que coinciden con los períodos de pago,
aplicando las políticas definidas en el Mantenimiento de Parámetros para Incapacidad del
Módulo de Acciones de Personal.
 Ejecuta el proceso de reevaluación de las amonestaciones que generan suspensión de
labores sin goce de salario. Cuando se ingresan amonestaciones que generan descuento en
la planilla el programa salva el valor a descontar, sin embargo, al generar la planilla
recalcula el valor a descontar ya que pueden darse cambios en el salario del empleado.

Asesores en Informática, S.A. de C.V.


76
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

 Ejecuta el proceso de reevaluación de los tiempos no trabajados. Cuando se ingresan


tiempos no trabajados el programa calcula el valor a descontar, sin embargo al generar la
planilla recalcula este valor con el fin de reflejar cambios en el salario que pudieron darse
posteriormente a la acción de autorización del tiempo no trabajado.
 Ejecuta el proceso de generación de cuotas para descuentos cíclicos. Antes de generar la
planilla verifica los descuentos cíclicos ingresados y genera cuotas de descuento para
aquellos descuentos cíclicos que cumplan con ser descontados en el tipo de planilla y
período que se generará.
 Ejecuta el proceso de reevaluación de horas extras. Al igual que los procesos de
reevaluación anteriores, calcula de nuevo el valor a pagar en concepto de horas extras.
 Abre los cursores para cálculo de planilla definidos para este proceso. Los cursores que son
marcados como modificables se abren en modo escritura, mientras que el resto de cursores
se abren en modo lectura únicamente.
 Abre el cursor marcado como "Principal" en el mantenimiento de cursores para cálculo de
planilla e inicia una iteración registro por registro. Normalmente este cursor retorna la
totalidad de empleados de la empresa (no importando su estado -Activo/Retirado/Nuevo),
para cada empleado se ejecutan los siguientes pasos:
 Ejecuta la fórmula definida como filtro para saber si el empleado participa en este
cálculo de planillas. Si el valor de retorno es verdadero continúa la ejecución de
fórmulas de lo contrario avanza al siguiente registro.
 Ejecuta de una en una las fórmulas definidas para el cálculo de planillas en el orden de
precedencia que se ha definido. Se envía a cada fórmula los cursores como parámetro,
pero antes de enviarse se establece un filtro para que únicamente pasen registros
correspondientes al empleado que está participando del cálculo.
 Salva en la tabla temporal de cálculo de planillas cada uno de los resultados de la
ejecución de los factores o fórmulas.
 Cierra los cursores abiertos. En el caso de los cursores modificables ejecuta una
instrucción de sincronización para escribir en la base de datos las modificaciones
realizadas al cursor.
 Ejecuta un proceso en la base de datos en el cual se realizan acciones adicionales al cálculo
de salarios, por ejemplo: generación de las partidas contables, generación de recibos de
pago, etc. El proceso genpla_finalizacion está en el servidor SQL Server y dentro de él se
pueden agregar procedimientos para realizar estas acciones adicionales.
 Cierra todas las tablas abiertas y finaliza la transacción.

Como puede deducirse del procedimiento presentado, el proceso


de generación de planillas únicamente ejecuta las fórmulas
definidas en la configuración del tipo de planilla y ejecuta
procedimientos almacenados en la base de datos. Por si mismo
no realiza cálculos que solamente puedan ser modificados a
través de modificaciones al código fuente del sistema.

Asesores en Informática, S.A. de C.V.


77
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

¿Cómo funciona el programa de autorización de Planillas?


En esta sección del documento se explicará el funcionamiento
del proceso de autorización de planillas. El objetivo principal de
este proceso es marcar el período de pago como autorizado
imposibilitando que se modifiquen los movimientos y acciones
ingresadas.

El proceso de generación de planillas es el siguiente:

 Marca todos los ingresos y descuentos eventuales ingresados como procesados o pagados.
 Marca las cuotas de descuento cíclicos como aplicadas en un período de pago de planillas.
 Marca las horas extras, tiempos no trabajados, suspensiones por amonestación como
procesadas.
 Marca el período de pago como autorizado y genera el próximo período de pago.
 Ejecuta un proceso en la base de datos en el cual se realizan acciones adicionales, por
ejemplo: mover las partidas contables generadas al sistema financiero de la empresa,
calcular salarios promedio para los empleados, etc. El proceso autpla_finalizacion está en
el servidor SQL Server y dentro de él se pueden agregar procedimientos para realizar estas
acciones adicionales

Documentación de la Clase Factores


En esta sección se documenta la clase Factores, que se utiliza
como parámetro de para la ejecución de las fórmulas.

rhSalFactores Clase con la colección de Factores


Count as Long Número de elementos en la colección
Item (vntIndexKey) as Elemento (vntIndexKey) de la colección
rhSalFactor
Add([ID As String], Agrega un elemento a la colección
[Descripcion As String],
[Precedencia As Integer],
[vbScript As String], [Tipo As
String = "R"], [Size As Byte],
[SalvadoEnTabla As Boolean
= True], [CodTipoIngreso],
[CodTipoDescuento], [sKey As
String]) As rhSalFactor
Clear () Elimina todos los elementos de la colección
Remove (vntIndexKey) Elimina el elemento (vntIndexKey)

rhSalFactor Clase con el objeto Factor


CampoActualizar as Campo a Actualizar en el caso de asociación de un
rhSalTDCCCampoConst factor a un tipo de descuento (NO ESTA EN USO EN
ESTA VERSION)
CodTipoDescuento as Variant Código de tipo de descuento asociado al factor (null
significa que no hay asociación)

Asesores en Informática, S.A. de C.V.


78
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

CodTipoIngreso as Variant Código de tipo de ingreso asociado al factor (null


significa que no hay asociación)
Descripción as String Descripción del Factor
ID as String Nombre del Factor
Index as Integer Número correlativo de factor en la colección de
factores
Key as String "Key" del elemento en la colección. Permite utilizar
este nombre en vez de un subíndice al inspeccionar la
colección de factores
Parametros as Colección de parámetros del factor
rhSalFacParametros
Precedencia as Integer Número de orden de precedencia de ejecución del
factor
SalvadoEnTabla as Boolean Determina si el resultado del factor se almacena en la
tabla temporal de cálculo de la planilla
Size as Integer Tamaño del campo en la base de datos (aplica solo
para factores que retornan un texto)
Tipo as String Tipo de valor de retorno del factor (texto, real, entero,
fecha)
Value as Variant Valor que retorno la ejecución del VBScript del factor.
Es importante hacer notar que cuando se ejecuta el
factor se almacena su resultado en esta propiedad, sin
embargo en factores que se ejecutan posteriormente
puede modificarse esta propiedad.
vbScript as String Código VBScript que ejecuta el factor al inicializarse.
Contiene la función escrita para este factor.
GetCode() as String Método que retorna la función VBScript con su
encabezado y finalización de función. En la propiedad
vbScript está almacenado el cuerpo de la función, este
método formatea la función para que pueda ser
cargada al Script Engine.
HaveCodTipoDescuento as Método que retorna verdadero si el factor está
Boolean asociado a un tipo de descuento, de lo contrario
retorna falso.
HaveCodTipoIngreso as Método que retorna verdadero si el factor está
Boolean asociado a un tipo de ingreso, de lo contrario retorna
falso.

rhSalFacParametros Clase con la colección de Parámetros por Factor


Count as Long Número de elementos en la colección
Item (vntIndexKey) as Elemento (vntIndexKey) de la colección
rhSalFacParametro
Add([Index As Integer], Agrega un elemento a la colección
[Nombre As String], [Tipo As
String], [sKey As String]) As
rhSalFacParametro
Clear () Elimina todos los elementos de la colección
Remove (vntIndexKey) Elimina el elemento (vntIndexKey)

rhSalFacParametro Clase con el objeto Factor


Index as Integer Número correlativo de factor en la colección de

Asesores en Informática, S.A. de C.V.


79
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

factores
Nombre as String Nombre del parámetro (corresponde al nombre del
cursor)
Tipo as String Tipo de Parámetro (R=cursor, F=factor, C=Constante)

Documentación de la clase Agrupadores


En esta sección se documenta la clase Agrupadores, que se
utiliza a nivel de las fórmulas para controlar los agrupadores
creados en la opción “Agrupadores” del Módulo de Salarios.
Esta estructura de datos se inicializa automáticamente al
formular y al generar la planilla y está disponible para consolidar
ingresos y descuentos.

rhSalAgrupadores Clase con la colección de Agrupadores


Count as Long Número de elementos en la colección
Item (vntIndexKey) as Elemento (vntIndexKey) de la colección
rhSalAgrupador
Add(Codigo As Long, Nombre Agrega un elemento a la colección
As String, [sKey As String])
As RHSalAgrupador
Clear () Elimina todos los elementos de la colección
Remove (vntIndexKey) Elimina el elemento (vntIndexKey)
ResetValues() Inicializa en cero el valor de todos los agrupadores
existentes en la colección
SumaRubro(sTipo As String, Suma el valor (parámetro “ValorRubro”) de un ingreso
CodigoRubro As Long, o descuento (dependiendo si el parámetro sTipo es
ValorRubro As Double) igual a “I” o “D” respectivamente), identificado por su
código (parámetro “CodigoRubro”) a todos los
agrupadores en donde es aplicable, de acuerdo a la
tabla de mantenimiento de los agrupadores

rhSalAgrupador Clase con el objeto Agrupador


Codigo As Long Código del Agrupador según la tabla de agrupadores
Index as Integer Número correlativo de agrupador en la colección de
agrupadores
Key as String "Key" del elemento en la colección. Permite utilizar
este nombre en vez de un subíndice al inspeccionar la
colección de agrupadores
Nombre as String Nombre del Agrupador según la tabla de agrupadores
Rubros As Colección de ingresos o descuentos que forman el
RHSalRubrosAgrupador agrupador
ResetValues() Inicializa en cero los valores de los ingresos y
descuentos que forman el agrupador
SumaAlRubro(sTipo As Suma el valor (parámetro “ValorRubro”) de un ingreso
String, CodigoRubro As Long, o descuento (dependiendo si el parámetro sTipo es
ValorRubro As Double) igual a “I” o “D” respectivamente), identificado por su
código (parámetro “CodigoRubro”) al total del
agrupador

Asesores en Informática, S.A. de C.V.


80
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Value() As Double Valor del agrupador (suma los ingresos y resta los
descuentos que lo forman)

Clase con la colección de Ingresos o Descuentos por


rhSalRubrosAgrupador
Agrupador
Count as Long Número de elementos en la colección
Item(vntIndexKey) As Elemento (vntIndexKey) de la colección
RHSalRubroAgrupador
Add(Codigo As Long, Nombre Agrega un elemento a la colección.
As String, [TipoRubro As
String = "I"], [Porcentaje As
Single = 100], [Value As
Double]) As
RHSalRubroAgrupador
Clear () Elimina todos los elementos de la colección
Exists(vntIndexKey) As Determina si el rubro especificado por la variable
Boolean vntIndexKey existe en la colección
Remove (vntIndexKey) Elimina el elemento (vntIndexKey)
ResetValues() Inicializa en cero los valores de los rubros que
componen la colección
Value() As Double Valor total de la colección de rubros (ingresos o
descuentos) de la colección

Clase con el objeto rubro (ingreso o descuento) de la


RHSalRubroAgrupador
colección de rubros del agrupador
Codigo As Long Código de ingreso o descuento
Index as Integer Número correlativo de rubro en la colección de rubros
del agrupador
Key as String "Key" del elemento en la colección. Permite utilizar
este nombre en vez de un subíndice al inspeccionar la
colección de rubros del agrupador
Nombre as String Nombre del Rubro según la tabla de Tipos de Ingresos
o Descuentos
Porcentaje As Single Porcentaje de aplicación del valor del ingreso o
descuento en el agrupador
TipoRubro As String Tipo de Rubro (“I” para ingresos o “D” para
descuentos)
Value As Double Valor del ingreso o descuento
esDescuento() As Boolean Retorna verdadero si la propiedad TipoRubro es igual
a “D”
esIngreso() As Boolean Retorna verdadero si la propiedad TipoRubro es igual
a “I”

Ejemplo de configuración de Planillas


Para comprender mejor la configuración de planillas se
implementará una planilla mensual simple a manera de
ejemplificar el funcionamiento de los cursores y los factores de
cálculo de la planilla.

Asesores en Informática, S.A. de C.V.


81
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

Se supondrá que se va a calcular salarios para una planilla


mensual en donde las personas reciben su salario en función
mensual. Se incluirán los descuentos legales aplicables en El
Salvador.

Se definirán las siguientes fórmulas:

Factor Descripción
SalarioMensual Regresa el salario que devengan los empleados en base mensual
DescuentoIncapa
Regresa el valor a descontar en concepto de incapacidades
cidad
DescuentoTNT Regresa el valor a descontar en concepto de tiempos no trabajados
IngresosEventual
Calcula los ingresos eventuales que ha tenido el empleado
es
SalarioMensual + IngresosEventuales - DescuntoIncapacidad -
SalarioBruto
DescuentoTNT
DescuentoISSS Calcula la cuota de seguro social a descontar
DescuentoAFP Calcula la cuota de descuento de AFP
DescuentoISR Calcula la cuota de descuento por Impuesto sobre la Renta
DescuentosCiclic
Calcula los descuentos cíclicos a aplicar
os
DescuentosEvent
Calcula los descuentos eventuales
uales
SalarioBruto - DescuentoISSS - DescuentoAFP - DescuentoISR -
SalarioNeto
DescuentosCiclicos - DescuentosEventuales
Para poder ejecutar los cálculos requeridos en cada factor, deben crearse los
siguientes cursores con el programa de configuración correspondiente.

Pla_Periodo
Información sobre el período de pago que se está calculando

select *
from pla_ppl_param_plani, pla_tpl_tipo_planilla
where ppl_codcia = tpl_codcia and ppl_codtpl = tpl_codigo
and ppl_codcia = <<CODCIA>> and ppl_codtpl = <<CODTPL>>
and ppl_codpla = <<CODPLA>>

Emp_InfoSalario
-- CURSOR PRINCIPAL --
Cursor que retorna la información de la tabla pla_emp_empleado unida con las tabla
configurable con datos para salarios (pla_dpl_datos_planilla) y la tabla con información de la
identificación del empleado (pla_ide_ident_emp)

SELECT pla_emp_empleado.*,
pla_dpl_datos_planilla.*,
pla_ide_ident_emp.*,
plz_codpue, plz_coduni,
plz_cen_costo, plz_codcpu,
plz_codubi
FROM pla_plz_plaza full
JOIN pla_emp_empleado

Asesores en Informática, S.A. de C.V.


82
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

LEFT JOIN pla_dpl_datos_planilla


ON (emp_codcia = dpl_codcia AND emp_codigo = dpl_codemp)
LEFT JOIN pla_ide_ident_emp
on (emp_codcia = ide_codcia and emp_codigo = ide_codemp)
ON (plz_codcia = emp_codcia AND plz_codigo = emp_codplz)
WHERE emp_estado <> 'R'
and emp_codcia = <<CODCIA>>

Emp_Incapacidades
Regresa la información de los períodos de incapacidad que debe aplicar

SELECT IXE_CODCIA, IXE_CODTPL, PIE_CODPLA,


IXE_CODTXI, IXE_CODEMP, IXE_RIESGO,
PIE_INICIO, PIE_FINAL, PIE_DIAS,
PIE_PROCESADA,
CASE WHEN PIE_INICIO = IXE_INICIO
THEN 'S' ELSE 'N' END PIE_ES_PRIMERA,
PIE_VALOR_TOTAL, PIE_VALOR_A_PAGAR,
pie_valor_total - pie_valor_a_pagar PIE_VALOR_A_DESCONTAR,
pie_porcentaje_descuento, pie_ajuste_sobre_sal_maximo
FROM PLA_IXE_INCAP_EMPLEADO, PLA_PIE_PRORROGA_INCAP
WHERE IXE_CODCIA = PIE_CODCIA AND IXE_NUMERO = PIE_NUMERO
AND PIE_PROCESADA = 'N'
and ixe_codcia = <<CODCIA>> and ixe_codtpl = <<CODTPL>>
and pie_codpla = <<CODPLA>>

Emp_TmpNoTrabajado
Regresa la información de los períodos de incapacidad que debe aplicar

SELECT * FROM pla_tnn_tiempo_no_trab


WHERE tnn_estado = 'A'
and tnn_codcia = <<CODCIA>>
and tnn_codtpl= <<CODTPL>>
and tnn_codpla = <<CODPLA>>

Emp_OtrosIngresos
Regresa los registros de ingresos eventuales que debe aplicar

select * from pla_oin_otros_ingresos


where oin_estado = 'R'
and oin_codcia = <<CODCIA>>
and oin_codtpl = <<CODTPL>>
and oin_codpla = <<CODPLA>>

DescuentosCiclicos
Regresa los descuentos cíclicos que debe aplicar en el período de pago de la planilla

SELECT pla_pre_prestamo.*,
ppl_codpla pre_codpla,
tpr_codtdc pre_codtdc,
CASE WHEN pre_monto_indefinido <> 'S'
THEN pre_monto - pre_pagado ELSE 9999999.99 END AS pre_saldo
FROM pla_pre_prestamo
join pla_ppl_param_plani
on pre_codcia = ppl_codcia and pre_codtpl = ppl_codtpl
join pla_tpr_tipo_prestamo
on pre_codcia = tpr_codcia and pre_codtpr = tpr_codigo
where pre_codcia = <<CODCIA>>
and pre_codtpl = <<CODTPL>>
and ppl_codpla = <<CODPLA>>
and pre_ini_desc <= ppl_fecha_fin
and pre_estado <> 'C'

Asesores en Informática, S.A. de C.V.


83
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

and (pre_frecuencia = 'T' or pre_frecuencia = ppl_frecuencia)


and (CASE WHEN pre_monto_indefinido <> 'S'
THEN pre_monto - pre_pagado ELSE 9999999999.99 END) > 0

CuotasDescuentosCiclicos
--MODIFICABLE--
Regresa las cuotas correspondientes a los descuentos cíclicos que debe aplicar en el período
de pago de la planilla

select * from pla_cdc_cuotas_desc


where cdc_codcia = <<CODCIA>>
and cdc_codpla = <<CODPLA>>
and cdc_codpre in
(select pre_codigo from pla_pre_prestamo
where pre_codcia = cdc_codcia
and pre_codemp = cdc_codemp
and pre_codtpl = <<CODTPL>>)

Emp_OtrosDescuentos
--MODIFICABLE--
Regresa los descuentos eventuales que se deben aplicar

select * from pla_ods_otros_descuentos


where ods_estado = 'R'
and ods_codcia = <<CODCIA>>
and ods_codtpl = <<CODTPL>>
and ods_codpla = <<CODPLA>>

TablaISR
Regresa la tabla de parámetros para el cálculo del Impuesto sobre la Renta

select * from pla_isr_isr

ParametrosCuotaISSS
Regresa la tabla de parámetros para cálculo de cuota de Seguro Social

select pge_isss_salario_max_mensual,
pge_isss_por_desc, pge_isss_por_desc_pat,
pge_insafor
from pla_pge_parametros_gen
where pge_codcia = <<CODCIA>>

IngresosEstaPlanilla
--MODIFICABLE--
Cursor con la tabla del historial de ingresos de la planilla

select * from pla_inn_ingresos


where inn_codcia = <<CODCIA>>
and inn_codtpl = <<CODTPL>>
and inn_codpla = <<CODPLA>>

DescuentosEstaPlanilla
--MODIFICABLE--
Cursor con la tabla del historial de descuentos de la planilla

select * from pla_dss_descuentos


where dss_codcia = <<CODCIA>>
and dss_codtpl = <<CODTPL>>

Asesores en Informática, S.A. de C.V.


84
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

and dss_codpla = <<CODPLA>>

AFPs
Regresa la tabla de parámetros para cálculo del descuento de AFP

select * from pla_afp_afp

Luego deben ingresarse fórmulas para configurar el ejemplo, a


continuación se presentan las fórmulas utilizadas (recuerde que
debe crear la fórmula con el tipo de datos y la descripción
sugerida y luego debe copiar el cuerpo de la fórmula
únicamente, el encabezado y el final de la función se genera
automáticamente).

ID: EmpleadoParticipa
Tipo: Booelano
Descripción: Determina que empleados participan de este cálculo

EmpleadoParticipa =
(Emp_InfoSalario.Fields("EMP_FECHA_INGRESO").Value <= _
Pla_Periodo.Fields("PPL_FECHA_FIN").Value) and _
(Emp_InfoSalario.Fields("EMP_TIPO_CONTRATO").Value = "I") and _
(Emp_InfoSalario.Fields("EMP_ESTADO").Value = "A")

ID: SalarioMensual
Tipo: Real
Descripción: Determina el salario que le corresponde al empleado
salq = 0

' CALCULA SALARIO MENSUAL


if isnull(Emp_InfoSalario.Fields("EMP_SALARIO").Value) then
' si el campo salario es nulo le asigna un cero a la variable
salq = 0
else
if isnull(Emp_InfoSalario.Fields("EMP_EXP_SALARIO").Value) then
' Si la dimensional del salario es nula asume que es mensual
salq = Emp_InfoSalario.Fields("EMP_SALARIO").Value
else
if Emp_InfoSalario.Fields("EMP_EXP_SALARIO").Value = "D" then
' Esta almacenado salario diario
salq = Emp_InfoSalario.Fields("EMP_SALARIO").Value * 30
else
' Esta almacenado salario mensual
salq = Emp_InfoSalario.Fields("EMP_SALARIO").Value
end if
end if
end if

' Asigna la variable al valor de retorno de la función


SalarioMensual = salq
ID: DescuentoIncapacidad
Tipo: Real
Descripción: Determina la cantidad a descontar por incapacidad
' Variable para los días de incapacidad
di = 0

Asesores en Informática, S.A. de C.V.


85
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

' Variable para el descuento de incapacidad


vi = 0

' Loop para obtener los días incapacitados y el valor a descontar


if not Emp_Incapacidades.EOF then
Emp_Incapacidades.MoveFirst
do while not Emp_Incapacidades.EOF
di = di + Emp_Incapacidades.Fields("PIE_DIAS").Value
vi = vi + round(Emp_Incapacidades.Fields("PIE_VALOR_A_DESCONTAR").Value, 2)
Emp_Incapacidades.MoveNext
Loop
end if

' Verifica no descontar más del salario mensual


if vi > Factores("SalarioMensual").Value then
vi = Factores("SalarioMensual").Value
end if

' Salva en el historial de descuentos


' el procedimiento agrega_descuentos_historila se encuentra en e
' archivo proc_genpla.vbs del directorio BIN de Visual HUR
if not isnull(Factores("DescuentoIncapacidad").CodTipoDescuento) and _
Factores("DiasIncapacidad").Value > 0 then
agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Factores("DescuentoIncapacidad").CodTipoDescuento, _
0, 0, 0, di
end if
' Retorna el valor del descuento
DescuentoIncapacidad = vi
ID: DescuentoTNT
Tipo: Real
Descripción: Determina el descuento que debe hacer los empleados que tienen tiempos no
trabajados.
' Variable para almacenar el descuento por TNT
tnt = 0

' Variable para almacenar los días no trabajados


dnt = 0

' Loop para obtener los dias no trabajados y el valor de descuento


If Emp_TmpNoTrabajado.RecordCount > 0 Then
Emp_TmpNoTrabajado.MoveFirst
Do Until Emp_TmpNoTrabajado.EOF
if Emp_TmpNoTrabajado.Fields("TNN_VALOR").Value > 0 and _
Emp_TmpNoTrabajado.Fields("TNN_VALOR_HR").Value = 100 then
dnt = dnt + Round(Emp_TmpNoTrabajado.Fields("TNN_NUM_DIAS").Value + _
Emp_TmpNoTrabajado.Fields("TNN_NUM_HORAS").Value / 8, 2)
end if
tnt = tnt + round(Emp_TmpNoTrabajado.Fields("TNN_VALOR").Value, 2)
Emp_TmpNoTrabajado.MoveNext
Loop
End If

' Verifica que los días de descuento no sean mayores que el período de planilla
if Emp_InfoSalario.Fields("EMP_FECHA_INGRESO").Value > _
Pla_Periodo.Fields("PPL_FECHA_INI").Value then
dnt = dnt + (Emp_InfoSalario.Fields("EMP_FECHA_INGRESO").Value -
Pla_Periodo.Fields("PPL_FECHA_INI").Value)

Asesores en Informática, S.A. de C.V.


86
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

end if

' Almacena los días no trabajados en el historial de descuentos


if not isnull(Factores("DescuentoTNT").CodTipoDescuento) then
agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Factores("DescuentoTNT").CodTipoDescuento, _
0, 0, 0, dnt
end if
' Valor de retorno de la función
DescuentoTNT = tnt
ID: IngresosEventuales
Tipo: Real
Descripción: Determina el total de ingresos percibidos de manera eventual
' Variable para sumar los ingresos
o=0

' Loop para obtener los ingresos y salvarlos en el historial de ingresos


if Emp_OtrosIngresos.RecordCount > 0 then
Emp_OtrosIngresos.MoveFirst
do until Emp_OtrosIngresos.EOF
agrega_ingresos_historial IngresosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Emp_OtrosIngresos.Fields("OIN_CODTIG").Value, _
Emp_OtrosIngresos.Fields("oin_codffi").Value, _
Emp_OtrosIngresos.Fields("OIN_CODCCO").Value, _
round(Emp_OtrosIngresos.Fields("OIN_VALOR").Value, 2)
o = o + round(Emp_OtrosIngresos.Fields("OIN_VALOR").Value, 2)
Emp_OtrosIngresos.MoveNext
loop
end if

' Valor de retorno de la función


IngresosEventuales= o
ID: SalarioBruto
Tipo: Real
Descripción: Salario Bruto a pagar al empleado
' Determina el salario bruto del empleado
sal = Factores("SalarioMensual").Value + _
Factores("IngresosEventuales").Value - _
Factores("DescuentoIncapacidad").Value - _
Factores("DescuentoTNT").Value

' Salvar en el historial de ingresos


if not isnull(Factores("SalarioBruto").CodTipoIngreso) then
agrega_ingresos_historial IngresosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Factores("Ordinario").CodTipoIngreso, _
Emp_InfoSalario.Fields("dpl_codffi").Value, _
Emp_InfoSalario.Fields("plz_cen_costo").Value, _
sal
end if

Asesores en Informática, S.A. de C.V.


87
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

'Valor de Retorno de la Función


SalarioBruto = sal
ID: DescuentoISSS
Tipo: Real
Descripción: Calcula la cuota de seguro social a descontar
' Variables para la cuota, el aporte patronal
cuota = 0
patronal = 0

' Si no tiene salario no aplica ningún descuento


if Factores("SalarioBruto").Value = 0 then
SeguroSocial = 0
exit function
end if

' Obtiene los valores de los parámetros para cálculo de cuota


sal_maximo = [Link]("pge_isss_salario_max_mensual").Value
por_cuota = [Link]("pge_isss_por_desc").Value
pat_cuota = [Link]("pge_isss_por_desc_pat").Value

' Ajusta al máximo ingreso para calcular cuota


if Factores("SalarioBruto").Value > (sal_maximo) then
cuota = round(por_cuota / 100 * sal_maximo, 2)
patronal = round(pat_cuota / 100 * sal_maximo, 2)
else
cuota = round(por_cuota / 100 * Factores("SalarioBruto").Value, 2)
patronal = round(pat_cuota / 100 * Factores("SalarioBruto").Value, 2)
end if

' Inserta el registro en la tabla de descuentos


if not isnull(Factores("SeguroSocial").CodTipoDescuento) and cuota > 0 then
agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Factores("SeguroSocial").CodTipoDescuento, _
cuota, patronal, Factores("SalarioBruto").Value, 0
end if

' Valor de retorno de la función


SeguroSocial = cuota
ID: DescuentoAFP
Tipo: Real
Descripción: Salario Bruto a pagar al empleado
' Variables para la cuota y el aporte patronal
ahorroAFP = 0
comisionAFP = 0
patronalAFP = 0

salq = Factores("SalarioBruto").Value

' Determina si debe descontar


' (el empleado tiene asignado código de AFP en el expediente)
if isnull(Emp_InfoSalario.Fields("ide_codAFP").Value) then
salq = 0
elseif Emp_InfoSalario.Fields("ide_codAFP").Value <= 0 then
salq = 0
else
' Determina parámetros de AFP
[Link] = "afp_codigo = " & Emp_InfoSalario.Fields("ide_codAFP").Value
if [Link] then

Asesores en Informática, S.A. de C.V.


88
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

salq = 0
elseif not isnull( [Link]("afp_sal_minimo").Value ) and _
not isnull( [Link]("afp_sal_maximo").Value ) then
if salq < [Link]("afp_sal_minimo").Value then
salq = 0
elseif salq > [Link]("afp_sal_maximo").Value then
salq = [Link]("afp_sal_maximo").Value
end if
end if
end if

' Determina las cuotas a descontar dependiendo del AFP al que cotiza
if salq > 0 then
if not isnull( [Link]("afp_por_ahorro").Value ) then _
ahorroAFP = round(salq * [Link]("afp_por_ahorro").Value / 100, 2)
if not isnull( [Link]("afp_por_comision").Value ) then _
comisionAFP = round(salq * [Link]("afp_por_comision").Value / 100, 2)
if not isnull( [Link]("afp_por_patronal").Value ) then _
patronalAFP = round(salq * [Link]("afp_por_patronal").Value / 100, 2)
end if

' Inserta el registro en la tabla de descuentos


if not isnull(Factores("DescuentoAFP").CodTipoDescuento) then
agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Factores("DescuentoAFP").CodTipoDescuento, _
ahorroAFP + comisionAFP, patronalAFP, salq, 0
end if

' Valor de retorno de la función


DescuentoAFP = ahorroAFP + comisionAFP
ID: DescuentoISR
Tipo: Real
Descripción: Determina la cuota de descuento de impuesto sobre la renta
' Ingreso afecto a renta
salq = Factores("SalarioBruto").Value - _
Factores("DescuentoAFP").Value

' Variables para los parametros


valor = 0
excedente = 0
porciento = 0

' De la tabla de parametros de renta obtiene el valor, el excedente y el porcentaje


[Link] = "isr_tipo = '" & Pla_Periodo.Fields("TPL_TIPO").Value & "'"
if not [Link] then
[Link]
do until [Link]
if salq >= [Link]("isr_desde").Value and _
salq <= [Link]("isr_hasta").Value Then
valor = [Link]("isr_valor").Value
excedente = [Link]("isr_excedente").Value
porciento = [Link]("isr_pct").Value / 100
exit do
end if
[Link]
loop
end if

' Calcula el valor a descontar

Asesores en Informática, S.A. de C.V.


89
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

valor = round(valor + (salq - excedente) * porciento, 2)


if valor < 0 then valor = 0

' Inserta en el historial de descuentos la renta calculada


if not isnull(Factores("DescuentoISR").CodTipoDescuento) then
agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Factores("DescuentoISR").CodTipoDescuento, _
valor, 0, salq, 0
end if

' Valor de retorno de la función


DescuentoISR = valor
ID: DescuentosEventuales
Tipo: Real
Descripción: Determina los descuentos eventuales que debe aplicar
' Variable para totalizar los descuentos eventuales
o=0

' Loop para totalizar los descuentos


if Emp_OtrosDescuentos.RecordCount > 0 then
Emp_OtrosDescuentos.MoveFirst
do until Emp_OtrosDescuentos.EOF
o = o + round(Emp_OtrosDescuentos.Fields("ODS_VALOR").Value, 2)

agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
Emp_OtrosDescuentos.Fields("ODS_CODTDC").Value, _
round(Emp_OtrosDescuentos.Fields("ODS_VALOR").Value, 2), _
0, 0, 0
Emp_OtrosDescuentos.MoveNext
loop
end if

' Valor de retorno de la función


DescuentosEventuales = o
ID: DescuentosCiclicos
Tipo: Real
Descripción: Determina las cuotas de descuentos cíclicos que debe descontar en este periodo
' Encuentra el liquido a pagar que le queda al empleado luego de
' los descuentos legales
liquido = Factores("SalarioBruto").Value - _
Factores("DescuentoAFP").Value - _
Factores("DescuentoISSS").Value - _
Factores("DescuentoISR").Value - _
Factores("OtrosDescuentos").Value

dc = 0
vc = 0
lFilter = ""

' Loop para inspeccionar los descuentos cíclicos del empleado


if [Link] > 0 then
[Link]
do until [Link]
' Filtra la tabla de cuotas para investigar si aplican en este periodo

Asesores en Informática, S.A. de C.V.


90
A D M I N I S T R A C I Ó N Y PAR A M E T R I Z A C I Ó N

lFilter = [Link]
[Link] = lFilter & " and cdc_codpre = " & _
[Link]("PRE_CODIGO").Value
if not [Link] then
' Loop para procesar las cuotas a descontar en este periodo
do until [Link]
vc = round([Link]("CDC_VAL_CUOTA").Value, 2)

' Si aun queda líquido descuenta la cuota


if (liquido - vc) > 0 then
liquido = liquido - vc
dc = dc + vc
[Link]("CDC_VENCIMIENTO").Value = _
Pla_Periodo.Fields("PPL_FECHA_PAGO").Value
[Link]("CDC_APLICADA").Value = "S"

agrega_descuentos_historial DescuentosEstaPlanilla, _
Pla_Periodo.Fields("PPL_CODCIA").Value, _
Emp_InfoSalario.Fields("EMP_CODIGO").Value, _
Pla_Periodo.Fields("TPL_CODIGO").Value, _
Pla_Periodo.Fields("PPL_CODPLA").Value, _
[Link]("pre_codtdc").Value, _
vc, 0, 0, 0
else
' NO queda liquido para descontar informa al usuario
[Link]("CDC_VENCIMIENTO").Value = null
[Link]("CDC_APLICADA").Value = "N"
msgbox "El salario del empleado " & _
Emp_InfoSalario.Fields("EMP_CODIGO").Value & _
" no alcanza para descontar la cuota " & _
[Link]("CDC_NUM_CUOTA").Value & _
" del descuentos cíclico " & _
[Link]("PRE_CODIGO").Value
end if
[Link]
loop
end if

[Link] = lFilter
[Link]
loop
end if

' Valor de retorno de la función


DescuentosCiclicos = dc
ID: SalarioNeto
Tipo: Real
Descripción: Determina el salario liquido que se pagará al empleado

SalarioNeto = Factores("SalarioBruto").Value - _
Factores("DescuentoISSS").Value - _
Factores("DescuentoAFP").Value - _
Factores("DescuentoISR").Value - _
Factores("DescuentosEventuales").Value - _
Factores("DescuentosCiclicos").Value

Asesores en Informática, S.A. de C.V.


91

También podría gustarte