Custom Reporting -- Creating Form Relationships

From IHRIS Wiki

Generalidades

Uso para el que fue Diseñado

Esto esta diseñado para un desarollador o administrador del sistema que tenga una idea clara de como se relacionan todos los formularios. Las posibles conecciones entre los diferentes formularios ya se encuentran mapeados en el sistema. Una relación es la descripción de una ruta entre los diferentes formularios en el sistema.

En este instante, una relación es usada para Custom Reports. También intendemos utilizarla para Custom Pages.

Una relación de formularios es utilizada para construir consultas SQL usadas en un Reporte Personalizado. Aunque no necesite conocer ningún SQL para crear un informe, familiarizarse con bases de datos relacionadas será de ayuda.

Ejemplo

Necesita crear una realación de formularios en in iHRIS Manage que muestre todos los empleados actuales, sus salarios y sus supervisores. Aqui hay un equema de como definir esta relación:

  • Inicie con el formulario primario 'person_position' y limitese a los puestos en los cuales el campo 'being_date' se sea nulo y el campo 'end_date' sea nulo.
  • Adjunte al formulario primario el formulario 'person' donde el formulario 'person' es primario y el formulario 'person_position' secundario
  • Adjunte al formulario primario el formulario 'salary' donde 'salary' es secundario a 'person_position' y donde el campo 'start_date' para 'salary' es máximo
  • Adjunte al formulario primario el formulario 'position' donde el campo 'position' del formulario primario 'person_position' se mapea a ese puesto. Nombre a este formulario 'employee_position'.
  • Adjunte al formulario 'position' el formulario 'position' donde el campro 'supervisor' del formulario 'position' se mapea a ese puesto. Nombre a este formulario conjunto 'supervisor_position'para distinguirlo del formulario 'employee_position'.
  • Adjunte al 'supervisor_position' el formulario 'person_position' del cual el campo 'position' es el valor del formulario 'supervisor_position'. Nombre a este 'supervisor_person_position'
  • Adjunte el formulario 'supervisor_person_position' el formulario 'person' que es un formulario primario. Nombre a este 'supervisor'

Alguna Terminología

  • En ocaciones a una relación se le llama "relación de formulario" o "relación de informe"
  • El "primary_form" es el punto inicial para describir el formulario en la relación.
  • Un formulario puede ser mencionado varias veces en una relación. En el ejemplo anterior, el formulario, the person_position fue mencionado dos veces. Una vez se le dio el "nombre de informe del formulario" 'person_position' y una vez se le dio el "nombre de informe del formulario" 'supervisor_person_position'. De forma similar, el formulario person fue mencionado dos veces y se le dieron los dos "nombres de informe del formulario" de 'person' y 'supervisor'
  • Alguna de la terminología, tal como 'adjuntar,' es tomada de SQL.

Dando Inicio

Una relación de formulario puede ser creada siguiendo el "Sistema de Configuración" y luego el link "Editar Relación de Formulario" . Los primeros pasos son:

  • seleccione "Display Name" para la relación, el nombre de la relación para el usuario final.
  • seleccione un "Short Name" para el informe, lo cual es una manera de hacer referencia internamente a la relación y solo puede contener caracteres alfa-numericos y algunos signos limitados de puntuación tales como _ y -.
  • Una descripción de la relación.
  • Luego debe hacer una de las opciones siguientes:
    • Escoger el "primary_form" para la realción
    • Copiar los detalles existente de la relación de formulario a modificar

Adjuntar un Formulario

Una vez que un formulario, formA, está en una relación, se puede adjuntar a cualquiera de sus formularios realacionados. Debe asegurarse, al agregar un limit, que máximo una instancia del formB se adjunte a otra instancia del formA. Hay cuatro posibles formas para adjuntar:

  • (Una instancia de) formA es primaria en relación al (una instancia de) formB.
    • puede que formA tenga varias instancias secundarias del formB. Por ejemplo, un formulario 'person' puede tener un formulario 'salary' secundario.
  • (Una instancia de) formA es secundaria al (una instancia de) formB.
    • Nótese que un formulario, si tiene un formulario primario, es único, por lo que al adjuntarse de esta forma no se necesitan límites.
  • (Una instancia de) formA contiene una mapped field cuyo valor se mapea al (una instancia de) formB.
  • (Una instancia de) formB contiene una mapped field uyo valor se mapea al (una instancia de) formA.

Limitando un Formulario

El formulario primario y cualquier formulario ajuntado en una relación puede ser limitado al usar la estructura limiting forms structure. La relación de formulario brinda una interfaz agradable para construir límites de formularios.

Adding in a SQL Function

In addition to linking in forms to a report, we can define SQL functions that can be run on the data in the forms. To reference the field named $fieldName in the form named $reportFormName in the relationship you use:

`$reportFormName+$fieldName`

For example:

CONACT (SUBSTR(`supervisor+name`,1,1), '. ',  SUBSTR(`supervisor+surname`,1,1) , '.')

would return the initials of the supervisor.

To define a sql function, you need to define:

  • A (short) name use to reference the function. For example, 'supervisor_initials.'
  • A description of the function. For example, "The Initials of the Supervisor."
  • The form field that the result of the SQL function should take values in. For example, "STRING_LINE"