Cover

Códice FX

Tabla de contenido

1.- Introducción 5

1.1.- Qué es Códice FX_ 6

1.2.- Quienes pueden usar Códice FX_ 7

1.3.- Que puede hacer con Códice 7

1.4.- Instalación y configuración 9

1.5.- El acceso a bases de datos 10

1.5.1.- Conceptos importantes 10

1.6.- Resumen sobre la tecnología OLE DB_ 10

1.7.- Administrador de conexiones 11

1.8.- Obtener soporte técnico_ 13

2.- El diseñador de reportes 14

2.1.- Revisión general del diseñador de reportes 15

2.1.1.- La interfaz del usuario_ 15

2.2.- Crear, abrir y guardar diseños de reportes 16

2.2.1.- Ventana de bienvenida 16

2.2.2.- Nuevo proyecto_ 16

2.2.3.- Abrir un archivo: 17

2.3.- Elementos que forman un reporte 18

2.3.1.- Conexiones. 18

2.3.2.- Origen de registros 19

2.3.3.- Parámetros 19

2.3.4.- Diálogos 20

2.3.5.- Formatos de impresión 21

2.3.6.- Imágenes y textos 23

2.3.7.- Subprograma 23

3.- Usar Códice FX_ 26

3.1.- Empezar a trabajar con codice FX (“Hola Mundo”) 27

3.2.- Uso del diseñador de conexion para configurar el acceso a los datos. 29

3.2.1.- Uso del administrador de conexiones de Grupo Execom_ 30

3.3.- Diseñando orígenes de datos 32

3.3.1.- Conectar con Access 32

3.3.2.- Conectar con MS SQL Server 34

3.3.3.- Conectar con MySQL 36

3.4.- Creación de orígenes de registros 38

3.5.- Generar listados sencillos 42

3.6.- Generar reportes Principal – Detalle 43

3.7.- Generar reportes con agrupaciones y resúmenes 46

3.8.- Generar etiquetas en planilla 48

3.9.- Generar etiquetas en forma continua 50

3.10.- Generar tarjetas plásticas 51

3.11.- Codificar banda magnética, Smart-card y RFID_ 52

3.12.- Modelo de programación 55

3.12.1.- Consideraciones para el programador 55

3.12.2.- Eventos interceptables 55

3.12.3.- Visual Basic Script y JavaScript 57

3.12.4.- Ejemplos 58

3.12.4.1.- Cómo validar un rango de fechas de un diálogo_ 58

3.12.4.2.- Cómo definir funciones de usuario que puedan ser usadas en fórmulas 60

3.12.4.3.- Interceptando eventos del reporte_ 61

4.- Referencia de objetos de Códice 63

4.1.- Controles de diálogos 65

4.1.1.- Texto estático: 65

4.1.2.- Campo de texto: 66

4.1.3.- Campo numérico: 67

4.1.4.- Campo memo: 68

4.1.5.- Campo fecha: 68

4.1.6.- Campo hora 69

4.1.7.- Campo selección 70

4.1.8.- Casilla de verificación 71

4.1.9.- Selector de registros 72

4.1.10.-Botón de comando_ 73

4.1.11.- Imagen 74

4.2.- Controles de formatos de impresión 74

4.2.1.- Control rectángulo: 75

4.2.2.- Control texto estatico: 76

4.2.3.- Control campo_ 78

4.2.4.- Control de formula 79

4.2.5.- Control casilla de verificacion 81

4.2.6.- Control código de barras 82

4.2.7.- Control imagen 84

4.2.8.- Control tabla 87

4.2.9.- Control grafica 88

4.2.10.- Control cuadricula detalle 90

4.3.- Elementos de la interfaz del diseñador 94

4.3.1.- El diseñador de conexión 94

4.3.2.- El diseñador de orígenes de registros 96

4.3.3.- El diseñador de consultas SQL 98

4.3.3.1.- Trabajando con el diseñador de consultas SQL 100

4.3.3.2.- Diseñando combinaciones entre tablas 100

4.3.3.3.- Incluyendo condiciones de filtro_ 101

4.3.4.- El diseñador de diálogos 103

4.3.5.- El diseñador de formatos de impresion 103

4.3.5.1.- Configurar formato de impresión_ 103

4.3.5.2.- Banda magnética, smart-card y otras opciones avanzadas: 104

4.3.6.- El editor de fórmulas 107

4.3.7.- El editor de filtros 108

4.3.7.1.- Campo: 108

4.3.7.2.- Operador: 109

4.3.7.3.- Valor: 109

4.3.7.4.- Unión: 109

4.3.8.- El editor de código_ 109

4.3.9.- El explorador de proyecto_ 109

4.3.10.- El panel de resultados 110

4.3.11.- La caja de controles 111

4.3.12.- Barras de herramientas y paneles 112

4.3.12.1.- Barra de menú: 112

4.3.12.2.- Barra de archivo: 112

4.3.12.3.- Menú Archivo_ 113

4.3.12.4.- Barra format 113

4.3.12.5.- Menú Formato_ 114

4.3.12.6.- Barra de tabla: 115

4.3.12.7.- Barra de edición_ 115

4.3.12.8.- Menú edición_ 116

4.3.12.9.- Barra de utilidades 116

4.3.12.10.- Menú ver: 117

4.3.12.11.- Menú proyecto_ 117

4.3.12.12.- Menú de ayuda_ 118

4.3.12.13.- Barra de estilo_ 119

5.- Uso del motor en tiempo de ejecución 121

5.1.- Procesamiento de orígenes de registros por el motor en tiempo de ejecución 122

5.1.1.- Paso de parámetros y uso de Macros 122

5.1.2.- Filtros VS cláusulas WHERE/HAVING_ 122

5.1.3.- Expresiones de ordenación VS Order By 123

5.2.- Uso de la API de Códice 124

5.2.1.- Descripción de los componentes 124

5.2.2.- Ejecutar y mostrar un reporte desde VB6 125

5.2.3.-Ejecutar y mostrar un reporte desde C# 128

5.2.4.- Programación a través de los objetos del Administrador de conexiones. 130

5.2.5.- Ejemplos 131

5.2.5.1.- Administrador de conexiones (Visual Basic 6.0) 131

5.2.5.2.- Credencialización (Visual Basic 6.0) 131

5.2.5.3.- Visor de reportes (Visual Basic 6.0) 132

5.2.5.4.- Abrir y ejecutar un reporte con C# 2005_ 132

5.3.- Referencia de objetos del motor en tiempo de ejecución 133

5.3.1.- eBASIC_ 133

5.3.2.- Jerarquía eReport 146

5.3.3.- Jerarquía eDigitalDoc 149

5.3.4.- XPREngine 169

5.3.5.- geOLEDbServices 183

6.- Especificación del formato XPD_ 185

7.- Especificación del formato XPR_ 189

8.- Entorno de extensión de Códice FX_ 191

8.1.- Crear plantillas 192

8.2.- Programar asistentes 192

Anexo 1.- Bases de datos relacionales y consultas con SQL. 194

Acerca de Códice FX_ 211


1.- Introducción

1.1.- Qué es Códice FX_ 6

1.2.- Quienes pueden usar Códice FX_ 7

1.3.- Que puede hacer con Códice 7

1.4.- Instalación y configuración 9

1.5.- El acceso a bases de datos 10

1.5.1.- Conceptos importantes 10

1.6.- Resumen sobre la tecnología OLE DB_ 10

1.7.- Administrador de conexiones 11

1.8.- Obtener soporte técnico_ 13

Códice FX © Grupo Execom - www.grupoexecom.com/codice


1.1.- Qué es Códice FX

Es una plataforma basada en Windows para el diseño, procesamiento y despliegue de informes constituida por un diseñador de reportes (reporteador) y un conjunto de componentes para su ejecución (motor en tiempo de ejecución) y presentación (visor).

El reporteador permite construir la especificación de un reporte, el motor en tiempo de ejecución la interpreta y produce una salida (informe), mientras que el visor se encarga de la presentación para el usuario.

Las especificaciones de los reportes de Códice están formados por:

  • Orígenes de datos. Estos se construyen a partir de una conexión y consultas SQL que permiten obtener un conjunto de registros, los cuales serán impresos de acuerdo a los formatos de impresión diseñados.

  • Parámetros. Permiten especificar datos que pueden ser usados como criterios de filtro en las consultas SQL.

  • Diálogos. Ofrecen una interfaz de usuario con el principal propósito de solicitar información que se asigna a los parámetros del reporte.

  • Formatos de impresión. Es el diseño que tendrán los datos en el papel al ser impresos.

  • Sub-programa. Consiste en un conjunto de rutinas en lenguaje Visual Basic Script que el usuario puede definir para aumentar la funcionalidad del reporte, ya sea realizando cálculos complejos, acciones sobre los datos o interceptando y respondiendo a eventos durante la ejecución.

  • Otros recursos. Consisten en texto simple o imágenes que la especificación del reporte contiene para que los utilice durante la ejecución.

La especificación del reporte se almacena en archivos con extensión XPD cuyo formato es abierto y se detalla más adelante. (Vea Especificación del formato XPD).

Por su parte, el motor en tiempo de ejecución produce un documento a partir del archivo XPD que contiene los datos y es finalmente un informe.

Los informes pueden almacenarse en archivos con extensión XPR y desplegarse a través de un visor para este formato.

Es importante apuntar que los formatos XPD y XPR están basados en XML, lo que facilita su comprensión, adecuación, adopción y posible implementación en otros sistemas operativos.

Vea también:

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte


1.2.- Quienes pueden usar Códice FX

Códice FX ofrece ventajas para diseñar, procesar y analizar información a usuarios finales (no programadores) y desarrolladores de software (programadores).

  • Programadores/desarrolladores de software. Pueden diseñar todos los informes de sus aplicaciones usando el reporteador de Códice FX e incorporar los componentes del motor en tiempo de ejecución y los visores en su producto final. Es importante mencionar que al distribuir los reportes como archivos XPD no es necesario recompilar las aplicaciones que usen los reportes cuando se hagan cambios al diseño de éstos.

  • Usuarios finales. Los usuarios finales por su parte pueden utilizar el diseñador para construir sus propios reportes o utilizar los ya existentes a través de los visores de Códice FX o de aplicaciones de terceros.

Vea también:

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte


1.3.- Que puede hacer con Códice

Construir reportes que presenten información basada en parámetros que sean suministrados por el usuario o por otra aplicación.

Códice FX proporciona mecanismos para generar reportes con parámetros que permitan filtrar el conjunto de resultados o incrustarse en las consultas SQL

En Códice FX se pueden construir cuadros de diálogo (ventanas) que permitan al usuario introducir los valores requeridos a través de controles con amplias características, Códigos de barras, imágenes y gráficas. Códice FX permite construir reportes que incluyan códigos de barras (EAN/UPC/Code 39/Code128) con solo dibujarlos.

Los reportes pueden incluir imágenes que estén almacenadas en la base de datos o en cualquier ubicación (externa o interna al reporte).

También es posible incorporar gráficas (barras/líneas/pastel/etc.) de los datos con unos cuantos clicks

Vea también:

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte

Ejemplos:

  • Generar listados sencillos
  • Generar reportes Principal – Detalle
  • Generar reportes con agrupaciones y resúmenes
  • Generar etiquetas en planilla
  • Generar etiquetas en forma continua
  • Generar tarjetas plásticas
  • Codificar banda magnética, Smart-card y RFID


1.4.- Instalación y configuración

Para instalar Códice FX debe considerar los siguientes aspectos que son de vital importancia para realizar la instalación.

  1. Tener un usuario de Windows con privilegios de administrador.

  2. La instalación únicamente puede realizarse por equipo no por usuario.

  3. Codice FX puede instalarse en Windows VISTA, Windows XP, Windows 2003 Server, Windows 2000 y Windows MILENIUM.

Para Instalar Códice FX haga doble clic en el archivo “CodiceFXDesigner.exe” y siga el asistente hasta completar la instalación.

Nota:

  • Al finalizar la instalación se ejecutara automáticamente un archivo que creara las conexiones para los proyectos de ejemplo que incluye Códice FX

  • Debe tener en cuenta que para algunos motores de base de datos es necesario instalar un driver para realizar la conexión.

Vea también:

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte


1.5.- El acceso a bases de datos

Para producir un reporte es necesario obtener información desde una base de datos, Códice FX utiliza la tecnología OLE DB para establecer la conexión y recuperar conjuntos de registros.

Este mecanismo permite generar reportes a partir de la información contenida en cualquier sistema administrador de bases de datos (DataBase Management System DBMS por sus siglas en inglés) que proporcione un proveedor OLE DB.

Sin embargo para aprovechar al máximo las características de Códice FX y del DBMS que contiene la información, es necesario establecer consultas en SQL que permitan delinear el conjunto de registros acorde a los objetivos del informe.


1.5.1.- Conceptos importantes

  • Conexión. Es la especificación OLE DB para comunicarse con el DBMS, regularmente definida mediante una cadena de conexión.

  • Origen de registros. Es la especificación de una consulta sobre una conexión.

  • Conjunto de registros. Es el resultado de la ejecución de la especificación de un origen de registros, los datos en forma tabular que serán utilizados.

Vea también:

  • Conexiones
  • Orígenes de registro
  • Bases de datos relacionales y consultas con SQL


1.6.- Resumen sobre la tecnología OLE DB

OLEDB Object Linking and Embedding for Databases ("Incrustación y enlace de objetos para bases de datos") y es una tecnología desarrollada por Microsoft usada para tener acceso a bases de datos de manera uniforme.

OLE DB está conceptualmente dividido en consumidores y proveedores; el consumidor es la aplicación que requiere acceso a los datos y el proveedor es el componente de software que expone una interfaz OLE DB a través del uso del Component Object Model (COM).

OLE DB forma parte de los "Componentes de Microsoft para Acceso a Datos" o Microsoft Data Access Components (MDAC); MDAC es un grupo de tecnologías de Microsoft que interactúan en conjunto como una infraestructura que brinda a los programadores una forma para desarrollar aplicaciones con acceso a casi cualquier almacén de datos.

Los proveedores OLE DB pueden ser creados para tener acceso a almacenes de datos que van desde simples archivos de texto y hojas de cálculo, hasta bases de datos complejas como MySQL, Microsoft SQL Server o Sybase ASE.

Códice FX es un consumidor OLE DB y por tanto requiere MDAC versión 2.6 o posterior instalada en el equipo.

MDAC es incluida como parte de los sistemas operativos Windows y pueden obtenerse las actualizaciones desde www.microsoft.com/data.

La forma como Códice FX (y cualquier consumidor OLE DB) puede establecer una conexión con una base de datos es a través de una cadena de conexión.

Las cadenas de conexión permiten identificar al proveedor OLE DB específico para un almacén de datos y detalles acerca del modo como se llevará a cabo el intercambio de información.

La confección de las mencionadas cadenas se realiza mediante una interfaz visual (vea la figura) que permite escoger las opciones propias de cada caso.

Nota. Se ha usado el término almacén de datos debido a que OLE DB no solo permite acceder a bases de datos, sino a cualquier información que exponga un proveedor OLE DB.

Vea también:

  • Conexiones
  • Origenes de registro
  • Bases de datos relacionales y consultas con SQL


1.7.- Administrador de conexiones

Aunque establecer una conexión a una base de datos no resulta demasiado complicado, en la práctica estas cadenas de conexión pueden cambiar de un equipo a otro. Esto implica que si el reporte se diseña en un equipo y luego se quiere distribuir junto con una aplicación o ejecutarse en diferentes equipos o redes, sería necesario editar el reporte para adecuar la cadena de conexión en cada caso o establecerlas en tiempo de ejecución por la aplicación que ejecutase el reporte.

Para simplificar estos problemas, Códice FX incluye un componente especializado en mantener las cadenas de conexión asociadas con un nombre: Administrador de conexiones.

Al estar el reporte diseñado utilizando un nombre de conexión en lugar de una cadena, puede distribuirse sin problemas siempre que en los equipos donde se ejecute se encuentre una asociación equivalente, es decir, solo se necesita configurar el nombre en cada equipo una vez sin tener que modificar el diseño del reporte.

Todos los detalles acerca de la cadena de conexión son asociados a un nombre, clasificados por aplicación a la que pertenecen y almacenados en un archivo XML protegido por una firma digital que impide sea modificado sin autorización.

En el mismo sentido, información sensible que se usa para conectarse a un almacén de datos como contraseñas se en cripta usando el algoritmo AES protegiendo el acceso no autorizado.

La administración de las conexiones puede efectuarse a través de la interfaz de usuario o mediante programación usando los objetos COM que expone.

Para conocer el uso del administrador de conexiones vea: “Uso del Administrador de conexiones para configurar el acceso a los datos” Más adelante en este manual

Para conocer los objetos COM y la utilización mediante programación vea: “Programación a través de los objetos del Administrador de conexiones” Más adelante en este manual

Vea también:

  • Conexiones
  • Orígenes de registro
  • Bases de datos relacionales y consultas con SQL
  • Programación a través de los objetos del Administrador de conexiones


1.8. - Obtener soporte tecnico

1.8.- Obtener soporte técnico

Soporte técnico

Para obtener asistencia técnica por favor visite el sitio en Internet: www.grupoexecom.com/codice/soporte

Otros enlaces

  • Foros de asistencia técnica: www.grupoexecom.com/foro
  • Página Web del producto: www.grupoexecom.com/codice
  • Página Web del fabricante (Grupo Execom): www.grupoexecom.com

Vea también

Empezar a trabajar con Códice FX


2.- El diseñador de reportes

2.1.- Revisión general del diseñador de reportes 15

2.1.1.- La interfaz del usuario_ 15

2.2.- Crear, abrir y guardar diseños de reportes 16

2.2.1.- Ventana de bienvenida 16

2.2.2.- Nuevo proyecto_ 16

2.2.3.- Abrir un archivo: 17

2.3.- Elementos que forman un reporte 18

2.3.1.- Conexiones. 18

2.3.2.- Origen de registros 19

2.3.3.- Parámetros 19

2.3.4.- Diálogos 20

2.3.5.- Formatos de impresión 21

2.3.6.- Imágenes y textos 23

2.3.7.- Subprograma 23


2.1.- Revisión general del diseñador de reportes

Códice FX posee un diseñador de reportes completamente gráfico que permite la creación de reportes de una manera sencilla, agregando tablas, creando conexiones y agregando campos Por lo tanto cubre las necesidades de cualquier usuario y programadores o desarrolladores de software, además puede elaborar gafetes, impresión de tarjetas, grabado de tarjetas con banda magnética, impresión y creación de códigos de barra y etiquetas. Por su gran versatilidad es la herramienta de elaboración de informes, formatos y reportes que necesita para satisfacer las necesidades de su empresa y mejorar sus informes.

Códice FX cubre los aspectos básicos y las principales necesidades de cualquier Programador/desarrollador de software o usuario final para la elaboración de reportes, listados, tarjetas y etiquetas ya que permite conectarse a cualquier base de datos que disponga de un proveedor OLEDB o un driver ODBC.

Vea también:

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte

Ejemplos:

  • Generar listados sencillos
  • Generar reportes Principal – Detalle
  • Generar reportes con agrupaciones y resúmenes
  • Generar etiquetas en planilla
  • Generar etiquetas en forma continua
  • Generar tarjetas plásticas
  • Codificar banda magnética, Smart-card y RFID


2.1.1.- La interfaz del usuario

La moderna y simple interfaz de usuario no limita en nada la gran capacidad de Códice FX haciendo de la obtención de información una tarea sencilla y rápida. Podemos crear reportes tan rápido como podemos ver los resultados ya que tiene su propio visor de reportes, puede realizar modificaciones y ver los resultados con solo ejecutar el reporte en el propio diseñador.

Vea también:

  • Uso del diseñador de conexión para configurar el acceso a los datos
  • El diseñador de orígenes de registros
  • El diseñador de consultas SQL
  • El diseñador de diálogos
  • El diseñador de formatos de impresión
  • El editor de fórmulas


2.2.- Crear, abrir y guardar diseños de reportes

  • Ventana de bienvenida
  • Nuevo proyecto
  • Abrir un archivo


2.2.1.- Ventana de bienvenida

Al ejecutar la aplicación mostrará la ventana de inicio con los procedimientos iníciales que puede realizar como:

  1. Nuevo proyecto,
  2. Abrir un archivo
  3. Leer la ayuda.

Vea también:

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte


2.2.2.- Nuevo proyecto

Al seleccionar Nuevo proyecto la aplicación abre la ventana de Nuevo reporte donde puede elegir Nuevo reporte en blanco, utilizar una plantilla o un asistente para crear un nuevo reporte.

Nuevo reporte en blanco

1.- Seleccione el icono de Nuevo proyecto en blanco, escriba el nombre del proyecto y haga clic en el botón aceptar.

El programa agrega automáticamente un formato de impresión que le servirá de punto de partida.

Vea también:

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte
  • Uso del diseñador de conexión para configurar el acceso a los datos
  • El diseñador de orígenes de registros
  • El diseñador de consultas SQL
  • El diseñador de diálogos
  • El diseñador de formatos de impresión
  • El editor de fórmulas


2.2.3.- Abrir un archivo:

1.- En la barra de herramientas Archivo haga clic en Abrir, el botón [image] puede también utilizar el meta comandó ALT+A.

2.- La aplicación mostrara la ventana Abrir.

  • En la lista Buscar en, haga clic en la carpeta, unidad o ubicación que contiene el proyecto que desea abrir.

Nota: De forma predeterminada, los archivos que se ven en el cuadro de diálogo Abrir son sólo los archivos con extensión xpd, es decir el diseño de los reportes, si desea abrir otro tipo de archivo haga clic en tipo y seleccione archivos (*.*), ya que puede también abrir los documentos con extensión xpr para ver su contenido.

3.- Una vez encuentre el archivo selecciónelo y haga clic en Abrir

Vea también:

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte


2.3.- Elementos que forman un reporte

  • Conexiones. 18

  • Origen de registros 19

  • Parámetros 19

  • Diálogos 20

  • Formatos de impresión 21

  • Imágenes y textos 23

  • Subprograma 23


2.3.1.- Conexiones.

Códice FX utiliza la tecnología OLE DB para establecer la conexión y recuperar conjuntos de registros. Para crear una conexión a una base de datos puede hacerlo de dos formas.

  • Haga clic en el menú Proyecto seleccione Insertar objeto y seleccione Conexiona base de datos

  • Si desea hacerlo por el explorador de proyectos, haga clic en Insertar y selecciones Conexión a base de datos.

En el cuadro de dialogo conexión, establezca un nombre para la conexión. Seleccione Cadena de conexión OLE DB, y haga clic en Diseñar, indique una cadena de conexión seleccionando el proveedor OLE DB de acuerdo al Motor de base de datos que se este utilizando.

Vea también:

  • El diseñador de conexión
  • Uso del diseñador de conexión para configurar el acceso a los datos.
  • Origen de registros
  • Diseñando orígenes de datos
  • Conectar con Access
  • Conectar con MS SQL Server
  • Conectar con MySQL


2.3.2.- Origen de registros

Un origen de registros le permite obtener el contenido de una base de datos mediante una consulta SQL. Si no ha creado una conexión no se podrá insertar un origen de registros. Una conexión puede contener uno o mas orígenes de registros y estos a su vez también pueden tener orígenes de registros dependientes.

Propiedades de un origen de registros:

  1. Escriba el nombre del origen de registros (no puede existir dos origenes de registros con el mismo nombre).

  2. Especifique un tipo de origen de donde obtendrá los datos.

  3. Diseñe la consulta SQL que le servirá para filtrar los datos

  4. Especifique los filtros y cadenas de ordenación en caso de que sean necesarias

En caso de lo requiera podrá poner orígenes de registro dependientes, así como parámetros para los mismos que podrá configurar en las pestañas correspondientes.

Vea también:

  • Creación de orígenes de registros
  • El diseñador de orígenes de registros
  • El diseñador de consultas SQL
  • Conexiones
  • El editor de filtros


2.3.3.- Parámetros

Códice FX permite definir parámetros para los reportes, un parámetro es la identificación por nombre de un valor que regularmente proviene del exterior y que se utiliza internamente en una condición de filtro en consultas SQL. Permiten especificar datos que pueden ser usados como criterios de filtro.

Puede agregar parámetros de dos maneras:

  • Desde el menú Proyecto selecciones Insertar objeto y seleccione Parámetro

  • Desde el explorador de proyectos, seleccionando Insertar y haciendo clic en Parámetro.

En la ventana de parámetros deberá definir un nombre, un tipo de dato y si desea puede agregarle un valor predeterminado.

Vea también:

  • Uso de macros de Códice FX en consultas SQL

  • Consultas con parámetros

  • Paso de parámetros y uso de Macros

  • Bases de datos relacionales y consultas con SQL
  • Orígenes de registro
  • El diseñador de orígenes de registros
  • Controles de diálogos


2.3.4.- Diálogos

Los diálogos ofrecen una interfaz de usuario con el principal propósito de solicitar información que se asigna a los parámetros del reporte, esta información servirá para restringir o filtrar los datos de la consulta SQL, pueden ser de diferentes tipos, como rango de fechas, rango de horas, un valor numérico o cadena.

Puede agregar un diálogo de dos formas:

  • Desde el menú Proyecto seleccionando la opción Insertar objeto y haciendo clic en la opción Dialogo.

  • Desde el explorador de proyecto dando clic en Insertar y seleccionando Diálogo

Para cambiar el nombre de un diálogo o el título de la ventana podrá hacerlo en la barra superior del diseñador de diálogo.

Propiedades de diálogo.

En ventana de propiedades de diálogo se muestran las propiedades generales que se pueden configurar para cada uno de los diálogos que incluya en el reporte.

Nombre: Es un identificador del diálogo.

Color de fondo: Seleccione un color de fondo del diálogo.

Titulo: Escriba el título de la venta de diálogo, este se muestra en la barra superior del diálogo.

Métodos a ejecutar: Estas propiedades se utilizan para indicar el nombre de un método en el subprograma que se ejecutará cuando ocurra un evento durante la ejecución del diálogo.

Vea también:

  • El diseñador de diálogos
  • Controles de diálogos
  • Parámetros
  • Subprograma
  • Eventos interceptables


2.3.5.- Formatos de impresión

Un formato de impresión es utilizado para realizar el diseño del reporte. El principal elemento que se dibuja sobre un formato de impresión es la cuadrícula de detalle en la cual se integran los campos de una base de datos.

En el formado de impresión se definen el tamaño de papel para la impresión, puede seleccionarse un tamaño personalizado o un tamaño estándar como el tamaño carta u oficio, también se define el tamaño de los márgenes, la unidad de medida (centímetros, milímetros o pulgadas), la orientación de la hoja y si lo desea un formato de contraportada que se ejecutará después del formato principal.

Si desea crear etiquetas puede dividir la hoja en el número de filas y columnas que se requieran.

Configurar el formato de impresión:

1.- Tamaño de papel: El tamaño del formato de impresión sobre el cual se hará el diseño del reporte.

2.- Orientación: Configure esta opción de acuerdo a la forma que desea imprimir su reporte, ya que con esta propiedad se configura la orientación de la impresora.

3.- Márgenes. Muestra una guía para delimitar la hoja.

Códice FX permite grabar tarjetas con banda magnética o Smart-cards, así que si el formato de impresión que esta configurando es para una tarjeta, seleccione el botón Banda magnética, smart-card y otras opciones avanzadas donde podrá realizar las configuraciones e incluir los datos que desea grabar.

El tamaño del formato que se mostrará en el diseñador será de acuerdo al tamaño de papel que eligió.

Nota: tenga en cuenta que al dividir un formato de impresión en etiquetas, solo se mostrará una etiqueta en el diseñador. Al ejecutar el reporte se mostrarán todas las etiquetas con el mismo diseño que realizo en la primera.

Vea también:

  • El diseñador de formatos de impresión
  • Controles de formatos de impresión

Ejemplos:

  • Generar etiquetas en planilla
  • Generar etiquetas en forma continua
  • Generar tarjetas plásticas
  • Codificar banda magnética, Smart-card y RFID


2.3.6.- Imágenes y textos

El diseñador de reportes de Códice FX incluye dos elementos importantes, imágenes y textos, estos son recursos internos que una vez agregados al proyecto pueden ser utilizados cuando se desee.

Los recursos internos pueden utilizarse para agregarlos al diseño del reporte dentro de un control. Por ejemplo puede crear un control imagen y elegir la opción de recurso interno y seleccionar una imagen de las que haya agregado.

Las imágenes y textos se pueden agregar de dos formas:

1.- Desde el menú Proyecto seleccionando Insertar objeto y haciendo clic en Texto o Imagen.

2.- O bien desde el explorador de proyectos en Insertar y seleccionando Imagen o Texto.

Nota: Cuando el recurso de imagen ya a sido incluido al proyecto al momento de agregar un control de imagen este aparece en la lista de imágenes y podrá seleccionarla para usarla en el control.

Vea también:

  • Control imagen del formato de impresión
  • Control imagen del diálogo
  • La caja de controles del formato de impresión
  • Controles de diálogos


2.3.7.- Subprograma

Empezando a trabajar con sub-programas en Códice FX

El subprograma permite agregar código en lenguaje Visual Basic Script y Java Script. El código se ejecuta durante la ejecución del reporte. Esto permite agregar funcionalidad al reporte ejecutando métodos, interceptando eventos, agregando objetos o utilizando los propios del motor en tiempo de ejecución.

¿Qué se puede hacer?

· Controlar el ingreso de datos en los diálogos.

· Interceptar eventos de un diálogo, eventos de los controles de diálogo y eventos que suceden durante la ejecución del reporte.

· Utilizar la biblioteca de Códice FX para acceder a la especificación del reporte mediante el objeto XPD. Con esto es posible obtener orígenes de registro, valores de parámetros, imágenes incluidas en el reporte, etc.

· Modificar o crear nuevos objetos dentro del reporte. Por ejemplo, puede crear un nuevo parámetro, o modificar los valores de un control dentro de un diálogo o un formato de impresión.

¿Qué necesito saber para empezar?

  1. Códice FX permite escribir un subprograma en lenguaje Visual Basic Script o JavaScript, por lo que lo primero que necesita es tener conocimiento básico de estos lenguajes.

  2. La biblioteca de funciones que estan disponibles en un subprograma contiene los siguientes objetos: eBasic, XPD, XPREngine y eDigitalDoc. Estos objetos permiten tener acceso a los componentes del reporte y a funciones de propósito general.

  3. El tipo de lenguaje se configura en propiedades del proyecto donde puede seleccionar Visual Basic Script o JavaScript.

Vea también:

  • Uso de la API de Códice
  • Uso del motor en tiempo de ejecución
  • Visual Basic Script y JavaScript
  • Referencia de objetos del motor en tiempo de ejecución

Ejemplos:

  • Cómo validar un rango de fechas de un diálogo
  • Cómo definir funciones de usuario que puedan ser usadas en fórmulas
  • Interceptando eventos del reporte


3.- Usar Códice FX

3.1.- Empezar a trabajar con códice FX (“Hola Mundo”) 27

3.2.- Uso del diseñador de conexión para configurar el acceso a los datos. 29

3.2.1.- Uso del administrador de conexiones de GRUPO EXECOM_ 30

3.3.- Diseñando orígenes de datos 32

3.3.1.- Conectar con Access 32

3.3.2.- Conectar con MS SQL Server 34

3.3.3.- Conectar con MySQL 36

3.4.- Creación de orígenes de registros 38

3.5.- Generar listados sencillos 42

3.6.- Generar reportes Principal – Detalle 43

3.7.- Generar reportes con agrupaciones y resúmenes 46

3.8.- Generar etiquetas en planilla 48

3.9.- Generar etiquetas en forma continua 50

3.10.- Generar tarjetas plásticas 51

3.11.- Codificar banda magnética, Smart-card y RFID_ 52

3.12.- Modelo de programación 55

3.12.1.- Consideraciones para el programador 55

3.12.2.- Eventos interceptables 55

3.12.3.- Visual Basic Script y JavaScript 57

3.12.4.- Ejemplos 58

3.12.4.1.- Cómo validar un rango de fechas de un diálogo_ 58

3.12.4.2.- Cómo definir funciones de usuario que puedan ser usadas en fórmulas 60

3.12.4.3.- Interceptando eventos del reporte_ 61


3.1. - Empezar a trabajar con codice FX (“Hola Mundo”)

3.1.- Empezar a trabajar con Códice FX (“Hola Mundo”)

Elementos que forman el reporte

  • Conexiones. 18

  • Origen de registros 19

  • Parámetros 19

  • Diálogos 20

  • Formatos de impresión 21

  • Imágenes y textos 23

  • Subprograma 23

