Ayuda sobre productos BOLD:

ExtAttribute

< Volver

ExtAttribute es el objeto de personalización que se utiliza para configurar nuevas columnas en informes existentes. Los campos calculados se definen en la sección correspondiente del fichero de Personalización.

Informes configurables

Cualquier informe BOLD consta de dos partes:

  • Columnas de la parte fija: es la que se define en la implementación interna del informe y que no se puede modificar (se calcularán siempre que se solicite el informe y para cada una de sus filas)
  • Columnas calculadas: cada fila calculará sus valores en función de las definiciones de sus columnas calculadas. Estas son las columnas denominadas de atributos extendidos (“ExtAttribute”). La definición de estas columnas está basada en expresiones y el uso de scripting.

Atributos extendidos, campos calculados, ExtAttributes

Cualquier informe BOLD es posible configurarlo editando los nodos ExtAttribute que son la representación XML de la configuración de cada una de sus columnas. Por ejemplo, a continuación se muestra una parte de la configuración estándar del Informe detallado de actividades:

<Class Name="WorkerDetailedResult">

    <BeforeExpression>
       <Expression>
<![CDATA[
           If(LogMessage("Entrando en WorkerDetailedResult")==1,1==1)
]]>
       </Expression>
    </BeforeExpression>
    <AfterExpression>
       <Expression>
<![CDATA[
         If(LogMessage("Saliendo en WorkerDetailedResult")==1,1==1)
]]>
      </Expression>
    </AfterExpression>

    <ExtAttribute Definition="IDWorker.FullName" Name="WorkerName" ShowName="Empleado" Description="Nombre del empleado"/>
    <ExtAttribute Definition="IDCW.ProfessionalCategory" Name="Category" ShowName="Categoría" Description="Categoría profesional del empleado"/>
    <ExtAttribute Definition="IDCW.PlanArea" Name="PlanAreaWorker" ShowName="Área del trabajador" />
    <ExtAttribute Definition="IDCW.PreferentNeed" Name="PreferentNeed" ShowName="Necesidad preferente" Description="Necesidad a la que de forma preferente estaría asignado el empleado"/>
    <ExtAttribute Definition="Need.PlanArea" Name="PlanAreaNeed" ShowName="Área de la necesidad"/>
    <ExtAttribute Definition="Need.Demand" Name="Demand" ShowName="Demanda"/>
    <ExtAttribute Definition="Need.Demand.Description" Name="DemandDesc" ShowName="Descripción demanda"/>
    <ExtAttribute Definition="Need.Activity" Name="Activity" ShowName="Actividad"/>
    <ExtAttribute Definition="Need.Activity.Description" Name="ActivityDesc" ShowName="Descripción Act."/>
  </Class>

Por un lado se detalla el nombre de la clase interna que define el informe: WorkerDetailedResult.

También se observa las secciones opcionales BeforeExpression y AfterExpression que se evalúan antes y después de iniciar la evaluación de todas las filas del report. En esta sección se pueden incluir la inicialización de variables de sesión o locales del report que se utilizarán posteriormente en el cálculo de cada una de las filas.

En cada nodo ExtAttribute aparece la definición de cada una de las columnas calculadas. Las columnas calculadas consisten básicamente en una expresión que utiliza las funciones internas del sistema para calcular un nuevo valor que será el que se mostrará bajo la nueva columna definida. Los informes estándar, por defecto pueden incluir columnas calculadas. Por este motivo, cuando se vaya a modificar un informe resultará conveniente copiar del archivo query.xml original y replicar la nueva configuración en el archivo de personalización.

Sintaxis al definir un ExtAttribute

A continuación se muestra un ejemplo de definición bastante compleja y se explican cada uno de sus elementos:

  <ExtAttribute Name="HRS_DIFER" ShowName="Horas diferencias" Description="Horas diferencias" Type="double" Default="0.0" IsPayRoll="true"  PayRollTypeName="Diferencias">
    <PayrollExpression> 
      <![CDATA[
        IfElse(CalculaPorcentajes, 
          IfElse(IdCW.SystemProps.HorasSemanales > 35.5,"C180", 
            IfElse(IdCW.SystemProps.HorasSemanales == 35.5,"C181","null")  
          ) 
          ,0.0)
      ]]>
    </PayrollExpression>
    <Expression>
      <![CDATA[
        IfElse(CalculaPorcentajes, 
          DivZero(IfElse(PWORK_R>110.0, (PWORK_R-110) * HREQ_ORD, 0.0), 100.0, 0.0) 
            ,0.0)
      ]]>
    </Expression>
  </ExtAttribute>
  • Name: Es el nombre interno de la columna (nombre de posible variable). Los nombres internos deben empezar por un carácter alfabético o “_” y no contener espacios acentos u otros carácteres especiales ya luego se reutilizarán como variables en otras expresiones.
  • ShowName: (opcional) Es el título de la columna que aparecerá en pantalla
  • Description: (opcional) Es la explicación del contenido de la columna (también accesible en pantalla)
  • Type: (opcional) indica el tipo devuelto por la expresión. Si no se va a reutilizar la columna como variable en expresiones de otras columnas, no es necesario. Los tipos posibles son: bool, int, double, string, dateTime, refObj, boldProperty, color, periodList. Ver Tipos de datos (Type) para más detalles.
  • Default: (opcional) indica el valor por defecto para esta columna. Indicar este atributo y el Type es IMPRESCINDIBLE si se quiere poder usar esta columna como variable en otras expresiones.
  • IsPayRoll: (opcional) sólo se aplica para informes de contadores de nómina o de contabilidad analítica para indicar que esta columna define un concepto de nómina.
  • PayRollTypeName: (opcional) sólo se aplica para informes de contadores de nómina o de contabilidad analítica. Relaciona esta columna calculada con un agrupador de conceptos de nómina, tal como aparecería al exportar los contadores de nómina.
  • Nodo PayrollExpression: (opcional) sólo se aplica para informes de contadores de nómina o de contabilidad analítica. Permite definir la expresión que determinará el código o etiqueta exacta de concepto de nómina que le corresponde a este registro calculado. Retorna un tipo string.
  • Expression: expresión calculada que retorna el valor para la fila del informe calculado. En las expresiones se pueden utilizar todo tipo de operadores lógicos, aritméticos así como funciones internas.
  • Visible: Indica si la columna se ha de mostrar o no. Puede ser util cuando sean necesarias columnas de apoyo para cálculos en otras columnas que sí serán visibles.
  • RefClass: Indica el tipo de objeto al que hace referencia la columna, siempre que la columna sea de tipo refObj
Was this article helpful?
0 out Of 5 Stars
5 Estrellas 0%
4 Estrellas 0%
3 Estrellas 0%
2 Estrellas 0%
1 Estrellas 0%
5
How can we improve this article?
How Can We Improve This Article?
Tags:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Contenido