JavaScript: extensión COM, introducción

JavaScript es el lenguaje de programación para usuario que se soporta en la aplicación (esto no tiene que ver con que la aplicación esté desarrollada completamente en lenguaje C++). Podemos encontrar código abierto que permite al usuario o desarrollador programar sobre la plataforma Ingra, en: Carpetas de búsqueda, que se pueden programar como procedimientos, en los Informes y programas que sirven para imprimir, importar, exportar..., en ventanas programables como las de Importación / exportación y los conceptos de tipo de publicación Web, en búsquedas SQL, en Análisis geográficos programados en procedimientos JavaScript...

El contenedor de todos los mencionados son los conceptos de Tipo Informes o procedimiento, que contienen un programa de texto plano (aunque en pantalla se presente como RTF con colores, tabulaciones, etc.) que contienen instrucciones en lenguaje JavaScript añadidas a instrucciones suministradas por las extensiones que la aplicación hace a JavaScript. La ventana informes y procedimientos muestra los que se distribuyen con el programa, junto a los particulares de cada base abierta, pudiendo añadir en cualquier base nuevos conceptos para obtener informes personalizados o ejecutar procedimientos no incluidos con el programa.

Pueden editarse con cualquier editor de texto ASCII -por ejemplo con el Bloc de Notas de Windows-, pero el campo de edición de la ventana de propiedades de informes utiliza colores distintos para las constantes, las palabras reservadas, y las líneas de comentario, lo que ayuda a la lectura del código.

La aplicación potencia JavaScript para poder obtener informes que se visualizarán en pantalla o impresora, además de crear objetos para manejar la información de forma mucho más cómoda que con las funciones estándar. Las extensiones más importantes se encuentran en torno a 3 objetos extensiones básicas del objeto Ingra que suministran métodos para manejo de fechas, para mostrar diálogos en pantalla, ejecutar otras aplicaciones, etc.; extensiones de impresión que facilitan la tarea de dar formato a los informes, y extensiones de acceso a base de datos que permiten comunicarse con las tablas para poder extraer la información.

 

Las extensiones a JavaScript se han desarrollado utilizando la tecnología COM (Component Object Model) de Microsoft. Esta tecnología define estándares y disciplinas de programación para poder resolver la interactividad entre distintos componentes software.

Así como en el mercado electrónico existe la tecnología Plug & Play (conectar y ya funciona) que hace posible la comunicación entre componentes hardware. La tecnología COM pretende facilitar la comunicación entre componentes software desarrollados en distintos lenguajes de programación y con distintas herramientas. El principal impedimento para esta comunicación es resolver las diferencias entre los sistemas de tipos de datos, ya que los componentes software tienen diferentes reglas para la generación de nombres de símbolos, alineamiento en memoria, distintas convenciones para llamadas a funciones y paso de parámetros, etc.

Un componente es un tipo de datos abstracto estándar a partir del cual el programador puede definir sus propios tipos de forma que sean universalmente entendidos a través de los lenguajes de programación.

Dado que la Aplicación almacena sus datos en bases de datos SQL (Structured Query Languaje), las extensiones a JavaScript para acceso a datos utilizan SQL como lenguaje para comunicarse con la base de datos, por lo que es necesario tener algunas nociones del mismo, en particular conocer la sentencia SELECT, que permite recuperar la información de la base de datos.

Por último, se necesita conocer la estructura de la base de datos es decir, los nombres de campos, las tablas y relaciones entre tablas, para construir las sentencias SELECT que leerán los datos a procesar.

Para comenzar a ver a fondo cómo se programa un informe, vea los temas Propiedades de informes, e Introducción a la programación de informes y sobre todo Extensión COM: objetos y métodos.

 

Ejemplo:

Las extensiones básicas son suministradas a través del objeto que representa la aplicación, sus métodos y propiedades están disponibles para cualquier informe sin tener que crear o referenciar dicho objeto. Permiten mostrar diálogos en pantalla, recuperar la fecha del sistema, dar formato a fechas y números, ejecutar otras aplicaciones, abrir un diálogo para depuración del programa, etc.

Las siguientes sentencias son una muestra de la funcionalidad suministrada por las extensiones básicas. Puede seleccionar el texto arrastrando con el ratón y pegarlo en un programa en blanco de prueba:

// Prueba de extensiones básicas
diaavisa ("Pruebas", "pruebas extensiones básicas, Acepte para continuar"); // Diálogo de aviso
var txt = diaedita ("Pruebas", "Teclee el título a mostrar en el archivo y pulse Acepta o pulse Cancela para interrumpir las pruebas"); // Diálogo de edición
if (txt == null) salir();  // finaliza la ejecución del programa
writeline ("Título: "+txt);
writeline ("Hoy es " + fecdianombre (hoy) + " " + fecdia (hoy) + " de " + fecha (hoy, "mmmm") + " de " + fecano (hoy));
writeline ("Este es el archivo presenta.txt que se almacenará en el directorio: " + dirtemporal());
writeline ("El número 123456.678 redondeado por el método red() con 2 decimales resulta: " + red (123456.678,2));
writeline ("El número 123456.678 formateado por el método format() con 2 decimales resulta: " + formato (123456.678, 2));
writeline ("El número 123456.678 es interpretado por el método letra() como " + letra (123456.678));

Al pulsar Preliminar, se ejecuta el programa, y después de introducir el texto, se abre el Bloc de Notas de Windows, con el archivo presenta.txt mostrando la información generada.