Primeros pasos (Hola mundo)

  1. Crear un nuevo proyecto Vea detalles de cómo crear un nuevo proyecto
  2. Seleccionar el control texto estático y dibujarlo sobre el formato de impresión.
  3. Escriba el texto “Hola Mundo” en la venta de propiedades del control.
  4. Presione Cerrar.

  5. Ejecutar el proyecto (vista previa):

Puede hacerlo de las siguientes formas:

· Seleccione en el menú proyecto y haga clic en Ejecutar.

· Presione la tecla F5.

· Seleccione en el menú archivo y haga clic en Vista preliminar.

  6. Guardar el documento generado (XPR)

· Haga clic sobre el botón Guardar [image] la barra de herramientas del visor.

· Escriba el nombre del archivo y seleccione guardar.

El archivo se guarda con extensión XPR.

Nota: el documento generado (archivo con extensión xpr) puede ser abierto con el visor de reportes de Códice y también con el diseñador de Códice.

Vea también:

  • Elementos que forman un reporte

Ejemplos:

  • Generar listados sencillos
  • Generar reportes Principal – Detalle
  • Generar reportes con agrupaciones y resúmenes
  • Generar etiquetas en planilla
  • Generar etiquetas en forma continua
  • Generar tarjetas plásticas
  • Codificar banda magnética, Smart-card y RFID


3.2. - Uso del diseñador de conexion para configurar el acceso a los datos.

3.2.- Uso del diseñador de conexión para configurar el acceso a los datos.

Códice FX permite crear conexiones con múltiples bases de datos como son: Access, MS SQL SERVER, MySQL, Paradox, Firebird, dBase etc. El diseñador de conexiones le permite agregar conexiones al proyecto de diferentes formas:

  • La primera el el administrador de conexiones el en cual se crea un grupo de aplicaciones donde se pueden crear una o mas conexiones que pueden ser utilizadas en cualquier proyecto que desee sin necesidad que crear de nuevo la conexión.
  • La segunda opción el el Adaptador para MaxiComercio y Déminus el cual se utiliza para crean una conexión con la base de datos de estos productos (sólo versión 2006 y anteriores). Si tiene instalados cualquiera de estos productos sólo debe seleccionar esta opción y se creará una conexión con su base de datos.
  • EL adaptador para Academium funciona de la misma manera que la opción anterior solo que se crea una conexión con la base de datos de este Academium de las versiones 2005 y 2006.
  • Para conectarse a cualquier base de datos diseñando una cadena de conexión seleccione Cadena de conexión OLE DB.

Vea también:

  • Conexiones
  • Origen de registros
  • Uso del administrador de conexiones de Grupo Execom


3.2.1.- Uso del administrador de conexiones de Grupo Execom

Esta es la mejor forma de identificar la información de conexión que será usada en la elaboración de reportes.

1.- indicar una conexión al reporte usando el administrador de conexiones

Inserte una nueva conexión al proyecto (Menú proyecto->Insertar->Conexion) seleccione la aplicación en la lista desplegable de la cual se usara la conexión predeterminada

Nota: el nombre de una aplicación sirve para clasificar un grupo de conexiones.

2.- Acceder al administrador de conexiones

Inserte una nueva conexión al proyecto (Menu proyecto->Insertar->Conexion) en el dialogo del diseñador de conexión presione el botón configurar

2.- Registrar una conexión

Acceda al administrador de conexiones como se indica arriba en la vista del árbol de conexiones presione el botón Nueva conexión.

Proporcione los valores que solicita la ventana de propiedades de conexión

Propiedades del registro de conexión

Nombre de la conexión: Es el identificar de la conexión.

Aplicación: Es el nombre del grupo en el que se clasificará.

Nombre de usuario y contraseña: Son las credenciales de acceso al motor de la base de datos.

Conexión predeterminada para esta aplicación: Permite indicar la conexión a utilizar por defecto cuando se solicite acceso a una aplicación.

Acerca de las conexiones registradas

Cada conexión se identifica con un nombre que no debería contener espacios en blanco ni caracteres especiales.

Códice FX y en general cualquier aplicación puede establecer conexión a un origen de datos por nombre de aplicación esto significa que se usaría la configuración de la conexión marcada como predeterminada si no existiera ninguna predeterminada se tomara la configuración de la primera que se encuentre. Cada aplicación puede tener una conexión predeterminada.

Cada conexión registrada puede estar clasificada por el nombre de la aplicación que la utiliza. Grupo Execom define los siguientes nombres de administración para mantener compatibilidad con versiones anteriores de otros productos, las cuales son:

Nombres reservados de aplicaciones

oldDeminus para acceder a las bases de datos (Access 97) de las aplicaciones Déminus 2006 y MaxiComercio 2006 ( www.deminus.com.mx y www.maxicomercio.com.mx)

oldAcademium para acceder a las bases de datos (Access 97) de la aplicación Academium versiones anteriores a 2006 ( www.academium.com.mx )

Vea también:

  • Administrador de conexiones
  • Diseñador de conexiones
  • Origen de registros
  • Conectar con Access
  • Conectar con MS SQL Server
  • Conectar con MySQL
  • Programación a través de los objetos del Administrador de conexiones.


3.3.- Diseñando orígenes de datos

T

Los orígenes de datos se construyen a partir de una conexión y consultas SQL que permiten obtener un conjunto de registros.

  • Generar listados sencillos
  • Generar reportes Principal – Detalle
  • Generar reportes con agrupaciones y resúmenes

Vea también:

  • Conexiones
  • Orígenes de registro
  • Uso del diseñador de conexión para configurar el acceso a los datos.
  • El diseñador de orígenes de registros


3.3.1.- Conectar con Access

Para realizar una conexión a una base de datos en Access realice los siguientes pasos:

1.- Inserte una nueva conexión a la base de datos desde el explorador de proyectos o desde la barra de menú Proyecto con la opción Insertar objeto, seleccionando “Conexión a base de datos”

2.- Una vez abierta la ventana de conexión seleccione Cadena de conexión OLEDB.

3.- Seleccione Diseñar para crear la cadena de conexión.

  • Abrirá la ventana de propiedades del vínculo de datos, seleccione el proveedor OLE DB de acuerdo al Motor de base de datos que se esté utilizando, indique la ruta de ubicación de la base datos en la pestaña conexión. El driver de conexión para Access 2003 y versiones anteriores es:

  • Si la base de datos tiene un usuario y una contraseña debe indicarlos y de igual manera si esta conexión será la predeterminada.

  • Se recomienda realizar una prueba para verificar que la conexión se configuró correctamente.

Vea también:

  • Conexiones
  • Uso del diseñador de conexión para configurar el acceso a los datos.
  • Orígenes de registros
  • El diseñador de consultas SQL
  • Bases de datos relacionales y consultas con SQL
  • El acceso a bases de datos
  • Resumen sobre la tecnología OLE DB


3.3.2.- Conectar con MS SQL Server

Para realizar una conexión a una base de datos MS SQL SERVER realice los siguientes pasos:

1.- Inserte una nueva conexión a la base de datos desde el explorador de proyectos o desde la barra de menú Proyecto con la opción Insertar objeto, seleccionando “Conexión a base de datos”

2.- Una vez abierta la ventana de conexión seleccione Cadena de conexión OLEDB.

3.- Seleccione Diseñar para crear la cadena de conexión, se abrirá la ventana de propiedades del vínculo de datos donde seleccionara el proveedor OLE DB de acuerdo al Motor de base de datos que se este utilizando deberá ser el apropiado, el driver de conexión para MS SQL SERVER:

  • En la opción numero 1 indique el nombre del servidor y la instancia.

  • En el punto 2 indique si la base de datos tiene un usuario y una contraseña específica deberá indicarlos o seleccionar la seguridad integrada de Windows que utiliza la autenticación de usuario.

  • En la opción 3 seleccione la base de datos que contiene su información.

  • Se recomienda realizar una prueba para verificar que la conexión se configuró correctamente.

Si la configuración se realizó de manera adecuada la prueba mandara un mensaje como se muestra a continuación.

Vea también:

  • Conexiones
  • Uso del diseñador de conexión para configurar el acceso a los datos.
  • Orígenes de registros
  • El diseñador de consultas SQL
  • Bases de datos relacionales y consultas con SQL
  • El acceso a bases de datos
  • Resumen sobre la tecnología OLE DB


3.3.3.- Conectar con MySQL

Para realizar una conexión a una base de datos MySQL debe realizar los siguientes pasos:

Nota importante: Antes de poder crear una conexión de Códice FX hacia su base de datos MySQL es necesario tener un origen de datos de usuario o DSN. Si no tiene configurado un DSN de usuario realice los siguientes pasos:

  • Valla al Panel de control / herramientas administrativas / Orígenes de datos (ODBC)
  • Agregue un DSN de usuario utilizando el driver que instalo junto con el motor de MySQL si no tiene uno descargue e instale el driver MySQL ODBC 3.51 Driver o superior.
  • Al momento de seleccionar el driver para agregar un DSN de usuario le pedirá indique el nombre del nuevo DSN que deberá introducir en Data Source Name, una descripción, el nombre del equipo en donde esta instalado el servidor, el usuario, el password y la base de datos, para finalizar haga clic en ok

Si el DSN de usuario ya ha sido creado puede continuar y crear una conexión a una base de datos MySQL para ello realice los siguientes pasos:

1.- Inserte una nueva conexión a la base de datos desde el explorador de proyectos o desde la barra de menú Proyecto con la opción Insertar objeto seleccionando Conexión a base de datos.

2.- En el diseñador de conexión seleccione Cadena de conexión OLEDB.

3.- Seleccione Diseñar para crear la cadena de conexión, se abrirá la ventana de propiedades del vínculo de datos donde seleccionará el proveedor OLE DB de acuerdo al Motor de base de datos que se este utilizando, el driver de conexión para MySQL es:

  • En la opción numero 1 seleccione el DSN de usuario que creo anteriormente.
  • A continuación en el punto 2 indique el usuario y la contraseña,
  • En la opción 3 seleccione la base de datos que contiene su información.
  • Se recomienda probar la conexión para verificar que la configuración se realizó con éxito.

Cuando termine de crear la cadena de conexión regresará a la primera ventana y verá la cadena de conexión que se creo, presione aceptar para guardar la conexión. Una vez creada la conexión podrá verla en el explorador de proyecto.

Vea también:

  • Conexiones
  • Uso del diseñador de conexión para configurar el acceso a los datos.
  • Orígenes de registro
  • El diseñador de consultas SQL
  • Bases de datos relacionales y consultas con SQL
  • El acceso a bases de datos
  • Resumen sobre la tecnología OLE DB


3.4.- Creación de orígenes de registros

Un origen de registros permite obtener un conjunto de registros de una base de datos mediante una consulta SQL. Puede crear un origen de registros de varias formas: desde una tabla, un procedimiento almacenado o creando una consulta SQL manualmente. Esta opciones se detallan más abajo.

Vea también:

  • Orígenes de registros
  • El diseñador de consultas SQL
  • El editor de filtros
  • Conexiones

Tabla o vista

El tipo de origen tabla, muestra las tablas que contiene la base de datos a la que se está conectado. El conjunto de registros que devolverá un origen de registros configurado con la propiedad tabla o vista serán todos los campos que contenga la tabla o la vista seleccionada.

Para definir una tabla como origen:

  • Seleccione Tabla o vista como Tipo de origen
  • Seleccione una de las tablas de la lista.
  • Haga clic en Ver los datos abrirá una ventana donde mostrara como resultado la totalidad de los campos que contiene dicha tabla.

El tipo de origen vista es una consulta SQL sin parámetros que obtiene los datos de las tablas de la base de datos a la que se esta conectado, puede ser una consulta que obtenga datos de dos o más tablas.

Procedimientos almacenados

Un procedimiento almacenado es un conjunto de comandos SQL que se almacenan en el servidor y devuelven registros o realizan cualquier transacción en la base de datos de acuerdo a los comandos que integran el procedimiento. Los procedimientos almacenados pueden mejorar el rendimiento ya que se necesita enviar menos información entre el servidor y el cliente. La desventaja es que aumenta la carga del servidor de la base de datos ya que la mayoría del trabajo se realiza en la parte del servidor y no en el cliente.

Para definir un procedimiento almacenado como origen de datos:

  • Seleccione Procedimiento almacenado como Tipo de origen

· Seleccione un procedimiento almacenado de la lista desplegable.

  • Si desea ver el conjunto de registros que devolverá haga clic en el botón Ver los datos

Consultas SQL

La opción consulta SQL obtiene el conjunto de registros de acuerdo a las instrucciones SQL que se indiquen en la consulta. Puede escribir directamente la consulta en el cuadro de texto o seleccionar diseñar para utilizar el diseñador de consultas de Códice FX.

El diseñador de consultas SQL permite mediante un entorno visual construir consultas SQL que permitan obtener un conjunto de registros desde una base de datos. Esta es una herramienta de dos vías, lo cual significa que puede “dibujar” la consulta y obtener código SQL o a la inversa, escribir SQL y ver su representación gráfica. Leer más

Para crear una consulta de un listado simple siga los pasos.

· Seleccione Consulta SQL como Tipo de origen.

· Haga clic en Diseñar para definir la consulta SQL.

· Haga doble clic sobre la tabla que desee agregar a la consulta o bien haga clic sobre el botón Agregar tabla al diagrama.

· Marque los campos que desea sean incluidos en la consulta.

Vistas adicionales

· Podrá ver el árbol de sintaxis haciendo clic sobre el botón Ver árbol de sintaxis

· Podrá ejecutar la consulta para ver los resultados haciendo clic sobre el botón Ver resultados

· Si desea podrá ver la consulta que creo el generador haciendo clic en la pestaña Consulta SQL

Vea también:

  • El diseñador de consultas SQL
  • El editor de filtros
  • Paso de parámetros y uso de Macros
  • Filtros VS cláusulas WHERE/HAVING
  • Expresiones de ordenación VS Order By
  • Conexiones


3.5.- Generar listados sencillos

Pasos para crear un listado de una tabla hasta obtener un conjunto de registros.

  1. Crear una conexión

  2. Establecer un origen de registro

  3. Diseñar la consulta SQL

  4. Insertar una cuadricula de detalle.

  5. Ejecutar el proyecto

Ejemplo 1: Obtener todos los datos de una tabla en una base de datos de Access.

  • Cree un Nuevo proyecto en blanco

  • Indique las dimensiones del formato de impresión

  • En el menú Proyecto seleccione Insertar objeto y haga clic en Conexión a base de datos o en el explorador de proyectos haga clic en Insertar y seleccione Conexión a base datos.

    • En el cuadro de dialogo, establezca un nombre para la conexión que va a crear.

    • Al hacer clic en diseñar abrirá la ventana de Propiedad de vínculo de datos seleccione el driver bajo el que se conectara a la base de datos y haga clic en siguiente, indique la ubicación de la base de datos.

  • Se abrirá automáticamente el origen de registros. Seleccione la tabla de la que desea obtener el conjunto de registros.

  • Sobre el formato de impresión dibuje una cuadricula de detalle donde serán impresos los datos.

  • Siga el asistente para configurar la cuadricula de detalle, donde definirá los campos que serán incluidos, las agrupaciones, los totales, encabezados y pie de pagina,

  • Ajuste la cuadricula al tamaño deseado

  • Ejecute el proyecto para obtener el conjunto de registros desde el menú Proyecto seleccionando Ejecutar o con la tecla de acceso rápido F5

Vea también:

  • Conexiones
  • Orígenes de registros
  • Diseñando orígenes de datos
  • Control cuadrícula detalle


3.6.- Generar reportes Principal – Detalle

Pasos para crear un listado Principal – Detalle desde cero hasta obtener un conjunto de registros.

  1. Crear una conexión.
  2. Definir parámetros.
  3. Crear un origen de registro (Padre)
    1. Diseñar consulta SQL.
    2. Agregar un origen dependiente (Hijo).

i. Diseñar consulta SQL

  4. Insertar una cuadricula de detalle.
  5. Ejecutar el proyecto.

Ejemplo 1: Crear un reporte detallado de ventas obteniendo los datos desde una base de datos de Access.

  • Cree un Nuevo proyecto en blanco
  • Indique las dimensiones del formato de impresión
  • En el menú Proyecto seleccione Insertar objeto y haga clic en Conexión a base de datos o en el explorador de proyectos haga clic en Insertar y seleccione Conexión a base datos.

    • En el cuadro de dialogo, establezca un nombre para la conexión que va a crear.
    • Al hacer clic en diseñar abrirá la ventana de Propiedad de vínculo de datos seleccione el driver bajo el que se conectara a la base de datos y haga clic en siguiente, indique la ubicación de la base de datos.

  • Inserte un origen de registros, haga clic en el botón insertar del explorador de proyecto y seleccione origen de registros.

    • Establezca un nombre para el Origen de registro

    • Haga clic en Diseñar

    • Seleccione las tablas que desea incluir en el reporte, pueder ser por ejemplo ventas y clientes.

    • Cree una unión entre las tablas. Haga clic derecho sobre una de las tablas y seleccione Agregar relación.

    • Indique el campo por el cual se relacionarán ambas tablas.

  • Seleccione los campos que desea incluir en el reporte

  • Seleccione un origen dependiente y diseñe la consulta

  • Cree el parámetro que servirá para filtrar los datos de la consulta padre a la consulta hijo.

  • Sobre el formato de impresión dibuje una cuadrícula de detalle donde serán impresos los datos.

  • Siga el asistente para configurar la cuadrícula de detalle, donde definirá los campos que serán incluidos, las agrupaciones, los totales, encabezados y pie de página.

  • Ejecute el proyecto para obtener el conjunto de registros desde el menú Proyecto seleccionando Ejecutar o con la tecla de acceso rápido F5.

Vista preliminar:

Vea también:

  • Conexiones
  • Orígenes de registro
  • Diseñando orígenes de datos
  • Control cuadrícula detalle


3.7.- Generar reportes con agrupaciones y resúmenes

Pasos para crear un listado de ventas con totales diarios y agrupados por fecha.

  1. Crear una conexión

  2. Establecer un origen de registro

  3. Diseñar la consulta SQL

  4. Insertar una cuadricula de detalle.

  5. Ejecutar el proyecto

Ejemplo 1: Obtener todos los datos de una tabla en una base de datos de Access.

  • Cree un Nuevo proyecto en blanco

  • Indique las dimensiones del formato de impresión

  • En el menú Proyecto seleccione Insertar objeto y haga clic en Conexión a base de datos o en el explorador de proyectos haga clic en Insertar y seleccione Conexión a base datos.

    • En el cuadro de dialogo, establezca un nombre para la conexión que va a crear.

    • Al hacer clic en diseñar abrirá la ventana de Propiedad de vínculo de datos seleccione el driver bajo el que se conectara a la base de datos y haga clic en siguiente, indique la ubicación de la base de datos.

  • Se abrirá automáticamente el origen de registros. Seleccione Consulta SQL y haga clic en Diseñar.

  • Seleccione la tabla de la que desea obtener el conjunto de registros.

  • Sobre el formato de impresión dibuje una cuadrícula de detalle donde serán impresos los datos.

    • Abrirá el Asistente para creación de cuadricula detalle, seleccione el origen de registro que creo.

    • Seleccione los campos que desea sean mostrados en el reporte.

    • Seleccione la opción Sí, necesito agrupación para esta cuadrícula.

    • Seleccione el campo por el que desea hacer la agrupación y agréguelo.
    • Seleccione la opción Sí, necesito totales, defina el campo del cual necesita obtener totales y en Operación seleccione Sumatoria, defina en que partes desea aplicarlo en este caso será en los Grupos (pie de grupo) y en los Totales (pie de reporte).

  • Ajuste la cuadrícula al tamaño deseado.

  • Ejecute el proyecto para obtener el conjunto de registros desde el menú Proyecto seleccionando Ejecutar o con la tecla de acceso rápido F5

Vea también:

  • Conexiones
  • Orígenes de registros
  • Diseñando orígenes de datos
  • Control cuadrícula detalle


3.8.- Generar etiquetas en planilla

Las etiquetas en planilla son un conjunto de etiquetas de un mismo tamaño contenidas en una sola hoja de tamaño específico que están alineadas en filas y columnas. Realizando el diseño de una solo etiqueta podemos llenar una plantilla indicando las medidas de la plantilla. Debe de configurar el formato de impresión del tamaño de la planilla.

Pasos para crear un reporte de impresión de etiquetas en una planilla configurándola de manera manual.

  1. Crea un nuevo proyecto.

  2. Configurar el formato de impresión.

  3. Agregar controles a formato de impresion.

  4. Ejecutar el proyecto.

Ejemplo 1: Crear un formato de impresión de etiquetas en planilla.

  • Cree un Nuevo proyecto en blanco

  • Indique las dimensiones de la planilla en propiedades del formato de impresión, como son el número de filas, columnas, tamaño de hoja, márgenes etc.

  • El formato de impresión solo mostrará el fomato para una etiqueta, configure este diseño y automáticamente se autocopiara a todas las demás etiquetas de la planilla.

  • Agregue los controles que desee para diseñar la etiqueta.

  • Ejecute el proyecto para obtener la planilla desde el menú Proyecto seleccionando Ejecutar o con la tecla de acceso rápido F5

Nota importante: Códice FX cuenta con planillas prediseñadas de tamaño estándar podrá utilizar cualquiera de ellas si así lo desea.

De igual modo podrá crear etiquetas con campo que impriman los datos desde un origen de registros.

Vea también:

  • El diseñador de formatos de impresión
  • Control cuadrícula detalle
  • Crear plantillas


3.9.- Generar etiquetas en forma continua

Las etiquetas en tira son una serie de etiquetas que normalmente vienen en rollo. podemos configurar Códice FX para que imprima en este tipo de etiquetas al definir como tamaño de formato de impresión el tamaño de una etiqueta

Pasos para crear un reporte de impresión de etiquetas en tira.

  1. Crea un nuevo reporte en blanco
  2. Configurar el formato de impresión
  3. Agregar controles y diseñar etiqueta
  4. Ejecutar el proyecto

Ejemplo 1: Crear una etiqueta en tira.

  • Cree un Nuevo proyecto en blanco

  • Indique las dimensiones de la etiqueta personalizando el Tamaño de papel, el Ancho y el Alto.

Nota: Es necesario indicar un Tamaño de papel personalizado así como las medidas de Ancho y Alto de la etiqueta.

  • Abrirá el formato de impresión del tamaño de una etiqueta para su diseño, agregue los controles y diseñe la etiqueta, podrá agregar códigos de barras, nombre de productos, campos de una tabla etc.

  • Ejecute el proyecto para obtener la etiqueta desde el menú Proyecto seleccionando Ejecutar o con la tecla de acceso rápido F5

Nota importante: Deberá considerar que para el diseño de una etiqueta en tira el tamaño de la etiqueta es el tamaño del formato de impresión. También podrá obtener datos de una base de datos c.reando una conexión y un origen de registro

Vea también:

  • El diseñador de formatos de impresión
  • Control cuadrícula detalle
  • Crear plantillas


3.10.- Generar tarjetas plásticas

Pasos para crear un diseño de una tarjeta plástica utilizando la plantilla “Tarjetas Plásticas 8.6 x 5.4 c.m. (Doble cara)”

  1. Seleccione la plantilla de tarjeta plástica

  2. Agregar controles al formato de impresión.

  3. Ejecutar el proyecto

Ejemplo 1: Pasos para crear una tarjeta plástica utilizando la plantilla “Tarjetas Plásticas 8.6 x 5.4 c.m. (Doble cara)”

  • Seleccione la plantilla “Tarjetas Plásticas 8.6 x 5.4 c.m. (Doble cara)”. Abrirá el formato de impresión en ambos lados de la tarjeta plástica.

  • Agregue los controles necesarios para crear el diseño de su tarjeta, en ambos lados.

  • Ejecute el proyecto para obtener el conjunto de registros desde el menú Proyecto seleccionando Ejecutar o con la tecla de acceso rápido F5

Nota: Al ejecutar el proyecto se imprimirá el frente de la tarjeta, la siguiente página impresa será la vuelta

Vea también:

  • Conexiones
  • Orígenes de registros
  • Diseñando orígenes de datos
  • El diseñador de formatos de impresión
  • Control cuadrícula detalle
  • Crear plantillas


3.11.- Codificar banda magnética, Smart-card y RFID

Credencializacion de clientes grabando código de cliente en la banda magnetica de la tarjeta.

  1. Seleccione la plantilla de tarjeta plástica

  2. Cree una nueva conexión

  3. Establesca un origen de registro

  4. Agregar controles al formato de impresión.

  5. Configure los datos que grabara en la banda magnetica

  6. Ejecutar el proyecto

Ejemplo 1: Credencializacion de clientes grabando código de cliente en la banda magnetica de la tarjeta.

  • Seleccione la plantilla “Tarjetas Plásticas 8.6 x 5.4 c.m. (Doble cara)”. Abrirá el formato de impresión en ambos lados de la tarjeta plástica.

  • En el menú Proyecto seleccione Insertar objeto y haga clic en Conexión a base de datos o en el explorador de proyectos haga clic en Insertar y seleccione Conexión a base datos.

    • En el cuadro de dialogo, establezca un nombre para la conexión que va a crear.
    • Al hacer clic en diseñar abrirá la ventana de Propiedad de vínculo de datos seleccione el driver bajo el que se conectara a la base de datos y haga clic en siguiente, indique la ubicación de la base de datos.

  • Abrirá automáticamente el origen de registros.

    • Establezca un nombre para el Origen de registro

    • Haga clic en Diseñar

    • Seleccione las tablas que desea incluir en el reporte, en este caso se usara clientes

  • Seleccione el formato de impresión Frente y abra las propiedades puede hacerlo seleccionando el formato de impresión Frente y haiendo clic en la tecla de acceso rápido F4.

  • Abrira la ventana de propiedades del formato de impresión haga clic en el botón.

  • Abrirá la ventana de opciones avanzadas del formato. Seleccione Codificación de banda magnética y active el track que desee grabar.
  • Deberá cambiar el Origen a formula para la banda magnética con el código del cliente.

  • En Datos debe seleccionar el campo que desea sea que se grabe en la banda magnetica.

  • Agregue la imagen como campo blob para la foto del cliente y un campo para el nombre para que los datos vallan cambiando uno por registro

  • Ejecute el proyecto para obtener el conjunto de registros desde el menú Proyecto seleccionando Ejecutar o con la tecla de acceso rápido F5

Nota: Al ejecutar el proyecto se imprimirá el frente de la tarjeta, la siguiente página impresa será la vuelta que incluirá el grabado en la banda magnética.

Vea también:

  • El diseñador de formatos de impresión


3.12.- Modelo de programación

  • Consideraciones para el programador 55

  • Eventos interceptables 55

  • Visual Basic Script y JavaScript 57

  • Ejemplos 58

  • Cómo validar un rango de fechas de un diálogo _ 58

  • Cómo definir funciones de usuario que puedan ser usadas en fórmulas 60

  • Interceptando eventos del reporte_ 61


3.12.1.- Consideraciones para el programador

Utilización de la biblioteca de funciones de Códice

Códice FX cuenta con un conjunto de objetos que permiten realizar operaciones de propósito general como dar formato a una fecha o muy especificas como obtener el valor de un registro durante la ejecución del reporte. Los objetos incluidos en la biblioteca son eBasic, XPD, XPREngine y eDigitalDoc.

Para tener acceso a las propiedades y métodos de estos objetos solo basta con escribir el nombre del objeto seguido de un punto y el nombre de propiedad o método que se desee.

Ejemplo:

eBasic.eFormat(fechaInicial, “dd/mm/yyyy”)

Objetos disponibles

Los siguientes objetos se encuentran disponibles para la creación de subprogramas donde es posible utilizar los métodos y propiedades que estos poseen.

eBasic. Objeto de la biblioteca geRunTime.eBasic2 del motor en tiempo de ejecución de Códice FX. Más información sobre este objeto haga clic aquí.

XPREngine. Objeto de la biblioteca XPREngine.XPRE del motor en tiempo de ejecución de Códice FX. Más información sobre este objeto haga clic aquí.

XPD. Objeto de la biblioteca eReportSpt.eReport del motor en tiempo de ejecución de Códice FX. Más información sobre este objeto haga clic aquí.

DigitalDoc. Objeto de la biblioteca eDigitalDoc.eDDoc del motor en tiempo de ejecución de Códice FX. Más información sobre este objeto haga clic aquí.

Vea también:

  • Uso de la API de Códice
  • Uso del motor en tiempo de ejecución
  • Eventos interceptables
  • Visual Basic Script y JavaScript
  • Referencia de objetos del motor en tiempo de ejecución

Ejemplos:

  • Cómo validar un rango de fechas de un diálogo
  • Cómo definir funciones de usuario que puedan ser usadas en fórmulas
  • Interceptando eventos del reporte


3.12.2.- Eventos interceptables

Eventos de un diálogo

Un dialogo tiene los siguientes eventos los cuales se pueden configurar en la ventana propiedades de diálogo. Cada evento representa un método que se ejecutará cuando dicho evento se dispare.

Eventos de un diálogo | Descripción
Load | Se ejecuta al cargar un diálogo.
Validate | Se ejecuta al presionar el botón Aceptar del diálogo.
OnCancel | Se ejecuta al presionar el botón Cancelar del diálogo.
OnOk | Se ejecuta al presionar el botón Aceptar del diálogo, después del evento Validate.
OnControlEvent | Se ejecuta cuando un control dispara un evento. Al lanzar este evento se envía como parámetro el nombre del control y el nombre del evento que ocurrió. Por lo tanto, el método asignado al evento OnControlEvent debe recibir como parámetros dos cadenas.

Eventos de un control

Los controles de un diálogo cuentan con los siguientes eventos, éstos pueden ser capturados agregando código al subprograma.

Nombre del control | Evento | Descripción
- Botón de comando - Casilla de verificación | Click | Al hacer clic sobre un control.
 | GotFocus | Al enfocar un control.
 | LostFocus | Cuando un control pierde el enfoque.
Imagen | Click | Al hacer clic sobre un control.
 | DblClick | Al hacer doble clic sobre un control.
Texto estático | Click | Al hacer clic sobre un control.
 | DblClick | Al hacer doble clic sobre un control.
 | Change | Cuando cambia el contenido del control.
Campo de texto Campo numérico Campo memo Campo de fecha Campo de hora Campo de selección Selector de registro. | Click | Al hacer doble clic sobre un control.
 | GotFocus | Al enfocar un control.
 | LostFocus | Cuando un control pierde el enfoque.

Para capturar los eventos de un control es necesario configurar el evento OnControlEvent en la ventana de propiedades del diálogo. El método que se asigne a OnControlEvent debe recibir como parámetro dos cadenas, la primera es el nombre del control que lanza el evento y la segunda es el nombre del evento que ocurrió.

Eventos del reporte

Además de los eventos de los controles de diálogo también existen otros eventos durante la ejecución del reporte que se describen a continuación:

Evento | Descripción
BeforeReport | Antes de iniciar la ejecución de un reporte.
BeforeFormat | Antes de iniciar un formato.
BeforePage | Antes de crear una página
AfterPage | Después de crear una página
AfterFormat | Después de terminar un formato.
AfterReport | Después de terminar la ejecución de un reporte.

Vea también:

  • Visual Basic Script y JavaScript
  • Ejemplos


3.12.3.- Visual Basic Script y JavaScript

Existen diferencias en la codificación de un subprograma, dependiendo del lenguaje que se elija. A continuación se muestra las consideraciones básicas que hay que tomar en cuenta.

Visual Basic Script

1. No hay distinción entre mayúsculas y minúsculas

2. Las variables se definen con el prefijo Dim pero no es necesario hacerlo.

3. Las cadenas de texto se delimitan entre comillas dobles. "

4. Los comentarios empiezan con una comilla simple ' solo para una línea

5. Declarar un método:

Sub Calcular()

Msgbox a+b

End sub

JavaScript

1. En JavaScript es necesario respetar mayúsculas y minúsculas. Cuando se hace referencia a una variable o un nombre de función debe escribirse de la misma forma como se declaró.

2. Las variables se definen con le prefijo var, auque no es necesario hacerlo.

3. Cada instrucción debe terminar con punto y coma “;”.

4. Los comentarios se empiezan con // para una sola linea y /* comentario */ para una o más lineas.

5. Declarar un método:

function Calcular()

{

eBasic.eMsgbox(a+b);

}

Vea también:

  • Uso de la API de Códice
  • Uso del motor en tiempo de ejecución
  • Eventos interceptables
  • Referencia de objetos del motor en tiempo de ejecución

