Guía de creación de scripts de ACL 14.1

Uso de una función para agrupar registros por mes

Para simplificar las cosas, en los tutoriales anteriores, una cantidad de ejemplos de funciones de Analytics hacen uso de valores de entrada literales: "john SMITH", "VT-123-45", etc. Pero, ¿cómo se aplica una función al conjunto completo de valores de un campo de una tabla de Analytics?

Aplicar una función a todo un campo puede ayudarlo a realizar tareas útiles, como agrupar los registros de una tabla por mes.

Una manera de aplicar una función a todos los valores de un campo consiste en crear un campo calculado. Un campo calculado es un campo que usted crea, con frecuencia sobre la base de un campo físico real, pero que está conformado íntegramente por valores calculados por Analytics.

De manera similar a la salida de una función, puede pensar en un campo calculado como datos virtuales, calculados por Analytics, que existen en la memoria. Una vez calculados, estos datos virtuales se pueden utilizar para realizar operaciones posteriores.

Podemos crear un campo calculado denominado Mes que utiliza la función MONTH( ) para extraer la parte del mes de cada fecha de un campo de fecha de factura. Después, podemos agrupar los registros por mes en la tabla.

Crear el campo calculado

  1. En Analytics, abra Sample Project.ACL y abra la tabla Trans_Cp (Tables\Accounts_Payable\Trans_Cp).

    Si Sample Project.ACL no está disponible, abra cualquier tabla que tenga un campo de fecha. Para trabajar con este ejemplo, el campo debe usar el tipo de datos Fechahora.

  2. Realice los siguientes pasos para crear el campo calculado Mes:
    1. En la parte superior de la vista, haga clic en Editar el formato de tabla .
    2. En el cuadro de diálogo Formato de tabla, haga clic en Agregar una nueva expresión .
    3. En el campo Nombre, escriba Mes y en el campo Valor predeterminado, copie y pegue esta versión de la función MONTH( ):

      MONTH(Fecha_factura)

      Si no está usando la tabla Trans_Cp, actualice el nombre del campo para que coincida con sus datos.

    4. Haga clic en Aceptar entrada y cierre el cuadro de diálogo Formato de tabla.
    5. En la vista de la tabla, haga clic con el botón derecho del ratón en el encabezado de la columna Fecha_factura, seleccione Agregar columnas, en Campos disponibles haga doble clic en Mes y haga clic en Aceptar.

      Resultado: Se agrega el campo calculado Mes a la vista. Contiene la parte del mes de cada fecha en la columna Fecha factura, que se muestra como un número del 1 al 12.

    6. Haga clic en Guardar el proyecto abierto para guardar los cambios.

Agrupe los registros por mes

Ahora que creó el campo calculado Mes, puede utilizarlo para agrupar los registros de la tabla Trans_Cp por mes.

  1. Desde el menú principal, seleccione Analizar > Resumir.
  2. En la lista Resumir en, seleccione el campo Mes.
  3. Desde la lista Campos de subtotales, seleccione el campo Importe_factura.
  4. Haga clic en la ficha Salida, seleccione Archivo, escriba Trans_Cp_agrupada en el campo Nombre y haga clic en Aceptar.

    Resultado: Analytics crea la nueva tabla, que agrupa los registros de la tabla Trans_Cp por mes. Para cada mes, hay un subtotal de importe de factura y un recuento de la cantidad de registros que hay en el mes.

    MesImporte facturaRecuento
    185.670,2212
    24.496,566
    32.941,805
    4467,401
    58.272,575
    61.582,862
    73.101,984
    821.146,962
    932.577,3220
    1041.595,8919
    1170.779,2619
    126.008,517

Puede utilizar la función CMOY( ) para crear un segundo campo calculado si desea mostrar los nombres de los meses. CMOY es la abreviatura de la expresión "Mes del año en caracteres", en inglés.

  1. En la tabla Trans_Cp, siga los mismos pasos que utilizó para crear el campo calculado Mes y agréguelo a la vista de la tabla, pero con las siguientes diferencias:
    • En el campo Nombre, escriba Mes_2.
    • En el campo Valor predeterminado, copie y pegue esta versión de la función CMOY( ):

      CMOY(Fecha_factura; 9)

    Resultado: Se agrega el campo calculado Mes_2 a la vista, con el nombre de cada mes.

  2. Siga los mismos pasos que utilizó para agrupar los registros desde la tabla Trans_Cp por mes, pero con las siguientes diferencias:
    • En la lista Otros campos, seleccione Mes_2.
    • En la ficha Salida, especifique el nombre del archivo de salida Trans_Cp_agrupada_2.

    Resultado: Analytics crea la nueva tabla, que agrupa los registros de la tabla Trans_Cp por mes, pero esta vez, se incluyen los nombres de los meses.

    MesImporte facturaRecuentoMes_2
    185.670,2212Enero
    24.496,566Febrero
    32.941,805Marzo
    4467,401Abril
    58.272,575Mayo
    61.582,862Junio
    73.101,984Julio
    821.146,962Agosto
    932.577,3220Septiembre
    1041.595,8919Octubre
    1170.779,2619Noviembre
    126.008,517Diciembre

