Como crear tablas con FrontScript (Parte 1)

Cuando se trata de hacer informes en eFront, lo primero que debemos hacer es crear las tablas de datos a partir de las cuales se rellenarán las plantillas. Hoy veremos varias formas de crear tablas en eFront.

La primera de ellas es una tabla creada directamente registro por registro. Lo primero que haremos será declarar nuestra tabla, le daremos un nombre y las columnas que tiene con las propiedades de cada una, p.e. el tipo de dato. Después añadiremos los valores de las columnas para cada registro. Como ejemplo, crearemos una tabla que se llamará Example, tendrá tres columnas y añadiremos dos registros:

//Declaring our table
DATA WORK.EXAMPLE;
    COLUMN ID;
    COLUMN FIRSTNAME;
    COLUMN NAME;
    
    //First record
    ID = "C001";
    FIRSTNAME= "Carolina";
    NAME = "Perez";
    OUTPUT;
    
    //Second record
    ID = "C002";
    FIRSTNAME = "Pedro";
    NAME = "Jimenez";
    OUTPUT;
RUN;

PROC PRINT DATA = WORK.EXAMPLE NOOBS;
RUN; 

Como vemos en el código, con la sentencia DATA estamos declarando nuestra tabla. En este ejemplo estamos trabajando con el nivel WORK, que es un directorio temporal donde almacenaremos la tabla durante el tiempo de ejecución. Después declaramos las tres columnas que necesitamos, en estas líneas podemos añadir atributos para cambiar el formato si es necesario (alineamiento, tipo de datos, ancho de columna, etiqueta...)

Antes de terminar la sentencia DATA tenemos que crear los registros, dando valores a cada una de las columnas de la tabla. Es importante que después de cada registro utilicemos el comando OUTPUT, de esta forma eFront escribe registro por registro en la tabla. De otra forma, eFront únicamente incluirá en la tabla el registro que precede al comando, los que no llevasen el comando OUTPUT no se guardarían aunque estuviesen definidos.

Por último, imprimiremos la tabla para poder ver el resultado:

Ésta es la manera más básica de crear una tabla con FrontScript, pero no resulta útil si ya tenemos esos registros guardados en la base de datos de eFront. Para acceder a esos registros sin tener que crearlos uno a uno en el programa, podemos utilizar la sentencia SQL que nos permitirá hacer queries tanto dentro del mismo eFront como en una bbdd externa. Por ejemplo:

DATA WORK.EXAMPLE;
    SQL "SELECT TOP 4 IQID, FIRSTNAME, LASTNAME FROM SFACONTACT";
    COLUMN ID;
    COLUMN FIRSTNAME;
    COLUMN NAME;
RUN;

PROC PRINT DATA = WORK.EXAMPLE NOOBS;
RUN; 

Además de la sentencia SQL, es necesario declarar también tantas columnas como vayamos a extraer y en el mismo orden que en la query, sobre todo si especificamos el tipo de datos en los comandos COLUMN, para que eFront pueda almacenar correctamente los datos. En el ejemplo, hemos extraído el id, el nombre y el apellido del contacto mediante sql, por lo que tenemos que declarar esas tres columnas para la tabla de FrontScript.

En esta tabla Example guardaremos los cuatro primeros registros que tengamos en el objeto contactos de eFront. Con muchas menos líneas de código somos capaces de obtener un número mayor de resultados.

¿Qué ocurre si nuestros contactos no están registrados en eFront, pero sí están en otra base de datos de nuestra propiedad? Fácil, sólo tendremos que añadir el atributo "Connection" a la sentencia SQL. En este atributo escribiremos la cadena de conexión (connection string) de la bbdd a la que queramos acceder.

DATA WORK.EXAMPLE;
    SQL "SELECT TOP 4 ID, NAME, SURNAME FROM T_CONTACT" CONNECTION="OurDBConnectionString";
    COLUMN ID;
    COLUMN FIRSTNAME;
    COLUMN NAME;
RUN;

PROC PRINT DATA = WORK.EXAMPLE NOOBS;
RUN; 

Estas son las maneras más sencillas de crear tablas en eFront. Por supuesto, podemos combinar las formas anteriores para ampliar la información contenida en nuestras tablas, por ejemplo, cuando necesitamos combinar varias columnas en nuestra tabla. 

">
Dimensiones del Cloud según el modelo de servicio
La era del Big Data

Related Posts

Comments

 
No comments yet
Already Registered? Login Here
Guest
Martes, 11 Diciembre 2018
If you'd like to register, please fill in the username and name fields.
Open

Si quieres unirte a nosotros o si tienes alguna pregunta sobre el mundo del CRM, haz clic aquí.