Ejemplos:

  • Cómo validar un rango de fechas de un diálogo
  • Cómo definir funciones de usuario que puedan ser usadas en fórmulas
  • Interceptando eventos del reporte


3.12.4.- Ejemplos

  • Cómo validar un rango de fechas de un diálogo _ 58

  • Cómo definir funciones de usuario que puedan ser usadas en fórmulas 60

  • Interceptando eventos del reporte_ 61


3.12.4.1.- Cómo validar un rango de fechas de un diálogo

En el siguiente ejemplo se crea un método llamado ValidarDatos, este método se configuró previamente en las propiedades de diálogo para el evento Validate. La variable CancelOk es de ámbito global y es útil para impedir que se ejecute el reporte. Si el valor de CancelOk es True entonces el diálogo no permite que se continúe con la ejecución del reporte. Si el valor de CancelOk es False entonces el reporte continuará con la ejecución.

Visual Basic Script

Dim CancelOk;

sub ValidarDatos()

'Si la fecha es mayor que 30/05/2007 entonces no se contuara con la ejecución del reporte

if eDialog1.Controls("FechaFinal").object.value>cDate("30/05/2007") then

msgbox "Fecha invalida: fecha final no debe ser mayor a 30/05/2007"

CancelOk=true

else

CancelOk=false

end if

if eDialog1.Controls("FechaInicio").object.value<cDate("30/04/2007") then

msgbox "Fecha invalida: Fecha de inicio debe ser mayor o igual que 30/04/2007"

eDialog1.Controls("FechaInicio").object.value= eBasic.eFormat(now,"dd/mm/yyyy")

CancelOk=true

else

CancelOk=false

end if

end sub

JavaScript

var CancelOk;

function ValidarDatos()

{

//Si la fecha es mayor que 30/05/2007 entonces no se contuara con la ejecución del reporte

var f1= ToDateF(eDialog1.Controls("FechaInicio").object.value);

var f2=new Date(2007,4,30);

var f3= ToDateF(eDialog1.Controls("FechaFinal").object.value);

var f4=new Date(2007,5,30);

if (f1<f2)

{

eBasic.eMsgbox("Fecha invalida: Fecha de inicio debe ser mayor o igual que 30/04/2007",1);

CancelOk=true;

}

else

{

if (f3>f4)

{

eBasic.eMsgbox("Fecha invalida: fecha final no debe ser mayor a 30/05/2007",1);

CancelOk=true;

}

else

{

CancelOk=false;

}

}

}

function ToDateF(Fecha)

{

//Crea un objeto date con el contenido del control fecha del dialogo

var d;

var m;

var y;

y=parseInt(eBasic.eFormat(Fecha,"yyyy"));

m=parseInt(eBasic.eFormat(Fecha,"mm"));

d=parseInt(eBasic.eFormat(Fecha,"dd"));

var f=new Date(y,m,d);

return(f);

}

Vea también:

  • Uso de la API de Códice
  • Uso del motor en tiempo de ejecución
  • Eventos interceptables
  • Visual Basic Script y JavaScript
  • Referencia de objetos del motor en tiempo de ejecución


3.12.4.2.- Cómo definir funciones de usuario que puedan ser usadas en fórmulas

Un subprograma en Códice FX da la posibilidad de crear funciones que devuelvan un valor e integrarlas dentro de una fórmula en el diseñador de reportes. En el siguiente ejemplo se crea una función en el subprograma llamada MIFuncion() la cual solamente devuelve una cadena. Para utilizarla dentro de una fórmula en el diseñador de Códice FX solamente hay que escribir el nombre de la función.

Visual Basic Script

=Mifuncion() ‘valor del control Fórmula en el diseñador

Función en subprograma

function MiFuncion()

MiFuncion= "www.Miempresa.com"

end function

JavaScript

=Mifuncion(); //valor del control Fórmula en el diseñador

//Funcion en subprograma

function MiFuncion()

{

return("www.Miempresa.com");

}

Vea también:

  • Uso de la API de Códice
  • Uso del motor en tiempo de ejecución
  • Eventos interceptables
  • Visual Basic Script y JavaScript
  • Referencia de objetos del motor en tiempo de ejecución


3.12.4.3.- Interceptando eventos del reporte

Para interceptar un evento durante la ejecución de reporte sólo basta con escribir un método con el nombre del evento. El siguiente ejemplo se muestra dos métodos que se ejecutan cuando los eventos BeforeReport y AfterReport son disparados.

Visual Basic Script

sub BeforeReport()

msgbox "Inicio de ejecución del reporte"

end sub

sub AfterReport()

msgbox "Fin de ejecución del reporte"

end sub

JavaScript

function BeforeReport()

{

eBasic.eMsgbox("Inicio de ejecución del reporte",1);

}

function AfterReport()

{

eBasic.eMsgbox("Fin de ejecución del reporte",1);

}

Los eventos de un control se capturan por medio del evento OnControlEvent como se muestra a continuación.

Visual Basic Script

'la siguiente función maneja los eventos de un control

sub OnControlEvent(CtrName, CtrEvent)

'CtrName es el nombre del control

'CtrEvent es el nombre del evento que se lanzo

if CtrEvent="Click" then

if CtrName="Origen" then

dim W

dim H

'Se obtienen las dimensiones del control de imagen

W=eDialog1.Controls("Imagen").Width

H=eDialog1.Controls("Imagen").Height

if eDialog1.Controls("Origen").object.value=1 then

'Dibujar el recurso eResData1 (imagen)

eDialog1.Controls("Imagen").PaintPicture XPD.GetResData("eResData1").PicData, 0,0,W,H

else

'Dibujar el recurso eResData2 (imagen)

eDialog1.Controls("Imagen").PaintPicture XPD.GetResData("eResData2").PicData, 0,0,W,H

end if

end if

end if

end sub

JavaScript

//la siguiente función maneja los eventos de un control

function OnControlEvent(CtrName, CtrEvent)

{

//CtrName es el nombre del control

//CtrEvent es el nombre del evento que se lanzo

if (CtrEvent=="Click")

{

if (CtrName=="Origen")

{

var W;

var H;

//Se obtienen las dimensiones del control de imagen

W=eDialog1.Controls("Imagen").Width;

H=eDialog1.Controls("Imagen").Height;

if (eDialog1.Controls("Origen").object.value==1)

{

//Dibujar el recurso eResData1 (imagen)

eDialog1.Controls("Imagen").PaintPicture (XPD.GetResData("eResData1").PicData, 0,0,W,H);

}

else

{

//Dibujar el recurso eResData2 ( imagen)

eDialog1.Controls("Imagen").PaintPicture (XPD.GetResData("eResData2").PicData, 0,0,W,H);

}

}

}

}

Vea también:

  • Uso de la API de Códice
  • Uso del motor en tiempo de ejecución
  • Eventos interceptables
  • Visual Basic Script y JavaScript
  • Referencia de objetos del motor en tiempo de ejecución


4.- Referencia de objetos de Códice

4.1.- Controles de diálogos 65

4.1.1.- Texto estático: 65

4.1.2.- Campo de texto: 66

4.1.3.- Campo numérico: 67

4.1.4.- Campo memo: 68

4.1.5.- Campo fecha: 68

4.1.6.- Campo hora 69

4.1.7.- Campo selección 70

4.1.8.- Casilla de verificación 71

4.1.9.- Selector de registros 72

4.1.10.-Botón de comando_ 73

4.1.11.- Imagen 74

4.2.- Controles de formatos de impresión 74

4.2.1.- Control rectángulo: 75

4.2.2.- Control texto estático: 76

4.2.3.- Control campo_ 78

4.2.4.- Control de formula 79

4.2.5.- Control casilla de verificacion 81

4.2.6.- Control código de barras 82

4.2.7.- Control imagen 84

4.2.8.- Control tabla 87

4.2.9.- Control gráfica 88

4.2.10.- Control cuadricula detalle 90

4.3.- Elementos de la interfaz del diseñador 94

4.3.1.- El diseñador de conexión 94

4.3.2.- El diseñador de orígenes de registros 96

4.3.3.- El diseñador de consultas SQL 98

4.3.3.1.- Trabajando con el diseñador de consultas SQL 100

4.3.3.2.- Diseñando combinaciones entre tablas 100

4.3.3.3.- Incluyendo condiciones de filtro_ 101

4.3.4.- El diseñador de diálogos 103

4.3.5.- El diseñador de formatos de impresión 103

4.3.5.1.- Configurar formato de impresión_ 103

4.3.5.2.- Banda magnética, smart-card y otras opciones avanzadas: 104

4.3.6.- El editor de fórmulas 107

4.3.7.- El editor de filtros 108

4.3.7.1.- Campo: 108

4.3.7.2.- Operador: 109

4.3.7.3.- Valor: 109

4.3.7.4.- Unión: 109

4.3.8.- El editor de código_ 109

4.3.9.- El explorador de proyecto_ 109

4.3.10.- El panel de resultados 110

4.3.11.- La caja de controles 111

4.3.12.- Barras de herramientas y paneles 112

4.3.12.1.- Barra de menú: 112

4.3.12.2.- Barra de archivo: 112

4.3.12.3.- Menú Archivo_ 113

4.3.12.4.- Barra format 113

4.3.12.5.- Menú Formato_ 114

4.3.12.6.- Barra de tabla: 115

4.3.12.7.- Barra de edición_ 115

4.3.12.8.- Menú edición_ 116

4.3.12.9.- Barra de utilidades 116

4.3.12.10.- Menú ver: 117

4.3.12.11.- Menú proyecto_ 117

4.3.12.12.- Menú de ayuda_ 118

4.3.12.13.- Barra de estilo_ 119


4.1.- Controles de diálogos

La ventana de diálogos cuenta con una caja de controles que permite seleccionar un control y dibujarlo sobre la ventana de dialogo. Estos controles hacen posible personalizar el diálogo agregando campos de texto estático, campos de texto, campos numéricos, campos memo, campo fecha, campo hora, campos selección, casillas de verificación, selector de registros, botón comando e imagen. Ver ventana de diálogos

Cada control cuenta con varias propiedades, las cuales se pueden modificar para adaptarlas a sus preferencias como son color de texto, tamaño, formato, etc. Haga clic en el menú Formato y luego en propiedades de elemento para mostrar la ventana de propiedades o puede hacer clic sobre el botón Properties de la barra de herramientas.

A continuación se describen los controles que puede dibujar en un diálogo.

Vea también:

  • El diseñador de diálogos

4.1.1.- Texto estático:

Permite escribir un texto en la ventana de dialogo que no podrá ser modificado cuando se ejecuta el proyecto,

Si desea agregar un texto estático sobre la ventana de dialogo selecciónelo haciendo clic sobre el en la barra de controles de dialogo [image] y dibuje sobre la ventana de dialogo el tamaño que desea ocupar para el cuadro del texto.

Para modificar el texto que desea mostrar en el control haga clic en titulo sobre la ventana de dialogo.

Para modificar el estilo de texto cambie las propiedades que aparen en la barra de estilo que se encuentra en la parte inferior. Si desea ver a detalle el control de estilos vea las especificaciones de estilo

Vea también:

  • Barra de estilo
  • El diseñador de diálogos
  • Parámetros


4.1.2.- Campo de texto:

El campo de texto permite ser asociado a un parámetro para que al momento de ejecutar el proyecto el usuario pueda escribir un texto y así realizar un filtrado sobre un conjunto de registros.

Puede agregar un campo de texto a la ventana de diálogo seleccionando [image] luego dibuje sobre la ventana de diálogo el control campo de texto haciendo clic y arrastrando el puntero hasta la posición deseada.

Cuando se crea un campo de texto abre la ventana de propiedades donde se definen las propiedades del campo como son nombre, título, el parámetro asociado, el formato de salida del parámetro, etc. vea las especificaciones de estilo

Vea también:

  • Barra de estilo
  • El diseñador de diálogos
  • Parámetros


4.1.3.- Campo numérico:

El control de campo numérico permite agregar números al proyecto al momento de estar en ejecución que son asociados a un parámetro para realizar filtros. El campo numérico tiene dos campos internos uno para texto que servirá para escribir el mensaje que visualizara el usuario y el segundo donde recibirá el parámetro ingresado.

Puede agregar un campo numero a la ventana de dialogo seleccionando [image] en la barra de controles de dialogo, dibuje sobre la ventana de dialogo el tamaño que desea para el campo numérico.

Cuando se crea un campo numérico abre la ventana de propiedades donde se definen los datos y características principales del campo como: nombre, titulo, el parámetro asociado, el formato de salida etc., así como las propiedades de diseño del titulo. Si desea ver a detalle el control de estilos vea las especificaciones de estilo

Vea también:

  • Barra de estilo
  • El diseñador de diálogos
  • Parámetros


4.1.4.- Campo memo:

El campo memo es un campo de texto multi-linea que permite asociarlo a un parámetro, al ejecutar el proyecto este puede recibir un texto multi-linea, y hacer el filtrado de la consulta por medio del parámetro asociado.

Puede agregar un campo memo a la ventana de dialogo seleccionando [image] en la barra de controles de dialogo, dibuje sobre la ventana de dialogo el tamaño que desea para el control.

Cuando se crea un campo memo abre la ventana de propiedades donde se definen los datos y características principales como nombre, titulo y parámetro asociado, así como la apariencia del diseño del titulo. Si desea ver a detalle el control de estilos vea las especificaciones de estilo

Vea también:

  • Barra de estilo
  • El diseñador de diálogos
  • Parámetros


4.1.5.- Campo fecha:

El campo fecha es un campo que permite seleccionar una fecha y asociarla a un parámetro especifico, para hacer una consulta con una restricción de fecha usando la introducida por el usuario ya sea de una fecha especifica o de un rango de fechas.

El control fecha contiene dos propiedades que son fecha inicial y fecha final, las cuales siendo iguales el control permitirá que se seleccione cualquier fecha. Cuando la fecha inicial y la fecha final son diferentes el control solo permitirá que se seleccione una fecha dentro del rango marcado por ambas fechas.

El control cuenta con botones de dirección [image] para navegar entre los meses del año ya sea hacia delante o hacia atrás hasta encontrar la fecha desea y seleccionarla.

Puede agregar un campo fecha a la ventana de dialogo seleccionando [image] en la barra de controles de dialogo, dibuje sobre la ventana de dialogo el control arrastrando el puntero y manteniéndolo presionado hasta dibujarlo del tamaño deseado.

Cuando se crea un campo fecha abre la ventana de propiedades donde se define nombre del dialogo, titulo, parámetro asociado, formato, asi como la apariencia del titulo. Si desea ver a detalle el control de estilos vea las especificaciones de estilo

Vea también:

  • Barra de estilo
  • El diseñador de diálogos
  • Parámetros


4.1.6.- Campo hora

El campo hora es un campo que permite seleccionar una hora y asociarla a un parámetro especifico, para hacer una consulta con una restricción por hora usando la introducida por el usuario ya sea una hora especifica o de un rango de horas.

El control cuenta con botones de flechas [image] para buscar la hora ya sea hacia arriba o hacia abajo hasta encontrar la hora desea y seleccionarla.

Puede agregar un campo hora a la ventana de dialogo seleccionando [image] en la barra de controles de dialogo, dibuje sobre la ventana de dialogo el tamaño que desea ocupar para el campo hora.

Cuando se crea un campo hora abre la ventana de propiedades donde se define nombre del dialogo, titulo, parámetro asociado y el formato de salida, asi como la apariencia del titulo. Si desea ver a detalle el control de estilos vea las especificaciones de estilo

Vea también:

  • Barra de estilo
  • El diseñador de diálogos
  • Parámetros


4.1.7.- Campo selección

El campo selección permite agregar una lista de opciones para seleccionar entre las opciones de la lista y realizar una acción deseada asociada a un parámetro. Tiene dos campos internos uno permite agregar texto que será el titulo del campo.

Puede agregar un campo selección a la ventana de dialogo seleccionando [image] y haciendo clic sobre el en la barra de controles de dialogo, dibuje sobre la ventana de dialogo el tamaño que desea ocupar para el campo selección.

Cuando se crea un campo selección abre la ventana de propiedades de selección que tiene tres pestañas de configuración en la pestaña general es donde se define nombre del dialogo, titulo, parámetro asociado que al hacer clic en el botón [image] desplegara la lista de parámetros agregados al proyecto. En la segunda pestaña de configuración Apariencia definimos el diseño del texto. Si desea ver a detalle el control de estilos vea las especificaciones de estilo

En la tercer pestaña lista de opción es donde definimos la lista de opción que podrán ser elegidas al momento de estar en ejecución el proyecto a cada una de estos opciones se le asocia un valor. El control permite agregar nuevas opciones a la lista, eliminar y modificar el orden.

Este control es útil para mostra al usuario una lista de opciones, al seleccionar una el valor de la opción seleccionada se asigna a un parámetro asociado.

Vea también:

  • Barra de estilo
  • El diseñador de diálogos
  • Parámetros


4.1.8.- Casilla de verificación

El campo casilla de verificación permite permite activar o desactivar una opción vinculada a un parámetro por ejemplo para activar o desactivar la impresión de uno o todo un conjunto de registros.

Puede agregar un campo casilla de verificación a la ventana de dialogo seleccionando [image] en la barra de controles de dialogo, dibuje sobre la ventana de dialogo el tamaño que desea ocupar para la casilla de verificación.

Vea también:

  • Barra de estilo
  • El diseñador de diálogos
  • Parámetros


4.1.9.- Selector de registros

El control selector de registro es útil para mostrar el contenido de un origen de registros y darle la posibilidad al usuario de elegir un registro de la base datos para asignarlo como parámetro. Permite realizar búsquedas a través de un campo principal y también mostrar el contenido completo del conjunto de datos que devuelve un origen de registros.

Puede agregar un campo selector de registro a la ventana de dialogo seleccionando [image] en la barra de controles de dialogo, dibuje sobre la ventana de dialogo el tamaño que desea para el control selector de registro.

Cuando cree un campo selector de registros se abrirá la ventana de propiedades del campo donde puede indicar el nombre del control, el titulo que desea que aparesca en pantalla al momento de la ejecución. En fuentes de registro vinculadas podrá seleccionar el origen de registro que estará asociado a este campo y de donde tomara los registros para listarlos, este campo estará asociado a un parámetro.

El campo de búsqueda principal es aquel por el cual se realizara la búsqueda en el conjunto de registros, el campo se búsqueda secundario es el resultado de la búsqueda listada para mayor comprensión del usuario. El valor de retorno representa el valor que el control asignara al parámetro.

En la segunda pestaña de configuración Apariencia definimos el diseño del texto. Si desea ver a detalle el control de estilos vea las especificaciones de estilo

Vea también:

  • Barra de estilo
  • El diseñador de diálogos
  • Parámetros
  • Conexiones
  • Orígenes de registros


4.1.10.-Botón de comando

El botón de comando solo es posible agregarle funcionalidad desde código en el subprograma. Si desea saber mas sobre subprograma haga clic aquí.

Para agregar un botón de comando a la ventana de dialogo seleccione [image] en la barra de controles de dialogo, dibuje sobre la ventana de dialogo el tamaño que desea ocupar para el botón de comando.

Para cambiar el diseño del titulo o estilo de texto haga clic en muestra de fuente en la barra de estilo en la parte inferior derecha de la pantalla, para modificar el estilo del texto. Para cambiar el nombre del control y el titulo cámbielos en la barra sobre el dialogo. Para modificar el estilo del texto vea a detalle el control de estilos vea las especificaciones de estilo

Vea también:

  • Barra de estilo
  • El diseñador de diálogos

Ejemplos:

  • Interceptando eventos del reporte


4.1.11.- Imagen

El control de imagen permite agregar imágenes en la ventana de diálogo. Las imágenes puedes ser del tipo jpg, bmp, gif, wmf y emf.

Para agregar una imagen a la ventana de dialogo seleccione [image] en la barra de controles de dialogo, dibuje sobre la ventana de dialogo el tamaño que desea.

En la ventana de propiedades escriba el nombre del control para identificar la imagen. También puede elegir entre las opciones:

Ajustar imagen a control: Redimensiona la imagen adaptándola al tamaño del control dibujado en el diálogo.

Ajustar control a imagen: Redimensiona el control adaptándolo al tamaño de la imagen.

Pestaña Recurso Interno

Un recurso interno es un archivo agregado al proyecto desde una ubicación en el equipo. En esta pestaña se muestra una lista de la imágenes que ya ha agregado al proyecto, seleccione una para insertarla al control o presione el botón Importar imagen para buscar una imagen en el equipo. Una vez agregada la imagen al reporte, Códice hace una copia que se guardará dentro del archivo XPD (definición del reporte), por lo que cualquier cambio al archivo original no se reflejará en el resultado del informe, esto es particularmente útil pues a la hora de distribuir el proyecto (archivo XPD) no necesita preocuparse de llevar los archivos de imágenes.

Vea también:

  • El diseñador de diálogos
  • Imágenes y textos


4.2.- Controles de formatos de impresión

El formato de impresión cuenta con una caja de controles que permite seleccionar un control y dibujarlo sobre el formato. Estos controles le hacen posible personalizar el reporte agregando campos de texto, imágenes, gráficas, rectángulos, campos de una base de datos, fórmulas, casillas de verificación, tablas, código de barras y la cuadrícula de detalle.

Cada control cuenta con varias propiedades, las cuales se pueden modificar para adaptarlas a sus preferencias como son color de texto, bordes, tamaño, etc. Haga clic en el menú Formato y luego en propiedades de elemento para mostrar la ventana de propiedades o puede hacer clic sobre el botón Properties de la barra de herramientas.

A continuación se describen estos controles detallando las características que contienen.


4.2.1.- Control rectángulo:

Este control tiene las siguientes propiedades

Fondo transparente: Active ésta casilla para hacer transparente el fondo del control.

Color de relleno: Elija el color que desea para el fondo del control.

Color de borde: Cambia el color de borde del control.

Estilo de borde: El borde puede tener cualquiera de los siguientes estilos:

Grosor de borde: Determina el ancho del borde. Los controles cuentan con cuatro bordes, puede activar o desactivar estos haciendo clic sobre las barras mostradas alrededor del control de muestra en la ventana de propiedades.

Vea también:

  • El diseñador de formatos de impresión
  • La caja de controles


4.2.2.- Control texto estatico:

El control de texto le permite agregar en el reporte títulos, comentarios, etc. Este control tiene las siguientes propiedades:

Pestaña texto: En esta pestaña agregue el texto que contendrá el control.

Pestaña Alineación y fuente: Le permite personalizar el texto cambiando el tipo de fuente, tamaño, texto en negrita, cursiva o subrayado. También puede cambiar la alineación del texto de forma horizontal o vertical.

Pestaña Colores y bordes:

Color de texto: Seleccione el color de texto.

Fondo transparente: Active ésta casilla para hacer transparente el fondo del control.

Color de relleno: Elija el color que desea para el fondo del control.

Color de borde: Cambia el color de borde del control.

Estilo de borde: El borde puede tener cualquiera de los siguientes estilos

:

Grosor de borde: Determina el ancho del borde. Los controles cuentan con cuatro bordes, puede activar o desactivar estos haciendo clic sobre las barras mostradas alrededor del control de muestra mostrado en la ventana de propiedades.

Vea también:

  • El diseñador de formatos de impresión
  • La caja de controles
  • Barra de edición


4.2.3.- Control campo

El control campo puede ser utilizado para mostrar el valor de un campo de origen de registros.

Las propiedades de este control son las siguientes:

Pestaña Origen de datos

Conexión: Elija una conexión de la lista desplegable o cree una nueva haciendo clic sobre el botón [image]. También puede editar la conexión actual presionando el botón [image].

Origen de registros: Seleccione un origen de registros de donde se obtendrán los datos del campo. Haga clic sobre el botón [image] para crear un nuevo origen de registros o presione el botón [image] para editar el seleccionado.

Campo: En la lista desplegable se muestran los campos contenidos en el origen de registros seleccionado. Elija el campo que desea mostrar en el control.

Formato: Dependiendo del tipo de dato (por ej: número o fecha) del campo seleccionado seleccione el formato que se le dará al valor del campo. Si se trata de valores de texto lo usual es no asignar un formato, estos regularmente se aplican a valores de fecha, hora o numéricos.

Pestaña Alineación y fuente: Le permite personalizar el texto cambiando el tipo de fuente, tamaño, texto en negrita, cursiva o subrayado. También puede cambiar la alineación del texto de forma horizontal o vertical.

Pestaña Colores y bordes

Color de texto: Seleccione el color de texto que tendrá el campo.

Fondo transparente: Active ésta casilla para hacer transparente el fondo del control.

Color de relleno: Elija el color que desea para el fondo del control.

Color de borde: Cambia el color de borde del control.

Estilo de borde: El borde puede tener cualquiera de los siguientes estilos:

Grosor de borde: Determina el ancho del borde. Los controles cuentan con cuatro bordes, puede activar o desactivar estos haciendo clic sobre las barras mostradas alrededor del control de muestra mostrado en la ventana de propiedades.

Vea también:

  • Conexiones
  • Origen de registros
  • El diseñador de formatos de impresión
  • La caja de controles
  • Barra de edición


4.2.4.- Control de formula

Un control de fórmula le ayuda a mostrar resultados en el contendido del reporte por ejemplo, calcular el número total de clientes, la suma de un campo total más el IVA correspondiente, etc.

Una fórmula debe comenzar con el signo igual ( = ) y luego irá su contenido

A continuación se describen sus propiedades:

Pestaña Fórmula

Fórmula: Escriba en el campo de texto superior la fórmula que contendrá el control. Presione el botón diseñar fórmula para crearla con el editor de fórmulas.

Formato: Dependiendo del tipo de dato (por ej: número o fecha) del resultado de la fórmula, seleccione el formato que se le dará ese valor.

Pestaña Alineación y fuente: Le permite personalizar el texto cambiando el tipo de fuente, tamaño, texto en negrita, cursiva o subrayado. También puede cambiar la alineación del texto de forma horizontal o vertical.

Pestaña Colores y bordes

Color de texto: Seleccione el color de texto de la fórmula.

Fondo transparente: Active ésta casilla para hacer transparente el fondo del control.

Color de relleno: Elija el color que desea para el fondo del control.

Color de borde: Cambia el color de borde del control.

Estilo de borde: El borde puede tener cualquiera de los siguientes estilos:

6. Grosor de borde: Determina el ancho del borde. Los controles cuentan con cuatro bordes, puede activar o desactivar estos haciendo clic sobre las barras mostradas alrededor del control de muestra mostrado en la ventana de propiedades.

Vea también:

  • El editor de fórmulas
  • Barra de edición
  • El diseñador de formatos de impresión
  • La caja de controles


4.2.5.- Control casilla de verificacion

La casilla de verificación es un control con varios estilos: cruzado, cuadrado o círculo. El control tiene una propiedad origen, el cual puede ser un campo o una fórmula. El resultado de la fórmula o el valor del campo deben ser lógicos (“Verdadero” o “Falso”). De acuerdo a esto al ejecutar el reporte el control se mostrará solo si el valor es “Verdadero”.

Propiedades:

Pestaña Estilo

Nombre: Nombre para identificar el control.

Estilo: Seleccione el estilo que desea para el control: vacío, cruzado, cuadrado o círculo.

Relleno: Color de relleno del control

Tipo de relleno: Puede elegir uno de los siguientes tipos:

Fondo: Color de fondo del control

Borde: Color de borde del control

Ancho de borde: Indique un número para aumentar o disminuir el grosor del borde.

Pestaña Origen

Origen: Seleccione el origen del valor del control.

1. Si selecciona campo escriba los siguientes datos:

Conexión: Elija una conexión de la lista desplegable o cree una nueva haciendo clic sobre el botón [image]. También puede editar la conexión actual presionando el botón [image].

Origen de registros: Seleccione un origen de registros de donde se obtendrán los datos del campo. Haga clic sobre el botón [image] para crear un nuevo origen de registros o presione el botón [image] para editar el seleccionado.

Campo: En la lista desplegable se muestran los campos contenidos en el origen de registros seleccionado. Elija el campo que desea mostrar en el control.

2. Si selecciona fórmula se mostrará un cuadro de texto para escribir la fórmula o presione el botón diseñar fórmula para abrir el editor de fórmulas.

Vea también:

  • El diseñador de formatos de impresión
  • La caja de controles
  • Conexiones
  • Orígenes de registros


4.2.6.- Control código de barras

Este control le permite crear códigos de barras por medio de varios orígenes: Campo, Fórmula o Texto estático.

Propiedades del control:

Pestaña General

Origen: Seleccione el origen de los datos para el código de barras:

  • Campo: El código de barras se generará con los datos contenidos en una base de datos. Al elegir esta opción se abrirá una ventana donde puede seleccionar el campo que contiene los datos.

  • Fórmula: El código de barras se generará con el resultado de la fórmula que escriba en la propiedad código.

  • Texto estático: El código de barras se generará con el valor que determine en la propiedad código.

Tipo de barra: Elija el tipo de código de barras que desea crear, de acuerdo al tipo, el control aceptará sólo un determinado tipo de caracteres y un determinado número de caracteres. Puede saber si los datos escritos en la propiedad código son correctos por medio de Estado el cual le indica si hay algún error en la codificación, esta propiedad se describe más abajo.

Los tipos de código que puede elegir son los siguientes:

Código: Aquí se especifica el valor del origen de datos. Si es un campo el código contendrá el nombre del origen de registros seguido de un punto y el nombre del campo. Si elige fórmula el cuadro de texto código deberá contener la fórmula con la que se obtendrá el valor del código. Si elige texto estático entonces el contenido del cuadro de texto código será el valor del código de barras generado.

Orientación: El código de barras se puede dibujar en el reporte en varias posiciones, de manera predeterminada aparece la opción normal. Puede seleccionar una de las opciones siguientes: normal, izquierda, derecha o invertido. El resultado solo se verá cuando ejecute el reporte.

Estado: El cuadro de texto estado del control le indica si los datos escritos en la propiedad código son valores correctos para el tipo de código seleccionado. Esto solo sirve para texto estático ya que para fórmula y campo no se sabe aún cual será el valor del código.

Pestaña Opciones:

Texto visible: Seleccione esta casilla para crear códigos de barras que muestren el valor del código.

Mostrar márgenes: Sirve la delimitar el texto

Dígito verificador: Seleccione esta casilla si desea que se agregue al valor del código de barras un digito más como digito verificador.

Mostrar dígito verificador: Si desea mostrar el valor del dígito verificador marque esta casilla.

Cambiar de fuente: Haga clic sobre este botón para cambiar el tipo de fuente o tamaño de texto.

Alineación: Cambiar la alineación de texto, esta puede ser centrado, izquierda o derecha.

Color de texto: Haga clic en flecha de la derecha para mostrar la ventana de colores y seleccionar el color de texto.

Negrita y Cursiva: Cambiar el estilo del texto.

Vea también:

  • El diseñador de formatos de impresión
  • La caja de controles
  • Conexiones
  • Orígenes de registros


4.2.7.- Control imagen

En el reporte usted puede agregar tantas imágenes como necesite mediante el control imagen que le ayudará a darle mejor apariencia a su trabajo. Las imágenes puedes ser del tipo jpg, bmp, gif, wmf y emf. Este control puede obtener imágenes desde un archivo externo, a través de una fórmula y también cargar imágenes desde una base de datos por medio de la opción campo blob, estas características se explican mas adelante.

En la ventana de propiedades escriba el nombre del control para identificar la imagen. También puede elegir entre las opciones:

Ajustar imagen a control: Redimensiona la imagen adaptándola al tamaño del control dibujado en el formato.

Ajustar control a imagen: Redimensiona el control adaptándolo al tamaño de la imagen.

Pestaña Recurso Interno

Un recurso interno es un archivo agregado al proyecto desde una ubicación en el equipo. En esta pestaña se muestra una lista de la imágenes que ya ha agregado al proyecto, seleccione una para insertarla al control o presione el botón Importar imagen para buscar una imagen en el equipo. Una vez agregada la imagen al reporte, Códice hace una copia que se guardará dentro del archivo XPD (definición del reporte), por lo que cualquier cambio al archivo original no se reflejará en el resultado del informe, esto es particularmente útil pues a la hora de distribuir el proyecto (archivo XPD) no necesita preocuparse de llevar los archivos de imágenes.

Pestaña Recurso Externo