En muchos casos, resulta útil la creación de un campo calculado como un modo de aplicar una función a varios valores. Sin embargo, puede obtener el mismo resultado y agilizar su trabajo en Analytics incrustando funciones directamente en los comandos de Analytics.

Incruste una función para ayudar a agrupar los registros por mes

Utilizaremos el mismo ejemplo anterior, pero sin crear los campos calculados. Por el contrario, incrustaremos las funciones directamente en el comando resumir.

  1. Abrir la tabla Trans_Cp.
  2. Desde el menú principal, seleccione Analizar > Resumir.

Incruste la función MONTH( )

  1. Haga clic en Resumir sobre y, a continuación, haga clic en Expr.
  2. En el Generador de expresiones, haga doble clic en MONTH( fecha/fechahora ) en la listaFunciones.

    Consejo

    Para que sea más fácil encontrar la función MONTH( ), seleccione Fecha y hora en el filtro desplegable ubicado en la parte superior de la lista Funciones.

  3. En el cuadro de texto Expresión, seleccione fecha/fechahora y haga doble clic en Fecha_factura en la lista Campos disponibles.

    Debe tener MONTH( Fecha_factura) en el cuadro de texto Expresión.

    Nota

    La expresión debería resultarle familiar. Es la misma que la del campo calculado del ejemplo anterior, salvo que lleva incrustado el comando resumir.

  4. Haga clic en Aceptar para salir del Generador de expresiones y haga clic en Aceptar para salir del cuadro de diálogo Seleccione campos.

Incruste la función CMOY( )

  1. Haga clic en Otros campos y, a continuación, haga clic en Expr.
  2. En el Generador de expresiones, haga doble clic en CMOY( fecha/fechahora ; longitud ) en la listaFunciones.
  3. En el cuadro de texto Expresión, reemplace fecha/fechahora por Fecha_factura y longitud por 9.

    Debe tener CMOY( Fecha_factura; 9) en el cuadro de texto Expresión.

  4. Haga clic en Aceptar para salir del Generador de expresiones y haga clic en Aceptar para salir del cuadro de diálogo Seleccione campos.

Finalice la operación de resumen

  1. Desde la lista Campos de subtotales, seleccione el campo Importe_factura.
  2. Haga clic en la ficha Salida, seleccione Archivo, escribaTrans_Cp_agrupada_3 en el campo Nombre y haga clic en Aceptar.

    Resultado: Analytics crea la nueva tabla, que agrupa los registros de la tabla Trans_Cp por mes. Puede ver las dos funciones incrustadas.

    MONTH(Importe_factura)Importe facturaRecuentoCMOY(Fecha_factura; 9)
    185.670,2212Enero
    24.496,566Febrero
    32.941,805Marzo
    4467,401Abril
    58.272,575Mayo
    61.582,862Junio
    73.101,984Julio
    821.146,962Agosto
    932.577,3220Septiembre
    1041.595,8919Octubre
    1170.779,2619Noviembre
    126.008,517Diciembre

Punto clave

Utilizó dos métodos diferentes para lograr exactamente el mismo resultado:

  • Campo calculado La creación de un campo calculado antes de usar el campo en un comando es un enfoque paso a paso más literal. Puede ser un enfoque adecuado si desea utilizar el campo calculado para más de una finalidad.
  • Función incrustada Un enfoque más ágil consiste en evitar la creación de un campo calculado e incrustar una función en un comando. Puede ser un enfoque adecuado en el contexto de la creación de scripts que permite obtener scripts más eficientes.

Si desea tener más práctica en el uso de las funciones para crear campos calculados o en la inclusión de funciones en los comandos, vuelva a hacer alguna o todas las actividades anteriores y reemplace las funciones por DOW( ) y CDOW( ).

DOW( ) y CDOW( ) son muy similares a MONTH( ) y CMOY( ), salvo que extraen el día de la semana de la fecha en lugar de extraer el mes del año.

Consejo

Con DOW( ) y CDOW( ), podría hacer un análisis comparativo de las cifras de diferentes días de la semana.

Puede utilizar el método DISPLAY en la línea de comandos para tener una idea de cuál será la salida al crear un campo calculado o incrustar una función en un comando.

  1. Con la tabla Trans_Cp abierta, pegue esta versión de la función UPPER( ) en la línea de comandos, escriba DISPLAY y un espacio antes de la función pegada y pulse Intro.

    UPPER(Proveedor.Nombre_proveedor)

    La función UPPER( ) convierte todas las entradas de texto en mayúscula.

    Si se selecciona el primer registro de la tabla Trans_Cp, la salida de la función es MORE POWER INDUSTRIES.

  2. En la tabla, seleccione el número de registro 6.

    Haga clic en el número de registro para seleccionar el registro. El número del registro actualmente seleccionado aparece resaltado en verde.

  3. Escriba o vuelva a cargar la función en la línea de comandos y pulse Intro.

    La salida de la función es UNITED EQUIPMENT.

  4. Seleccione uno o dos registros diferentes y repita el proceso.

    Punto clave: Está viendo lo que un campo calculado o una función incrustada haría a todos los valores del campo Proveedor.Nombre_proveedor, registro por registro.

    Puede utilizar este método de prueba con cualquiera de las funciones de Analytics que tienen un campo como entrada.

Aprenda a usar variables con una función para crear interacción: Uso de variables con una función para permitir que el usuario introduzca información