Las imágenes obtenidas a través de la opción recurso externo son cargadas mediante el resultado de una formula, es decir, la formula deberá dar como resultado un directorio valido y el nombre del archivo que se desea cargar. Por ejemplo suponga que tiene en una base de datos con el id y nombre de empleados y tiene una lista de imágenes en el directorio “C:\Imagenes” que corresponde a cada empleado de la base de datos, las imágenes pueden tener un nombre como img1 que corresponde al empleado con id=1, img2 que corresponde al empleado con id=2, etc. Entonces la fórmula seria la siguiente:

=”C:\Imagenes\” & “img” & @Consulta1.id & “.bmp”

@Consulta1 es un origen de registros que obtiene el id de empleado de una base de datos.

Así por cada registro en la base de datos, la fórmula dará un resultado diferente como: C:\Imagenes\img1.bmp, C:\Imagenes\img2.bmp, etc.

Pestaña Campo Blob

Un campo Blob (Binary Large Object) se utiliza para almacenar documentos u objetos en formato binario. Esto quiere decir que podemos guardar imágenes en una base de datos y recuperarlas mediante la opción campo blob del control de imagen.

Conexión: Elija una conexión de la lista desplegable o cree una nueva haciendo clic sobre el botón [image]. También puede editar la conexión actual presionando el botón [image].

Origen de registros: Seleccione un origen de registros de donde se obtendrán los datos del campo. Haga clic sobre el botón [image] para crear un nuevo origen de registros o presione el botón [image] para editar el seleccionado.

Campo: En la lista desplegable se muestran los campos contenidos en el origen de registros seleccionado. Elija el campo que desea mostrar en el control, este deberá ser un campo de tipo blob.

Vea también:

  • Imágenes y textos
  • El editor de fórmulas
  • El diseñador de formatos de impresión
  • La caja de controles
  • Conexiones
  • Orígenes de registro
  • Barra de edición


4.2.8.- Control tabla

Una tabla le permite personalizar las celdas cambiando el tipo, es decir, las celdas contenidas en una tabla puede ser texto estático, campo, formula o imagen. Dependiendo del tipo de celda mostrará la ventana de propiedades que corresponda a ese tipo haciendo clic sobre el botón propiedades [image] de la barra de herramientas de tabla que se describe mas abajo.

Pestaña de propiedades

Filas y columnas:

Número de filas: Defina el número de filas que contendrá la tabla

Número de columnas: defina el número de columnas que contendrán las filas.

Medidas:

Ajustar al control: Esta opción ajusta el tamaño de las filas y columnas para rellenar el control dibujado en el formato de impresión.

Definir medidas: Seleccione esta opción para definir el alto de las filas y ancho de las columnas de la tabla.

Alto de fila: Indique en alto de las filas en centímetros.

Alto de celda: Indique en ancho de las celdas en centímetros.

Pestaña colores y bordes de celda:

Estas propiedades aplican para todas las celdas contenidas en la tabla. Una vez creada la tabla solamente podrá cambiar estas propiedades para todas las celdas, no podrá volver a crear el número de filas y celdas de la tabla, deberá modificarlas mediante la barra de herramientas.

Color de texto: Seleccione el color de texto que tendrán las celdas

Color de relleno: Elija el color que desea para el fondo de todas las celdas.

Color de borde: Cambia el color de borde.

Estilo de borde: El borde puede tener cualquiera de los siguientes estilos:

Grosor de borde: Determina el ancho del borde. Las celdas cuentan con cuatro bordes, puede activar o desactivar estos haciendo clic sobre las barras mostradas alrededor del control de muestra mostrado en la ventana de propiedades.

Vea también:

  • El diseñador de formatos de impresión
  • La caja de controles
  • Barra de edición


4.2.9. - Control grafica

4.2.9.- Control gráfica

El control gráfica le permite dibujar una gráfica y asignarle un origen de registros de donde obtendrá los datos. Solo debe configurar las propiedades como son el tipo de gráfica las leyendas, etc. y el resultado se verá al ejecutar el reporte.

Pestaña general

Gráfica:

  • Tipo de gráfica: Permite elegir el tipo de gráfica que desea crear ya sea de Barras, Líneas, Pastel etc.
  • Borde: Permite elegir el tipo de borde de la gráfica ya sea línea simple, doble etc.

Fondo:

· Fondo: Permite definir el color del fondo de la gráfica.

· Color de borde: Permite definir el color de borde de la gráfica

Serie de datos en filas: Al activar la casilla muestra los datos en filas

Mostrar leyendas: Al activar la casilla muestra el texto agregado como leyendas en la gráfica.

Mostrar marcadores: Al activar la casilla muestra marcadores en la gráfica generada.

Sombra: Al activar la casilla muestra una sombra en la gráfica

Pestaña datos

Conexiones:

  • Conexión: Muestra la conexión hacia la base de datos.

  • Origend e registro: Indica el origen de registro que se graficará.

Mostrar escalas: Permite activar o desactivar la impresión de escalas en los ejes de la gráfica

Escala: Permite definir la escala, si se realizara de manera automática o con limites definidos por el usuario.

Pestaña titulo: Permite definir los títulos de la grafica, los ejes etc. Asi como diseñar el formato de texto.

Vea también:

  • El diseñador de formatos de impresión
  • La caja de controles
  • Conexiones
  • Orígenes de registros


4.2.10.- Control cuadricula detalle

Este control le permite crear un listado de registros de una base de datos, incluyendo encabezado de reporte, encabezado de página, encabezado de conjunto, encabezado de grupo, detalles, pie de grupo, pie de conjunto, pie de página y pie de reporte.

Después de dibujar el control se abrirá el asistente para configuración de la cuadrícula.

Asistente para la creación de cuadrícula de detalle.

Orígenes de registro: Seleccione los orígenes de registro que desea incluir en la cuadrícula. Utilice los botones subir y bajar para cambiar el orden de ejecución de los orígenes.

Campos: en esta parte del asistente seleccione los campos que desea que aparezcan en la cuadrícula. Del lado izquierdo de la lista se muestra el nombre del campo y del lado derecho se muestra el origen de registro al que pertenece. Puede subir y bajar los campos. Estos se dibujaran en la cuadrícula de izquierda a derecha, es decir el primer campo de la lista se dibujará del lado izquierdo de la fila de detalles y el último campo de la lista se dibujará del lado derecho. Sólo se crean celdas con los campo seleccionados.

Si desea agregar mas de una fila de detalles entonces presione el botón “Insertar fila” para dividir los campos en dos o mas filas. Puede agregar tantas filas como desee y eliminarlas con el botón “Eliminar fila”.

Agrupaciones: Las agrupaciones son útiles para mostrar los datos agrupados de acuerdo al valor de un campo en particular, es decir, se creará un nuevo grupo cada vez que cambie de valor campo de agrupación.

Si desea agregar agrupaciones seleccione los campos mostrados en la parte izquierda y presione el botón con el símbolo > para agregarlo a la lista de agrupaciones.

Si no desea agrupaciones puede dejar la lista vacía y presione siguiente.

Resúmenes: En la ventana de Resumenes puede indicar si desea o no incluir totales activando la opción ¿Desea incluir totales (resúmenes) en esta cuadricula? Seleccione No gracias, deseo omitr este paso para continuar.

Si activa la opción Si, necesito totales activara la ventana para poder seleccionar los campos y asignarles las operaciones que desea.

En la parte superior derecha de la venta se encuentran las operaciones que se pueden agregar y en la parte inferior derecha se encuentran las secciones de la cuadricula donde se desea agregar totales.

Encabezados: Indique el tipo de encabezado que desea agregar a la cuadricula y haga clic en finalizar.

Propiedades de cuadricula detalle: Permite cambiar el orden de ejecución de los orígenes de registro utilizado en una cuadricula. En el ejemplo mostrado en la imagen

primero se imprimirán los registros contenidos en eRSource1 y luego los registros de eRSource2

Vea también:

  • El diseñador de formatos de impresión
  • La caja de controles
  • Conexiones
  • Orígenes de registro


4.3.- Elementos de la interfaz del diseñador

4.3.1.- El diseñador de conexión 94

4.3.2.- El diseñador de orígenes de registros 96

4.3.3.- El diseñador de consultas SQL 98

4.3.3.1.- Trabajando con el diseñador de consultas SQL 100

4.3.3.2.- Diseñando combinaciones entre tablas 100

4.3.3.3.- Incluyendo condiciones de filtro_ 101


4.3.1.- El diseñador de conexión

Permite crear una conexión a una base de datos y tener acceso a las tablas que contiene para recuperar sus datos.

Nombre de la conexión: Es el nombre que identifica a la conexión que se está creando.

Administrador de conexiones de Grupo Execom: Seleccione una conexión de la lista desplegable en “Aplicación” si ya ha creado una anteriormente o presione el botón configurar para editar y crear una nueva vinculo tema nuevo

Al momento de configurar una nueva conexión proporcionara un nombre a la conexión la aplicación bajo la que se conectara en caso de versiones anteriores de Deminus y Maxicomercio la aplicación de ambas se denomina oldDeminus este será el nombre de la aplicacion que debe usar.

Para crear la cadena de conexion haga clic en Diseñar para saber mas sobre como diseñar una cadena de conexión haga clic en leer mas.

Indicara cual es el nombre de usuario y la contraseña de accesos a la base de datos y si esa será la conexión predeterminada. Deberá probar la conexión para verificar que se realizo correctamente

.

Adaptador para Maxicomercio/Déminus ver.2006 y anteriores: Seleccione esta opción si desea acceder la base de datos de Maxicomercio o Déminus versiones 2006 y anteriores instaladas en el equipo.

Adaptador para Academium ver. 2005/2006: Seleccione esta opción si desea acceder la base de datos de Academium versiones 2006 y anteriores instaladas en el equipo.

Cadena de conexión OLEDB: Seleccione esta opción para conectarse a cualquier base de datos que disponga de un proveedor OLEDB o un driver ODBC. Puede escribir directamente la cadena de conexión en el cuadro de texto o puede realizar lo siguiente:

Diseñar: Haga clic sobre el botón diseñar, se abrirá el diseñador de conexiones OLEDB. Seleccione el proveedor de OLEDB y configure las propiedades de la conexión.

Donde selecciona un proveedor de datos bajo el que se conectara, en la pestaña de conexiones deberá especificara la ruta donde esta ubicada la base de datos en los casos donde el tipo de el proveedor asi lo requiera. Para verificar que realizo bien el diseño deberá probar la conexion presionando “Probar conexión” mandándo un mesnaje si esta fue bien configurada. Podra especificar si desea proteger la conexión con una contraseña.

Importar Datalink: Muestra una ventana para abrir un archivo UDL e importar su contenido al proyecto que esta creando. Esto quiere decir que los datos se guardan de manera independiente del archivo, en caso de borrar el archivo el contenido sigue guardado en el proyecto.

Archivo UDL: Muestra una ventana para buscar un archivo UDL con el cual se creará la conexión. Esta opción solamente hace una referencia al archivo UDL y obtiene los datos de la conexión desde su contenido. Esto es muy útil cuando desea cambiar los valores de la conexión ya que solo necesita abrir el archivo y realizar los cambios sin necesidad de modificar el reporte.

Vea también:

  • Conexiones
  • Orígenes de registros
  • Administrador de conexiones
  • El acceso a bases de datos
  • Resumen sobre la tecnología OLE DB


4.3.2.- El diseñador de orígenes de registros

Un origen de registros le permite obtener el contenido de una base de datos mediante una conexión. Si no ha creado una conexión no se podrá insertar un origen de registros. Para más información sobre conexiones vea Conexiones a base de datos.

Pestaña General

Nombre: Es el identificador del origen de registro, no puede haber dos orígenes de registro con el mismo nombre.

Conexión: Muestra el nombre de la conexión en la cual se insertará el origen de registro.

Tipo de origen

El origen de registros puede obtener los datos mediante tres tipos de fuente, estos son: directamente sobre una tabla o vista, un procedimiento almacenado o a través de una consulta SQL. El botón “ver los datos” le permite ejecutar la consulta y ver el resultado que la misma.

Tabla o vista: Presione el botón actualizar para cargar las tablas y vistas de la base de datos en la lista y luego seleccione una sobre de la cual se obtendrán los datos. Presione el botón “Ver los datos” para mostrar el contenido de la tabla.

Procedimiento almacenado: Es un procedimiento guardado en base de datos la cual devuelve un conjunto de datos. Seleccione uno de la lista desplegable.

Consulta SQL: Escriba en el cuadro de texto la consulta que desee hacer hacia la base de datos o presione el botón diseñar para abrir el diseñador de consultas. Más información sobre el diseñador de consultas haga clic aquí.

Expresión de filtro

La expresión de filtro le permite como su nombre lo indica hacer un filtrado a los datos que devolverá el origen de registros. Por ejemplo si el origen de registros devuelve un conjunto datos con un campo factura y un campo fecha y desea ver solo las factura que se realizaron en la fecha: 15/01/2007 entonces la expresión de filtro contendrá lo siguiente

Utilice el editor de filtros para realizar esta tarea fácilmente. Para abrir el editor presione el botón que se encuentra a la derecha del cuadro de filtro.

Más información sobre el editor de filtros haga clic aquí.

Expresión de ordenación:

Al igual que la expresión de filtro, la expresión de ordenación se ejecuta después de obtener los datos. Esto es útil para listar el contenido del reporte de manera ascendente o descendente de acuerdo a alguna columna. Presione el botón actualizar para mostrar los campos que devolverá el origen de registros. La lista muestra todos los campos duplicados, uno con el nombre completo y otro con el sufijo “Desc”, el primero ordena el resultado de manera ascendente y el segundo devuelve los datos en orden descendente.

Vea también:

  • Orígenes de registro
  • El diseñador de consultas SQL
  • El editor de filtros
  • Filtros VS cláusulas WHERE/HAVING
  • Expresiones de ordenación VS Order By

Pestaña orígenes dependientes

Campo ID: Muestra una lista de campos del origen de registros que se esta editando. Este campo pasará su valor al parámetro asociado a los orígenes dependientes.

Parámetro asociado: Seleccione un parámetro de la lista o cree uno nuevo. Este parámetro tendrá el valor del campo ID seleccionado anteriormente y puede ser utilizado en la consulta de los orígenes dependientes.

Nuevo origen de registros: Agrega un origen de registros dentro del origen de registros actual.

Editar origen de registro: Abre el origen de registro seleccionado de la lista de la izquierda para su edición.

Quitar origen de registro: Elimina el origen de registros seleccionado de la lista de la izquierda.

Vea también:

  • Generar reportes Principal – Detalle

Pestaña Avanzadas

Esta pestaña le permite crear y especificar parámetros que se enviarán en la consulta directamente al motor de la base de datos.

Vea también:

  • Paso de parámetros y uso de Macros
  • Parámetros


4.3.3.- El diseñador de consultas SQL

El diseñador de consultas SQL permite mediante un entorno visual construir consultas SQL que permitan obtener los conjuntos de registros necesarios.

Esta es una herramienta de dos vías, lo cual significa que puede “dibujar” la consulta y obtener código SQL o a la inversa, escribir SQL y ver su representación gráfica.

La ventana del diseñador está formada por varias partes que permiten realizar todas las tareas necesarias.

A) Esquema de la base de datos. Muestra en forma jerárquica las tablas y vistas disponibles en la conexión actual. Al desplegar un elemento se muestran los campos (columnas) que lo forman, indicándose claves primarias y claves foráneas.

B) Información del elemento seleccionado. Presenta información detallada acerca del elemento seleccionado en el Esquela de la base de datos. Su propósito es meramente informativo.

C) Botones de acción. Permiten realizar las siguientes acciones:

· Agregar tabla al diagrama. Muestra una lista seleccionable de tablas y vistas disponibles para que sean incluidas en el Área de diseño.

· Ver árbol de sintaxis. Despliega una vista jerárquica (árbol) de los elementos que forman la instrucción SQL correspondiente al diseño actual, esta vista es muy útil para analizar la lógica de expresiones de filtro (WHERE) por ejemplo.

· Ejecutar consulta (Vista previa de los datos). Ejecuta la consulta que se está diseñando y muestra el conjunto de resultados.

D) Área de diseño. Está formada por dos pestañas:

· Vista de diseño. Permite diseñar el diagrama de la consulta, es decir marcar los campos a mostrar, trazar uniones entre tablas, etc.

· Consulta SQL. Contiene el código SQL correspondiente a la vista de diseño, cualquier cambio en el diagrama se reflejará en el código y viceversa.

E) Propiedades de columnas. Esta cuadrícula permite establecer los “alias”, agrupaciones y condiciones de filtro a las columnas seleccionadas para formar parte de la consulta SQL.

Vea también:

  • Base de datos relacionales y consultas SQL
  • Paso de parámetros y uso de Macros
  • Origen de registros


4.3.3.1.- Trabajando con el diseñador de consultas SQL

Hacer una consulta sencilla

Para construir una consulta que muestre algunos campos de una sola tabla haga lo siguiente:

  1. Agregue la tabla que contiene los campos (columnas) que le interesan, puede hacer presionando el botón “Agregar tabla a diagrama” o dando doble clic sobre la tabla o vista que corresponda en el Esquema de la base de datos (árbol a la izquierda).

  2. Marque los campos que desea incluir en su consulta en la representación de la tabla o vista en el Área de diseño.

  3. Presione el botón Aceptar

Vea también:

  • Base de datos relacionales y consultas SQL
  • Origen de registros


4.3.3.2.- Diseñando combinaciones entre tablas

Las combinaciones permiten generar consultas que muestran datos de dos o más tablas o vistas.

Para indicar una combinación entre dos tablas haga lo siguiente:

  1. Agregue a la Vista de diseño las tablas que serán unidas (combinadas)

  2. Haga clic sobre el botón -> que está en la esquina superior derecha de la representación de la tabla (o vista), observará que el puntero del Mouse cambia a una flecha apuntando hacia arriba. Haga clic con el Mouse sobre cualquier parte de otra representación de tabla para indicar que será combinada.

Haga clic aquí para empezar a trazar una combinación

  3. En el cuadro de diálogo “Relación” establezca las propiedades de su combinación que implican los campos de ambas tablas usados para la unión y el tipo de combinación (inner, left o right)

  4. Presione Aceptar y observará como se traza una línea de color azul que une ambas tablas.

Vea también:

  • Bases de datos relacionales y consultas con SQL
  • Origen de registros


4.3.3.3.- Incluyendo condiciones de filtro

Las condiciones de filtro se representarán como cláusulas Where o Having dependiendo de si existen agrupaciones o no.

Para establecer una condición solo escriba el valor de restricción en la fila “Condición” del panel de Propiedades de columnas.

Si la expresión condicional es por ejemplo: Apellido1=”sanchez” solo debe escribir “sanchez” o =”sanchez” en el cuadro de condición.

Si se trata de condiciones con operadores distintos a la igualdad (=) deberá empezar por el operador y luego el valor de comparación. Por ejemplo:

Para la expresión Total>5000 debe escribir: >5000

Se admiten todos los operadores del estándar SQL y cuando no se indica un operador, se asume el de igualdad.

Puede usar también macros como condiciones, por ejemplo: Si tiene un parámetro pApellido definido podría escribir =@pApellido

Consideraciones sobre el diseñador de consultas

Aunque se ha hecho un importante esfuerzo para que el diseñador de consultas pueda analizar el código SQL de consultas, es posible que existan casos sobre los que la máquina de ingeniería inversa no pueda completar el análisis léxico-sintáctico, sobre todo cuando se trata de instrucciones muy complejas o que utilizan notación SQL propietaria del motor de la base de datos.

Los siguientes son casos en los que el diseñador de consultas no podrá interpretar correctamente el código SQL:

  • Instrucciones que no inicien con la palabra reservada de SQL SELECT
  • Instrucciones de unión, es decir que usen la palabra reservada UNION ALL
  • Instrucciones con condiciones Where o Having demasiado complejas o que implementen combinaciones sin el uso de Join
  • Instrucciones que usen la cláusula LIMIT (MySQL, DB2)
  • Instrucciones con notación propietaria del DBMS

Es posible que en el futuro se realicen mejoras a las capacidades de reconocimiento del motor de ingeniería inversa para SQL, por favor visite www.grupoexecom.com/codice/soporte para estar al tanto de las actualizaciones.

Finalmente, es importante considerar que en última instancia, el soporte para la sintaxis de SQL depende del proveedor OLE DB que se ha usado para establecer la conexión.

Vea también:

  • Base de datos relacionales y consultas SQL
  • Origen de registros
  • El diseñador de orígenes de registros
  • El editor de filtros
  • Conexiones
  • El acceso a bases de datos
  • Resumen sobre la tecnología OLE DB


4.3.4.- El diseñador de diálogos

El diseñador de diálogos es la ventana o área donde podemos dibujar el cuadro de diálogos o editarla para dar forma a la ventana de dialogo que será visualizada al momento de la ejecución del proyecto, nos permite ajustar el tamaño del cuadro de diálogos, insertar controles de texto, numero, fecha, hora etc. .

Podemos asignarle un titulo a la ventana o cuadro de dialogo y un nombre del dialogo.

Vea también:

  • Diálogos
  • Controles de diálogos


4.3.5.- El diseñador de formatos de impresion

4.3.5.1.- Configurar formato de impresión_ 103

4.3.5.2.- Banda magnética, smart-card y otras opciones avanzadas: 104


4.3.5.1.- Configurar formato de impresión

Nombre: Indique el nombre del nuevo formato de impresión.

Contraportada: Esta característica le permite agregar en la creación del reporte un formato que se imprimirá a continuación del formato que lo contiene. Por ejemplo si desea imprimir credenciales, la cara de la credencial será un formato de impresión con los datos de la persona y éste tendrá asignado un formato de contraportada con otros detalles como por ejemplo un código de barras. Así al ejecutar el reporte se imprimirá una hoja con el frente de la credencial y la siguiente hoja será el formato de contraportada.

Tamaño de papel: Elija el tamaño que desea para la hoja. Para cambiar el tamaño manualmente elija Personalizado, los cuadros de alto y ancho se activarán y ahora puede modificar sus valores para adecuarlos a su preferencia.

Medida: Elija el tipo de unidad de medida para representar la hoja, estos pueden ser centímetros, milímetros o pulgadas.

Ancho y Alto: Modifique estos valores para personalizar el tamaño de la hoja. Elija primero tamaño de hoja Personalizado para poder hacer cambios.

Orientación: Indique la orientación de la hoja (horizontal o vertical), de forma predeterminada al imprimirse el diseño del formato se ajustará la configuración de la impresora.

Márgenes: El margen dibuja una guía en el formato de impresión para delimitar la hoja.

Etiquetas: Para imprimir etiquetas modifique el valor de filas y columnas en el cuadro “Etiquetas” de acuerdo al numero de etiquetas que desea crear. También puede modificar el tamaño de la etiqueta cambiando los valores de alto y ancho.

Si configura el formato de impresión para imprimir etiquetas el tamaño de la hoja que se mostrará para el diseño será el tamaño de una solo etiqueta. Cuando ejecute el reporte se verán todas las etiquetas en una sola hoja.

Vea también:

  • Formatos de impresión
  • Controles de formatos de impresión


4.3.5.2.- Banda magnética, smart-card y otras opciones avanzadas:

Códice FX le permite grabar tarjetas con banda magnética y smart-cards. Dependiendo del tipo de impresora que se utilizará para grabar los datos, la operación se ejecuta al inicio de la impresión o al final, elija en la ventana de configuración la pestaña al iniciar o al terminar para crear los comandos.

Opciones disponibles: AL INICIAR

Ninguno: Esta opción está activada de manera predeterminada cuando se crea un formato de impresión. Indica que no se enviarán comandos (secuencias de escape) al dispositivo de impresión.

Codificación de banda magnética:

Codificador: Elija el nombre de archivo de codificación. Este archivo contiene un tipo definido de comandos para ejecutar la grabación de la banda magnética. El botón Configuración le permiten editar el archivo seleccionado.

Las propiedades que puede cambiar a este archivo son las siguientes:

Precomando indica el comando que se ejecutará antes de empezar la grabación.

Cada Track contiene un prefijo (primer cuadro de texto) y un sufijo (segundo cuadro de texto).

Post-comando es el comando que se ejecutará al final de la grabación.

Track: La banda magnética cuenta con 3 Tracks o pistas en las cuales puede grabar los datos. Seleccione la casilla para indicar que pistas se van a grabar de la banda magnética.

Origen: Seleccione el origen de los datos que se grabarán, este puede ser texto o fórmula.

Datos: Escriba en este cuadro de texto los datos que desea grabar. Si elige texto como origen, entonces escriba el contenido en este cuadro. Si elige formula entonces deberá escribir una formula valida cuyo resultado será el que se grabe.

Puede hacer clic sobre la fecha de la derecha para seleccionar un campo de una base de datos (solamente si ya ha agregado un origen de registros).

Consideraciones

Cada track puede ser codificado y decodificado con caracteres ASCII en el formato de datos estándar ANSI/ISO.

Es importante que la longitud de los datos y los caracteres que se graben el la banda magnética estén dentro de los datos permitidos para evitar problemas durante la grabación.

En el siguiente ejemplo se ha asignado al track 1 una fórmula para obtener los datos, esta formula ejecuta una función escrita en el subprograma para truncar la cadena de datos si la longitud de ésta es mayor que lo permitido.

Configuración de track1

Código en el subprograma.

function Track1(sData)

if len(sData)>76 then sData=mid(sData,1,76)

Track1=sData

end function

Codificación Smart-Card:

Codificador: Elija el nombre de archivo de codificación. Este archivo contiene un tipo definido de comandos para ejecutar la grabación de la banda magnética. El botón Configuración le permiten editar el archivo seleccionado.

Las propiedades que puede cambiar a este archivo son las siguientes:

-Pre-comando indica el comando que se ejecutará antes de empezar la grabación.

-Comando contiene un prefijo (primer cuadro de texto) y un sufijo (segundo cuadro de texto).

-Post-comando es el comando que se ejecutará al final de la grabación.

Origen: Seleccione el origen de los datos que se grabarán, este puede ser text o fórmula.

Datos: Escriba en este cuadro de texto los datos que desea grabar. Si elige texto como origen entonces escriba el su contenido en este cuadro. Si elige formula entonces deberá escribir una formula valida cuyo resultado será el que se grabe.

Puede hacer clic sobre la flecha de la derecha para seleccionar un campo de una base de datos (solamente si ya ha agregado un origen de registros).

Secuencia definida por el usuario:

Esta opción le permite escribir directamente los comandos que se ejecutarán para grabar los datos en la tarjeta ya sea de banda magnética o smart-cards.

Opciones disponibles: AL TERMINAR

Ninguno: Esta opción está activada de manera predeterminada cuando se crea un formato de impresión.

Secuencia definida por el usuario:

Esta opción le permite escribir directamente los comandos que se ejecutarán para grabar los datos en la tarjeta ya sea de banda magnética, smart-cards o cualquier otra función de la impresora.

Vea también:

  • Configurar formato de impresión
  • Generar tarjetas plásticas
  • Codificar banda magnética, Smart-card y RFID


4.3.6.- El editor de fórmulas

El diseñador de fórmulas le permite crear fórmulas incluyendo los campos de una base de datos y parámetros con valores predeterminados o valores que se agregar al inicio del reporte mediante los diálogos. Puede utilizar varios operadores para realizar cálculos dentro de su reporte, agregar Macros como la fecha actual, la hora o el número total de páginas del reporte.

Del lado izquierdo del diseñador se muestran los orígenes de registro que ha creado con sus campos correspondientes y los parámetros que puede utilizar dentro de la fórmula. Para agregar un campo o un parámetro a la fórmula haga doble clic sobre el nombre y este aparecerá en la posición del cursor en el cuadro de fórmula.

En la lista desplegable Formato ubicada en la parte de abajo del cuadro de fórmula elija el formato que se le dará al resultado de la formula.

Vea también:

  • Control de formula
  • Control imagen


4.3.7.- El editor de filtros

El editor de filtro le ayuda a crear condiciones que se tienen que cumplir en el resultado de la consulta para obtener los datos. El diseñador de filtros tiene los siguientes componentes.

En el ejemplo mostrado en la imagen se han creado dos condiciones de filtro, de acuerdo con esto el reporte mostrará solo las personas que tengas un número de empleado menor de 10 y que su nombre empiece con la letra “e”, todos los demás registros de la base de datos que no cumplan con estas condiciones no se tomarán en cuenta.

4.3.7.1.- Campo: Muestra un listado de los campos de que contiene el origen de registro que se está editando. Seleccione un campo por el cual desea filtrar.

4.3.7.2.- Operador: Es la condición que se debe de cumplir en el filtro.

4.3.7.3.- Valor: Es lo que se compara con el campo, puede ser un valor numérico, una fecha, una cadena de caracteres, un parámetro u otro campo.

4.3.7.4.- Unión: Permite añadir más de una condición de filtro, puede ser OR o AND. La primera (OR) devuelve verdadero en la expresión de filtrado si por lo menos una de las condiciones es verdadera. La segunda (AND) devuelve verdadero cuando todas las condiciones son verdaderas de lo contrario devuelve falso.

Vea también:

  • Filtros VS cláusulas WHERE/HAVING
  • Orígenes de registros


4.3.8.- El editor de código

El editor de código permite introducir código en Visual Basic Script o Java script para ejecutar acciones en tiempo de ejecución del proyecto.

Para Abrir el editor de código haga doble clic en el explorador de proyectos en la opción sub-programa en la parte superior de la ventana seleccione el lenguaje y escriba el código deseado.

Vea también:

  • Subprograma
  • Modelo de programación
  • Referencia de objetos del motor en tiempo de ejecución


4.3.9.- El explorador de proyecto

El explorador de proyectos permite acceder a los elementos que forman un reporte y poder crear conexiones, definir parámetros, editar y diseñar diálogos, editar el formato de impresión, agregar imágenes y texto asi como sub-programas de una forma fácil ya que tienen la estructura de árbol jerárquico permitiendo agregar elementos, editarlos después de haber sido creados o eliminarlos de ser necesario.

Puede insertarse un objeto de dos maneras una es dando clic en [image] en la barra de herramientas del explorador o clic derecho sobre la los elementos del reporte, en ambos caso abrirá la siguiente ventada donde podrá insertar cualquier elemento.

Si se desea editar un elemento mientras esta seleccionado haga clic en * en la barra de herramientas del explorador de proyecto y abrirá la venta de opciones del elemento correspondiente, para eliminar un elemento seleccionado simplmente haga clic en [image] se borrara.

Vea también:

  • Elementos que forman un reporte


4.3.10.- El panel de resultados

El panel de resultados de la ejecución muestra los resultados de la ejecución del proyecto los errores que puedan presentarse en el código o en alguna formula, se divide en: Inicio de ejecución de programa, Verificación de conexiones, Inicialización del motor en tiempo de ejecución y Fin de ejecución de programa.

Vea también:

  • Uso del motor en tiempo de ejecución


4.3.11.- La caja de controles

La caja de controles permite seleccionar un control y dibujarlo sobre el formato. Estos controles hacen posible personalizar el reporte agregando campos de texto, imágenes, gráficas, rectángulos, campos de una base de datos, fórmulas, casillas de verificación, tablas, código de barras y la cuadrícula de detalle.

Cada control cuenta con varias propiedades, las cuales se pueden modificar para adaptarlas a sus preferencias como son color de texto, bordes, tamaño, etc. Más sobre controles de formatos de impresión .


4.3.12.- Barras de herramientas y paneles

4.3.12.1.- Barra de menú: 112

4.3.12.2.- Barra de archivo: 112

4.3.12.3.- Menú Archivo_ 113

4.3.12.4.- Barra format 113

4.3.12.5.- Menú Formato_ 114

4.3.12.6.- Barra de tabla: 115

4.3.12.7.- Barra de edición_ 115

4.3.12.8.- Menú edición_ 116

4.3.12.9.- Barra de utilidades 116

4.3.12.10.- Menú ver: 117

4.3.12.11.- Menú proyecto_ 117

4.3.12.12.- Menú de ayuda_ 118

4.3.12.13.- Barra de estilo_ 119


4.3.12.1.- Barra de menú:

Contiene todos los ítems en agrupaciones de menús de edición, creación y modificación de manera desplegable en forma de lista como son: Archivo, Edición, Formato, Ver, Proyecto y Ayuda.

Desde el menú archivo se pueden acceder a las opciones mas comunes que sirven para propósitos generales del proyecto

Desde el menú edición se pueden cartar, copiar, pegar y eliminar controles y texto

El menu formato contiene iconos que nos permiten aplicar los comandos utilizados más a menudo para modificar un control así como sus propiedades

El menú ver activa o desactiva las barras y paneles

la barra de menú proyecto permite agregar o editar elementos de un proyecto asi como la ejecución

Muestra información de interés acerca de Codice Fx

Vea también:

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte


4.3.12.2.- Barra de archivo:

Contiene accesos directos a las opciones más comunes y sirven para propósitos generales del proyecto.

Permite crear un nuevo proyecto en blanco o basado en una plantilla

Abre un proyecto almacenado

Guarda el proyecto en uso con las modificaciones realizadas

Copia el texto o campo seleccionado

Corta el texto o campo seleccionado

Pegar el texto o campo seleccionado

Muestra las propiedades del control

Ejecuta el proyecto

Zoom del area de diseño.

Vea también:

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte


4.3.12.3. - Menu Archivo

4.3.12.3.- Menú Archivo

Para acceder a las opciones del menu archivo es necesario hacer clic en la barra de menú en la opción [image] o con el meta comando Alt+A,

Nuevo: Permite crear un nuevo proyecto en blanco o basado en una plantilla

Abrir: Abre un proyecto almacenado

Guardar: Guarda el proyecto en uso con las modificaciones realizadas

Guardar como: Guarda el proyecto abierto con las modificaciones realizadas en una ubicación nueva definida por el usuario

Cerrar proyecto: Cierra el proyecto dejando abierto Códice FX

Opciones: Muestra la ruta de ubicación de plantillas y asistentes y permite cambiarla

Vista preliminar: Visualiza el reporte de manera predeterminada mostrando el resultado del proyecto en pantalla.

Imprimir: Imprime el proyecto abierto

Salir: Cierra el proyecto abierto y sale de Códice Fx.

Vea también:

  • Empezar a trabajar con Códice FX (“Hola Mundo”)
  • Elementos que forman un reporte


4.3.12.4.- Barra format

La barra de formato contiene iconos que nos permiten aplicar los comandos al texto utilizados más a menudo, como por ejemplo marcar en negritas, tamaño y tipo de letra.

Despliega la lista de fuentes de la galería para seleccionar la deseada

Cambia el tamaño de la fuente

Activa el tipo negritas el texto seleccionado

Activa el tipo cursivo el texto seleccionado

Subraya el texto seleccionado

Alinea el texto a la izquierda

Alinea el texto al centro

Alinea el texto a la derecha

Justifica el texto

Coloca el texto arriba de un campo

Centra un texto en un campo

Ubica el texto en la parte baja del campo

Aplica color de fondo

Aplica color de texto

Aplica color de borde

Agrega las líneas de los bordes del control seleccionado

Estilo de la línea de borde del control seleccionado

Vea también:

  • Controles de diálogos
  • Controles del formato de impresión
  • Empezar a trabajar con Códice FX (“Hola Mundo”)


4.3.12.5. - Menu Formato

4.3.12.5.- Menú Formato

Puede acceder desde el menú o con el meta-comando Alt+F

Alinear: Permite alinear el control a diferentes posiciones como izquierdo, centro, derecha, superior, medio e inferior.

Orden: Permite indicar si un control esta delante o detrás del texto o de otro control.

Propiedades de elemento: Muestra las propiedades de un elemnto seleccionado también se puede utilizar el comando F4

Asistente de tabulación:

El asistente de tabulación permite modificar el orden de tabulación de los controles de un diálogo. Permite subir o bajar la posición de un control para asignar un índice de tabulación de acuerdo al orden en que se encuentren en el asistente. El resultado se verá sólo al ejecutar el reporte.

Propiedades del elemento:

Muestra las propiedades del elemento seleccionado, este puede ser un control, un diálogo o un formato de impresión. Para mostrar las propiedades de un diálogo o un formato de impresión haga clic sobre la ventana de diálogo o formato de impresión cuidando que no se seleccione ningún control y luego seleccione la opción propiedades de elemento.

Vea también:

  • Controles de diálogos
  • Controles del formato de impresión
  • Empezar a trabajar con Códice FX (“Hola Mundo”)


4.3.12.6.- Barra de tabla:

La barra de tabla permite editar los campos y filas de una tabla

Agrega una fila al final de la tabla, si se trata de una cuadricula de detalle agrega una fila al final de la seccion en la que se este ubicado

Inserta una fila arriba del campo seleccionado

Elimina la fila seleccionada

Inserta una celda antes de la celda celeccionada

Agrega una celda despues de la celda seleccionada

Elimina la celda seleccionada

Sube la fila seleccionada

Baja la fila seleccionada

Mueve a la izquierda el celda seleccionado

Mueve a la derecha el celda seleccionado seleccionada

Muestra las propiedades de la celda seleccionada

Comvierte a multilinea la celda seleccionada.

Asigna el campo principal de agrupamiento

Asigna el campo secundario de agrupamiento en la misma agrupacion de GK

Propiedades de celda: Permite cambiar el tipo de una celda a Texto Estático, Campo, Formula, Imagen.

Al hacer clic en configurar celda abre la ventana de propiedades de celda donde podemos cambiar el tipo de una celda.

Vea también:

  • Control cuadrícula detalle
  • Control tabla
  • Empezar a trabajar con Códice FX (“Hola Mundo”)


4.3.12.7. - Barra de edicion

4.3.12.7.- Barra de edición

La barra de edición contiene elementos que permiten editar las propiedades del campo seleccionado ya sea imágenes, formulas, textos y campos, cambiar su origen editar su tipo pasar de ser celda a campo etc.

Indica si la celda seleccionada es de tipo texto / cambia el tipo de celda seleccionada a texto

Indica si la celda seleccionada es de tipo campo / cambia el tipo de celda seleccionada a campo

Indica si la celda seleccionada es de tipo formula / cambia el tipo de celda seleccionada a formula

Indica si la celda seleccionado es de tipo imagen si pertenece a un recurso interno, extrerno o tipo blob / cambia un control a tipo imagen

Indica el nombre del origen de registro y permite cambiar el origen de registro de la celda seleccionada

Indica el nombre del campo y permite cambiar el campo asignado a la celda

Define el estilo moneda a una celda

Define el estilo numero a uina celda

Define el estilo fecha a una calda

Vea también:

  • Controles del formato de impresión
  • Empezar a trabajar con Códice FX (“Hola Mundo”)


4.3.12.8. - Menu edicion

4.3.12.8.- Menú edición

Para abrir el menú edición puede usarse el meta comando Alt+E

Cortar: Corta el texto o campo seleccionado

Copiar: Copia el texto o campo seleccionado

Pegar: Pegar el texto o campo seleccionado

Eliminar: Elimina el campo o texto seleccionado

Seleccionar todo: Selecciona todos los controles.

Vea también:

  • Controles de diálogos
  • Controles de formatos de impresión
  • Empezar a trabajar con Códice FX (“Hola Mundo”)


4.3.12.9.- Barra de utilidades

Bloquea el control seleccionado

Traer al frente el control seleccionado

Enviar atrás el control seleccionado

Vea también:

  • Controles de diálogos
  • Controles de formatos de impresión
  • Empezar a trabajar con Códice FX (“Hola Mundo”)


4.3.12.10. - Menu ver:

4.3.12.10.- Menú ver:

Permite ver u ocultar los paneles desde la ventana principal, activando y desactivando la visualización como son: Explorador de proyectos, Caja de Controles, Panel de Estilo, y Resultados de ejecución.

El editor de formatos permite ocultar las líneas y reglas de la ventana de impresión, activando o no los botones correspondientes.

Vea también:

  • Empezar a trabajar con Códice FX (“Hola Mundo”)


4.3.12.11. - Menu proyecto

4.3.12.11.- Menú proyecto

Brinda opciones referente al proyecto, como ejecutar el proyecto desde el menú ver seleccionando la opción ejecutar o con el tecla de acceso rápido F5 o bien con el icono de ejecución

Podemos insertar un elemento. Leer mas

Propiedades del proyecto

En la ventana de propiedades de proyecto se encuentran las opciones más importantes que debe configurar antes de la ejecución de un reporte.

Nombre: Es el nombre que se asigna al proyecto.

Diálogo inicial: En un proyecto puede tener más un diálogo, por lo tanto, es necesario indicar cual será el que se muestre al iniciar la ejecución del reporte. Seleccione un diálogo de la lista desplegable.

Formato de impresión inicial: Aquí debe seleccionar un formato de impresión que al igual que el diálogo inicial será el que se ejecute primero. Por ejemplo si usted está creando credenciales y utiliza dos formatos de impresión (frente y vuelta) debe indicar en esta propiedad el formato “frente” si es éste el que contiene un formato de contraportada (vuelta).

Lenguaje de subprograma: Códice FX permite crear un subprograma en el diseñador de reportes. En esta propiedad debe seleccionar el lenguaje que desea utilizar, puede ser Visual Basic Script o JavaScript.

IMPORTANTE: Esta propiedad también influye en la manera de crear las fórmulas en el reporte. Dependiendo del lenguaje que se indique deberá utilizar la sintaxis que ese lenguaje usa para crear las fórmulas.

Por ejemplo: si desea hacer una unión de cadenas la fórmula se escribirá como sigue.

VBScript:

=“Fecha de creación del reporte:” & @Date

JavaScript:

=“Fecha de creación del reporte:” + @Date

Información del reporte: Escriba en este cuadro de texto cualquier comentario o información adicional sobre el reporte.

Vea también:

  • Empezar a trabajar con Códice FX (“Hola Mundo”)


4.3.12.12. - Menu de ayuda

4.3.12.12.- Menú de ayuda

El menú ayuda tiene la opción índice de ayuda al que podemos acceder haciendo clic sobre índice de temas de ayuda o con la tecla de accesos rápido F1, la opción de soporte técnico en Internet lo llevara a la pagina web de Grupo Execom dedicada a Códice Fx http://www.grupoexecom.com/codice/soporte/ donde obtendrá artículos técnicos, utilerías, el foros etc; Cuenta con un link para acceder a la pagina principal de Grupo Execom que le dara información acerca de los software propiedad de Grupo Execom.

En acerca de encontrara la información relevante a Códice FX como la versión y demás detalles de interés.

Vea también:

  • Empezar a trabajar con Códice FX (“Hola Mundo”)


4.3.12.13.- Barra de estilo

Permite editar el estilo del titulo de un control para modificar el diseño y la apariencia, como son características de la fuente, color de la fuete y del fondo del control la alineación y el caso de algunos controles la ubicación del texto.

Estilo de titulo: Permite modificar las características de la fuente como son tipo de fuente, estilo, tamaño etc para guardar los cambios haga clic en aceptar, los cambios se verán reflejados en el botón muestra de fuente.

Para modificar el color de fuente y el color de fondo del control es necesario hacer clic sobre el rectángulo que indica el color de la fuente o fondo correspondiente al control seleccionado y abrirá la ventana de selección de color

Alineacion: El titulo se puede alinear tanto a la izquierda, al centro y a la derecha con los botones de alineación de alineación.

Ubicación del titulo: Para los campos de texto, numero, fecha, hora etc. podemos usar la opción de ubicación del titulo en diferentes partes del control: arriba, abajo, ala derecha, a la izquierdaetc.

Vea también:

  • Controles de diálogos
  • Controles de formatos de impresión
  • Empezar a trabajar con Códice FX (“Hola Mundo”)


5.- Uso del motor en tiempo de ejecución

5.1.- Procesamiento de orígenes de registros por el motor en tiempo de ejecución 122

5.1.1.- Paso de parámetros y uso de Macros 122

5.1.2.- Filtros VS cláusulas WHERE/HAVING_ 122

5.1.3.- Expresiones de ordenación VS Order By 123

5.2.- Uso de la API de Códice 124

5.2.1.- Descripción de los componentes 124

5.2.2.- Ejecutar y mostrar un reporte desde VB6 125

5.2.3.-Ejecutar y mostrar un reporte desde C# 128

5.2.4.- Programación a través de los objetos del Administrador de conexiones. 130

5.2.5.- Ejemplos 131

5.2.5.1.- Administrador de conexiones (Visual Basic 6.0) 131

5.2.5.2.- Credencialización (Visual Basic 6.0) 131

5.2.5.3.- Visor de reportes (Visual Basic 6.0) 132

5.2.5.4.- Abrir y ejecutar un reporte con C# 2005_ 132

5.3.- Referencia de objetos del motor en tiempo de ejecución 133

5.3.1.- eBASIC_ 133

5.3.2.- Jerarquía eReport 146

5.3.3.- Jerarquía eDigitalDoc 149

5.3.4.- XPREngine 169

5.3.5.- geOLEDbServices 183


5.1.- Procesamiento de orígenes de registros por el motor en tiempo de ejecución

El motor en tiempo de ejecución de Códice FX tiene diferentes métodos de realizar las tareas comunes de procesamiento de consultas SQL. En los siguientes apartados se muestra las diferentes formas de hacer un proceso específico con Orígenes de registro como por ejemplo la utilización de parámetros, esto permite al usuario elegir el método que más le convenga.


5.1.1.- Paso de parámetros y uso de Macros

Los parámetros son usados par realizar un filtro en la consulta realizada a la base de datos, un parámetro puede obtener su valor cuando el usuario se lo asigna (puede ser por medio de un diálogo) o asignarte un valor predeterminado. Así, se hace la consulta de acuerdo al valor de dicho parámetro.

Es posible utilizar los parámetros de dos maneras diferentes. La primera es agregando el símbolo de interrogación en la consulta SQL y la segunda es agregando el nombre de un parámetro precedido del signo @.

Paso de parámetros:

SELECT * FROM Clientes WHERE TipoCliente=?

La consulta SQL anterior recibe un parámetro, por lo tanto es necesario mandar un valor para realizar la consulta correctamente. La manera de funcionar en esta forma es la siguiente: El motor en tiempo de ejecución manda la consulta y el parámetro a la base de datos para obtener el conjunto de registros. De esta forma el motor de la base de datos hace el trabajo de entender la consulta y sustituir el valor del parámetro.

El uso de macros se muestra a continuación:

SELECT * FROM Clientes WHERE TipoCliente=@Parametro1

Cuando se utilizan macros en las consultas el proceso que realiza el motor en tiempo de ejecución es diferente: Primero se obtiene el valor de parámetro, luego se sustituye pone ese valor en la consulta SLQ, es decir se modifica la consulta y en lugar del nombre del parámetro se coloca su valor. Por último, se envía al motor de la base de datos la consulta completa.

Vea también:

  • Parámetros

  • Uso de macros de Códice FX en consultas SQL

  • Consultas con parámetros

  • Bases de datos relacionales y consultas con SQL
  • Orígenes de registros
  • Conexiones


5.1.2.- Filtros VS cláusulas WHERE/HAVING

Una de las operaciones más útiles sobre una base de datos es realizar filtros para obtener los datos deseados sin campos extras que no se desean ver. Las cláusulas WHERE y HAVING realizan estas operaciones en una consulta SQL, pero a demás de estas Códice FX incluye un diseñador de filtros para hacer más fácil esta tarea.

Diferencias entre Filtros y Cláusulas WHERE/HAVING

WHERE/HAVING

Las cláusulas Where y Having son instrucciones SQL las cuales se agregan en una consulta para realizar un filtro en un conjunto de registros de la base de datos. Los datos obtenidos mediante un origen de registros que tenga incluido es su consulta estas cláusulas serán solo los que se hayan indicado. Por ejemplos se tiene una consulta como la siguiente:

SELECT * FROM Clientes WHERE Tipo=1001

Esta consulta regresa un conjunto de registros donde los datos serán solo aquellos clientes que tengan un tipo de cliente igual a 1001, si un cliente pertenece a otro tipo entonces no se mostrarán los datos de ese cliente.

Filtros

Las expresiones de filtro del diseñador de orígenes de registros permiten realizar filtros en una consulta de manera fácil. A diferencia de Where o Having, los Filtros realizan su tarea des pues de obtener el conjunto de datos. Por ejemplo si tenemos un origen de registros que obtiene los datos de una tabla y se desea hace un filtro, se agregaría una expresión de filtro como sigue:

Origen de datos:

Expresión de filtrado:

Las expresiones de filtrados se puede hacer por medio del editor de filtros.

Vea también:

  • El editor de filtros
  • Bases de datos relacionales y consultas con SQL
  • Origen de registros
  • Conexiones.


5.1.3.- Expresiones de ordenación VS Order By

Los métodos de ordenación se utilizan para obtener un conjunto registros de manera ordenada de acuerdo a las especificaciones que se indiquen en un origen de registro. Códice FX tiene dos maneras de realizar las ordenaciones, por medio de “Order By” o escribiendo expresiones de ordenación.

Diferencias entre Expresiones de ordenación y Order By.

Order By

Esta instrucción se utiliza directamente en las consultas SQL lo que permite obtener un conjunto de registros ya ordenados desde la base de datos, es decir, cuando el origen de registros realice la consulta los datos obtenidos estarán en el orden como se indicó.

Se puede incluir la expresión Order By de dos maneras. La primera es utilizando el diseñador de consultas y la segunda es añadiéndola directamente sobre la consulta SQL.

Expresiones de ordenación

A diferencia del método Order By las Expresiones de Ordenación se añaden como una propiedad de un origen de registros, por lo tanto cuando el origen de registros obtenga los datos de la base de datos estos estarán tal como fueron capturados, es decir no estarán ordenados, el método de ordenación se aplica cuando el origen de registros ya tiene el conjunto de datos.

Tomando en cuenta lo anterior la manera mas eficaz de realizar una ordenación de los datos es a través de Order By ya que obtiene los datos ya ordenados de la base de datos, a diferencia de las expresiones de ordenación que después de obtener los datos aplica el método de ordenación.

Vea también:

  • Bases de datos relacionales y consultas con SQL
  • Origen de registros
  • Conexiones.


5.2.- Uso de la API de Códice

5.2.1.- Descripción de los componentes 124

5.2.2.- Ejecutar y mostrar un reporte desde VB6 125

5.2.3.-Ejecutar y mostrar un reporte desde C# 128

5.2.4.- Programación a través de los objetos del Administrador de conexiones. 130

5.2.5.- Ejemplos 131

5.2.5.1.- Administrador de conexiones (Visual Basic 6.0) 131

5.2.5.2.- Credencialización (Visual Basic 6.0) 131

5.2.5.3.- Visor de reportes (Visual Basic 6.0) 132

5.2.5.4.- Abrir y ejecutar un reporte con C# 2005_ 132


5.2.1.- Descripción de los componentes

Códice FX integra un conjunto de componentes que realizan el trabajo de ejecución del reporte, además de todos los procesos que intervienen en la creación y procesamiento de un reporte. Los componentes del API de Códice son los siguientes:

eBasic: Conjunto de métodos de propósito general que ayudan a ejecutar tareas muy útiles como crear un archivo, comparar la existencia de un archivo, obtener la ruta de la carpeta temporal de Windows, convertir un número a palabras, etc.

eDigitalDoc: Contiene las especificaciones de un documento de reporte ejecutado, esto es, los datos obtenidos una vez procesado el reporte.

eReportSpt: Conjunto de clases usadas para crear un reporte, este componente contiene las especificaciones de un reporte. Con eReportSpt es posible modificar un reporte desde código, crear nuevos objetos como son controles, conexiones, orígenes de registro, formatos de impresión y todo lo que se puede crear en el diseñador de reporte.

XPREngine: Este componente realiza la tarea de ejecutar un reporte y generar un objeto de tipo eDigitalDoc.

geOLEDbServices: Conjunto de métodos para la utilización del administrador de conexiones de Grupo Execom.

Vea también:

  • Referencia de objetos del motor en tiempo de ejecución
  • Especificación del formato XPD
  • Especificación del formato XPR


5.2.2.- Ejecutar y mostrar un reporte desde VB6

COMPONENTES NECESARIOS

Para incluir Códice FX en sus proyectos son necesarias las siguientes referencias y componentes:

gRunTime | Biblioteca de funciones de propósito general | Referencia: geruntime.dll
eReportSpt | Modelo de objetos del reporte | Referencia:ereport.dll
XPREngine | Motor en tiempo de ejecución | Referencia:xprengine.dll
eVDXPR | Visor de reportes (archivos xpr) | Componente: evdxpr.ocx
La siguiente referencia no es necesaria para la ejecución de reportes, se incluye por comodidad ya que ofrece un cuadro de diálogo para configuración de impresora especialmente construido para usarse con Visual Basic
Microsoft VB Printer Dialog | Cuadro de diálogo de impresión de Microsoft | Referencia: vbprndlg.dll

DESCRIPCIÓN DEL EJEMPLO:

En este ejemplo se trabaja con una base de datos de Access (*.mdb) llamada personas que contiene una tabla con el mismo nombre, cuya estructura es la siguiente:

Campos Tipo:

ID Autonumérico

Codigo Texto

Apellido1 Texto

Apellido2 Texto

Nombre Texto

Foto Objeto OLE

Cargo Texto

Departamento Texto

Organización Texto

Telefono Texto

EJECUTAR EL REPORTE SELECCIONADO:

Envía la ruta de la base de datos al método Ejecutar el cual hace uso de los componentes de Códice para obtener el resultado del reporte. El método se describe a continuación:

Private Sub Ejecutar(sFile As String)

Dim Rpt As New eReport 'Representa la definición del reporte

Dim XPR As New XPREngine.XPRE 'Representa al motor en tiempo de ejecución

Dim Doc As Object 'Representa el documento producido (xpr)

'Cargar el archivo xpd que contiene la definición del reporte

If Rpt.LoadXPDFile(sFile) Then

'Asignar la conexión al reporte

Set Rpt.GetConnection("eConnection1").ADOCnn = Adodc1.Recordset.ActiveConnection

'Ejecutar el reporte

Set Doc = XPR.Execute(Rpt)

'Desplegar el reporte

If Not Doc Is Nothing Then

'Informar al visor el documento a mostrar

Set frmPreview.XPRVw1.XPRObject = Doc

'Mostrar la primera página

frmPreview.XPRVw1.FirstPage

frmPreview.Show 1

End If

End If

Set Rpt = Nothing

Set XPR = Nothing

End Sub

EDITAR EL REPORTE SELECCIONADO:

Envía la ubicación del archivo XPD al método EditarXPD. Este metodo abre Códice FX y el reporte seleccionado.

Public Sub EditarXPD(sFile As String)

On Error Resume Next

Dim C As String

If Not eBasic.FileExists(sFile) Then

'Si el archivo no existe entonces se crea uno nuevo

C = InputBox("Nombre del nuevo reporte:")

If C = "" Then Exit Sub

sFile = eBasic.AddSlashPath(App.Path) & "xpdsamples\" & sFile & ".xpd"

'Crear nuevo reporte

Dim Rpt As New eReport

Rpt.Name = "Report1"

Rpt.Info = C

'Guardar propiedades del nuevo reporte

Rpt.SaveXPDFile sFile

End If

'Abre el archivo XPD con el diseñador de reportes

eBasic.OpenDocument sFile

End Sub

CREAR UN REPORTE:

Realiza el mismo proceso que editar reporte, solo envía una cadena vacía para abrir el diseñador.

EditarXPD ""

FORMULARIO PreView

El formulario contiene un control de tipo XPRVw. Este se encarga de mostrar los datos del reporte.

Descripción del componente XPRVw:

Propiedad | valor | Descripción
XPRVw.PagesXScreen | 1-4 | Número de páginas en pantalla
XPRVw.CurrentPageNumber | 1-numero total de páginas. | Devuelve el número de página actual.
XPRVw.CurrentTool | 0-5 | Cambia el estilo del puntero.

Método | Descripción
XPRVw.FirstPage | Muestra el inicio del reporte
XPRVw.PreviousPage | Muestra la pagina anterior
XPRVw.NextPage | Muestra la siguiente página
XPRVw.LastPage | Muestra el final del reporte
PrintPages | Imprime un reporte

Vea también:

  • Referencia de objetos del motor en tiempo de ejecución
  • Ejemplos
  • Origen de registros
  • Conexiones.


5.2.3.-Ejecutar y mostrar un reporte desde C#

Componentes necesarios

Para incluir Códice FX en sus proyectos son necesarias las siguientes referencias y componentes:

gRunTime | Biblioteca de funciones de propósito general | Referencia: geruntime.dll
eReportSpt | Modelo de objetos del reporte | Referencia:ereport.dll
XPREngine | Motor en tiempo de ejecución | Referencia:xprengine.dll
eDigitalDoc | Modelo de objetos de datos del reporte. | Referencia: eDigitalDoc.dll
eVDXPR | Visor de reportes (archivos xpr) | Componente: evdxpr.ocx

Descripción del ejemplo:

Ejecución del reporte

Primero se carga el reporte en un objeto de tipo eReport, después se utiliza el motor en tiempo de ejecución XPREngine para ejecutar el reporte.

private void button2_Click(object sender, EventArgs e)

{

//Ejecutar reporte seleccionado

eReportSpt.eReport Rpt = new eReportSpt.eReport(); //Representa la definición del reporte

XPREngine.XPRE Engine=new XPREngine.XPRE(); //Representa el motor en tiempo de ejecución

eDigitalDoc.eDDoc Doc; //Datos del reporte *.XPR

string sFile;

bool Flag = false;

sFile = textBox1.Text;

if (sFile == "")

MessageBox.Show("Seleccione un reporte", "Error");

Else

{

if (Rpt.LoadXPDFile(ref sFile)) //Cargar el reporte seleccionado

{

// Aquí se podría indicar una cadena de conexión para el

// reporte, ejemplo: //Rpt.GetConnection("NombreConexion").cnnString="";

Doc = Engine.Execute(ref Rpt,ref Flag); //Se ejecutar el reporte para //obtenerlos datos.

// la variable Flag en falso se envía para permitir mostrar los //diálogos del reporte

if (Doc != null)

{

axXPRVw1.XPRObject = Doc; //Se asigna el documento al visor

//del reportes

axXPRVw1.FirstPage();

page = 1;

PageNumber();

zoom = -3;

axXPRVw1.set_Zoom(ref zoom);

}

}

}

}

Imprimir reporte

private void button3_Click(object sender, EventArgs e)

{

if (MessageBox.Show("El documento se imprimirá en la impresora predeterminada.¿Desea continuar?","Imprimir", MessageBoxButtons.YesNo) == DialogResult.Yes)

{

object Doc;

Doc = (object)axXPRVw1.XPRObject; //Se asigna a Doc el reporte

//mostrado en el diseñador

axXPRVw1.PrintPages(ref Doc); //Imprime todo en la impresora

//predeterminada de Windows

}

}

Guardar reporte (datos) *.xpr

Para guardar los datos de un reporte se utiliza el objeto XPRObject (Tipo eDigitalDoc) contenido en el visor de reportes, el cual contiene el método SaveToXPRFile para realizar la operación de guardado.

private void btnGuardar_Click(object sender, EventArgs e)

{

saveFileDialog1.Filter= "Archivos de reporte(datos) de Códice *.xpr|*.xpr|Todos los archivos|*.*";

if (saveFileDialog1.ShowDialog()== DialogResult.OK)

{

string file;

file =saveFileDialog1.FileName;

if (axXPRVw1.XPRObject.SaveToXPRFile(ref file))

MessageBox.Show("El archivo se ha guardado correctamente","Guardar xpr" ) ;

else

MessageBox.Show("Error al guardar archivo", "Guardar xpr");

}

}

Vea también:

  • Referencia de objetos del motor en tiempo de ejecución
  • Ejemplos
  • Origen de registros
  • Conexiones.


5.2.4.- Programación a través de los objetos del Administrador de conexiones.

El motor en tiempo de ejecución de Códice FX incluye la biblioteca geOLEDBServices con la cual se puede acceder al administrador de conexiones y modificar o crear nuevas conexiones.

Acontinuacion se muestra un fragmento de codigo donde se muestra como crear una nueva conexión.

Hacer una conexion nueva:

Private Sub MakeCnn()

Dim C As New eCnnInfo

Dim DBInfo As New CnnServices

Dim eBasic As New eBasic2

Dim File As String

Dim BDpath As String

‘Ruta del archivo de conexiones.

File = eBasic.AddSlashPath(eBasic.UserAppDataFolder) & "GExecom" & "\" & "geOLEDBInfo.xml"

BDpath = App.Path & "\Personas.mdb"

‘Nombre de aplicación (grupo de conexiones)

C.AppName = "Examples"

‘Nombre de la conexion

C.Name = "Personas"

‘Cadena de conexión

C.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & BDpath & ";Persist Security Info=False"

‘Establecer la conexion como predeterminada

C.Default = True

‘Agregar la conexión a la colección de DBInfo

DBInfo.AddConnection C

‘Guardar las configuraciones realizadas

DBInfo.SaveXmlConnectionsInfo File

End Sub

Vea también:

  • Referencia de objetos del motor en tiempo de ejecución
  • Ejemplos
  • Origen de registros
  • Conexiones


5.2.5.- Ejemplos

Códice FX incluye ejemplos que puede utilizar como referencia para crear sus propias aplicaciones. Estos ejemplos están comentados en las partes más importantes del código donde se utiliza la biblioteca de funciones de Códice FX para que el programador comprenda fácilmente su propósito.

Todos los ejemplos se encuentran el directorio “Ejemplos” de la carpeta de instalación de Códice FX.


5.2.5.1.- Administrador de conexiones (Visual Basic 6.0)

Esta aplicación de ejemplo muestra como tener acceso al administrador de conexiones de Grupo Execom y utilizar la biblioteca geOLEDBServices para crear conexiones y grupos de aplicaciones que pueden ser usadas en el diseñador de conexiones de Códice FX.

El archivo de ejemplo se encuentra en el siguiente directorio:

C:\Archivos de programa\Códice FX\Ejemplos\Ejemplo VB 6.0\Ejemplo Administrador de Conexiones\ CnnSample.vbp


5.2.5.2.- Credencialización (Visual Basic 6.0)

El ejemplo de credencializacion incluye una base de datos de la cual se tienen reportes de ejemplo con los cuales se realizan las siguientes operaciones:

  1. Ejecutar un reporte.

Se incluyen funciones para cargar un reporte desde un archivo XPD, ejecutar el reporte (Crear el documento) y mostrarlo a través de un visor de reportes.

  2. Editar un reporte.

Muestra el uso de una sencilla función para abrir un reporte con el diseñador-

  3. Crear un reporte

Muestra como abrir el diseñador de repotes.

El archivo de ejemplo se encuentra en el siguiente directorio:

C:\Archivos de programa\Códice FX\Ejemplos\Ejemplo VB 6.0\Personas\ePersonas.vbp


5.2.5.3.- Visor de reportes (Visual Basic 6.0)

Dentro de los ejemplos también se incluye el código fuente del Visor de reportes, en el cual se muestra como abrir un archivo XPR y mostrar el reporte en el Visor, guardar un reporte y también la utilización del método de impresión.

El archivo de ejemplo se encuentra en el siguiente directorio:

C:\Archivos de programa\Códice FX\Ejemplos\Ejemplo VB 6.0\Visor de reportes\VisorXPR.vbp


5.2.5.4.- Abrir y ejecutar un reporte con C# 2005

Este ejemplo muestra como realizar las operaciones más importantes con la biblioteca de Códice FX como abrir un reporte, ejecutarlo, guardar un documento XPR, imprimir un documento y la utilización del Visor de reportes.

El archivo de ejemplo se encuentra en el siguiente directorio:

C:\Archivos de programa\Códice FX\Ejemplos\Ejemplo CSharp\CodiceFXSampleCS1.sln

Vea también:

  • Referencia de objetos del motor en tiempo de ejecución

· Uso del motor en tiempo de ejecución


5.3.- Referencia de objetos del motor en tiempo de ejecución

5.3.1.- eBASIC_ 133

5.3.2.- Jerarquía eReport 146

5.3.3.- Jerarquía eDigitalDoc 149

5.3.4.- XPREngine 169

5.3.5.- geOLEDbServices 183


5.3.1.- eBASIC

AddSlashPath (Método)

Se asegura de devolver una ubicación de archivo que termina con el caracter '\'

Sintaxis

Variable=Objeto.AddSlashPath (Ruta)

La sintaxis del método AddSlashPath consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna la ruta devuelta por el método.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
Ruta | Un valor o variable con una ruta.

FileExists (Método)

Verifica si existe el archivo indicado

Sintaxis

Variable=Objeto.FileExists (strPathName)

La sintaxis del método FileExists consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo Integer. Devuelve 0 si cuando el archivo no existe. Devuelve -1 si el archivoexiste.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
strPathName | Un valor o variable con la ruta del archivo que se busca.

LoadFileToStr (Método)

Devuelve en una cadena el contenido de un archivo.

Sintaxis

Variable=Objeto.LoadFileToStr (FileName)

La sintaxis del método LoadFileToStr consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se guarda el contenido del archivo especificado en FileName.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
FileName | Un valor o variable con la ruta del archivo que se busca.

SaveStrToFile (Método)

Guarda una cadena en un archivo.

Sintaxis

Boolean=Objeto.SaveStrToFile (FileName, Data)

La sintaxis del método SaveStrToFile consta de las siguientes partes.

Elemento | Descripción
Boolean | False: la cadena no se guardo correctamente. True: la cadena se ha guardado en el archivo.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
FileName | Un valor o variable con la ruta del archivo que se busca.
Data | Un valor o variable con la cadena que se escribirá en el archivo.

GetTempDir (Método)

Devuelve la ubicación del directorio Temp de Windows

Sintaxis

Variable=Objeto.GetTempDir

La sintaxis del método GetTempDir consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el directorio temporal de Windows.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

GetFileName (Método)

Devuelve el nombre de archivo con extensión.

Sintaxis

Variable=Objeto.GetFileName (sFile)

La sintaxis del método GetFileName consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el nombre del archivo con su extensión.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sFile | Un tipo de datos String que es la ruta completa de un archivo.

GetFileExt (Método)

Devuelve la extensión de un archivo

Sintaxis

Variable=Objeto.GetFileExt (sFile)

La sintaxis del método GetFileExt consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna la extensión del archivo indicado en sFile.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sFile | Un tipo de datos String que es el nombre de un archivo.

GetFileNameWithoutExt (Método)

Devuelve el nombre de archivo sin extensión.

Sintaxis

Variable=Objeto.GetFileNameWithoutExt (sFile)

La sintaxis del método GetFileNameWithoutExt consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el nombre del archivo devuelto.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sFile | Un tipo de datos String que es el una ruta de archivo.

RightExtractToChar (Método)

Obtiene una sub cadena por la derecha de la cadena enviada hasta encontrar el caracter indicado en StopChar.

Sintaxis

Variable=Objeto.RightExtractToChar (sString,StopChar)

La sintaxis del método RightExtractToChar consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el resultado del método.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sString | Un tipo de datos String con una cadena.
StopChar | Un tipo de datos String con el carácter de que sirve de límite para hacer la división.

NoUNICODE (Método)

Convierte una cadena de 2 bytes (Unicode) en una cadena ASCII

Sintaxis

Variable=Objeto.NoUNICODE (s)

La sintaxis del método NoUNICODE consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de la nueva cadena
Objeto | Representa una instancia de la clase geRunTime.eBasic2
s | Un tipo de datos String con una cadena tipo UNICODE.

Azar (Método)

Devuelve un entero aleatorio entre los límites indicados

Sintaxis

Variable=Objeto.Azar (lmtInfe, lmtSup)

La sintaxis del método Azar consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo Integer donde se asigna el número aleatorio obtenido.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
lmtInfe | Opcional: Un tipo de datos Integer que es el número inferior del rango deseado. Valor predeterminado es 0.
lmtSup | Opcional: Un tipo de datos Integer que es el número superior del rango deseado. Valor predeterminado es 32767.

UTF8ReplaceChars (Método)

Devuelve una cadena de acuerdo a la codificación UTF8

Sintaxis

Variable=Objeto.UTF8ReplaceChars (s)

La sintaxis del método UTF8ReplaceChars consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna la cadena codificada en UTF8.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
s | Un tipo de datos String que es la cadena a reemplazar.

ReplaceStrChars (Método)

Reemplaza en la cadena sStr los caracteres de la cadena sReplaceChars con el caracter ReplaceChar.

Sintaxis

Variable=Objeto.ReplaceStrChars (sStr, sReplaceChars, ReplaceChar)

La sintaxis del método ReplaceStrChars consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna la nueva cadena.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sStr | Un tipo de datos String que es la cadena donde se hará el reemplazo.
sReplaceChars | Un tipo de datos String que contiene una cadena con los caracteres que se reemplazaran.
ReplaceChar | Un tipo de datos String que es el caracter de reemplazo.

ClearStrBorders (Método)

Elimina los caracteres con valor ASCII debajo del valor indicado en el parámetro Minor al principio y fin de una cadena.

Sintaxis

Variable=Objeto.ClearStrBorders (sStr, Minor)

La sintaxis del método ClearStrBorders consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna la nueva cadena.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sStr | Un tipo de datos String que es la cadena que se envía al método.
Minor | Opcional: Un tipo de datos Integer que es el valor de comparación para los valores permitidos al inicio y fin de la cadena.

IsAny (Método)

Indica si un caracter determinado se encuentra en una cadena.

Sintaxis

Boolean=Objeto.IsAny (C, s)

La sintaxis del método IsAny consta de las siguientes partes.

Elemento | Descripción
Boolean | Toma el valor True si el carácter se encuentra en la cadena.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
C | Un tipo de datos String que es el carácter que se busca.
s | Un tipo de datos String que es la cadena donde se busca el carácter C.

NombreDia (Método)

Devuelve el nombre del día en español. 1 regresa “Domingo”, 2 regresa “Lunes”, etc.

Sintaxis

Variable=Objeto.NombreDia (D)

La sintaxis del método NombreDia consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el nombre del día.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
D | Un tipo de datos Integer que es un número de 1 a 7 que representa un día de la semana.

NombreMes (Método)

Devuelve el nombre en español del mes indicado

Sintaxis

Variable=Objeto.NombreMes (M)

La sintaxis del método NombreMes consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el nombre del mes.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
M | Un tipo de datos Integer que es un número de 1 a 12 que representa un mes del año.

NumbersToWords (Método)

Devuelve una cadena en español que corresponde con la cantidad indicada

Sintaxis

Variable=Objeto.NumbersToWords (Cantidad, flag)

La sintaxis del método NumbersToWords consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna la cadena con el número en letras.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
Cantidad | Un tipo de datos Long que es el un número que se quiere convertir a letras.
flag | Opcional: parámetro reservado cuyo valor predeterminado es 0.

DateToWords (Método)

Devuelve en español la fecha dada

Sintaxis

Variable=Objeto.DateToWords (Fecha)

La sintaxis del método DateToWords consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna la cadena con la fecha en español.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
Fecha | Un tipo de datos Date que contiene la fecha a analizar.

OpenDocument (Método)

Ejecuta comandos sobre un archivo.

Sintaxis

Objeto.OpenDocument (sCMD, sOperation, Hwnd)

La sintaxis del método OpenDocument consta de las siguientes partes.

Elemento | Descripción
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sCMD | Un tipo de dato String que es la ubicación del archivo.
sOperation | Opcional: Un tipo de dato String que es el comando a ejecutar. El comando predeterminado es “open”.
Hwnd | Opcional: Un tipo de dato long que es el Handle de la ventana. Valor predeterminado es cero.

GetFilePath (Método)

Devuelve la ubicación de un archivo

Sintaxis

Variable=Objeto.GetFilePath (sFile)

La sintaxis del método GetFilePath consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna la ubicación del archivo.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sFile | Un tipo de datos String que es la ruta completa del archivo.

WindowsDir (Método)

Devuelve la ubicación de la carpeta Windows

Sintaxis

Variable=Objeto.WindowsDir

La sintaxis del método WindowsDir consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

CommonAppDataFolder (Método)

Devuelve la ruta de la carpeta Datos de programa de todos los usuarios de Windows.

Sintaxis

Variable=Objeto.CommonAppDataFolder

La sintaxis del método CommonAppDataFolder consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

CDBurnigFolder (Método)

Devuelve la ruta de la carpeta CD Burning de Windows.

Sintaxis

Variable=Objeto.CDBurnigFolder

La sintaxis del método CDBurnigFolder consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

DesktopFolder (Método)

Devuelve la ruta de la carpeta Escritorio de Windows.

Sintaxis

Variable=Objeto.DesktopFolder

La sintaxis del método DesktopFolder consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

MyFavoritesFolder (Método)

Devuelve la ruta de la carpeta Favoritos de Windows.

Sintaxis

Variable=Objeto.MyFavoritesFolder

La sintaxis del método MyFavoritesFolder consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

FontsFolder (Método)

Devuelve la ruta de la carpeta Fonts de Windows.

Sintaxis

Variable=Objeto.FontsFolder

La sintaxis del método FontsFolder consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

UserAppDataFolder (Método)

Devuelve la ruta de la carpeta Datos de programa del usuario actual de Windows.

Sintaxis

Variable=Objeto.UserAppDataFolder

La sintaxis del método UserAppDataFolder consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

MyDocumentsFolder (Método)

Devuelve la ruta de la carpeta Mis Documentos del usuario actual de Windows.

Sintaxis

Variable=Objeto.MyDocumentsFolder

La sintaxis del método MyDocumentsFolder consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

WindowsSysFolder (Método)

Devuelve la ruta de la carpeta system32 de Windows.

Sintaxis

Variable=Objeto.WindowsSysFolder

La sintaxis del método WindowsSysFolder consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

UserTemplateFolder (Método)

Devuelve la ruta de la carpeta Plantillas del usuario actual de Windows.

Sintaxis

Variable=Objeto.UserTemplateFolder

La sintaxis del método UserTemplateFolder consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

WindowsDir2 (Método)

Devuelve la ubicación de la carpeta Windows

Sintaxis

Variable=Objeto.WindowsDir2

La sintaxis del método WindowsDir2 consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

CommonTemplateFolder (Método)

Devuelve la ruta de la carpeta Plantillas de todos los usuarios de Windows.

Sintaxis

Variable=Objeto.CommonTemplateFolder

La sintaxis del método CommonTemplateFolder consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

ComputerName (Método)

Devuelve el nombre de la PC

Sintaxis

Variable=Objeto.ComputerName

La sintaxis del método ComputerName consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

LongToShortPath (Método)

Convierte una ruta larga en una con máximo 8 caracteres por nombre.

Sintaxis

Variable=Objeto.LongToShortPath (sPath)

La sintaxis del método LongToShortPath consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sPath | Un tipo de dato String que es la ruta a analizar.

ShortToLongPath (Método)

Convierte una ruta corta (de 8 caracteres) a la ruta con nombres completos.

Sintaxis

Variable=Objeto.ShortToLongPath (sPath)

La sintaxis del método ShortToLongPath consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sPath | Un tipo de dato String que es la ruta a analizar.

SysUserName (Método)

Devuelve el nombre de usuario actual de Windows.

Sintaxis

Variable=Objeto.SysUserName

La sintaxis del método SysUserName consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno.
Objeto | Representa una instancia de la clase geRunTime.eBasic2

MakePath (Método)

Crea una carpeta en una ubicación determinada.

Sintaxis

Boolen=Objeto.MakePath (sPath)

La sintaxis del método SysUserName consta de las siguientes partes.

Elemento | Descripción
Boolean | Toma el valor True si se creó la carpeta. Toma el valor False si no se pudo crear la carpeta.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
sPath | Un tipo de datos String que es la ubicación de la nueva carpeta. Ejemplo: objeto.MakePath(”C:\NuevaCarpeta”) Esto creará una carpeta en “C:\” con el nombre NuevaCarpeta.

eFormat (Método)

Da formato a un dato enviado.

Sintaxis

Variable =Objeto.eFormat (Data,fmt)

La sintaxis del método SysUserName consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor con formato del dato enviado.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
Data | Cualquier expresión válida.
fmt | Una expresión de formato definida por el usuario o con nombre válida.

eMsgbox (Método)

Muestra un mensaje en pantalla.

Sintaxis

Objeto.eMsgbox (prompt, b)

La sintaxis del método eMsgbox consta de las siguientes partes.

Elemento | Descripción
Objeto | Representa una instancia de la clase geRunTime.eBasic2
prompt | Valor de tipo String, representa la cadena que se muestra en pantalla.
b | Valor de que representa el número de botones que muestra el mensaje.

eInputbox (Método)

Muestra una caja de entrada de datos en pantalla.

Sintaxis

Variable=Objeto.eInputbox (prompt)

La sintaxis del método eInputbox consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo Variant donde se asigna el valor introducido.
Objeto | Representa una instancia de la clase geRunTime.eBasic2
prompt | Valor de tipo String representa el titulo de la caja de entrada de datos.

Vea también:

  • Uso de la API de Códice


5.3.2.- Jerarquía eReport

eReport contiene todas las especificaciones del reporte XPD. Esta divido en las siguientes partes:

ELEMENTO

DESCRIPCIÒN

eConnections

Colección de conexiones que se agregan al reporte. Cada conexión agregada contiene su propio conjunto de orígenes de registros en la colección de eRSources.

eParameters

Colección de parámetros. Un parámetro es valor que se utiliza para realizar filtrados en los orígenes de registro.

eDialogs

Colección de Diálogos. Un diálogo es una interfaz con el usuario para realizar operaciones antes de ejecutar el reporte. Los diálogos están constituidos por una colección de controles y una colección de orígenes de registro.

Por ejemplo en el dialogo puede pedirse el valor de un parámetro llamado FechaDeFacturacion el cual tomará un valor introducido por el usuario y enviara ese filtro para crear el reporte con los registros de la base de datos que tengan la fecha de filtro.

ePrnFormats

Colección de formatos de impresión. Un formato de impresión representa la hoja del reporte donde se imprimen los registros de la base de datos. Cada formato de impresión contiene una colección de controles que ayudan a crear y personalizar el reporte.

ResDataCollection

Colección de recursos. Un recurso puede ser una imagen o un texto plano. Estos recursos se agregan al reporte y están disponibles en el proyecto para incluirlos cuantas veces sean necesario.

Descripción de la colección eRSorces:

Colección de orígenes de registros. Un origen de registros representa una operación a la base de datos, por ejemplo una consulta simple. . Cada origen de registros contiene una colección propia de orígenes de registro hijos.

EJEMPLO

Private Sub Ejecutar()

Dim Rpt As New eReport 'Representa la definición del reporte

Dim XPR As New XPREngine.XPRE 'Representa al motor en tiempo de ejecución

Dim Doc As Object 'Representa el documento producido (xpr)

Dim sFile As String ‘Ubicación de archivo de reporte

sFile=”C:\MiReporte.xpd”

'Cargar el archivo xpd que contiene la definición del reporte

If Rpt.LoadXPDFile(sFile) Then

'Ejecutar el reporte

Set Doc = XPR.Execute(Rpt)

'Desplegar el reporte

If Not Doc Is Nothing Then

'Informar al visor el documento a mostrar. FrmPreview es un formulario normal con ‘el control XPRVw (componente eVDXPR.ocx) dibujado en él.

Set frmPreview.XPRVw1.XPRObject = Doc

'Mostrar la primera página

frmPreview.XPRVw1.FirstPage

frmPreview.Show 1

End If

End If

Set Rpt = Nothing

Set XPR = Nothing

End Sub

Diagrama jerárquico de eREPORT

Vea también:

  • Uso de la API de Códice


5.3.3.- Jerarquía eDigitalDoc

Propiedades

Name (Propiedad)

Es el nombre del objeto eDDoc.

Tipo de dato String.

Pages (Propiedad)

Colección de Pages en el objeto eDDoc. Un objeto Page es una instancia de la clase eDigitalDoc.eDPage.

Tipo de dato Collection.

Pictures (Propiedad)

Colección de Pictures en el objeto eDDoc. Un objeto Picture es una instancia de la clase eDigitalDoc.ePictureDisp.

Tipo de dato Collection.

PageAreas (Propiedad)

Colección de objetos de la clase eDigitalDoc.ePageArea.

Tipo de dato Collection.

CurrentPage

Contiene la pagina actual del objeto eDDoc.

Tipo de dato eDPage.

CurrentPageIndex (Propiedad)

Indica el índice de la página actual.

Tipo de dato Long.

FontName (Propiedad)

Indica el nombre de la fuente.

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

Tipo de dato String.

FontSize (Propiedad)

Indica el tamaño de fuente.

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

Tipo de dato Single.

FontItalic (Propiedad)

Indica si el texto tiene o no la propiedad cursiva.

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

Tipo de dato Boolean.

FontBold (Propiedad)

Indica si el texto tiene o no la propiedad negrita.

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

Tipo de dato Boolean.

FontUnderline (Propiedad)

Indica si el texto tiene o no la propiedad subrayado.

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

Tipo de dato Boolean.

Strikethrough (Propiedad)

Indica si el texto tiene o no la propiedad tachado.

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

Tipo de dato Boolean.

BackColor (Propiedad)

Indica el color de fondo de un objeto Shape incluido.

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

ForeColor (Propiedad)

Indica el color en primer plano del texto o gráficos.

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

Tipo de dato Long.

BorderWidth (Propiedad)

Indica el grosor del borde.

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

Tipo de datos Integer.

BackStyle (Propiedad)

Indica el estilo de fondo de un objeto. Si su valor es 1 es objeto tendrá un fondo transparente. Si su valor es 0 el objeto tendrá un fondo sólido.

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

Tipo de datos Integer.

BorderStyle (Propiedad)

Indica el estilo de borde y la ubicación de los bordes.

Tipo de dato Integer.

Estilos. | Ubicación de los bordes.
0 – Sólido 1 – Rayas 2 – Puntos 3 – Raya punto 4 –Raya punto punto 5 – Transparente 6 – Reservado | 256 – sin bordes 512 – borde izquierdo 1024 – borde derecho 2048 – borde inferior 4096 – borde superior

Para signar a un objeto más de un borde es necesario hacer un OR entre los valores que corresponden a los bordes requeridos.

Ejemplo:

Dim Doc As New eDDoc

Dim Borde As Integer

'Crear un estilo de borde con bordes superior e inferior.

Borde= 4096 Or 2048 'Borde=6144

'asignar el estilo Puntos a los bordes

Borde=Borde Or 2 'Borde=6146

Doc.BorderStyle=Borde

'Obtener el estilo y bordes de la propiedad BorderSyle

Dim Bordes as Integer

Dim Estilo as Integer

'BorderStyle=6146

Estilo= Doc.BorderStyle And 7 'Estilo=2

Bordes= Doc.BorderStyle – Estilo 'Bordes=6144

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

TextHAligment (Propiedad)

Indica la alineación horizontal del texto.

Tipo de datos Integer.

Valores disponibles:

0 – Izquierda

1 – Derecha

2 – Centro

3 - Justificado

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

TextVAligment (Propiedad)

Indica la alineación vertical del texto.

Tipo de datos Integer.

Valores disponibles:

1 – Abajo

2 – Medio

3 - Arriba

Esta propiedad es asignada a un objeto eShape de la clase eDigitalDoc.eShape cuando es creado dentro de una página (ePage).

METODOS

NewPage (Método)

Crea una nueva página en la colección ePages de un objeto eDDoc.

Sintaxis

Set ePage= Objeto.NewPage (PageSize, Orientation)

La sintaxis del método NewPage consta de las siguientes partes.

Elemento | Descripción
ePage | Una tipo de dato objeto que es una instacia de la clase eDigitalDoc.eDPage.
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
PageSize | Opcional: Un valor de tipo PageSizes que indica el tipo de página que se crea. Tipos PageSizes: 1- Letter 2- Legal El valor predeterminado es Letter.
Orientation | Opcional: Un valor de tipo Orientatios que indica la orientación de la página que se crea. Tipos Orientations: 0 – vertical 1 – horizontal El valor predeterminado es vertical.

FixSize (Método)

Cambia la orientación y el tamaño de una página.

Sintaxis

Objeto.FixSize (Page, O, sZ)

La sintaxis del método FixSize consta de las siguientes partes.

Elemento | Descripción
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
Page | Un objeto de la clase eDigitalDoc.eDPage
O | Un valor de tipo Orientatios que indica la orientación de la página. Tipos Orientations: 0 – vertical 1 – horizontal
sZ | Un valor de tipo PageSizes que indica el tipo de página. Tipos PageSizes: 3- Letter 4- Legal

FindArea (Método)

Devuelve un objeto de la colección PageAreas de un objeto eDDoc.

Sintaxis

Set PageArea= Objeto.FindArea (Name)

La sintaxis del método FindArea consta de las siguientes partes.

Elemento | Descripción
PageArea | Un objeto de la clase eDigitalDoc.ePageArea.
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
Name | Un valor de tipo String que es el nombre del objeto que se busca.

NewPageArea (Método)

Crea un objeto de la clase eDigitalDoc.ePageArea y a lo agrega a la colección PareAreas del objeto eDDOc.

Sintaxis

Set PageArea= Objeto.NewPageArea (Name, X, Y, Width, Height)

La sintaxis del método NewPageArea consta de las siguientes partes.

Elemento | Descripción
PageArea | Un objeto de la clase eDigitalDoc.ePageArea.
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
Name | Un valor de tipo String que es el nombre para identificar al objeto.
X | Tipo de dato Single punto de la coordenada X donde iniciará la nueva área.
Y | Tipo de dato Single punto de la coordenada Y donde iniciará la nueva área.
Width | Tipo de dato Single ancho de la nueva área.
Height | Tipo de dato Single alto de la nueva área.

LoadFromXPRFile (Método)

Carga desde un archivo XPR un objeto eDDoc. Mediante este método se crean las páginas y todo el contenido de un reporte en formato XPR.

Sintaxis

Boolen= Objeto.LoadFromXPRFile (sFile)

La sintaxis del método LoadFromXPRFile consta de las siguientes partes.

Elemento | Descripción
Boolen | Devuelve True si se cargó correctamente el documento Devuelve False si ocurrió algún error al cargar el documento.
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
sFile | Un valor de tipo String que es la ruta del archivo XPR.

SaveToXPRFile (Método)

Crea un archivo con extensión XPR el cual contiene todos los datos del reporte.

Sintaxis

Boolen= Objeto.SaveToXPRFile (sFile)

La sintaxis del método SaveToXPRFile consta de las siguientes partes.

Elemento | Descripción
Boolen | Devuelve True si se guardó correctamente el documento Devuelve False si ocurrió algún error al guardar el documento.
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
sFile | Un valor de tipo String que es la ruta donde se guardará el archivo XPR.

LoadFromXML (Método)

Carga las propiedades de un objeto eDDoc desde una cadena XML.

Sintaxis

Boolen= Objeto.LoadFromXML (strXML)

La sintaxis del método LoadFromXML consta de las siguientes partes.

Elemento | Descripción
Boolen | Devuelve True si se cargaron correctamente las propiedades. Devuelve False si ocurrió algún error en la carga.
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
strXML | Un valor de tipo String que una cadena en XML con el contenido de un documento XPR.

GetXML (Método)

Devuelve una cadena XML con el contenido de un objeto eDDoc.

Sintaxis

Boolen= Objeto.GetXML (NoData)

La sintaxis del método GetXML consta de las siguientes partes.

Elemento | Descripción
Boolen | Devuelve True si se cargaron correctamente las propiedades. Devuelve False si ocurrió algún error en la carga.
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
NoData | Opcional: valor de tipo Boolean. True indica que las imágenes del documento (colección Pictures del objeto eDDoc) se guardarán en codificación Base-64. Flase indica que no se guardarán las imágenes en codificacion Base-64. El valor predeterminado es False.

GetPicture (Método)

Devuelve un objeto de la clase eDigitalDoc.ePictureDisp de la colección Pictures del objeto eDDoc.

Sintaxis

Set ePicture = Objeto.GetPicture (Name)

La sintaxis del método GetPicture consta de las siguientes partes.

Elemento | Descripción
ePicture | Objeto de la clase eDigitalDoc.ePictureDisp
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
Name | Valor de tipo String que es el nombre del objeto Picture que se busca.

ClearDoc (Método)

Asigna Nothing a las siguientes propiedades: Pages, Pictures, PageAreas y CurrentPage.

Sintaxis

Objeto.ClearDoc

La sintaxis del método ClearDoc consta de las siguientes partes.

Elemento | Descripción
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.

NewPicName (Método)

Devuelve un nombre valido para un nuevo objeto Picture.

Sintaxis

Variable=Objeto.NewPicName

La sintaxis del método NewPicName consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo String donde se asigna el nombre que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.

NewPictureFromFile (Método)

Crea un nuevo objeto de la clase eDigitalDoc.ePictureDisp a partir de un archivo en el equipo y lo agrega a la colección de Pictures del objeto eDDoc.

Sintaxis

Set ePicture=Objeto.NewPictureFromFile (sFile, Name)

La sintaxis del método NewPictureFromFile consta de las siguientes partes.

Elemento | Descripción
ePicture | Objeto de la clase eDigitalDoc.ePictureDisp
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
sFile | Valor de tipo String que es la ruta del archivo de imagen en el equipo.
Name | Opcional: Valor de tipo String que es el nombre del nuevo objeto ePicture.

NewPictureFromOLEIPic (Método)

Crea un objeto de la clase eDigitalDoc.ePictureDisp a partir de un objeto de tipo IPictureDisp y lo agrega a la colección Pictures del objeto eDDoc.

Sintaxis

Set ePicture=Objeto.NewPictureFromOLEIPic (Pic, Name)

La sintaxis del método NewPictureFromOLEIPic consta de las siguientes partes.

Elemento | Descripción
ePicture | Objeto de la clase eDigitalDoc.ePictureDisp
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
Pic | Objeto de tipo IPictureDisp que contiene una imagen.
Name | Opcional: Valor de tipo String que es el nombre del nuevo objeto ePicture.

NewPictureFromB64 (Método)

Crea un objeto de la clase eDigitalDoc.ePictureDisp a partir de una cadena codificada en Base-64.

Sintaxis

Set ePicture=Objeto.NewPictureFromB64 (Data, Name)

La sintaxis del método NewPictureFromB64 consta de las siguientes partes.

Elemento | Descripción
ePicture | Objeto de la clase eDigitalDoc.ePictureDisp
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
Data | Variable de tipo String que contiene una imagen en codificación Base-64.
Name | Opcional: Valor de tipo String que es el nombre del nuevo objeto ePicture.

IsInArea(Método)

Devuelve el nombre de un objeto de la clase eDigitalDoc.ePageArea que esté entre las coordenadas enviadas como argumento de la colección PageAreas de un objeto eDDoc.

Sintaxis

Set ePageArea=Objeto.IsInArea (x,y)

La sintaxis del método IsInArea consta de las siguientes partes.

Elemento | Descripción
ePageArea | Objeto de la clase eDigitalDoc.ePageArea
Objeto | Una variable de objeto que representa una instancia de la clase eDigitalDoc.eDDoc.
x | Variable de tipo Single que representa la coordenada x donde se empieza a buscar.
y | Variable de tipo Single que representa la coordenada y donde se empieza a buscar.

Clase: eDPage

PROPIEDADES

Width (Propiedad)

Indica la anchura de la página en Twips.

Tipo de dato Single.

Height (Propiedad)

Indica la altura de la página en Twips.

Tipo de dato Single.

Orientation (Propiedad)

Indica la orientación de la página, horizontal o vertical.

Tipo de dato Orientations.

Tipos Orientations:

0 – vertical

1 – horizontal

BeginString (Propiedad)

Se utiliza para codificación de tarjetas con banda magnética o smart-cards.

Tipo de dato String.

EndString (Propiedad)

Se utiliza para codificación de tarjetas con banda mágetica o smart-cards.

Tipo de dato String.

Document (Propiedad)

Hace referencia al documento de tipo eDigitalDoc.eDDoc donde está contenida la página.

Tipo de dato eDigitalDoc.eDDoc

PageNumber (Propiedad)

Indica el número de página al que corresponde el objeto ePage en el documento.

Tipo de dato Long.

Shapes (Propiedad)

Colección de objetos de la clase eDigitalDoc.eShape que contiene la página.

Tipo de dato Collection.

CurrentShape (Propiedad)

Ultimo Objeto ePage creado o seleccionado mediante el método FindShape

Tipo de dato eDigitalDoc.eShape.

METODOS

FindShape (Método)

Devuelve un objeto de la colección Shapes de un objeto ePage.

Sintaxis

Set eShape=Objeto.FindShape (Name)

La sintaxis del método FindShape consta de las siguientes partes.

Elemento | Descripción
eShape | Objeto de la clase eDigitalDoc.eShape
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.eDPage
Name | Valor de tipo String es el nombre con que se busca el objeto eShape en la colección.

DrawLine (Método)

Crea un objeto eShape que tiene forma de línea y lo agrega a la colección de Shapes del objeto eDPage.

Sintaxis

Set eShape=Objeto.DrawLine (X, Y, X2, Y2)

La sintaxis del método DrawLine consta de las siguientes partes.

Elemento | Descripción
eShape | Objeto de la clase eDigitalDoc.eShape
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.eDPage
X | Valor de tipo Single que representa la coordenada X en Twips de la página donde se empieza a dibujar el objeto eShape.
Y | Valor de tipo Single que representa la coordenada Y en Twips de la página donde se empieza a dibujar el objeto eShape.
X2 | Valor de tipo Single que representa la coordenada X2 en Twips de la página donde se termina de dibujar el objeto eShape.
Y2 | Valor de tipo Single que representa la coordenada Y2 en Twips de la página donde se termina de dibujar el objeto eShape.

DrawEllipse (Método)

Crea un objeto eShape que tiene forma de elipse y lo agrega a la colección de Shapes del objeto eDPage.

Sintaxis

Set eShape=Objeto.DrawEllipse (X, Y, Width, Height)

La sintaxis del método DrawEllipse consta de las siguientes partes.

Elemento | Descripción
eShape | Objeto de la clase eDigitalDoc.eShape
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.eDPage
X | Valor de tipo Single que representa la coordenada X en Twips de la página donde se coloca el centro del objeto eShape.
Y | Valor de tipo Single que representa la coordenada Y en Twips de la página donde se coloca el centro del objeto eShape.
Width | Valor de tipo Single que es la anchura en Twips del objeto eShape.
Height | Valor de tipo Single que es la altura en Twips del objeto eShape.

NewShape (Método)

Crea un objeto eShape sin asignarle propiedades y lo agrega a la colección de Shapes del objeto eDPage.

Sintaxis

Set eShape=Objeto.NewShape

La sintaxis del método NewShape consta de las siguientes partes.

Elemento | Descripción
eShape | Objeto de la clase eDigitalDoc.eShape
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.eDPage

DrawRectangle (Método)

Crea un objeto eShape que tiene forma de rectángulo y lo agrega a la colección de Shapes del objeto eDPage.

Sintaxis

Set eShape=Objeto.DrawRectangle (X, Y, Width, Height, Text)

La sintaxis del método DrawEllipse consta de las siguientes partes.

Elemento | Descripción
eShape | Objeto de la clase eDigitalDoc.eShape
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.eDPage
X | Valor de tipo Single que representa la coordenada X en Twips de la página donde se empieza a dibujar el objeto eShape
Y | Valor de tipo Single que representa la coordenada Y en Twips de la página donde se empieza a dibujar el objeto eShape
Width | Valor de tipo Single que es la anchura en Twips del objeto eShape.
Height | Valor de tipo Single que es la altura en Twips del objeto eShape.
Texto | Valor de tipo String, es la cadena que se muestra dentro del objeto eShape.

InsertNote (Método)

Crea un objeto eShape que tiene forma de Nota y lo agrega a la colección de Shapes del objeto eDPage.

Sintaxis

Set eShape=Objeto.InsertNote (X, Y, Width, Height, Text)

La sintaxis del método DrawEllipse consta de las siguientes partes.

Elemento | Descripción
eShape | Objeto de la clase eDigitalDoc.eShape
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.eDPage
X | Valor de tipo Single que representa la coordenada X en Twips de la página donde se empieza a dibujar el objeto eShape
Y | Valor de tipo Single que representa la coordenada Y en Twips de la página donde se empieza a dibujar el objeto eShape
Width | Valor de tipo Single que es la anchura en Twips del objeto eShape.
Height | Valor de tipo Single que es la altura en Twips del objeto eShape.
Texto | Valor de tipo String, es la cadena que se muestra dentro del objeto eShape.

GetXML (Método)

Devuelve una cadena en XML con el contenido de la página y los objetos Shapes que tenga incluido.

Sintaxis

Variable =Objeto.GetXML

La sintaxis del método GetXML consta de las siguientes partes.

Elemento | Descripción
Variable | Varible de tipo String donde se guarda el contenido XML de que regresa el método.
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.eDPage

PrintInObject (Método)

Imprime en un objeto especificado el contenido del objeto ePage.

Sintaxis

Objeto.PrintInObject (obj, ZoomFactor)

La sintaxis del método PrintInObject consta de las siguientes partes.

Elemento | Descripción
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.eDPage
obj | Un objeto sobre el cual se imprime la página.
ZoomFactor | Opcional: Un valor de tipo Single que es un factor de zoom con el cual se imprime el contenido de la página. El valor predeterminado es 1 que representa el 100 %.

Clase: eShape

PROPIEDADES

Tag (Propiedad)

Indica una etiqueta para el objeto eShape.

Tipo de dato String.

Name (Propiedad)

Indica el nombre que identifica el objeto eShape.

Tipo de datos String.

FontName (Propiedad)

Indica el nombre de la fuente.

Tipo de dato String.

FontSize (Propiedad)

Indica el tamaño de fuente.

Tipo de dato Single.

FontItalic (Propiedad)

Indica si el texto tiene o no la propiedad cursiva.

Tipo de dato Boolean.

FontBold (Propiedad)

Indica si el texto tiene o no la propiedad negrita.

Tipo de dato Boolean.

FontUnderline (Propiedad)

Indica si el texto tiene o no la propiedad subrayado.

Tipo de dato Boolean.

Strikethrough (Propiedad)

Indica si el texto tiene o no la propiedad tachado.

Tipo de dato Boolean.

BackColor (Propiedad)

Indica el color de fondo de un objeto Shape incluido.

ForeColor (Propiedad)

Indica el color en primer plano del texto o gráficos.

Tipo de dato Long.

BorderWidth (Propiedad)

Indica el grosor del borde.

Tipo de datos Integer.

BackStyle (Propiedad)

Indica el estilo de fondo de un objeto. Si su valor es 1 es objeto tendrá un fondo transparente. Si su valor es 0 el objeto tendrá un fondo sólido.

Tipo de datos Integer.

BorderStyle (Propiedad)

Indica el estilo de borde y la ubicación de los bordes.

Tipo de dato Integer.

Estilos. | Ubicación de los bordes.
0 – Sólido 1 – Rayas 2 – Puntos 3 – Raya punto 4 –Raya punto punto 5 – Transparente 6 – Reservado | 256 – sin bordes 512 – borde izquierdo 1024 – borde derecho 2048 – borde inferior 4096 – borde superior

Para signar a un objeto más de un borde es necesario hacer un OR entre los valores que corresponden a los bordes requeridos.

Ejemplo:

Dim Doc As New eDDoc

Dim Borde As Integer

'Crear un estilo de borde con bordes superior e inferior.

Borde= 4096 Or 2048 'Borde=6144

'asignar el estilo Puntos a los bordes

Borde=Borde Or 2 'Borde=6146

Doc.BorderStyle=Borde

'Obtener el estilo y bordes de la propiedad BorderSyle

Dim Bordes as Integer

Dim Estilo as Integer

'BorderStyle=6146

Estilo= Doc.BorderStyle And 7 'Estilo=2

Bordes= Doc.BorderStyle – Estilo 'Bordes=6144

TextHAligment (Propiedad)

Indica la alineación horizontal del texto.

Tipo de datos Integer.

Valores disponibles:

0 – Izquierda

1 – Derecha

2 – Centro

3 - Justificado

TextVAligment (Propiedad)

Indica la alineación vertical del texto.

Tipo de datos Integer.

Valores disponibles:

1 – Abajo

2 – Medio

3 - Arriba

ShapeType (Propiedad)

Indica l a forma con que se creará el objeto eShape.

Tipo de datos ShapeTypes.

Tipos ShapeTypes:

0 – eline

1 – eEllipse

2 – eRectangle

3 – eNote

X (Propiedad)

Coordenada X de la página donde se dibuja el objeto eShape.

Tipo de dato Single.

Y (Propiedad)

Coordenada X de la página donde se dibuja el objeto eShape.

Tipo de dato Single.

Width (Propiedad)

Indica la anchura del objeto eShape.

Tipo de dato Single.

Height (Propiedad)

Indica la altura del objeto eShape.

Tipo de dato Single.

Picture (Propiedad)

Objeto que contiene la imagen que se dibuja dentro del objeto eShape.

Tipo de dato eDigitalDoc.ePictureDisp.

MÉTODOS

GetXML(Método)

Devuelve una cadena XML con la especificación del objeto eShape.

Sintaxis

Variable =Objeto.GetXML

La sintaxis del método GetXML consta de las siguientes partes.

Elemento | Descripción
Varible | Varible de tipo String donde se asigna la cadena XML que devuelve el método.
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.eShape

Clase: ePictureDisp

PROPIEDADES

Name (Propiedad)

Indica el nombre del objeto ePictureDisp

Tipo de dato String.

Picture (Propiedad)

Contiene una imagen.

Tipo de dato IPictureDisp

METODOS

LoadFromFile (Método)

Carga una imagen desde archivo a la propiedad Picture del objeto ePictureDisp.

Sintaxis

Boolena =Objeto.LoadFromFile (sFile)

La sintaxis del método LoadFromFile consta de las siguientes partes.

Elemento | Descripción
Boolen | Devuelve True si se cargó correctamente la imagen Devuelve False si ocurrió un error durante la carga de la imagen.
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.ePictureDisp
sFile | Ruta del archivo de la imagen que se quiere cargar.

GetXML(Método)

Devuelve una cadena XML con la especificación del objeto ePictureDisp.

Sintaxis

Variable =Objeto.GetXML(NoData)

La sintaxis del método GetXML consta de las siguientes partes.

Elemento | Descripción
Varible | Varible de tipo String donde se asigna la cadena XML que devuelve el método.
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.ePictureDisp
NoData | Opcional: Variable de tipo Boolean. Si su valor es True el método guarda el contenido de la imagen en codificacion Base-64. Si el valor es False no se codifica la imagen.

GetZIPB64 (Método)

Devuelve el contenido de la imagen de la propiedad Picture del objeto ePIctureDisp en formato Base-64.

Sintaxis

Variable =Objeto.GetZIPB64

La sintaxis del método GetZIPB64 consta de las siguientes partes.

Elemento | Descripción
Varible | Varible de tipo String donde se asigna la cadena en Base-64 que devuelve el método.
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.ePictureDisp

SaveToFile (Método)

Guarda la imagen de la propiedad Picture del objeto ePictureDisp en un archivo indicado por el argumento sFile.

Sintaxis

Boolean =Objeto.SaveToFile (sFile)

La sintaxis del método SaveToFile consta de las siguientes partes.

Elemento | Descripción
Boolean | Toma el valor True si el archivo se guardó correctamente. Toma el valor False si ocurrió algún error al guardar.
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.ePictureDisp
sFile | Variable de tipo String que es la ruta donde se guardará el archivo.

LoadFromZIPB64 (Método)

Carga una imagen codificada en Base-64 y la asigna a la propiedad Picture del objeto ePictureDisp.

Sintaxis

Objeto.LoadFromZIPB64 (Data)

La sintaxis del método SaveToFile consta de las siguientes partes.

Elemento | Descripción
Objeto | Una objeto que representa una instancia de la clase eDigitalDoc.ePictureDisp
Data | Variable de tipo String que contiene una cadena codificada en Base-64.

Vea también:

  • Uso de la API de Códice


5.3.4.- XPREngine

Propiedades

ThisXPD (Propiedad)

Es un objeto de tipo eReportSPT.eReport, el cual establece o devuelve un objeto eReport que contiene todas las especificaciones del reporte.

Esta propiedad obtiene su valor mediante el método Execute el cual recibe el objeto eReport. También es posible asignarlo directamente.

CurPage (Propiedad)

Establece o devuelve el número de página actual.

Métodos

Execute (Método)

Crea un objeto eDigitalDoc que contiene los datos del reporte.

Sintaxis

Set Variable=Objeto.Execute(XPD,NoDialogs)

La sintaxis del método Execute consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de objeto que representa el objeto eDigitalDoc.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
XPD | Un objeto de tipo eReport (instancia de la clase eReportSPT.eReport) que contiene la especificación de un reporte.
NoDialogs | Opcional: una variable de tipo Boolean que indica si se ejecutarán los diálogos contenidos en el reporte. True: No se ejecutan los diálogos del reporte. False: Se ejecutan los diálogos del reporte. El valor predeterminado es Falso.

AddObject (Método)

Agrega un objeto al motor del subprograma. Después de haber agregado este objeto sus métodos y propiedades estarán disponibles en el diseñador de código de Códice FX.

Sintaxis

Objeto.AddObject obj, Name

La sintaxis del método AddObject consta de las siguientes partes.

Elemento | Descripción
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Obj | Variable de objeto que agregará al motor.
Name | Variable de tipo string, se agrega con el objeto. Sirve para identificarlo dentro del motor para codificación.

LoadDialog (Método)

Crea un formulario de un diálogo contenido en el reporte, en necesario enviar el nombre del diálogo y el método retorna un objeto de tipo form con las propiedades y los controles del diálogo.

Sintaxis

Objeto=Objeto.LoadDialog Name

La sintaxis del método LoadDialog consta de las siguientes partes.

Elemento | Descripción
Objeto | Una variable de objeto para asignar el diálogo.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo string, representa el nombre del diálogo en la colección de diálogos del reporte.

EvalExpr (Método)

Evalúa una expresión, si la expresión empieza con el signo igual entonces ejecuta una fórmula, de lo contrario solo retorna la expresión enviada.

Variable=Objeto.EvalExpr( Str )

La sintaxis del método EvalExpr consta de las siguientes partes.

Elemento | Descripción
Variable | Una variable de tipo String donde se asigna el valor de retorno del método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Str | Variable de tipo string, representa la expresión a analizar.

ShowDialog (Método)

Muestra en pantalla un diálogo.

Sintaxis

Boolean= Objeto.ShowDialog( Name )

La sintaxis del método ShowDialog consta de las siguientes partes.

Elemento | Descripción
Boolean | Una variable de tipo Boolean. True indica que se presionó el botón Aceptar del diálogo; False indica que se presionó el botón Cancelar del diálogo.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo string, representa el nombre del diálogo en la colección de diálogos del reporte.

InitRecordSources (Método)

Abre todos los orígenes de registro contenidos en la colección de orígenes de registro del reporte, excepto los que fueron creados en los diálogos.

Sintaxis

Boolean= Objeto.InitRecordSources

La sintaxis del método InitRecordSources consta de las siguientes partes.

Elemento | Descripción
Boolean | Una variable de tipo Boolean. True indica que se abrieron correctamente todos los orígenes de registro.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE

PrintFormat (Método)

Crea un documento de tipo eDDoc (de la biblioteca eDigitalDoc.eDDoc) de acuerdo a la especificación de un formato de impresión contenido en el reporte.

Sintaxis

Objeto.PrintFormat Name, Doc

La sintaxis del método PrintFormat consta de las siguientes partes.

Elemento | Descripción
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre del formato de impresión que se desea procesar.
Doc | Variable de tipo eDDoc en el cuál se crearán las páginas del reporte.

GroupAVG (Método)

Devuelve el promedio por grupo de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.GroupAVG ( Name )

La sintaxis del método GroupAVG consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el promedio que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

PageAVG (Método)

Devuelve el promedio por página de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.PageAVG ( Name )

La sintaxis del método PageAVG consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el promedio que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

RstAVG (Método)

Devuelve el promedio por conjunto de origen de registros de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.RstAVG ( Name )

La sintaxis del método RstAVG consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el promedio que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

TotalAVG (Método)

Devuelve el promedio total de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.TotalAVG ( Name )

La sintaxis del método TotalAVG consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el promedio que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

GroupCount (Método)

Devuelve el número de registros por grupo de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.GroupCount ( Name )

La sintaxis del método GroupCount consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Long en la cual se asigna el número de registros que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

PageCount (Método)

Devuelve el número de registros por página de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.PageCount ( Name )

La sintaxis del método PageCount consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Long en la cual se asigna el número de registros que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

RstCount (Método)

Devuelve el número de registros por conjunto de registros de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.RstCount ( Name )

La sintaxis del método RstCount consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Long en la cual se asigna el número de registros que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

TotalCount (Método)

Devuelve el número de registros total de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.TotalCount ( Name )

La sintaxis del método TotalCount consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Long en la cual se asigna el número de registros que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

GroupSum (Método)

Devuelve la sumatoria por grupo de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.GroupSum ( Name )

La sintaxis del método GroupSum consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor de la sumatoria que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

PageSum (Método)

Devuelve la sumatoria por página de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.PageSum ( Name )

La sintaxis del método PageSum consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor de la sumatoria que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

RstSum (Método)

Devuelve la sumatoria por conjunto de origen de registros de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.RstSum ( Name )

La sintaxis del método RstSum consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor de la sumatoria que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

TotalSum (Método)

Devuelve la sumatoria total de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.TotalSum ( Name )

La sintaxis del método TotalSum consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor de la sumatoria que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

GroupMin (Método)

Devuelve el valor mínimo por grupo de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.GroupMin ( Name )

La sintaxis del método GroupMin consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

PageMin (Método)

Devuelve el valor mínimo por página de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.PageMin ( Name )

La sintaxis del método PageMin consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

RstMin (Método)

Devuelve el valor mínimo por conjunto de origen de registros de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.RstMin ( Name )

La sintaxis del método RstMin consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

TotalMin (Método)

Devuelve el mínimo de todos los valores de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.TotalMin ( Name )

La sintaxis del método TotalMin consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

GroupMax (Método)

Devuelve el valor máximo por grupo de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.GroupMax ( Name )

La sintaxis del método GroupMax consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

PageMax (Método)

Devuelve el valor máximo por página de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.PageMax ( Name )

La sintaxis del método PageMax consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

RstMax (Método)

Devuelve el valor máximo por conjunto de registros de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.RstMax ( Name )

La sintaxis del método RstMax consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

TotalMax (Método)

Devuelve el máximo de todos los valores de una celda en la cuadrícula de detalle.

Sintaxis

Variable=Objeto.TotalMax ( Name )

La sintaxis del método TotalMax consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double en la cual se asigna el valor que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Name | Variable de tipo String que representa el nombre de la celda en la cuadrícula de detalle.

GetRSource (Método)

Devuelve un objeto eRSource de la colección de orígenes de registros del reporte.

Sintaxis

eRSource= Objeto.GetRSource (Exp)

La sintaxis del método GetRSource consta de las siguientes partes.

Elemento | Descripción
eRSource | Variable de tipo eRSource (De la biblioteca eReportSpt.eRSource) en la cual se asigna el origen de registros que devuelve el método.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
Exp | Variable de tipo String, puede ser el nombre del origen de registros o una expresión con el nombre de la conexión seguido de un punto y el nombre del origen de registros (por ejemplo eConnection1.eRSourceName).

ReplaceMacros (Método)

Analiza una expresión y reemplaza las macros por la instrucción correspondiente en la expresión.

Sintaxis

Variable= Objeto.ReplaceMacros (sExp)

La sintaxis del método ReplaceMacros consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo String en la cual se asigna la expresión con las macros sustituidas.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
sExp | Variable de tipo String que contiene el valor de la expresión a analizar.

ExecuteFormula (Método)

Ejecuta una formula y devuelve su resultado.

Sintaxis

Variable= Objeto.ExecuteFormula ( f )

La sintaxis del método ExecuteFormula consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Variant en la cual se asigna el resultado de la fórmula.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
f | Variable de tipo String que contiene el valor de la expresión a analizar con las siguientes partes: formato:formula. Formato: el formato que se le dará al resultado de la fórmula. Ej: “dd/mm/yyy” Fórmula: expresión a procesar. Ej: =“Valor del campo:” & @RSource1.Campo1

Field (Método)

Devuelve el valor de un campo.

Sintaxis

Variable= Objeto.Field ( TagData )

La sintaxis del método Field consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Variant en la cual se asigna el valor del campo.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
TagData | Variable de tipo String que contiene una expresión con el siguiente formato: Tagdata=Formato:Conexion.OrigendeRegistro.Campo

Formato de la variable TagData

Formato: Formato que se le dará al valor del campo. Por ejemplo para un campo fecha dd/mm/yyyy para mostrar la fecha como 10/05/2007.

Conexión: Nombre valido de una conexión.

OrigendeRegistro: Nombre válido de un origen de registros.

Campo: Nombre del campo.

PageNumber (Método)

Devuelve el número de pagina actual.

Sintaxis

Variable= Objeto.PageNumber

La sintaxis del método PageNumber consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Long donde se asigna el valor del numero de página actual.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE

DateNow (Método)

Devuelve la fecha actual

Sintaxis

Variable= Objeto.DateNow

La sintaxis del método DateNow consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Date para asignar el valor de la fecha actual.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE

TimeNow (Método)

Devuelve la hora actual

Sintaxis

Variable= Objeto.TimeNow

La sintaxis del método TimeNow consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Date para asignar el valor de la hora actual.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE

DateTimeNow (Método)

Devuelve la fecha y hora actuales

Sintaxis

Variable= Objeto.DateTimeNow

La sintaxis del método DateTimeNow consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Date para asignar el valor de la fecha y la hora actual.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE

Pages (Método)

Devuelve el número total de páginas

Sintaxis

Variable= Objeto.Pages

La sintaxis del método Pages consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo String donde se asigna la cantidad total de páginas del reporte.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE

WinUser (Método)

Devuelve el nombre del usuario del equipo.

Sintaxis

Variable= Objeto.WinUser

La sintaxis del método WinUser consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo String donde se asigna el nombre de usuario del equipo.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE

PCName (Método)

Devuelve el nombre de la PC

Sintaxis

Variable= Objeto.PCName

La sintaxis del método PCName consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo String donde se asigna el nombre de la PC.
Objeto | Una variable de objeto que representa una instancia de la clase Objeto.XPRE

GetParameter (Método)

Devuelve el valor de un parámetro.

Sintaxis

Variable= XPREngine.GetParameter( pName )

La sintaxis del método GetParameter consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Variant donde se asigna el valor del parámetro.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE
pName | Una valor de tipo string, el cual es el nombre del parámetro que se busca.

GetVersion (Método)

Devuelve el número de versión de la clase XPREngine.XPRE.

Sintaxis

Variable= Objeto.GetVersion

La sintaxis del método GetVersion consta de las siguientes partes.

Elemento | Descripción
Variable | Variable de tipo Double donde se asigna el valor de la versión.
Objeto | Una variable de objeto que representa una instancia de la clase XPREngine.XPRE

Vea también:

  • Uso de la API de Códice


5.3.5.- geOLEDbServices

La biblioteca geOLEDBServices se utiliza para la administración de conexiones de Grupo Execom. A continuación se detallan las funciones más importantes.

'Objeto de servicios del administrador de conexiones

Dim DBInfo As New geOLEDBServices.CnnServices

Mostrar el administrador de conexiones:

Private Sub ShowAdmCnn()

DBInfo.PromptConnectionsTree

End Sub

Hacer una conexion nueva:

Private Sub MakeCnn()

Dim C As New eCnnInfo

Dim DBInfo As New CnnServices

Dim eBasic As New eBasic2

Dim File As String

Dim BDpath As String

‘Ruta del archivo de conexiones.

File = eBasic.AddSlashPath(eBasic.UserAppDataFolder) & "GExecom" & "\" & "geOLEDBInfo.xml"

BDpath = App.Path & "\Personas.mdb"

‘Nombre de aplicación (grupo de conexiones)

C.AppName = "Examples"

‘Nombre de la conexion

C.Name = "Personas"

‘Cadena de conexión

C.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & BDpath & ";Persist Security Info=False"

‘Establecer la conexion como predeterminada

C.Default = True

‘Agregar la conexión a la colección de DBInfo

DBInfo.AddConnection C

‘Guardar las configuraciones realizadas

DBInfo.SaveXmlConnectionsInfo File

End Sub

Para mas información se incluye un proyecto de ejemplo en VB6.0 en el siguiente directorio de la carpeta de instalación:

C:\Archivos de programa\Códice FX\Ejemplos\Ejemplo VB 6.0\Ejemplo Administrador de Conexiones\ CnnSample.vbp

Vea también:

  • Uso de la API de Códice


6.- Especificación del formato XPD

El formato xpd es el utilizado en codice 2007 para almacenar la información correspondiente al reporte creado. El Archivo generado XPD, esta compuesto por los archivos source.xml, resdata.xml, y los archivos de recurso del reporte. Los archivos de recursos pueden ser imágenes o texto plano, las imágenes insertadas en el reporte se almacenan en archivos con extensión “img”, mientras que los recursos de texto se almacenan con la extensión “txt”.

En source.xml se describe:

Nombre del reporte

Conexiones del reporte

Orígenes de registros

Parámetros

Diálogos incluidos en el reporte

Formatos de impresión

En resdata.xml se describe:

Archivos de recursos : Imágenes y Textos

Estructura del archivo source.xml

<?xml version="1.0" encoding="UTF-8"?>

<eReport ...>

<eConnections>

<eConnection ... >

<eRSources>

<eRSource...>

<eRSources>

...

</eRSources>

</eRSource>

</eRSources>

</eConnection>

<eConnections>

<eParameters>

<eParameters...>

</eParameters>

</eParametrs>

<eDialogs>

<eDialog...>

<eControl>

<eControl...>

<eData>

</eData>

</eControl>

</eControls>

<eRSources>

<eRSource...>

<eRSources>

...

</eRSources>

</eRSource>

</eRSources>

<eDialog>

</eDialogs>

<ePrnFormats>

<ePrnFormat...>

<eControl>

<eControl...>

</eControl>

</eControls>

</ePrnFormat>

</ePrnFormats>

<eCode>

</eCode>

<eReport>

Estructura de eReport

<eReport Name="NombreReporte"
Info="Descripción del reporte" Lang="LngScript"
initialDialog = "NombreDialogo" initialPrnFormat="NombrePrnFormat"
>

LngScript: Lenguaje del script utilizado en el reporte.(VBScript / JavaScript)

NombreDialogo: Nombre del dialogo inicial del reporte.

NombrePrnFormat: Nombre del formato de reporte que se utiliza para impresión.

Estructura de eConnection

<eConnection Name="NombreConexion" cnnString="CadenadeConexion" Internal="Valor" >

Valor: Indica el valor a asignar a la propiedad internal de la conexión. 0: False; -1: True

Estructura de eRSource

<eRSource Name="NombreRecurso"
ecnnName="NombreConexion" CursorLocation="UbicacionCursor"
CursorType="TipoCursor" SQLCommand="eSQL"
TypeofCommand="TipoComando" LockType="TipoBloqueo"
eFieldNametoParameters="NombreCampo" idParameterLinked="Parametro"
SendParameters="LstParametros" >

UbicacionCursor: Especifica la ubicación del cursor. Utilizando constantes de ADO.

TipoCursor: Especifica el tipo de cursor utilizado. Utilizando constantes de ADO.

eSQL: Cadena que describe la instrucción Sql que se utiliza en el origen de registros.

TipoComando: Tipo de comando utilizado en el origen de registros. Utilizando constantes de ADO.

TipoBloqueo: Tipo de Bloqueo que se realiza en el origen de registro.

NombreCampo: Nombre del campo vinculado a un parámetro.

Parametro: Nombre del parámetro en el origen de registro.

LstParametros: Lista de parámetros enviados a la base de datos.

Un elemento eRSource puede contener un eRsources que a su vez contienen elementos eRSource

Estructura de eParameters

<eParameter Name="NombreParametro" eType="Tipo" Predef="ValorDef">

NombreParametro: Nombre del parámetro

Tipo: Tipo de dato que maneja el parámetro.

ValorDef: Valor por defecto del parámetro.

Estructura de eDialog

<eDialog Name="NmDlg"
Class="NmCls" Height="sH" Width="sW"
Load="NmLoad" OnCancel="NmCancel"
OnControlEvent="NmEvent" OnOk="NmOK"
Title="TituloDlg" Validate="NmValidate" >

NmDlg: Especifica el Nombre del dialogo.

NmCls: Especifica el nombre de la clase a la que pertenece el control.

sH: Especifica el alto del dialogo en unidades de twips.

sW: Especifica el ancho del control en unidades de twips.

NmLoad: Especifica el nombre del método que se ejecuta en el evento load del dialogo.

NmCancel: Especifica el nombre del método que se ejecuta en el evento cancel del dialogo.

NmEvent: Especifica el nombre del método, en un control que se encuentra dentro del dialogo.

NmOK: Especifica el nombre del método que se ejecuta en el evento ok del dialogo.

TituloDlg: Especifica el titulo del dialogo.

NmValidate: Especifica el nombre del método que se ejecuta en el evento validate del dialogo.

Estructura de eControl

<eControl Name="CtrlNm"
Class="ProgId"  Top="sTop" Left="sLeft"
Width="sWidth"  Height="sHeigth"
Visible="sInt" NoNull="sInt" Extended="PrpExt"
TabIndex="sTab" BindObject="NmParametro"
Enable="sInt">

CtrlNm: Nombre del control contenido en el dialogo

ProgId: Nombre de la clase y objecto al que pertenece el control.

sTop, sLeft, sWidth, sHeigth: Posición y tamaño del control en twips

sInt: Representa un valor boolean. True: -1. False: 0

PrpExt: Especifica las propiedades del control adicionales.

sTab: Orden de tabulación correspondiente en el dialogo.

NmParametro: Nombre del parámetro asociado al control.

Los elementos eData dentro del control son utilizados para propósitos generales.

Estructura de ePrnFormat

<ePrnFormat Name="NmFormat"
Properties="LstPrp" BottomN=”sBtn” Heigth= “sHegth”
HorizontalN=”sHn” LeftM=”sLm” PaperWidth=”sPw”
PaperHeigth=”sPh” RigthM=”sRm” TopM=”sTm” VerticalN=”sVn”
Width=”sWidth”, moveOn=”sMon”>

NmFormat: Nombre del formato de impresión.

LstPrp: Lista de propiedades

sHegth, sWidth, sTm, sLm: Define la ubicación y tamaño del formato de impresión.

sHn, sVn: Define el numero de columnas que contendrá el formato de impresión.

sMon: Define la manera en que se realizará la impresión del reporte.

Estructura de eCode

Se especifica el código Script codificado en UTF-8. que utiliza el reporte.

Estructura del archivo resdata.xml

<?xml version="1.0" encoding="UTF-8"?>

<eResDataCol Count="NoRecursos" >

<eResData Name="NmRes" Type="eTipo" />

El encabezado especifica la versión xml utilizada, y el codificado utilizado.

NoRecursos: Números de recursos agregados al reporte.

se utilizara un elemento eResData por cada recuso utilizado en el reporte.

NmRes: Especifica el nombre del recurso agregado al reporte y que se encuentra en la misma ubicación de resdata.xml.

eTipo: Representa el tipo de recurso en el reporte. Tomando los valores siguientes:

Type = “1” indica que el recurso es una imagen

Type=”2” indica que el recurso es un texto.

Vea también:

  • Procesamiento de orígenes de registros por el motor en tiempo de ejecución
  • Uso de la API de Códice
  • Referencia de objetos del motor en tiempo de ejecución


7.- Especificación del formato XPR

El formato xpr es el utilizado en codice 2007 para almacenar los datos generados por un reporte. El Archivo XPR está compuesto por el archivo document.xml y los archivos de imagen *.img generadas por el reporte.

Estructura del archivo document.xml

El documento de reporte esta compuesto por un conjunto de páginas (eDigitalPage) y estas contiene un conjunto de trazos (eShape) que son los textos, imágenes, cuadros, códigos de barras, graficas, etc. que contiene el reporte. También el documento contiene una lista de imágenes (ePicture) que guardan el nombre que corresponde a un archivo de imagen dentro del archivo XPR.

<?xml version="1.0" encoding="UTF-8" ?>

<GExecomXPR>

<DigitalPage>

<eShape/>

</DigitalPage>

<ePicture>

</GExecomXPR>

Estructura de eDigitalDoc

<GExecomXPR Name="Nombre del
documento" Pages="Numero total de paginas" Pictures="Numero total de imagenes" PageAreas="Numero de
areas" Metric="Twip">

Estructura de ePage

<DigitalPage PageNumber="Numero de pagina" Orientation="Orientacion" Height="Altura" Width="Anchura">

Estructura de eShape

<eShape Name="Nombre del trazo" Tag="Etiqueta" ShapeType="TipoTrazo" X="PosicionX" Y="PosicionY" Width="Ancho" Height="Alto" Picture="NombreDePicture" Text="Texto en el trazo" FontName="Nombre de fuente" FontSize="Tamaño de fuente" FontItalic="Cursiva" FontBold="Negrita" FontUnderline="Subrayado" Strikethrough="Tachado" TextVAligment="Alineacion vertical de texto" TextHAligment="Alineacion horizontal de texto" BackColor="Color de fondo" ForeColor="Color de primer plano" BorderWidth="Ancho de Borde" BackStyle="Estilo de fondo" BorderStyle="estilo de borde" />

Estructura de ePicture

<ePicture Name="Nombre de la imagen" />

Vea también:

  • Procesamiento de orígenes de registros por el motor en tiempo de ejecución
  • Uso de la API de Códice
  • Referencia de objetos del motor en tiempo de ejecución


8.- Entorno de extensión de Códice FX

8.1.- Crear plantillas 192

8.2.- Programar asistentes 192


8.1.- Crear plantillas

Las plantillas son útiles para crear un reporte con características determinadas que se necesite cuando el formato del reporte se utiliza con más frecuencia que otros. Crear una plantilla es muy sencillo sólo se debe crear un proyecto nuevo, agregar los elementos que se deseen en el reporte, como formatos de impresión, controles, etc. Y por ultimo guardar el reporte con la extensión xpt en la carpeta “Templates” del la carpeta de instalación de Códice FX.

Una vez guardado el archivo, este aparecerá en la lista de plantillas de la ventana Nuevo Proyecto.

Vea también

  • Empezar a trabajar con Códice FX
  • Elementos que forman un reporte


8.2.- Programar asistentes

Para crear un asistente es necesario crear una biblioteca COM la cual debe contener una clase con el nombre que desee y dentro una función pública llamada “CodiceWizard” que recibe como parámetro un objeto del tipo eProyMan en el cual se encuentra eRptProy que es el reporte en el cual se configura las propiedades deseadas.

Para utilizar el asistente solo debemos crear un archivo con el siguiente formato.

Contenido del archivo: Es contenido que agregue al archivo será el nombre con que aparecerá en el listado de asistentes en la ventana de nuevo proyecto de Códice FX.

Nombre del archivo: El formato para el nombre es el siguiente.

Library.ClassID.com.inf

Primero se debe escribir el nombre de la biblioteca, luego el nombre de la case que contiene la función “CodiceWizard” que se mencionó anteriormente, y seguida de la palabra “com”. La extensión del archivo debe ser inf.

Este archivo debe estar en la carpeta Wizards de la carpeta de instalación de Códice FX. El archivo creado de la biblioteca COM puede estar en cualquier ubicación solo se debe registrar.

La siguiente función es un ejemplo de cómo crear un asistente.

Public Function CodiceWizard(objCodice As Object) As Boolean

On Error GoTo Err_Codice

Dim Report As Object 'eReport

Dim Dialog As eDialog

Dim pFormat As ePrnFormat

Set Report = objCodice.eRptProy

Set Dialog = New eReportSpt.eDialog

Dialog.Name = "Dialogo1" 'Nombre del nuevo diálogo

Dialog.Width = 5000 'En twips

Dialog.Height = 6000 'En twips

Dialog.Title = "Ejemplo de diálogo insertado por el asistente" 'Título del diálogo

Dialog.BackColor = vbWhite

Report.eDialogs.Add Dialog

Set pFormat = New ePrnFormat

pFormat.Name = "Formato1"

'Medidas en centrimetros

pFormat.eOrientacion = 0

pFormat.PaperHeigth = 10

pFormat.PaperWidth = 10

pFormat.Width = 10

pFormat.Heigth = 10

pFormat.HorizontalN = 1

pFormat.VerticalN = 1

pFormat.Metric = "Cm"

Report.ePrnFormats.Add pFormat

MsgBox "Listo!!!"

Exit Function

Err_Codice:

MsgBox Error$

End Function

Se incluye el código de ejemplo para crear un asistente en la carpeta de ejemplos del programa en la siguiente ruta:

C:\Archivos de programa\Códice FX\Ejemplos\Ejemplo VB 6.0\Ejemplo de Asistentes

Vea también

  • Programación a través de los objetos del Administrador de conexiones
  • Referencia de objetos del motor en tiempo de ejecución
  • Procesamiento de orígenes de registros por el motor en tiempo de ejecución


Anexo 1.- Bases de datos relacionales y consultas con SQL.

Este resumen pretende hacer un recordatorio sobre los principales conceptos que debería manejar para poder usar Códice FX.

Tablas, registros y campos.

Una tabla es un conjunto de datos organizados en filas y columnas, a las filas se les denomina registros y a las columnas campos. Vea el siguiente ejemplo de una tabla.

La tabla del ejemplo se llama Clientes y tiene 2 registros y 4 campos.

Una tabla está formada por registros y cada registro por campos.

Para construir sistemas de información es necesario que exista una manera de identificar de manera única un registro y en consecuencia poder localizarlo fácilmente. Esto se logra mediante un campo clave, el cual tiene valores únicos.

Un ejemplo de campo clave sería el campo Código del ejemplo anterior.

Ahora bien, para que se pueda crear un verdadero sistema es necesario tener más de una tabla y establecer relaciones entre las mismas de tal forma que permitan almacenar y procesar la información de acuerdo al objetivo de la organización.

Clave principal

Uno o más campos cuyo valor o valores identifican de manera única a cada registro de una tabla. En una relación, se usa una clave principal para hacer referencia a registros específicos de una tabla desde otra tabla. Una clave principal se denomina clave externa cuando es referenciada desde otra tabla.

Clave foránea (externa)

Uno o más campos que hacen referencia al campo o campos de la clave principal de otra tabla. Una clave foránea o externa indica como están relacionadas las tablas: los datos en los campos de la clave externa y en la clave principal deben coincidir.

Índice

Una característica del motor de base de datos que acelera la búsqueda y ordenación en tablas, La clave principal de una tabla se indexa automáticamente. Los campos cuyos tipos de datos sean Memo, Vínculo u Objeto OLE no pueden indexarse.

Puede usar la propiedad Indexado para buscar y ordenar registros con un solo campo de una tabla. Este campo puede contener valores únicos o no. Por ejemplo, puede crear un índice con un campo llamado IdEmpleado para una tabla Empleados en la que cada identificador de empleado sea único, o también un índice con el campo Nombre, en el que algunos nombres pueden estar duplicados.

Índice principal

Un índice principal contiene uno o más campos que identifican de forma única a todos los registros de la tabla en un orden predefinido. Puesto que el campo índice debe ser único, la propiedad Unique del objeto Index se establece como True. Si el índice principal contiene más de un campo, cada campo puede contener valores repetidos, pero cada combinación de valores de todos los campos indexados debe ser única. Un índice principal contiene una clave para la tabla y normalmente contiene los mismos campos que la clave principal.

Índice candidato

Una clave CANDIDATO es una expresión de índice que no permite valores duplicados o NULOS.

Por definición, una clave candidato es un solo campo o una expresión compuesta por definición que cumple los requisitos de un clave principal. Es un requisito de diseño de bases de datos de el que tienen uno y sólo uno clave principal las tablas. Sin embargo, una tabla podría contener varios identificadores únicos. Una vez que se haya identificado el clave principal, a otras claves únicas se les denomina claves candidato

Relaciones entre tablas.

Básicamente existen dos tipos de relaciones que a continuación se explican.

Relación 1 a 1

Habiendo dos tablas A y B esta relación exige que por cada elemento de A exista un elemento de B que le corresponda.

Por ejemplo

Si existe una tabla llamada “Clientes” y otra llamada “Contactos” y existe una relación 1 a 1 entre ambas podemos decir que por cada cliente en Clientes hay un contacto en Contactos.

Observe que los campos clave de ambas tablas están en negritas.

Relaciones 1 a muchos

Habiendo dos tablas A y B esta relación exige que por cada elemento de A existirán uno o más elementos de B que le correspondan.

Por ejemplo

Si existe una tabla llamada “Clientes” y otra llamada “Facturas” y existe una relación 1 a muchos entre ambas podemos decir que por cada cliente en Clientes hay una o más facturas en Facturas.

Observe que los campos clave de ambas tablas están en negritas.

En este ejemplo vemos que ambos registros de la tabla Facturas están relacionados solo con el registro 001 (Emmanuel) de la tabla clientes.

Consultas e instrucciones SQL

Ahora que ya conocemos como está almacenada y relacionada la información se hace palpable la necesidad de poder consultarla siguiendo las diferentes relaciones, para lograr esto se utilizan instrucciones SQL, mismas que también permiten efectuar modificaciones.

Referencia de SQL

¿Qué es SQL?

SQL es un lenguaje de programación de bases de datos cuyos orígenes están estrechamente relacionados con la invención de las bases de datos relacionales por E. F. Codd a principios de los 70. Un antecedente del actual SQL fue el lenguaje Sequel, razón por la cual SQL todavía se pronuncia en inglés como "sequel" en vez de "letra a letra", aunque las dos pronunciaciones son aceptables.

El SQL moderno ha evolucionado hasta ser un estándar utilizado ampliamente en bases de datos relacionales y se define por la norma ANSI. La mayoría de las implementaciones de SQL tienen pocas variaciones respecto al estándar, incluyendo la versión admitida por el motor de base de datos Jet. Pero la estructura y el funcionamiento generales del lenguaje son muy coherentes entre los distintos fabricantes. Si ha utilizado alguna implementación de SQL, no tendrá dificultad en realizar la transición a la versión de Microsoft Jet.

· Un modelo relacional basado en el lenguaje de consulta estructurado (SQL).

SQL tiene la ventaja de ser una interfaz de bases de datos estándar, por lo que conocer los comandos de SQL permite tener acceso y manipular una gran variedad de productos de bases de datos procedentes de distintos fabricantes.

Importante: Muchos de los ejemplos no hacen referencia exacta a la base de datos de Déminus, para saber exactamente la estructura de esta revise el apéndice: Estructura de la base de datos de periodo.

Instrucciones de SQL.

Las instrucciones DML son expresiones generadas en torno a los comandos siguientes.

Comando Descripción

SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado.

INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.

UPDATE Utilizado para modificar los valores de determinados campos y registros.

DELETE Utilizado para quitar registros de una tabla de base de datos.

En la práctica se usará la instrucción SELECT para consultas y para definir conjuntos de registros para el diseñador de reportes, mientras que las demás instrucciones serán usadas sol en las Macros SQL de Déminus.

Cláusulas de las instrucciones SQL

Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular. La siguiente tabla muestra las cláusulas que puede utilizar.

Cláusula Descripción

FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros.

WHERE Utilizada para especificar las condiciones que deben cumplir los registros que se van a seleccionar.

GROUP BY Utilizada para separar los registros seleccionados en grupos específicos.

HAVING Utilizada para expresar la condición que debe satisfacer cada grupo.

ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden especificado.

Operadores del SQL

Existen dos tipos de operadores en SQL: operadores lógicos y operadores de comparación.

Operadores lógicos

Los operadores lógicos se usan para conectar expresiones, normalmente dentro de una cláusula WHERE. Por ejemplo:

SELECT * from Mitabla WHERE condición1 AND condición2

Aquí el operador AND conecta las expresiones condición1 y condición2 para especificar que se deben cumplir las dos condiciones para satisfacer el criterio de selección. Los operadores lógicos son:

 AND

 OR

 NOT

Operadores de comparación

Los operadores de comparación se usan para comparar valores relativos de dos expresiones con el fin de determinar la acción que debe ejecutarse. Por ejemplo:

SELECT * from Clientes WHERE Id_Cliente = 5

Aquí el operador ‘=’ especifica que sólo se seleccionarán los registros que tengan un campo Id_Cliente con un valor de 5.

Los operadores de comparación se enumeran en la siguiente tabla.

Operador Significado/Uso

< Menor que

<= Menor o igual que

> Mayor que

>= Mayor o igual que

= Igual que

<> Distinto de

BETWEEN Utilizado para especificar un intervalo de valores

LIKE Utilizado en la comparación de modelos

IN Utilizado para especificar registros de una base de datos

Funciones agregadas

Las funciones agregadas se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros. Por ejemplo, la función agregada AVG devuelve el promedio de todos los valores de un determinado campo de un objeto Recordset. La siguiente tabla enumera las funciones agregadas.

Función agregada

Descripción

AVG Utilizada para calcular el promedio de los valores de un determinado campo.

COUNT Utilizada para devolver el número de registros de la selección.

SUM Utilizada para devolver la suma de todos los valores de un determinado campo.

MAX Utilizada para devolver el valor más alto de un campo especificado.

MIN Utilizada para devolver el valor más bajo de un campo especificado.

Instrucción SELECT

La consulta Select

Utilice la instrucción SELECT para recuperar registros de una base de datos en forma de un conjunto de registros, almacenándolos en un nuevo objeto Recordset. Posteriormente, su aplicación puede manipular este Recordset presentando, agregando, cambiando o eliminando registros según sea necesario. Su aplicación también puede presentar y crear informes a partir de los datos.

SELECT suele ser la primera palabra de una instrucción SQL. La mayoría de las instrucciones SQL son SELECT o SELECT...INTO. Puede utilizar una instrucción SELECT en la propiedad SQL de un objeto QueryDef, en la propiedad RecordSource de un control de datos o como argumento para el método OpenRecordset. Las instrucciones SELECT no modifican los datos de la base de datos; sólo los recuperan.

La estructura general de la consulta SELECT es la siguiente:

SELECT lista_campos

FROM nombres_tablas IN nombre_base_datos

WHERE condiciones_búsqueda

GROUP BY lista_campos

HAVING criterios grupo

ORDER BY lista_campos

Ejemplo:

SELECT ID_CLIENTE AS ID, NOMBRE FROM CLIENTES WHERE NOMBRE LIKE 'A*' ORDER BY NOMBRE

Esta instrucción creará una consulta con las columnas ID y Nombre con todos los clientes cuyo nombre emiezen con la A.

Instrucción DELETE

Crea una consulta de eliminación que elimina registros de una o más tablas incluidas en la cláusula FROM que satisfagan la cláusula WHERE, como se muestra en la siguiente sintaxis:

DELETE [tabla.*]

FROM expresión_tabla

WHERE criterios

Ejemplo:

DELETE * FROM CLIENTES WHERE NOMBRE LIKE 'A*'

Esta instrucción eliminará todos los clientes cuyo nombre empiecen con A.

DELETE es especialmente útil cuando desee eliminar numerosos registros.

En una instrucción DELETE multitabla, debe incluir el argumento tabla. Si especifica más de una tabla de las que desea eliminar registros, ninguna de ellas puede contener la clave principal de una relación uno a varios.

Instrucción UPDATE

UPDATE crea una consulta de actualización que cambia valores de campos en una tabla especificada según determinados criterios.

UPDATE tabla

SET nuevo_valor

WHERE criterio;

Ejemplo:

UPDATE Productos SET Precio1=Ult_Costo*1.3 WHERE LINEA='001'

Esta instrucción establecería el precio 1 de todos los productos de la línea 001 a un 30% encima del último costo de compra.

UPDATE es especialmente útil cuando desea cambiar numerosos registros o cuando los registros que quiere cambiar están en múltiples tablas.

Consultas complejas

Las consultas complejas combinan una o más instrucciones SELECT, o múltiples cláusulas FROM dentro de la instrucción SELECT, para ejecutar consultas que no se pueden realizar con una única consulta para un único conjunto de tablas.

Subconsultas

Una subconsulta es una instrucción SELECT anidada dentro de otra instrucción SELECT, SELECT...INTO, INSERT...INTO, DELETE o UPDATE, o bien dentro de otra subconsulta.

Puede utilizar tres tipos de sintaxis para crear una subconsulta:

comparación [ANY | ALL | SOME] (instrucción_sql)

expresión [NOT] IN (instrucción_sql)

[NOT] EXISTS (instrucción_sql)

Puede utilizar una subconsulta en lugar de una expresión en la lista de campos de una instrucción SELECT o en una cláusula WHERE o HAVING. En una subconsulta, utilice una instrucción SELECT para suministrar un conjunto de uno o varios valores específicos para evaluarlos en la expresión de las cláusulas WHERE o HAVING.

Utilice los predicados ANY o SOME, que son sinónimos, para recuperar los registros de la consulta principal que satisfacen la comparación con cualquier registro recuperado en la subconsulta. El siguiente ejemplo devuelve todos los productos cuyo precio unitario es mayor que el de los vendidos con un descuento del 25 por ciento o superior:

SELECT * FROM Productos _

WHERE [Precio unitario] > ANY _

(SELECT [Precio unitario] FROM [Detalles de pedido] _

WHERE [Descuento] >= 25);

Utilice el predicado ALL para recuperar únicamente los registros de la consulta principal que satisfacen la comparación con todos los registros recuperados en la subconsulta. Si cambia ANY por ALL en el ejemplo anterior, la consulta devolverá únicamente aquellos productos cuyo precio unitario sea mayor que el de todos los productos vendidos con un descuento del 25 por ciento o superior. Esto es mucho más restrictivo.

Utilice el predicado IN para recuperar únicamente los registros de la consulta principal para los cuales algunos registros de la subconsulta contienen un valor igual. El siguiente ejemplo devuelve todos los productos vendidos con un descuento del 25 por ciento o superior:

SELECT * FROM Productos _

WHERE [Id. de producto] IN _

(SELECT [Id. de producto] FROM [Detalles de pedido] _

WHERE [Descuento] >= 25);

Por el contrario, puede utilizar NOT IN para recuperar únicamente aquellos registros de la consulta principal para los que en la subconsulta no haya ninguno que contenga un valor igual.

Utilice el predicado EXISTS (con la palabra clave opcional NOT) en comparaciones de tipo verdadero o falso para determinar si la subconsulta devuelve algún registro.

Combinaciones

Una de las características más poderosas de las bases de datos relacionales es la capacidad de combinar dos o más tablas para crear una tabla nueva (o Recordset) que contiene información de las dos tablas iniciales.

Las tablas se combinan de acuerdo con las relaciones existentes entre ellas, generalmente entre la clave principal de una tabla y la clave externa correspondiente de otra. Dependiendo de cómo estén combinadas las tablas, puede crear los siguientes tipos de combinaciones.

Combinación Descripción

INNER JOIN Los registros de las dos tablas se incluyen en la combinación sólo cuando un campo especificado de la primera tabla coincide con el campo especificado de la segunda.

LEFT OUTER JOIN Todos los registros de la primera tabla se incluyen en la combinación, junto con los registros de la segunda tabla en los que coinciden los campos especificados.

RIGHT OUTER JOIN Todos los registros de la segunda tabla se incluyen en la combinación, junto con los registros de la primera tabla en los que coinciden los campos especificados.

Combinaciones internas

Para crear una consulta que incluya únicamente registros en los que coinciden los datos de los campos combinados, utilice la operación INNER JOIN.

INNER JOIN combina registros de dos tablas siempre que existan valores coincidentes en un campo común. Utilice la siguiente sintaxis:

FROM tabla1 INNER JOIN tabla2 ON tabla1.campo1 = tabla2.campo2

Puede utilizar una operación INNER JOIN en cualquier cláusula FROM. Esto crea una combinación por equivalencia, también denominada combinación interna. Las combinaciones por equivalencia son el tipo de combinaciones más común. Combinan registros de dos tablas siempre que hay valores coincidentes en un campo común a ambas tablas.

Puede utilizar INNER JOIN con las tablas Departamentos y Empleados para seleccionar todos los empleados de cada departamento. Por el contrario, para seleccionar todos los departamentos (aunque algunos no tienen empleados asignados) o todos los empleados (aunque algunos no están asignados a departamentos), puede utilizar una operación LEFT JOIN o RIGHT JOIN para crear una combinación externa.

Puede combinar dos campos numéricos cualesquiera, aunque tengan diferentes tipos de datos. Por ejemplo, puede combinar un campo Number, para el cual la propiedad Size de su objeto Field es Integer (entero), y un campo contador.

El siguiente ejemplo muestra un posible método para combinar las tablas Categorías y Productos por el campo Id. de categoría:

SELECT [Nombre de categoría], [Nombre de producto] _

FROM Categorías INNER JOIN Productos _

ON Categorías.[Id. de categoría] = Productos.[Id. de categoría];

En el ejemplo anterior, Id. de categoría es el campo combinado, pero no se incluye en el resultado de la consulta porque no está incluido en la instrucción SELECT. Para incluir el campo combinado, incluya el nombre del campo en la instrucción SELECT; en este caso, Categorías.[Id. de categoría].

El siguiente ejemplo crea dos combinaciones por equivalencia: una entre las tablas Detalles de pedido y Pedidos y otra entre las tablas Pedidos y Empleados. Esto es necesario porque la tabla Empleados no contiene datos de ventas y la tabla Detalles de pedido no contiene datos de empleados. La consulta produce una lista de empleados y sus ventas totales.

Dim MiQRY As QueryDef

MiQRY.SQL = "SELECT DISTINCTROW Sum([Precio unitario] _

[Cantidad]) AS [Ventas], [Nombre] & " " & _

[Apellido] AS Name FROM Empleados _

INNER JOIN (Pedidos INNER JOIN [Detalles de pedido] _

ON Pedidos.[Id. de pedido] = [Detalles de pedido].[Id. de pedido]) _

ON Empleados.[Id. de empleado] = Pedidos.[Id. de empleado] _

GROUP BY [Nombre] & " " & [Apellido];"

Esta instrucción debe utilizarse como la propiedad SQL de un objeto QueryDef o en una expresión SQL con el método OpenRecordset.

Omisión de filas duplicadas

El ejemplo anterior utiliza el predicado DISTINCTROW en la cláusula SELECT para omitir los datos de registros enteros duplicados, no sólo campos duplicados. Por ejemplo, podría crear una consulta para combinar las tablas Clientes y Pedidos mediante el campo Id. de cliente. La tabla Clientes no contiene campos Id. de cliente duplicados, pero la tabla Pedidos sí, ya que cada cliente puede tener varios pedidos. La siguiente instrucción SQL muestra cómo utilizar DISTINCTROW para crear una lista de compañías que tengan al menos un pedido pero sin detalles sobre tales pedidos:

SELECT DISTINCTROW [Nombre de compañía] _

FROM Clientes INNER JOIN Pedidos _

ON Clientes.[Id. de cliente] = Pedidos.[Id. de cliente] _

ORDER BY [Nombre de compañia];

Si omite DISTINCTROW, esta consulta produce múltiples filas para cada compañía que tiene más de un pedido.

DISTINCTROW tiene efecto sólo cuando selecciona campos de algunas, pero no todas, las tablas utilizadas en la consulta. DISTINCTROW se pasa por alto si su consulta incluye únicamente una tabla.

Combinaciones izquierda y derecha (externas)

Las combinaciones externas combinan registros de tablas de origen, cuando se utilizan en cualquier cláusula FROM, con la siguiente sintaxis:

FROM tabla1 [ LEFT | RIGHT ] JOIN tabla2

ON tabla1.campo1 = tabla2.campo2

Utilice una operación LEFT JOIN para crear una combinación externa izquierda. Las combinaciones externas izquierdas incluyen todos los registros de la primera de dos tablas (la de la izquierda), aunque no haya valores coincidentes para los registros de la segunda tabla (a la derecha).

Utilice una operación RIGHT JOIN para crear una combinación externa derecha. Las combinaciones externas derechas incluyen todos los registros de la segunda de dos tablas (la de la derecha), incluso aunque no haya valores coincidentes para los registros de la primera tabla (la de la izquierda).

Por ejemplo, podría utilizar LEFT JOIN con las tablas Departamentos (izquierda) y Empleados (derecha) para seleccionar todos los departamentos, incluyendo aquellos que no tengan empleados asignados. Para seleccionar todos los empleados, incluidos aquellos que no están asignados a ningún departamento, utilice RIGHT JOIN.

El siguiente ejemplo muestra un posible método para combinar las tablas Categorías y Productos mediante el campo Id. de categoría. La consulta produce una lista de todas las categorías, incluyendo las que no contienen productos:

SELECT [Nombre de categoría], _

[Nombre de producto] _

FROM Categorías LEFT JOIN Productos _

ON Categorías.[Id. de categoría] = Productos.[Id. de categoría];

En el siguiente ejemplo, Id. de categoría es el campo de combinación, pero no se incluye en el resultado de la consulta porque no está incluido en la instrucción SELECT. Para incluir el campo combinado, escriba el nombre del campo en la instrucción SELECT; en este caso, Categorías.[Id. de categoría].

Combinaciones anidadas

También puede anidar instrucciones JOIN mediante la siguiente sintaxis:

SELECT campos

FROM tabla1 INNER JOIN

(tabla2 INNER JOIN [( ]tabla3

[INNER JOIN [( ]tablax [INNER JOIN ...)]

ON tabla3.campo3 = tablax.campox)]

ON tabla2.campo2 = tabla3.campo3)

ON tabla1.campo1 = tabla2.campo2;

Consultas de unión

Utilice la operación UNION para crear una consulta de unión, combinando los resultados de dos o más consultas o tablas independientes.

consulta1 UNION [ALL] consulta2 [UNION [ALL] consultan [ ... ]]

El marcador de posición consulta representa una expresión de cadena que identifica el campo que contiene los datos numéricos cuya media desea calcular o una expresión que ejecuta un cálculo mediante los datos del campo. Los operandos de una expresión pueden incluir el nombre del campo de una tabla, una constante o una función (que puede ser intrínseca o definida por el usuario pero no una de las otras funciones agregadas de SQL o agregadas de dominio).

Puede combinar los resultados de una consulta y una instrucción SQL en una única operación UNION. El siguiente ejemplo combina los resultados de una consulta existente llamada Nuevas cuentas y una instrucción SELECT:

TABLE [Nuevas cuentas] UNION ALL _

SELECT * _

FROM Clientes _

WHERE [Cantidad de pedido] > 1000;

De manera predeterminada no se devuelven registros duplicados al utilizar una operación UNION; sin embargo, puede incluir el predicado ALL para asegurarse de que se devuelven todos los registros. Esto también hace que la consulta sea más rápida.

Todas las consultas de una operación UNION deben solicitar el mismo número de campos; no obstante, los campos no tienen por qué ser del mismo tipo o tamaño.

Puede utilizar una cláusula GROUP BY o HAVING en cada argumento consulta para agrupar los datos que se devuelven. Puede utilizar la cláusula ORDER BY al final del último argumento consulta para mostrar los datos que se devuelven en un orden específico.

Uso de macros de Códice FX en consultas SQL

Macros en el motor en tiempo de ejecución

Las macros son expresiones usadas para representar un valor en consultas SQL o en Fórmulas.

Esto significa que existe un pre-procesamiento de las expresiones que se pasan al motor de la base de datos o al intérprete en tiempo de ejecución.

Dicho pre-procesamiento consiste en reemplazar el valor por el texto de la macro.

Todas las macros tienen la siguiente notación:

Forma con conversión de tipo implícita

@Identificador

Forma sin conversión de tipo

@{Identificador}

La diferencia relativa a la conversión de tipo solo aplica a las macros usadas en consultas SQL, en las fórmulas no se hará diferencia entre una u otra.

Donde Identificador es alguno de los siguientes:

Identificador |  | Descripción | Ejemplo
Inglés | Español |  |
PageNumber | NumPagina | Número de página actual | @PageNumber
Date | Fecha | Fecha actual | @Date
Time | Hora | Hora actual | @Time
DateTime | FechaHora | Fecha y hora actuales | @DateTime
Pages | Paginas | Páginas totales | @Pages
WinUser | UsuarioWin | Nombre de usuario en Windows | @WinUser
WinPCName | NombrePCWin | Nombre del equipo | @WinPCName
Nombre del parámetro |  | Ofrece acceso al valor de un parámetro del reporte | @Parametro1
Origen.Campo |  | Proporciona accedo al valor de un campo en un origen de registros del reporte | @RSVentas.Total

Los identificadores no distinguen entre mayúsculas y minúsculas

Resultado del pre-procesamiento en tiempo de ejecución

Inglés | Español | Fórmulas | Consultas SQL
@PageNumber | @NumPagina | XPREngine.PageNumber() | No soportado
@Date | @Fecha | XPREngine.DateNow() | DATE()
@Time | @Hora | XPREngine.TimeNow() | TIME()
@DateTime | @FechaHora | XPREngine.DateTimeNow() | No soportado
@Pages | @Paginas | XPREngine.Pages() | No soportado
@WinUser | @UsuarioWin | XPREngine.WinUser() | Representación de cadena SQL*
@WinPCName | @NombrePCWin | XPREngine.PCName | Representación de cadena SQL*
@Parámetro |  | XPREngine.GetParameter(“Parámetro”) | Representación de cadena SQL*
@Origen.Campo |  | XPREngine.Field(“Origen.Campo”) | No soportado

*Representación de cadena SQL. Si la macro es de la forma @Parametro (conversión implícita de tipo) se insertará una cadena de acuerdo al tipo del parámetro, por ejemplo:

Si ParamStr es un parámetro de texto con el valor c0001 y se tiene la expresión Where Ventas.Cliente=@ParamStr el resultado del pre-procesamiento será: Where Ventas.Cliente=’c0001’, se agregan las comillas simples para soportar el tipo.

Sin embargo si la expresión es Where Ventas.Cliente=@{ParamStr} el resultado sería: Where Ventas.Cliente=c0001 lo que produciría un error en el motor de la base de datos. No obstante, permitir esta forma puede ser útil en algunos casos, sobre todo si requiere formar la instrucción SQL en lugar de solo pasar valores.

La utilización de macros en sentencias SQL puede conllevar un problema de seguridad (SQL Injection), sin embargo puede ofrecer la flexibilidad necesaria para construir consultas más fácilmente y soportadas por más dialectos SQL.

Si no es estrictamente necesario introducir una macro en una consulta SQL prefiera la utilización de parámetros de paso al motor de la base de datos con la notación ? y cuidando el orden de envío.

Consultas con parámetros.

Regularmente las consultas a las bases de datos requieren parámetros para poder delimitar los registros que se desea obtener, por ejemplo un rango de fechas que permita recuperar solamente las facturas de un periodo de tiempo relevante.

Para hacer esto Códice FX ofrece dos vías con sus ventajas y desventajas, las cuales son:

Paso de parámetros al servidor de la base de datos a través de OLE DB.

En este caso los parámetros son enviados al motor de la base de datos y este los procesa junto con la consulta, este medio es útil cuando los datos a recuperar provienen de un procedimiento almacenado (Store procedure) o cuando el DBMS da las facilidades necesarias.

Es importante informar que OLE DB no pasa los parámetros por nombre, sino que la identificación se realiza por el orden en que son enviados, esto puede resultar un poco complicado en la práctica, sin embargo esta es la vía que ofrece mayor seguridad y eficiencia (en el caso de los store procedures).

Utilización de macros en las consultas SQL.

Las macros son empleadas mediante una sintaxis extendida en el código SQL que forma una consulta y que permiten identificar un parámetro. De este modo antes de que Códice envíe la consulta al DBMS reemplazará las macros por el valor de los parámetros en ese momento.

Esta es probablemente la vía más sencilla y flexible de establecer criterios en las consultas.

Vea los siguientes temas para más información:

  • Diseñando orígenes de registros.
  • Uso de macros de Códice FX en consultas SQL
  • Procesamiento de orígenes de registros por el motor en tiempo de ejecución
  • Parámetros

Uso de parámetros en reportes.

Códice FX permite definir parámetros para los reportes, un parámetro es la identificación por nombre de un valor variable que regularmente proviene del exterior y que se utiliza internamente en una condición de filtro en consultas SQL o para cualquier otra cosa que sea necesario.

Generalmente deberá especificar parámetros para:

  • Establecer los criterios de filtro (Where/Having) de una consulta SQL, por ejemplo indicar un rango de fechas, un valor de límite, etc.

  • Realizar cálculos o procesos que dependan de un valor variable usando código vbs/javascript en el interior del reporte.

Los parámetros se asemejan a las variables en que pueden contener valores que cambian, pero se diferencian por el hecho de que sirven de interfaz con el exterior del reporte (pueden ser establecidos por la aplicación que invoca al reporte, por ejemplo) y tienen un tipo definido de OLE DB.

Ejemplo. Suponiendo que se requiere un informe que muestre las ventas que sobrepasen un determinado monto en un período de tiempo, sería necesario indicarle al reporte que existen 3 valores cambiantes que deben ser tomados en cuenta para la obtención del conjunto de registros a imprimir. Esto 3 valores cambiantes (parámetros) serían: Monto, Fecha Inicial y Fecha final.

Establecer el valor para estos 3 parámetros puede hacerse de dos maneras:

  • Creando un diálogo en el reporte que permita al usuario capturarlos (interno).
  • Dejando que la aplicación que invoca al reporte los establezca mediante código de programa (externo).

Para el primer caso debería agregar un Diálogo al reporte, colocar un control eNumberField para el Monto y dos controles eDateField para las fechas.

En el segundo caso, en algún lugar de la aplicación que invoca al reporte debería haber 3 sentencias similares a: objeto.GetParameter(“nombre_parametro”).Value=Valor

Utilizar los valores de los parámetros para establecer el filtro de la consulta SQL podría realizarse a través de una macro o el paso del parámetro como tal al motor de la base de datos, en el caso de usarse como macro habría una cláusula Where similar a esta: Where Monto>@Monto.

Tipos de los parámetros

Los valores que contiene un parámetro usualmente son textos, números o fechas/horas, debido a que pueden ser pasados directamente al motor de la base de datos se permite especificar exactamente el tipo OLE DB al que pertenecen.

De manera predeterminada Códice FX asigna el tipo VarChar para parámetros de texto, Double para parámetros numéricos y ofrece la opción de tratar como VarChar o como Date, DateTime o DBDate a las fechas/horas.

Consulte la documentación de ADO (OLE DB) para conocer mejor los tipos existentes y la documentación del motor de la base de datos para conocer los tipos soportados.

Si no va a utilizar los parámetros para ser enviados al motor de la base de datos y solo serán empleados como macros en las consultas SQL o dentro del código de sub-programa del reporte, realmente no es significativo el tipo OLE DB ya que son procesados como cualquier variable del entorno de programación sin tipos (VBS/JAVAScript).

Manejo de fechas con parámetros en consultas

A la fecha no existe un formato de fecha/hora que sea compatible con todos los motores de bases de datos con plena seguridad, esto se debe a que cada DBMS implementa el manejo e interpretación de valores de tiempo como mejor lo considera.

Aunque existen estándares internacionales, no hay ninguna garantía de que el motor que esté usando se alinea a ellos.

Para clarificar esta situación vamos a ilustrar con ejemplos.

En Access se puede indicar una fecha hora con el formato yyyy-mm-dd hh:mm:ss, este mismo formato funciona sin problemas en MySQL 5.x, aunque curiosamente en MS SQLServer no, ya que MS SQL Server interpreta esta cadena dependiendo de la configuración de idioma del servidor.

Esto trae el problema de que el valor 10 de Enero de 2007 14:00:00 en Access y MySQL 5.x será almacenado adecuadamente, pero en MS SQL Server si el idioma del servidor es Ingles estados unidos se interpretará como Octubre 10 de 2007 14:00:00.

Para agravar la situación, el utilizar un tipo OLE DB de fecha/hora como DBDate, Date o DateTime no resuelve el problema.

La mejor solución es en algunos casos, configurar en Códice FX el parámetro que va a contener valores de fecha/hora indicando que se traten como cadenas y especificando un formato que sea válido para el motor que se esté usando.

Utilice la siguiente tabla como guía para configurar sus parámetros de fecha/hora.

Motor de base de datos | Fecha | Fecha/Hora
MS Access | yyyy-mm-dd | yyyy-mm-dd hh:mm:ss
MySQL 5.x | yyyymmdd | yyyymmdd hh:mm:ss
MS SQL Server 2005 | yyyymmdd | yyyy-mm-ddThh:mm:ss

Propiedades del parámetro:

Los parámetros contienen un valor que se envía con el origen de registros para hacer un filtro. Funciona de manera similar que la condición de filtros en el origen de registro solo que el parámetro puede tener un valor predeterminado o uno definido por el usuario. Por ejemplo puede crear un cuadro de diálogo para el reporte e incluir un parámetro dentro de su consulta, por medio del diálogo el usuario puede asignar un valor as parámetro y crear el reporte de acuerdo al valor dado.

Nombre: es el identificador del parámetro.

Tipo de dato: Este puede ser texto, números o un tipo fecha/hora.

Si desea asigne un valor al parámetro.


Acerca de Códice FX

Códice FX es un producto de software protegido por diversas leyes y tratados acerca de propiedad intelectual y derechos de autor en México y otros países, se concede autorización para su uso bajo los términos que se describen en el contrato de licencia para el usuario final que puede consultarse en www.grupoexecom.com/codice/licencia

Cualquier violación será perseguida hasta sus últimas consecuencias.

Para mayor información acerca del producto por favor visite: www.grupoexecom.com/codice

Códice FX ™

Copyright © 2001-2007 Derechos reservados

Grupo Execom

Calle Chamula No 795 Primer piso

Colonia La lomita. C.P. 2900

Tuxtla Gtz. Chiapas, México

www.grupoexecom.com