manual de reporteador - contpaqi.com€¦ · cualquier otra marca que se mencione dentro de este...

108

Click here to load reader

Upload: ngocong

Post on 22-Jun-2018

400 views

Category:

Documents


19 download

TRANSCRIPT

Page 1: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

MANUAL DE REPORTEADOR

contpaqi.com

Page 2: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Aviso de derechos del propietario Este Manual es una Obra Literaria protegida en favor de Computación en Acción, S.A. de C.V.; Copyright © 2005-2006 Derechos Reservados © 2005-2006 Computación en Acción, S.A. de C.V., Pablo Villaseñor No. 435, Col. Ladrón de Guevara, Guadalajara, Jalisco, México. C.P. 44600. Los Derechos de este Manual se encuentran reconocidos por la Ley Federal del Derecho de Autor. Se prohíbe su producción, reproducción, publicación, edición o fijación material en copias o ejemplares, por cualquier medio, importación, almacenamiento, transporte, distribución, comercialización, venta o arrendamiento, así como su comunicación y transmisión pública por cualquier medio, su divulgación en cualquier modalidad, su traducción, adaptación, paráfrasis, arreglos, transformaciones u otras similares, sin previa autorización por escrito de su titular. La violación de esta prohibición constituyen un delito y una infracción administrativa que están sancionados conforme a los artículos 424 fracción III, 424 bis fracción I y 424 ter, del Código Penal Federal; así como los artículos 229 fracciones VII y XVI y 231 fracciones I, III, IV y X, de la Ley Federal del Derecho de Autor y demás normas aplicables vigentes. Las marcas COMPUTACIÓN EN ACCIÓN ®, EN ACCIÓN ®, PAQ ® y sus respectivos diseños; la marca y nombre comercial COMPAC ® y su diseño; las marcas ES TIEMPO DE PODER ®, LA CONEXIÓN DE TU NEGOCIO ®, TU NEGOCIO SIEMPRE EN MARCHA ®, SOÑAR. PODER. CRECER. ®; los avisos comerciales “Bien Pensado” ®, “Respuesta Oportuna” ®, y “La Forma más Amigable de Controlar tu Negocio” ®; así como la Imagen del Foquito ®© y del Diseño de la Portada ®©, son signos distintivos registrados y protegidos propiedad de Computación en Acción, S.A. de C.V. AdminPAQ ®©, MegaPAQ ®©, Exión ®©, ContPAQ ®©, CONTPAQ i ®©, CheqPAQ ®©, NomiPAQ ®©, WinPAQ ®©, Solución Contable PAQ ®©, ProduPAQ ®© y VentPAQ ®, también son marcas registradas y protegidas propiedad de Computación en Acción, S.A. de C.V., la que ostenta de igual forma los derechos patrimoniales de autor; con excepción del programa de cómputo que ostenta la marca VentPAQ, cuyos derechos patrimoniales pertenecen a Pacific Soft, Sistemas de Información, S.A. de C.V. Microsoft ®, MS-D.O.S. ®©, WINDOWS ®© y Excel ®©, son marcas y en su caso productos de Microsoft Corporation. Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene solamente propósitos informativos y no constituye aprobación y/o recomendación. Computación en Acción, no se responsabiliza de la ejecución o uso de estos productos. CONTPAQ i® CONTABILIDAD 21220090119 CONTPAQ i® NÓMINAS 11020090119 CONTPAQ i® COMERCIAL 10020131007

Page 3: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Índice

INTRODUCCIÓN AL CURSO DE REPORTEADOR DE CONTPAQ i® PÁGINA VISIÓN GENERAL 1

CAPÍTULO 1. INICIO DE UN REPORTE PÁGINA VISIÓN GENERAL 1-1 PREPARACIÓN PARA LA CREACIÓN DE UN REPORTE 1-2 EDITOR DE REPORTES DE CONTPAQ i® 1-5 COMENTARIOS 1-8 INSTRUCCIÓN COLUMNAS 1-9 VARIABLES 1-10 ASIGNACIÓN DE VALORES A UNA VARIABLE 1-11 INICIALIZACIÓN DE UNA VARIABLE 1-12 CONSTANTES 1-13 ARREGLOS DE DATOS 1-14

CAPÍTULO 2. INSTRUCCIONES DE SALIDA PÁGINA VISIÓN GENERAL 2-1 INSTRUCCIÓN LISTA 2-2 INSTRUCCIONES TEXTO E IMPRIME 2-4 INSTRUCCIÓN IMPRIME 2-6 LABORATORIO 1 2-7

CAPÍTULO 3. CICLOS Y CONDICIONES PÁGINA VISIÓN GENERAL 3-1 INSTRUCCIÓN SI 3-2 INSTRUCCIÓN CASO 3-4 INSTRUCCIÓN MIENTRAS 3-5

CAPÍTULO 4. ACCESO A LAS BASES DE DATOS PÁGINA VISIÓN GENERAL 4-1 CONEXIÓN A LA BASE DE DATOS 4-2 CONSULTAS DE SQL 4-4 LABORATORIO 2 4-7

CAPÍTULO 5. INSTRUCCIONES DE ENTRADA PÁGINA VISIÓN GENERAL 5-1 INSTRUCCIÓN PARAMETROS 5-2 INSTRUCCIÓN CONTROL 5-4 CONTROL CTRLCODIGO 5-5 CONTROL CTRLCHECKBOX 5-7 CONTROL CTRLCODIGONUMERO 5-9 CONTROL CTRLFECHA 5-11 CONTROL CTRLLISTA 5-13

Continúa en la siguiente página

Page 4: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Índice, Continuación

CAPÍTULO 5. INSTRUCCIONES DE ENTRADA CONTINÚA PÁGINA CONTROL CTRLRADIO 5-15 CONTROL CTRLNUMERO 5-17 CONTROL CTRLOPCION 5-19 CONTROL CTRLREAL 5-21 CONTROL CTRLVACIO 5-23 CONTROL CTRLTEXTO 5-25 PARÁMETRO DEPENDENCIA 5-27 LABORATORIO 3 5-30

CAPÍTULO 6. FUNCIONES PÁGINA VISIÓN GENERAL 6-1 UTILIZACIÓN DE LAS FUNCIONES DEL REPORTEADOR 6-2 CREACIÓN DE FUNCIONES 6-3 INSTRUCCIÓN INCLUYE 6-5 LABORATORIO 4 6-6

CAPÍTULO 7. FORMATO PÁGINA VISIÓN GENERAL 7-1 ALINEACIÓN DEL TEXTO 7-2 FUNCIONES DE FORMATO 7-3 LISTA DE FUNCIONES DE FORMATO 7-4 INSTRUCCIÓN ENCAB 7-5 LABORATORIO 5 7-6

APÉNDICE A SENTENCIAS BÁSICAS EN SQL PARA REPORTES PÁGINA Tipos de sentencias en SQL A-2 Sentencias básicas A-3

APÉNDICE B ACTUALIZACIÓN DE REPORTES DE ADMINPAQ PÁGINA VISIÓN GENERAL B-1 CAMBIO DE INSTRUCCIONES EN CONTPAQ i® B-2 EJEMPLO. ACTUALIZACIÓN DE UN REPORTE B-4

APÉNDICE C CASOS ESPECIALES PÁGINA VISIÓN GENERAL C-1 REPORTES EN EXCEL® C-2 REPORTES SENSIBLES C-7 REPORTES EN CONTPAQ I® NÓMINAS C-12

Page 5: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1

Computación en Acción, S.A. de C.V. Derechos Reservados®

Introducción al curso de Reporteador de CONTPAQ i®

Visión General

Introducción El Reporteador de CONTPAQ i® es un lenguaje de programación creado por CONTPAQ i®

que fue desarrollado para la creación de nuevos reportes y modificación de los ya existentes en:

• CONTPAQ i® CONTABILIDAD • CONTPAQ i® BANCOS • CONTPAQ i® NÓMINAS • CONTPAQ i® COMERCIAL

Objetivos Los objetivos de este manual son que el participante:

• Conozca el lenguaje de Reporteador de CONTPAQ i®. • Tenga los conocimientos necesarios para la modificación de los reportes existentes

dentro de CONTPAQ i® CONTABILIDAD, CONTPAQ i® BANCOS, CONTPAQ i® NÓMINAS y CONTPAQ i® COMERCIAL.

• Sea capaz de crear un reporte nuevo para extraer la información de CONTPAQ i® CONTABILIDAD, CONTPAQ i® BANCOS, CONTPAQ i® NÓMINAS y CONTPAQ i® COMERCIAL a la medida de sus necesidades.

Perfil del asistente

Los asistentes al curso de Reporteador deberán tener conocimientos básicos de programación, bases de datos y sentencias de SQL.

Estructura del curso

El curso de Reporteador está planeado de tal manera que conforme vaya avanzando en los capítulos se desarrollará un reporte paso a paso. Al término de algunos capítulos se realizará un laboratorio en el cual se irá construyendo un reporte. Cada laboratorio tiene relación con el anterior de tal forma que al finalizar el curso se tendrá un reporte terminado.

Page 6: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte
Page 7: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-1

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio de un reporte

Capítulo 1

Inicio de un reporte

Visión General

Introducción En este capítulo se describen los pasos iniciales y las instrucciones principales necesarias

para comenzar con el desarrollo de un reporte.

Objetivos Al término de este capítulo el participante conocerá:

• Algunos conceptos básicos previos al desarrollo de un reporte. • Cómo abrir el Editor de reportes de CONTPAQ i®. • Cómo abrir y guardar reportes. • La forma de compilar y ejecutar reportes. • Cómo agregar comentarios a un reporte. • Cómo definir el número y tamaño de columnas para el reporte. • El manejo de las variables en Reporteador.

En este capítulo Este capítulo contiene los siguientes temas:

Tema Página VISIÓN GENERAL 1-1 PREPARACIÓN PARA LA CREACIÓN DE UN REPORTE 1-2 EDITOR DE REPORTES DE CONTPAQ i® 1-5 COMENTARIOS 1-8 INSTRUCCIÓN COLUMNAS 1-9 VARIABLES 1-10 ASIGNACIÓN DE VALORES A UNA VARIABLE 1-11 INICIALIZACIÓN DE UNA VARIABLE 1-12 CONSTANTES 1-13 ARREGLOS DE DATOS 1-14

Page 8: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-2

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio un reporte

Preparación para la creación de un reporte

Puntos previos

Antes de comenzar con el desarrollo de un reporte considera los siguientes puntos:

• Ten a la mano el documento “Estructura de la Base de Datos”. (1) • Ten instalado instalado el sistema en la computadora en la que se desarrollará el

reporte. De preferencia una instalación Monousuario para poder utilizar la herramienta depuración.N

• Se sugiere contar con alguna herramienta que pueda abrir bases de datos de SQL (por ejemplo: Microsoft® SQL MANAGEMENT STUDIO) con el fin tener acceso a estas. Es gratuito y podrás descargarlo de: http://www.microsoft.com/downloads/details.aspx?familyid=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796&displaylang=es

• El lenguaje de Reporteador no hace distinción entre mayúsculas y minúsculas. • Los nombres de los campos y las tablas no se acentúan. • Describe las instrucciones utilizando comentarios. • Usa tabuladores para identificar bloques (en ciclos, funciones, condiciones,

etcétera.) • Maneja nombres descriptivos en variables. • Termina el reporte con una línea en blanco (Da un <Enter> después de la última

instrucción). (1) Puedes acceder a este documento desde el grupo de programas del sistema, subgrupo Ayuda.

Archivos RPT y RTW

Cuando trabajes con Reporteador de CONTPAQ i® encontrarás dos tipos de archivos: unos son extensión .RPT y otros son extensión .RTW

Archivo Descripción .RPT También conocidos como archivos fuente, son los que contienen las

instrucciones creadas por el programador. Estos archivos son de tipo texto.

.RTW Este archivo se crea al compilar el archivo fuente (RPT), y contiene el código máquina que será interpretado por el reporteador de CONTPAQ i® para mostrar el reporte.

MiReporte.RPT

Compila

¿Error de sintaxis?

MiReporte.RTW Línea de error

SíNo

Continúa en la siguiente página

Page 9: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-3

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio de un reporte

Preparación para la creación de un reporte, Continuación

Ubicación de los reportes

• Los reportes existentes (tanto los archivos fuentes .RPT como los ejecutables .RTW) se ubican en el servidor en las siguientes rutas:

Sistema Ruta CONTPAQ i® CONTABILIDAD <C:\Compac\Empresas\Reportes\Contpaq> CONTPAQ i® BANCOS <C:\Compac\Empresas\Reportes\Bancos> CONTPAQ i® NÓMINAS <C:\Compac\Empresas\Reportes\Nominas> CONTPAQ i® COMERCIAL <C:\Compac\Empresas\Reportes\Comercial>

• Los reportes propios se recomienda guardarlos en la carpeta Mis Reportes ubicada

dentro de cada una de las carpetas anteriores. Al hacer esto los reportes aparecerán automáticamente en el menú Reportes, opción Mis Reportes.

Nota: Si se generan subcarpetas dentro de la carpeta Mis Reportes las subcarpetas aparecerán como submenús.

Respaldar reportes

Importante: realiza un respaldo de los reportes que hayas desarrollado, copia los archivos .RPT y .RTW de tus reportes en un lugar seguro. Si deseas realizar una modificación a un reporte ya existente se sugiere realizar una copia del reporte original, modificar el reporte y hacer un respaldo del RPT y RTW modificado, ya que si reinstalas el sistema, se sobre-escribirá el reporte y perderás los cambios.

Pasos para crear un reporte

Para crear un reporte nuevo es necesario que siga los siguientes pasos:

Paso Acción

1 Define los campos (columnas) que se requieren en el reporte.

2 Ubica en qué tablas dentro de la base de datos se encuentran los campos requeridos.

3 Desarrolla la consulta de SQL en el Managment Studio.

4 Desarrolla el código fuente desde el Editor de reportes incluyendo la consulta de SQL.

5 Guarda el archivo RPT en el servidor.

6 Compila el archivo RPT (Generar archivo RTW).

7 Prueba el reporte ejecutándolo desde el editor de reportes.

8 Una vez terminado el reporte lo podrás ejecutar desde el menú Reportes opción Mis Reportes.

Nota: Estos pasos se verán a detalle a lo largo del curso.

Continúa en la siguiente página

Page 10: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-4

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio un reporte

Preparación para la creación de un reporte, Continuación

Reglas en el orden de las instrucciones

Cada programador tiene su propia forma de estructurar el código para desarrollar el reporte, sin embargo hay ciertas reglas que se deben respetar en el orden en que aparecen las instrucciones en el código fuente. A continuación se listan dichas reglas:

• Define las columnas antes del inicio del cuerpo del reporte (ve el tema Instrucción columnas en la página 1-9).

• Declara una función antes del llamado de la misma (ve el capítulo Funciones página 6-1). Abre la empresa y las tablas antes de hacer llamados a las mismas.

• Pide parámetros antes de desplegar los datos del reporte.

Estructura de un reporte

A continuación se lista un orden sugerido para la estructura de un reporte: 1. Descripción del reporte. Escribe en comentarios los datos generales del reporte como el nombre del reporte, fecha de elaboración, quién lo elaboró, etcétera. 2. Conexión a la BDD. Crea la conexión a la base de datos de la empresa. 3. Librerías. Define las librerías de funciones externas a utilizar dentro del reporte. 4. Parámetros. Crea la ventana de filtros del reporte.

4.1 Consulta de SQL para crear parámetros. En ocasiones es necesario crear una consulta de SQL para crear la ventana de filtros. 4.2 Crear parámetros. Define la ventana de filtros del reporte.

5. Funciones. Crea las definiciones de las funciones a utilizar en el reporte. 6. Cuerpo. Estructura principal del reporte.

6.1 Columnas. Define cuántas columnas tendrá el reporte y sus tamaños. 6.2 Título. Título del reporte, título de cada columna. 6.3 Crear Consulta principal en SQL. Declara la consulta principal en SQL para extraer la información del reporte. 6.4 Ejecutar la consulta principal de SQL. Se ejecuta la consulta creada en el punto 6.3.

7 Desplegar datos de la consulta. Despliega en pantalla la información de la consulta. Nota: Las instrucciones se verán a detalle conforme se avance en el curso.

Page 11: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-5

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio de un reporte

Editor de reportes de CONTPAQ i®

Introducción El Editor de Reportes es una herramienta que permite crear nuevos reportes o editar los ya

existentes. Para abrir el Editor de reportes:

• En CONTPAQ i® CONTABILIDAD y CONTPAQ i® COMERCIAL ve al menú Reportes opción Editor de Reportes.

Funciones del Editor

A continuación se describen las funciones el Editor de Reportes:

Menú Comando Teclas

rápidas Botón Acción

Archivo Nuevo <Ctrl+ N>

Crea un nuevo reporte.

Archivo Abrir <Ctrl+O>

Abre un reporte existente.

Archivo Guardar <Ctrl+S>

Guarda el RPT que se tiene abierto.

Archivo Guardar Como Permite guardar el archivo RPT con un nombre diferente. Archivo Imprimir

Imprime el código fuente.

Archivo Salir

Sale del editor de reportes.

Edición Deshacer <Ctrl+Z> Deshace el último cambio generado en el código. Edición Rehacer <Ctrl+Y> Rehace el último cambio generado en el código. Edición Cortar <Ctrl+X>

Corta el texto previamente seleccionado.

Edición Copiar <Ctrl+C>

Copia el texto previamente seleccionado.

Edición Pegar <Ctrl+V>

Pega el texto previamente cortado o copiado.

Edición Buscar <Ctrl+F> Buscar un texto dentro del código. Edición Bookmark <Ctrl+B> Agrega una marca en la línea de código actual. Edición Next bookmark <F2> Se desplaza a la siguiente marca dentro del código. Edición Ir a… <Ctrl+L> Permite saltar a una línea de código específica. Generar Generar archivo

RTW

Compila el archivo RPT actual (genera el archivo RTW).

Generar Ejecutar reporte

Ejecuta el reporte actual.

Ayuda Acerca del Editor de Reportes

Muestra información general del Editor de Reportes como la versión.

Page 12: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-6

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio un reporte

Comentarios

Introducción Los comentarios permiten agregar un bloque de texto que será ignorado por el compilador.

De esta manera se pueden describir las instrucciones del código fuente para facilitar la comprensión del mismo. Nota: Dentro del Editor de reportes los comentarios aparecen en color verde claro.

Cómo insertar un comentario

La forma de agregar comentarios en Reporteador es insertando dos diagonales // antes del bloque de texto que se requiere sea ignorado por el compilador. O también es posible comentar un bloque de instrucciones, comenzando con /* y terminando con */.

Comentario Ejemplo

Se puede agregar un comentario al inicio de una línea

// Reporte Catálogo Productos // Elaborado por: Marco Muñoz // Fecha: 23/Mayo/2013

A la derecha de una línea de código

Texto vTotales // Imprime los totales. Imprime

Comentar todo un bloque de instrucciones

/* Reporte Catálogo de productos Elaborado por: Marco Antonio Muñoz Fecha: 23/Mayo/2013 */

Page 13: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-7

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio de un reporte

Instrucción Columnas

Introducción

La instrucción columnas sirve para definir el número y tamaño de columnas que contendrá el reporte. Todo reporte deberá tener esta instrucción a fin de mostrar datos en pantalla; por lo tanto es recomendable que esta instrucción sea la primera en declararse dentro del cuerpo del reporte. Esta instrucción se puede utilizar varias veces dentro del reporte. Por lo que es posible redefinir el tamaño y número de columnas dentro de un mismo reporte. La instrucción aplicará de donde se define en adelante o hasta que se vuelva a definir otra instrucción columnas.

Sintaxis COLUMNAS NumColumnas;Ancho1,Ancho2,…,AnchoN

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

NumColumnas Es el número de columnas del reporte Ancho1 Ancho de la columna 1 en centímetros Ancho2 Ancho de la columna 2 en centímetros AnchoN Ancho de la columna N en centímetros

Ejemplo // Esta instrucción define 4 columnas, la 1ra de 10 cm, la 2da de 2.5 cm, la 3ra de 4 cm, y la

//última de 1 cm. Columnas 4;10,2.5,4,1 ---------- 10 cm ---------- - 2.5 cm - ---- 4 cm -------- 1cm

TAMAÑO DE LAS ÚLTIMAS COLUMNAS Si no especifica el tamaño de todas las columnas se tomará por omisión el tamaño de la última. Ejemplo: Columnas 5;2,3 // La primera columna será de 2 centímetros el resto será de 3 cms. TAMAÑO DE COLUMNAS CONTIGUAS En el caso de tener columnas contiguas del mismo tamaño se podrá utilizar la siguiente sintaxis Ejemplo: Columnas 5;4*2,3 // Las primeras 4 columnas serán de 2 centímetros, la última de 3 cms.

Page 14: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-8

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio un reporte

Variables

Introducción Una variable es un espacio en memoria que se designa para almacenar cualquier valor

temporal.

Aplicación de las variables

Las variables permiten almacenar valores que posteriormente se podrán utilizar para hacer cálculos aritméticos, comparaciones, guardar parámetros de entrada del usuario, etcétera.

Ejemplos

A continuación se muestran algunos ejemplos de la utilización de variables:

Aplicación Ejemplo Guardar datos vNombreCuenta = 'Activo' Cálculos aritméticos vTotal = vSubtotal + vIVA Comparaciones vPeriodoFinal > vPeriodoInicial

NOMENCLATURA EN VARIABLES Las variables pueden llevar cualquier nombre pero se sugiere agregar un prefijo a las variables y a las tablas para su fácil ubicación dentro del código. A continuación se muestran algunas sugerencias.

Dato Nomenclatura Ejemplo Tabla Anteponer una ‘t’ tProductos Variables globales Anteponer una ‘g’ gMoneda Parámetros Anteponer una ‘p’ pIdioma Función Anteponer una ‘f’ fBuscaProductos Variables locales Anteponer una ‘l’ lContador Argumentos Anteponer una ‘a’ aCodigo

Page 15: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-9

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio de un reporte

Asignación de valores a una variable

Introducción

En Reporteador solo hay un tipo de variable en la que es posible almacenar tanto valores de texto como valores numéricos. Es importante hacer la distinción entre un valor de texto y un numérico, ya que al hacer la comparación ambos tendrán que ser del mismo tipo. En el capítulo Funciones se verán las funciones de conversión de texto a numérico y viceversa. Importante: Todos los valores de texto en Reporteador se anotan entre apóstrofes sencillos (‘).

Sintaxis vNombreVariable = Dato

Parámetros

A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a vNombreVariable Nombre de la variable Dato Dato a almacenar, puede ser un dato

numérico, de texto u otra variable.

Ejemplos

A continuación se muestran algunos ejemplos en la asignación de variables:

Tipo de dato Descripción de la variable Texto vNombreCuenta = 'Activo'

Resultado: La variable vNombreCuenta tendrá almacenado el dato de texto ‘Activo’

Numérico vTotalPeriodo = 2300 Resultado: La variable vNombreCuenta tendrá almacenado el dato numérico 2300, con el cuál se podrán realizar operaciones aritméticas

Booleano vImprimeDetalle = True vImprimeDetalle = False Resultado: La variable vImprimeDetalle recibe el valor True (verdadero). También puede asignarse False (falso)

Igualar variables vPeriodoIni = vPeriodoFin Resultado: A la variable vPeriodoIni se le asigna el mismo valor de la variable vPeriodoFin

Concatenar cadenas

Para concatenar cadenas de texto se utiliza &. Ejemplo: vSaludo = 'Hola' vSaludo = vSaludo & 'Mundo'

Page 16: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-10

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio un reporte

Inicialización de una variable

Introducción

En Reporteador no es necesario hacer la declaración de una variable, sin embargo se sugiere inicializarlas antes de utilizarlas; la inicialización se hace en vacío o en 0 dependiendo del uso que le vaya a dar a la misma.

Descripción

A continuación se describe la sintaxis para la inicialización de una variable:

Sintaxis Se refiere a vNombreVariable = 0 Si es valor numérico vNombreVariable = ' ' Si es valor de texto (espacio entre

apóstrofes)

Ejemplos

vNombreProducto = ' '// Se inicializa la variable en vacío ya //que almacenará un dato tipo texto. vTotalPeriodo = 0 // Se inicializa la variable en 0 ya que //almacenará un dato tipo numérico.

Page 17: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-11

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio de un reporte

Constantes

Introducción

Las constantes se definen para hacer referencia con un nombre a un valor numérico, facilitando así la programación.

Sintaxis CONSTANTE NombreConstante NumeroConstante

Descripción

A continuación se describe la sintaxis para la inicialización de una variable:

Sintaxis Se refiere a NombreConstante Nombre con el que se identificará la

constante. NumeroConstante Valor que se asignará a la constante

Ejemplos CONSTANTE PI 3.1416

CONSTANTE MESES 12 CONSTANTE DIAS 7

Page 18: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 1-12

Computación en Acción, S.A. de C.V. Derechos Reservados®

Inicio un reporte

Arreglos de datos

Introducción

En las variables se puede asignar un dato por variable (como se vio anteriormente), o se pueden almacenar varios datos en una misma variable. El número de datos a almacenar por variable dependerá del número de columnas que se hayan declarado. A esta modalidad se le conoce como arreglo de datos.

Sintaxis vNombreVariable[índice] = Dato

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

vNombreVariable Nombre de la variable Índice Número del índice, los índices comienzan

en 0 Dato Dato a almacenar, puede ser un dato

numérico, de texto o booleano.

Ejemplo

// Ejemplo de arreglo de datos // Elaboró: Marco A. Muñoz Columnas 4;2,3,1,2 // Inicializa un reporte con 4 columnas por lo tanto las variables tendrán 4 //índices comenzando del índice 0 al 3. vMiVariable[0] = ‘Total’ // Asigna un valor de texto en la casilla 0 de la variable vMiVariable vMiVariable[1] = ‘Del’ // Asigna un valor de texto en la casilla 1 de la variable vMiVariable vMiVariable[2] = ‘Periodo’ // Asigna un valor de texto en la casilla 2 de la variable vMiVariable vMiVariable[3] = 12 // Asigna un valor numérico en la casilla 3 de la variable vMiVariable En memoria tendrá lo siguiente: 0 1 2 3 vMiVariable

Total Del Periodo 12

SINTAXIS ALTERNA Es posible utilizar la siguiente sintaxis alterna para la asignación de valores a variables: vMiVariable = ‘Total’[c0] // Asigna el texto ‘Total’ en la casilla 0 de la variable.

Page 19: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 2-1

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Salida

Capítulo 2

Instrucciones de Salida

Visión General

Introducción En este capítulo se describen las instrucciones de salida las cuales sirven para mostrar datos

en pantalla.

Objetivos Al término de este capítulo el participante conocerá:

• Cómo desplegar etiquetas y títulos. • Cómo mostrar los valores almacenados en variables. • Cómo desplegar el valor de los registros.

Instrucciones de salida

Las instrucciones de salida que se utilizan en Reporteador son:

• Lista • Texto e Imprime

En este capítulo Este capítulo contiene los siguientes temas:

Tema Página Visión General 2-1 Instrucción Lista 2-2 Instrucciones Texto e Imprime 2-4 Instrucción Imprime 2-6 Laboratorio 1 2-7

Page 20: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 2-2 Computación en Acción, S.A. de C.V.

Derechos Reservados® Instrucciones de Salida

Instrucción Lista

Introducción

La instrucción Lista sirve para mostrar datos en pantalla; pueden ser valores de texto, numéricos o de registros almacenados en la base de datos. Esta función se aconseja utilizarla para mostrar datos extraídos de registros de la base de datos, para desplegar valores numéricos y valores de variables. Después de llamar a la función Lista automáticamente se da un salto a la siguiente línea en pantalla.

Sintaxis A continuación se muestra la sintaxis de la instrucción:

Sintaxis Resultado

Lista ‘Dato1’,’Dato2’,’Dato3’ Despliega datos de texto Lista vMiVariable Despliega los datos almacenados en la

variable vMiVariable

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

‘Dato1,’Dato2’,’Dato3’ El texto ‘Dato1’ aparecerá en la primera columna. ‘Dato2’ en la segunda columna. ‘Dato3’ en la tercera columna.

vMiVariable La variable que contiene los datos a desplegar en pantalla

Ejemplo 1 // Ejemplo de instrucción Lista

// Elaboró: Marco A. Muñoz Columnas 3;2,3,2 Lista 'Código','Nombre','Precio' 0 1 2

Código Nombre Precio

Continúa en la siguiente página

Page 21: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 2-3

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Salida

Instrucción Lista, Continuación

Ejemplo 2

// Ejemplo de instrucción Lista // Elaboró: Marco A. Muñoz Columnas 3;2,3,2 vMiVariable[0] = 'Código' vMiVariable[1] = 'Nombre' vMiVariable[2] = 'Precio' Lista vMiVariable 0 1 2

Código Nombre Precio

Page 22: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 2-4 Computación en Acción, S.A. de C.V.

Derechos Reservados® Instrucciones de Salida

Instrucciones Texto e Imprime

Introducción La instrucción Texto sirve para desplegar un dato en una columna específica. Generalmente

se utiliza para desplegar datos tipo texto, de ahí su nombre. Esta instrucción a diferencia de la instrucción Lista permite asignar los valores a desplegar de las columnas en desorden, por ejemplo: es posible asignar primeramente el valor a desplegar en la columna 3 y después en la 1. La instrucción Imprime muestra en pantalla los datos previamente asignados en cada una de las instrucciones Texto y da un salto a la siguiente línea en pantalla. Importante: Siempre se deberá utilizar la instrucción Imprime después de un grupo de instrucciones Texto, ya que esta instrucción es la que muestra la información en pantalla, si no se incluye esta instrucción no aparecerá nada en pantalla.

Sintaxis 1 Texto C0;’Mensaje en la primera columna’

Texto C1;’Mensaje en la segunda columna’ … Texto CN; ’Mensaje en la N columna’ Imprime

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

C0 La primera columna ‘Mensaje en la primera columna’ El mensaje que se imprimirá en la primera columna C1 La segunda columna ‘Mensaje en la segunda columna’ El mensaje que se imprimirá en la segunda columna CN La columna N ‘Mensaje en la N columna’ El mensaje que se imprimirá en la N columna Imprime Imprime los datos asignados en las instrucciones

Texto

Ejemplo 1 // Ejemplo de instrucción Texto e Imprime

// Elaboró: Marco A. Muñoz Texto C3;12 Texto C1;'Del' Texto C0;'Total' Texto C2;'Periodo' Imprime 0 1 2 3

Total Del Periodo 12

Continúa en la siguiente página

Page 23: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 2-5

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Salida

Instrucciones Texto e Imprime, Continuación

Sintaxis 2 Texto <posicionCentímetros>;’Mensaje’

Imprime

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

<posicionCentímetros> Posición en centímetros dónde comenzará a desplegarse el Mensaje

‘Mensaje’ El mensaje que se imprimirá en pantalla Imprime Imprime el mensaje asignado en la instrucción Texto

Ejemplo 2 // El siguiente ejemplo imprime el mensaje ‘Detalle” a partir del centímetro 10 además el texto

abarcará la totalidad de las columnas de ser necesario. Texto 10;'Detalle' Imprime

Sintaxis 3 Texto ’Mensaje’

Imprime

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

‘Mensaje’ El mensaje que se imprimirá en pantalla, abarcará todas las columnas de ser necesario.

Imprime Imprime el mensaje asignado en la instrucción Texto

Ejemplo 3 //En caso de no especificar el parámetro de la columna se asumirá que el texto abarcará la

//totalidad de las columnas de ese renglón. Esta modalidad generalmente se utiliza en los //títulos del reporte (nombre del reporte, nombre de la empresa, etcétera.)

Texto 'Balance general a 12 periodos detallado' Imprime 0 1 2 3

Balance general a 12 periodos detallado

Alinear texto En la siguiente tabla se muestra cómo alinear el texto:

Sintaxis Descripción

Texto C0;'Mensaje' Alinea el mensaje a la izquierda de la columna Texto C0;'^Mensaje' Centra el mensaje en la columna Texto C0;'"Mensaje' Alinea el mensaje a la derecha de la columna

anteponiendo comillas dobles antes del texto.

Page 24: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 2-6 Computación en Acción, S.A. de C.V.

Derechos Reservados® Instrucciones de Salida

Instrucción Imprime

Introducción Es posible utilizar la instrucción Imprime para mostrar en pantalla los datos de una variable

Sintaxis vVariable[0] = dato0

vVariable[1] = dato1 … vVariable[N] = datoN Imprime vVariable

Ejemplo lRenglon[0] = ‘Código’

lRenglon[1] = ‘Nombre’ lRenglon[2] = ‘Precio’ Imprime lRenglon 0 1 2

Código Nombre Precio

Page 25: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 2-7

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Salida

Laboratorio 1

Introducción En el siguiente laboratorio tomarás como base un reporte de Catálogo Clientes para crear un

Catálogo Productos, adjuntarás un título al mismo así como el título de cada una de las columnas.

Objetivos En el siguiente laboratorio pondrá en práctica:

• El manejo del Editor de reportes. • Compilación y ejecución de reportes. • Manejo de las funciones de salida.

Ejercicio

A continuación se describen los pasos del laboratorio:

Paso Ejercicio 1 Ingresa al Editor de Reportes de CONTPAQ i® COMERCIAL. Para esto, ingresa

al menú Reportes opción Editor de Reportes. 2 Ve al menú Archivo opción Abrir y abre el archivo Base_Lab1. 3 Guarda el archivo con el nombre Productos_Lab1. 4 Modifica el reporte de la siguiente forma:

• Cambia la descripción del reporte indicando que será un reporte de

Catálogo Productos. • Define 3 Columnas de 3, 9 y 3 cm respectivamente. • Pon el título del reporte “CATÁLOGO PRODUCTOS”. • Pon los títulos de las columnas: CÓDIGO, PRODUCTO, PRECIO”.

5 Guarda, compila y ejecuta el reporte.

GUARDAR REPORTES Recuerda que puedes guardar el reporte presionando el icono de la barra de herramientas. COMPILAR REPORTES Recuerda que puedes compilar el reporte presionando el icono de la barra de herramientas. EJECUTAR REPORTES Recuerda que puedes ejecutar el reporte presionando el icono de la barra de herramientas. AGREGAR REPORTES EN EL MENÚ DEL SISTEMA Recuerda que al guardar el reporte en la ruta: <C:\Compac\Empresas\Reportes\<sistema>\Mis Reportes> El reporte aparecerá en el menú Reportes opción Mis Reportes dentro del sistema.

Continúa en la siguiente página

Page 26: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 2-8 Computación en Acción, S.A. de C.V.

Derechos Reservados® Instrucciones de Salida

Laboratorio 1, Continuación

Resultado El reporte deberá quedar como se muestra a continuación:

Page 27: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 3-1

Computación en Acción, S.A. de C.V. Derechos Reservados®

Ciclos y Condiciones

Capítulo 3

Ciclos y Condiciones

Visión General

Introducción En este capítulo verá como hacer ciclos y condicionar la ejecución de instrucciones.

Objetivos Al término de este capítulo conocerá como:

• Repitan una serie de instrucciones dentro de un ciclo. • Condicionar la ejecución de instrucciones.

En este capítulo Este capítulo contiene los siguientes temas:

Tema Página VISIÓN GENERAL 3-1 INSTRUCCIÓN SI 3-2 INSTRUCCIÓN CASO 3-4 INSTRUCCIÓN MIENTRAS 3-5

Page 28: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 3-2 Computación en Acción, S.A. de C.V.

Derechos Reservados® Ciclos y Condiciones

Instrucción Si

Instrucción Con esta instrucción podrá condicionar la ejecución de otras instrucciones, de tal manera, que

si la primera condición no se cumple, podrá pasar a otra condición.

Sintaxis Si <condición>

// Instrucciones que se ejecutarán si la condición es verdadera Sino // Instrucciones que se ejecutarán si la condición es falsa FinSi

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

<condición> El resultado de una comparación, los valores posibles son verdadero o falso. Si es verdadero se ejecutan las instrucciones dentro del bloque comprendido entre Si…Sino. Si la condición es falsa se ejecutarán las instrucciones comprendidas dentro del bloque entre Sino… FinSi

Comparadores Los posibles comparadores que es posible utilizar en las condiciones son los siguientes:

Comparador Ejemplo Descripción

= a = b Compara si “a” es igual que “b” != a != b Compara si “a” es diferente que “b” ! !a Compara si no es “a” > a > b Compara si “a” es mayor que “b” < a < b Compara si “a” es menor que “b”

>= a >= b Compara si “a” es mayor o igual que “b” <= a <= b Compara si “a” es menor o igual que “b”

Operadores lógicos

Los posibles comparadores que es posible utilizar en las condiciones son los siguientes:

Operador Ejemplo Descripción Y (a > b) Y (a < c) Compara si “a” es mayor que “b” Y

si “a” es menor que “c” O (a > b) O (a < c) Compara si “a” es mayor que “b” O

si “a” es menor que “c”

Continúa en la siguiente página

Page 29: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 3-3

Computación en Acción, S.A. de C.V. Derechos Reservados®

Ciclos y Condiciones

Instrucción Si, Continuación

Ejemplo // Ejemplo 1 de una condición.

Si vEdad >= 18 Lista ‘Mayor de edad’ SiNo Lista ‘Menor de edad’ FinSi // Ejemplo 2. Es posible prescindir del “Sino” y utilizar únicamente el bloque Si...FinSi Si vImprime = True // Imprime datos FinSi

SOLO CONDICIÓN VERDADERA Es posible utilizar la instrucción Si...FinSi, excluyendo el bloque Sino. Ejemplo: // Si la condición se cumple se ejecutan las instrucciones de la condición, si no se cumplen no se ejecutan. Si vEdad >= 18 Lista ‘Mayor de Edad’ FinSi

Page 30: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 3-4 Computación en Acción, S.A. de C.V.

Derechos Reservados® Ciclos y Condiciones

Instrucción Caso

Instrucción Con esta instrucción podrá condicionar la ejecución de instrucciones dependiendo del valor

de una variable.

Sintaxis Escoge vOpcion

Caso <Valor1> // Instrucciones que se ejecutarán si la variable vOpcion = <Valor1> FinCaso Caso <Valor2> // Instrucciones que se ejecutarán si la variable vOpcion = <Valor1> FinCaso Caso <ValorN> // Instrucciones que se ejecutarán si la variable vOpcion = <ValorN> FinCaso FinEscoge

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

vOpcion La variable que se evaluará en los casos. <Valor1> Caso si la variable vOpcion = Valor1 <Valor2> Caso si la variable vOpcion = Valor2 <ValorN> Caso si la variable vOpcion = ValorN

Ejemplo // Ejemplo de caso.

// Elaboró: Marco A. Muñoz Escoge vPais Caso ‘México’ VNacionalidad = ‘mexicano’ FinCaso Caso ‘Estados Unidos’ VNacionalidad = ‘estadounidense’ FinCaso Caso ‘Francia’ VNacionalidad = ‘francés’ FinCaso FinEscoge

Page 31: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 3-5

Computación en Acción, S.A. de C.V. Derechos Reservados®

Ciclos y Condiciones

Instrucción Mientras

Introducción Cuando necesite que algunas instrucciones sean ejecutadas hasta que encuentre el dato que

cumpla con una condición dada, podrá utilizar la instrucción Mientras. En esta instrucción la condición se evalúa antes de ejecutarse el ciclo.

Sintaxis Mientras <condición>

// instrucciones a repetir mientras la condición sea verdadera FinMientras

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

<condición> El resultado de una comparación, los valores posibles son verdadero o falso. Si es verdadero se ejecutan las instrucciones dentro del ciclo, cuando la condición es falsa sale del ciclo, y continúa con la ejecución de la siguiente instrucción.

Comparadores Los posibles comparadores que es posible utilizar en las condiciones son los siguientes:

Comparador Ejemplo Descripción

= a = b Compara si “a” es igual que “b” != a != b Compara si “a” es diferente que “b” ! !a Compara si no es igual a “a” > a > b Compara si “a” es mayor que “b” < a < b Compara si “a” es menor que “b”

>= a >= b Compara si “a” es mayor o igual que “b” <= a <= b Compara si “a” es menor o igual que “b”

Operadores lógicos

Los posibles comparadores que es posible utilizar en las condiciones son los siguientes:

Operador Ejemplo Descripción Y (a > b) Y (a < c) Compara si “a” es mayor que “b” Y

si “a” es menor que “c” O (a > b) O (a < c) Compara si “a” es mayor que “b” O

si “a” es menor que “c”

Ejemplo // Ejemplo de un ciclo mientras.

// Elaboró: Marco A. Muñoz // Este ejemplo mostrará en pantalla el valor de la variable vContador desde 1 hasta 5 vContador = 1 Mientras vContador <= 5 Lista vContador vContador = vContador + 1 FinMientras

Continúa en la siguiente página

Page 32: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 3-6 Computación en Acción, S.A. de C.V.

Derechos Reservados® Ciclos y Condiciones

Instrucción Mientras, Continuación

Continua La instrucción Continua se utiliza dentro de un Mientras combinado con una Condición Si,

si la condición se cumple ya no se ejecuta el resto de las instrucciones dentro del ciclo Mientras. Se puede utilizar para discriminar registros y ya no ejecutar el resto de las instrucciones del ciclo.

Sintaxis Mientras <condición 1>

// instrucciones a repetir mientras la condición 1 sea verdadera Si <condición 2> // instrucciones a ejecutar si se cumple la condición 2 Continua FinSi // instrucciones a repetir mientras la condición 2 sea falsa FinMientras

Ejemplo En el siguiente ciclo se recorren todos los documentos y se verifica con una condición si el

saldo de los documentos es menor a 0.01, si esta condición es cierta ya no se ejecuta el resto de instrucciones del ciclo y continua ejecutándose el ciclo desde el inicio. Mientras tDocumentos->Encontro // Se verifica para no imprimir documentos saldados. Si gSaldoDocto < 0.01 tDocumentos.Busca Siguiente Continua Finsi // Resto de instrucciones del ciclo FinMientras

Page 33: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 4-1

Computación en Acción, S.A. de C.V. Derechos Reservados®

Acceso a las Bases de Datos

Capítulo 4

Acceso a las Bases de Datos

Visión General

Introducción En este capítulo se describe el proceso de conexión a la base de datos de la empresa con el

fin de extraer información almacenada en el sistema.

Objetivos Al término de este capítulo conocerá como:

• Hacer la conexión a la empresa. • Abrir una tabla de la base de datos de la empresa. • Hacer búsquedas de registros en tablas.

En este capítulo Este capítulo contiene los siguientes temas:

Tema Página VISIÓN GENERAL 4-1 CONEXIÓN A LA BASE DE DATOS 4-2 CONSULTAS DE SQL 4-4 LABORATORIO 2 4-7

Page 34: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 4-2

Computación en Acción, S.A. de C.V. Derechos Reservados®

Acceso a las Bases de Datos

Conexión a la Base de Datos

Introducción La conexión a las bases de datos se realiza de dos formas dependiendo el sistema que se

utilizará.

Sistema Instrucción CONTPAQ i® CONTABILIDAD UsaEmpresa CONTPAQ i® BANCOS UsaEmpresa CONTPAQ i® NÓMINAS Conexion CONTPAQ i® COMERCIAL Conexion

Enseguida se muestran ejemplos de conexión en cada sistema:

CONTPAQ i® CONTABILIDAD

// La siguiente línea establece una conexión a la empresa //activa de CONTPAQ i® CONTABILIDAD: UsaEmpresa tEmpresa;'contpaqw1.00'

CONTPAQ i® BANCOS

// La siguiente línea establece una conexión a la empresa //activa de CONTPAQ i® BANCOS: UsaEmpresa tEmpresa;'contpaqw1.00'

CONTPAQ i® NÓMINAS

// Las siguientes líneas establecen una conexión a la empresa //activa de CONTPAQ i® NÓMINAS. Para este sistema se requieren //2 conexiones: la primera es a las tablas de la empresa y la //segunda a las tablas generales. // Se establece una conexión a las tablas de la empresa Conexion conexionNomipaq = Conexion.crear('jdbc:jtds:sqlserver://' & @parametroConsola('Servidor') & '/'& @parametroConsola('NombreEmpresa') &';instance='& @parametroConsola('Instancia'),@parametroConsola('NombreUsuario'),@parametroConsola('Clave')) // Se establece una conexión a las tablas generales Conexion conexionNomipaq2 = Conexion.crear('jdbc:jtds:sqlserver://' & @parametroConsola('Servidor') & '/nomGenerales;instance='& @parametroConsola('Instancia'),@parametroConsola('NombreUsuario'),@parametroConsola('Clave'))

Continúa en la siguiente página

Page 35: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 4-3

Computación en Acción, S.A. de C.V. Derechos Reservados®

Acceso a las Bases de Datos

Conexión a la Base de Datos, Continuación

CONTPAQ i® COMERCIAL (Sistema)

// El siguiente ejemplo establece una conexión a la base de //datos de una empresa de CONTPAQ i COMERCIAL. // Este código se utiliza con los reportes que ya se incluyen //en el sistema. gServidor = @parametroConsola('Servidor') gInstancia = @parametroConsola('Instancia') gUsuarioSQL = @parametroConsola('NombreUsuario') gClaveSQL = @parametroConsola('Clave') Conexion tEmpresa = Conexion.crear('jdbc:jtds:sqlserver:' & gServidor & ';instance=' & gInstancia,gUsuarioSQL,gClaveSQL)

CONTPAQ i® COMERCIAL (Editor)

// El siguiente ejemplo establece una conexión a la base de //datos de una empresa de CONTPAQ i COMERCIAL. // Este código se utiliza con los reportes que se están //probando en el Editor de reportes, se pasan los parámetros //de forma manual: Nombre del servidor, Instancia, Usuario de //SQL y Contraseña de SQL. gServidor = '//localhost/adROJA' gInstancia = 'COMPAC' gUsuarioSQL = 'sa' gClaveSQL = 'COMPAC' Conexion tEmpresa = Conexion.crear('jdbc:jtds:sqlserver:' & gServidor & ';instance=' & gInstancia,gUsuarioSQL,gClaveSQL)

Page 36: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 4-4

Computación en Acción, S.A. de C.V. Derechos Reservados®

Acceso a las Bases de Datos

Consultas de SQL

Introducción La instrucción consulta ejecuta una sentencia de SQL y regersa el valor en una tabla

temporal.

Sintaxis vConsulta = ‘ConsultaSQL’

Consulta tMiConsulta = tEmpresa[vConsulta] Mientras tMiConsulta->Encontro Lista tTabla(‘Campo’) tMiConsulta.Busca Siguiente FinMientras

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

vConsulta Variable donde se guardará la sentencia SELECT de SQL. ‘ConsultaSQL’ Sentencia SELECT de SQL. tMiConsulta Variable tabla donde se almacenará el resultado de la

consulta. tEmpresa Variable empresa utilizda en la instrucción Conexion. Mientras tMiConsulta->Encontro FinMientras

Este ciclo repite el grupo de instrucciones comprendidas entre “Mientras y FinMientras” por cada uno de los registros de la consulta.

tTabla(‘Campo’) Imprime el campo del registro actual. Al realizar consultas de este tipo, los campos del resultado de la consulta se escribirán entre apóstrofes.

tMiConsulta.Busca Siguiente

Esta instrucción salta al siguiente registro de la consulta.

Ejemplo // Se asigna la consulta de SQL en la variable qProductos

qProductos = 'SELECT cCodigoProducto, cNombreProducto, cPrecio1 FROM admProductos' // Se ejecuta la consulta almacenada en la variable qProductos //el resultado se almacena en tMiConsulta Consulta tMiConsulta = tEmpresa[qProductos] // Se despliegan los datos de la consulta, nota que los //nombres de los campos van entre //apóstrofes Mientras tMiConsulta->Encontro // Se despliegan los campos del registro actual en //pantalla Lista tMiConsulta('cCodigoProducto'), tMiConsulta('cNombreProducto'), tMiConsulta('cPrecio1') // Se salta al siguiente registro tMiConsulta.Busca Siguiente FinMientras

Continúa en la siguiente página

Page 37: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 4-5

Computación en Acción, S.A. de C.V. Derechos Reservados®

Acceso a las Bases de Datos

Consultas de SQL, Continuación

Crear la consulta en el SQL

Se recomienda crear primero la consulta en el SQL Server Management Studio, probar que funcione correctamente aquí y después copiar la consulta al reporteador.

Copiar consulta a reporteador

Después de haber creado la consulta en SQL Server Management Studio para copiarla utiliza una variable en reporteador y ve concatenándole cada renglón teniendo en cuenta lo siguiente:

• Crea una variable donde se guardará la consulta. • Concatena a esta variable cada renglón de la consulta. • Cada renglón de la consulta deberá ir entre apóstrofes. • Deja un espacio en blanco al final de cada renglón antes del apóstrofe. • Si en la consulta de SQL existe un apóstrofe ‘, en reporteador se deberá escribir

como \’.

Ejemplo de copiado de consulta SQL

Ejemplo de código en SQL: SELECT cCodigoProducto, cNombreProducto, cPrecio1, cPrecio2, cPrecio3, cPrecio4, cPrecio5, cPrecio6, cPrecio7, cPrecio8, cPrecio9, cPrecio10 FROM admProductos Al copiar el código de SQL a Reporteador quedará así: qMiConsulta = ‘SELECT cCodigoProducto, cNombreProducto, ‘ qMiConsulta = qMiConsulta & ‘cPrecio1, cPrecio2, cPrecio3, cPrecio4, ‘ qMiConsulta = qMiConsulta & ‘cPrecio5, cPrecio6, cPrecio7, cPrecio8, ‘ qMiConsulta = qMiConsulta & ‘cPrecio9, cPrecio10 ‘ qMiConsulta = qMiConsulta & ‘FROM admProductos ‘

Continúa en la siguiente página

Deja un espacio en blanco antes de cerrar el apóstrofe

En la variable qMiConsulta se irá concatenando cada renglón de la consulta

Copia cada renglón entre apóstrofes

Page 38: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 4-6

Computación en Acción, S.A. de C.V. Derechos Reservados®

Acceso a las Bases de Datos

Consultas de SQL, Continuación

Apóstrofe en consultas

Si en la consulta de SQL existe un apóstrofe ‘, en reporteador se deberá escribir como \’. Ejemplo: En la siguiente consulta se muestran diferentes casos dependiendo el tipo de cliente: 1=Cliente, 2=Cliente-Proveedor, 3=Proveedor. Consulta en SQL: SELECT CRAZONSOCIAL, CASE WHEN CTIPOCLIENTE=1 THEN 'Cliente' WHEN CTIPOCLIENTE=2 THEN 'Cliente-Proveedor' WHEN CTIPOCLIENTE=3 THEN 'Proveedor' END AS TIPO FROM admClientes Consulta en Reporteador: qProductos = 'SELECT CRAZONSOCIAL, CASE WHEN CTIPOCLIENTE=1 ' qProductos = qProductos & 'THEN \'Cliente\' ' qProductos = qProductos & 'WHEN CTIPOCLIENTE=2 ' qProductos = qProductos & 'THEN \'Cliente-Proveedor\' ' qProductos = qProductos & 'WHEN CTIPOCLIENTE=3 ' qProductos = qProductos & 'THEN \'Proveedor\' ' qProductos = qProductos & 'END AS TIPO ' qProductos = qProductos & 'FROM admClientes '

Page 39: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 4-7

Computación en Acción, S.A. de C.V. Derechos Reservados®

Acceso a las Bases de Datos

Laboratorio 2

Introducción En el siguiente laboratorio se creará la conexión a la base de datos y una consulta a la tabla

Productos.

Objetivos En el siguiente laboratorio se pone en práctica como:

• Hacer una conexión a una empresa de CONTPAQ i® COMERCIAL. • Hacer una consulta de SQL. • Desplegar cada uno de los registros de la consulta de SQL.

Ejercicio

A continuación se muestran los pasos para realizar el laboratorio:

Paso Ejercicio 1 Abre el archivo Base_Lab2 y guardálo como Productos_Lab2. 2 En la sección 2. Conexión a la BDD haz lo siguiente:

• Quita los comentarios del código que hace la conexión a la BDD. • Modifica los parámetros (servidor, instancia, usuario, clave) para que

coincidan con los de tu pc. 3 En la sección 6. Consulta SQL haz lo siguiente:

• Quita los comentarios de la línea donde se crea la consulta. • Modifica la consulta para que extraiga el Código, Nombre y Precio 1 de la

tabla Productos. 4 En la sección 7. Desplegar datos de la consulta haz lo siguiente:

• Quita los comentarios del ciclo Mientras. • Modifica el código para que despliegue los campos Código, Nombre y

Precio 1 de la tabla Productos. 5 Guarda, compila y ejecuta el reporte.

Resultado El reporte deberá quedar como se muestra a continuación:

Page 40: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte
Page 41: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-1

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Capítulo 5

Instrucciones de Entrada

Visión General

Introducción En este capítulo se describen las instrucciones que permiten pedir datos al usuario.

Objetivos Al término de este capítulo conocerás:

• La forma de crear una ventana de filtros. • Los diferentes controles que se pueden incluir en la ventana de filtros.

En este capítulo Este capítulo contiene los siguientes temas:

Tema Página VISIÓN GENERAL 5-1 INSTRUCCIÓN PARAMETROS 5-2 INSTRUCCIÓN CONTROL 5-4 CONTROL CTRLCODIGO 5-5 CONTROL CTRLCHECKBOX 5-7 CONTROL CTRLCODIGONUMERO 5-9 CONTROL CTRLFECHA 5-11 CONTROL CTRLLISTA 5-13 CONTROL CTRLRADIO 5-15 CONTROL CTRLNUMERO 5-17 CONTROL CTRLOPCION 5-19 CONTROL CTRLREAL 5-21 CONTROL CTRLVACIO 5-23 CONTROL CTRLTEXTO 5-25 PARÁMETRO DEPENDENCIA 5-27 LABORATORIO 3 5-30

Page 42: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-2

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Instrucción Parametros

Introducción

Esta instrucción permite configurar la ventana Filtros que aparecerá antes de ejecutar el reporte. Toma en cuenta que los filtros:

• Aparecerán en pares (de dos en dos). • Pueden acomodarse por hojas que se visualizarán en la ventana como pestañas y

cada pestaña puede tener su propio título. • Para conservar un acomodo estético se puede utilizar un parámetro vacío cuando

quiera que el filtro aparezca solo. • Pueden tener mensajes de ayuda que retroalimenten al usuario del reporte. • Pueden incluir código para validar que la información que captura o selecciona el

usuario cumpla con alguna regla y darle retroalimentación al usuario con un mensaje de alerta. Por ejemplo, validar cierta información para habilitar, o no, otro filtro.

• En ocasiones se utilizan consultas de SQL para leer el primer y último registro de un catálogo y mostrarlos por omisión en los filtros.

Sintaxis Parametros

Titulo <Titulo de la ventana de parámetros> Pagina <Titulo de la pestaña de la página> Parametro pParametroReceptor = <valor por omisión> Captura Titulo <Título del parámetro> Ayuda <Mensaje de ayuda> Control <Nombre control> <Parámetros del control> FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

<Titulo de la ventana de parámetros> El título que aparecerá en la ventana de filtros. <Titulo de la pestaña de la página> El título de la pestaña de filtros. PParametroReceptor Nombre de la variable que recibirá el parámetro

seleccionado por el usuario. <valor por omisión> El valor que aparece por omisión en la ventana

filtros. <Título del parámetro> Nombre de la etiqueta que identifica al parámetro.

Es posible agregar un acceso rápido si se antepone un & a una letra del título y accederlo presionando las teclas <ALT + la letra>. Ejemplo: &Diario Se tendrá acceso presionando <ALT + D>

<Mensaje de ayuda> Mensaje que aparecerá al posicionarse en el campo del parámetro.

<Nombre control> Control a utilizar para el parámetro (vea instrucción control).

<Parámetros del control> Parámetros propios del control (vea instrucción control).

Continúa en la siguiente página

Page 43: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-3

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Instrucción Parametros, Continuación

Ejemplo // Ejemplo del uso de la instrucción parámetros

// Elaboró: Marco A. Muñoz Parametros Titulo 'Configuración de Tipos de Cambio ' Pagina 'Principal' Parametro pTipoCambio = 11 Captura Titulo 'Tipo de Cambio' Ayuda 'Seleccione el tipo de cambio' Control CtrlReal Decimales 4 FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Es posible ampliar el tamaño de la ventana Parámetros dejando espacios en el Título del primer control.

Page 44: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-4

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Instrucción Control

Introducción

Esta instrucción permite definir un control para aceptar un dato de entrada, dentro de la función parámetros.

Lista de controles

A continuación se muestra la lista de controles:

Nombre del control Descripción del control CtrlCheckbox Muestra una casilla que puede marcarse o desmarcarse, según

convenga. CtrlCodigo Muestra campos de código, respetando la mascarilla de la

cuenta, acompañados del botón <F3> que permite realizar búsquedas.

CtrlCodigoNumero Muestra campos de código con formato numérico, acompañados del botón <F3> que permite realizar búsquedas.

CtrlFecha Muestra campos con formato fecha, acompañados con un botón de despliegue de un calendario.

CtrlLista Muestra una lista de selección con los valores específicos en ella.

CtrlNumero Muestra un campo numérico con un control que permite aumentar o disminuir la cantidad, o bien, capturarla directamente.

CtrlOpcion Permite seleccionar uno o más elementos del apartado de la izquierda al enviarlos al apartado de la derecha.

CtrlRadio Muestra dos o más casillas de opción única. CtrlReal Permite la captura de un número real. Por omisión muestra 4

decimales. CtrlVacio Deja en blanco el espacio destinado a uno de los filtros de la

ventana para darle un mejor acomodo a los filtros. CtrlTexto Muestra una caja de texto para permitir capturar una cadena de

texto.

Page 45: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-5

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlCodigo

Introducción Muestra campos de código, respetando la mascarilla de la cuenta, acompañados del botón

<F3> que permite realizar búsquedas.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pCodigo1 = ‘00000000000’ Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control CtrlCodigo Mascarilla;’Tabla’;’CampoF3’ Valida <=;pCodigo2; <’Mensaje de error de validación’> FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

pCodigo1 Esta variable será la que recibirá el código 1 de la cuenta seleccionada por el usuario

‘00000000000’ Valor por omisión Valida Instrucción para validar la cuenta seleccionada por el usuario. PCodigo2 Parámetro contra el que se comparará el parámetro pCodigo1 Mascarilla Mascarilla a mostrar. ‘Tabla’ Nombre de la tabla de dónde se extraerá el código. ‘CampoF3’ Campo a desplegar en la ventana además del código.

Ejemplo // Ejemplo de Control CtrlCodigo

// Elaboró: Marco A. Muñoz Consulta tDelProducto = tEmpresa ['SELECT cCodigoProducto, cNombreProducto FROM admProductos WHERE cIdProducto <> 0 ORDER BY cCodigoProducto'] Consulta tAlProducto = tEmpresa ['SELECT cCodigoProducto, cNombreProducto FROM admProductos WHERE cIdProducto <> 0 ORDER BY cCodigoProducto'] Consulta tAlProductoFinal = tEmpresa ['SELECT TOP 1 cCodigoProducto FROM admProductos WHERE cIdProducto <> 0 ORDER BY cCodigoProducto DESC']

Continúa en la siguiente página

Page 46: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-6

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlCodigo, Continuación

Ejemplo (Continúa)

Parametros Titulo 'Listado de Productos, Paquetes, Servicios' Pagina '&1 Principal' Parametro pProductoInicial = tDelProducto('cCodigoProducto') Captura Titulo 'Artículo Inicial:' Ayuda 'Seleccione el Producto, Servicio o Paquete Inicial:' Control CtrlCodigo '30';'Código';'Nombre del Producto' Datos Origen tDelProducto('cNombreProducto');tDelProducto('cCodigoProducto') FinDatos Valida <=; pProductoFinal; 'El código del artículo inicial debe ser menor que el final' FinCaptura Parametro pProductoFinal = tAlProductoFinal('cCodigoProducto') Captura Titulo 'Artículo Final:' Ayuda 'Seleccione el Producto, Servicio o Paquete Final' Control CtrlCodigo '30';'Código';'Nombre del Producto' Datos Origen tAlProducto('cNombreProducto');tAlProducto('cCodigoProducto') FinDatos Valida >=; pProductoInicial; 'El código del artículo final debe ser mayor que el inicial' FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 47: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-7

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlCheckbox

Introducción Este control muestra una casilla que puede marcarse o desmarcarse según convenga.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pParametroReceptor = <booleano> Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control CtrlCheckBox FinCaptura FinPagina FinParametros

Parámetros A continuación se lista la descripción de los parámetros:

Parámetro Se refiere a

pParametroReceptor Esta variable será la que recibirá el valor seleccionado por el usuario y puede ser cualquiera de los siguientes:

Marca Valor de la variable Casilla desmarcada 0 Casilla marcada 1

<booleano> Este dato puede tener los siguientes valores:

Valores posibles Resultado True Marca la casilla por omisión False Desmarca la casilla por

omisión Puede ser un valor booleano regresado por una función.

Continúa en la siguiente página

Page 48: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-8

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlCheckbox, Continuación

Ejemplo // Ejemplo del uso del control CtrlCheckBox

// Elaboró: Marco A. Muñoz Columnas 4;2,3,1,3 Usaempresa tEmpresa;'Contpaq i' Parametros Titulo 'Filtro Parámetros' Pagina 'Principal' Parametro pDetalle = false Captura Titulo 'Imprimir detalle' Ayuda 'Selecciona si el reporte es detallado o no' Control CtrlCheckBox FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 49: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-9

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlCodigoNumero

Introducción Muestra campos de código, con formato numérico, acompañados del botón <F3> que permite

realizar búsquedas.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pNumero1 = <Numero> Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control CtrlCodigoNumero <Mascarilla>;<Tabla>;<busca por> Valida <=;pNumero2; <’Mensaje de error de validación’> FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

pNumero1 Esta variable será la que recibirá el código 1 de la cuenta seleccionada por el usuario

<Numero> Valor por omisión Valida Instrucción para validar la entrada seleccionada por el usuario. PNumero2 Parámetro contra el que se comparará el parámetro pNumero1 <Mascarilla> Mascarilla de la cadena. <Tabla> Nombre de la tabla a abrir <Busca por> Nombre del campo por medio del cual se realizará la búsqueda

Continúa en la siguiente página

Page 50: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-10

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlCodigoNumero, Continuación

Ejemplo // Ejemplo de Control CtrlCodigoNumero

// Elaboró: Marco A. Muñoz Columnas 4;2,3,1,3 usaempresa tEmpresa;'Contpaq i' Parametros Titulo 'Titulo Parámetros' Pagina 'Principal' Parametro pDiarioDel = ' 1' Captura Titulo 'Diario &inicial' Ayuda 'Selecciona el diario inicial a imprimir' Control CtrlCodigoNumero '10';'DiariosEspeciales';'Nombre' Valida <=;pDiarioAl;'No puede ser mayor que el rango final' FinCaptura Parametro pDiarioAl = ' 10' Captura Titulo 'Diario &final' Ayuda 'Selecciona el diario final a imprimir' Control CtrlCodigoNumero '10';'DiariosEspeciales';'Nombre' Valida >=;pDiarioDel;'No puede ser menor que el rango inicial' FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 51: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-11

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlFecha

Introducción Muestra campos con formato fecha, acompañados con un botón de despliegue de un

calendario. Mostrará el formato de la fecha conforme a lo establecido en la Redefinición de la Empresa.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pFecha1 = ‘aaaammdd’ Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control CtrlFecha Valida <=;pFecha2; <’Mensaje de error de validación’> FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

pFecha1 Esta variable será la que recibirá la fecha seleccionada por el usuario ‘aaaammdd’ Fecha en formato aaaammdd Valida Instrucción para validar la entrada seleccionada por el usuario. PFecha2 Fecha contra la que se compara el parámetro pFecha1

Continúa en la siguiente página

Page 52: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-12

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlFecha, Continuación

Ejemplo // Ejemplo de control de fechas CtrlFecha

// Elaboró: Marco A. Muñoz Columnas 4;2,3,1,3 usaempresa tEmpresa;'Contpaq i' Parametros Titulo 'Titulo Parámetros' Pagina 'Principal' Parametro pFechaIni = '20060101' Captura Titulo 'Fecha &inicial' Ayuda 'Selecciona la fecha inicial' Control CtrlFecha Valida <=;pFechaFin;'No puede ser mayor que la fecha final' FinCaptura Parametro pFechaFin = '20061231' Captura Titulo 'Fecha &final' Ayuda 'Selecciona la fecha final' Control CtrlFecha Valida >=;pFechaIni;'No puede ser menor que la fecha inicial' FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 53: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-13

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlLista

Introducción Muestra una lista de selección con los valores especificados en ella.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pParametro = <Valor por omisión> Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control CtrlLista Datos ‘Dato1’;<Valor1>;’Dato2’,<Valor2>;…,’DatoN’,<ValorN> FinDatos FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

pParametro Esta variable será la que recibirá el elemento de la lista seleccionado por el usuario.

Dato1 Texto del primer valor de la lista <Valor1> Valor que se asignará a pParametro si se selecciona la opción ‘Dato1’ de la

lista Dato2 Texto del segundo valor de la lista <Valor2> Valor que se asignará a pParametro si se selecciona la opción ‘Dato2’ de la

lista DatoN Texto del N valor de la lista <ValorN> Valor que se asignará a pParametro si se selecciona la opción ‘DatoN’ de

la lista

Continúa en la siguiente página

Page 54: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-14

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlLista, Continuación

Ejemplo // Ejemplo de control lista CtrlLista

// Elaboró: Marco A. Muñoz UsaEmpresa tEmpresa;'Contpaq i' UsaTabla tEjercicios = tEmpresa['Ejercicios'] Parametros Titulo 'Titulo Parámetros' Pagina 'Principal' Parametro pIdEjercicio = 0 Captura Titulo 'Ejercicio' Ayuda 'Seleccione el ejercicio' Default tEmpresa->IdEjercicioActual Control CtrlLista Datos Origen tEjercicios(Ejercicio);tEjercicios(Id) FinDatos FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 55: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-15

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlRadio

Introducción Muestra dos o más casillas de opción única.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pParametro = <Valor por omisión> Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control CtrlRadio Datos ‘Dato1’;<Valor1>;’Dato2’,<Valor2>;…,’DatoN’,<ValorN> FinDatos FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

pParametro Variable donde se almacenará el valor del dato seleccionado. Dato1 Texto del primer valor de la lista <Valor1> Valor que se asignará a pParametro si se selecciona la opción ‘Dato1’

de la lista Dato2 Texto del segundo valor de la lista <Valor2> Valor que se asignará a pParametro si se selecciona la opción ‘Dato2’

de la lista DatoN Texto del N valor de la lista <ValorN> Valor que se asignará a pParametro si se selecciona la opción ‘DatoN’

de la lista

Continúa en la siguiente página

Page 56: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-16

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlRadio, Continuación

Ejemplo // Ejemplo de control de radio CtrlRadio

// Elaboró: Marco A. Muñoz Columnas 4;2,3,1,3 usaempresa tEmpresa;'Contpaq i' Parametros Titulo 'Titulo Parámetros' Pagina 'Principal' Parametro pOrden = 0 Captura Titulo 'Ordenar por' Ayuda 'Selecciona el orden de impresión' Control CtrlRadio Datos 'Código de Cuenta';1;'Nombre de Cuenta';2 FinDatos FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 57: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-17

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlNumero

Introducción Muestra un campo numérico entero con un control que permite aumentar o disminuir la

cantidad, o bien, capturarla directamente.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pNumero1 = <Valor por omisión> Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control CtrlNumero Valida <= ; pNumero2 ; <’Mensaje de error de validación’> FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

pNumero1 Esta variable será la que recibirá el número seleccionado por el usuario.

Continúa en la siguiente página

Page 58: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-18

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlNumero, Continuación

Ejemplo // Ejemplo de control número CtrlNumero

// Elaboró: Marco A. Muñoz Columnas 4;2,3,1,3 usaempresa tEmpresa;'Contpaq i' Parametros Titulo 'Titulo Parámetros' Pagina 'Principal' Parametro pNivelDel = 1 Captura Titulo 'Nivel &del' Ayuda 'Selecciona el nivel inicial' Control CtrlNumero Rango 1,10 CambiaAlSalir pNivelAl = pNivelDel Valida <=;pNivelAl; 'No puede ser mayor que el rango final' FinCaptura Parametro pNivelAl = 1 Captura Titulo 'Nivel &al' Ayuda 'Selecciona el nivel final' Control CtrlNumero Rango 1,10 Valida >=;pNivelDel; 'No puede ser menor que el rango inicial' FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 59: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-19

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlOpcion

Introducción Permite seleccionar uno o más elementos del apartado de la izquierda al enviarlos al

apartado de la derecha.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pListaSeleccionada = <Valor por omisión> Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control CtrlOpcion Datos ‘Dato1’;<Valor1>;’Dato2’,<Valor2>;…,’DatoN’,<ValorN> FinDatos FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

pListaSeleccionada Variable donde se almacenará la lista de opciones seleccionada. Dato1 Texto del primer valor de la lista <Valor1> Valor que se asignará a pParametro si se selecciona la opción

‘Dato1’ de la lista Dato2 Texto del segundo valor de la lista <Valor2> Valor que se asignará a pParametro si se selecciona la opción

‘Dato2’ de la lista DatoN Texto del N valor de la lista <ValorN> Valor que se asignará a pParametro si se selecciona la opción

‘DatoN’ de la lista

Continúa en la siguiente página

Page 60: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-20

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlOpcion, Continuación

Ejemplo // Ejemplo de control de opciones CtrlOpcion

// Elaboró: Marco A. Muñoz Columnas 4;2,3,1,3 usaempresa tEmpresa;'Contpaq i' Parametros Titulo 'Titulo Parámetros' Pagina 'Principal' Parametro pTipoPolizas = 0 Captura Titulo 'Tipos de pólizas' Ayuda 'Selecciona los tipos de pólizas' Control CtrlOpcion Datos 'Diario';0;'Ingresos';1;'Egresos';2;'Orden';3 FinDatos FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 61: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-21

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlReal

Introducción Permite la captura de un número real.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pParametro = <Valor por omisión> Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control CtrlReal Decimales <Número de decimales> FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

pParametro Variable donde se almacenará el número real. <Número de decimales> Número de decimales que tendrá el parámetro

Continúa en la siguiente página

Page 62: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-22

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlReal, Continuación

Ejemplo // Ejemplo de control de reales ctrlReal

// Elaboró: Marco A. Muñoz Columnas 1;4 UsaEmpresa tEmpresa;'Contpaq i' Parametros Titulo 'Configuración de Tipos de Cambio' Pagina 'Principal' Parametro pTipoCambio = 11 Captura Titulo 'Tipo de Cambio' Ayuda 'Seleccione el tipo de cambio' Control CtrlReal Decimales 4 FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 63: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-23

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlVacio

Introducción Deja en blanco el espacio destinado a uno de los filtros de la ventana para darle mejor

acomodo a los filtros.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro vacio = 0 Captura Control CtrlVacio FinCaptura FinPagina FinParametros

Continúa en la siguiente página

Page 64: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-24

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlVacio, Continuación

Ejemplo // Ejemplo de control vacío ctrlVacio

// Elaboró: Marco A. Muñoz Columnas 1;4 UsaEmpresa tEmpresa;'Contpaq i' Parametros Titulo 'Configuración de Tipos de Cambio' Pagina 'Principal' Parametro pTipoCambio = 11 Captura Titulo 'Tipo de Cambio' Ayuda 'Anote el tipo de cambio' Control CtrlReal Decimales 4 FinCaptura Parametro vacio = 0 Captura Control CtrlVacio FinCaptura Parametro pTasaInteres = 4 Captura Titulo 'Tasa de interés' Ayuda 'Anote la tasa de interés' Control CtrlReal Decimales 4 FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Este espacio aparece gracias al Control CtrlVacio

Page 65: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-25

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlTexto

Introducción Este control muestra una casilla de texto el cual permite capturar una cadena.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pParametro = <Valor por omisión> Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control CtrlTexto FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

pParametro Variable donde se almacenará el valor del dato seleccionado. <Valor por omisión> Valor que se asignará a pParametro por omisión.

Continúa en la siguiente página

Page 66: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-26

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Control CtrlTexto, Continuación

Ejemplo // Ejemplo de control de radio CtrlTexto

// Elaboró: Marco A. Muñoz Columnas 4;2,3,1,3 usaempresa tEmpresa;'Contpaq i' Parametros Titulo 'Titulo Parámetros' Pagina 'Principal' Parametro pTexto = 0 Captura Titulo 'Diario' Ayuda 'Anote el nombre del diario’ Control CtrlTexto FinCaptura FinPagina FinParametros

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 67: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-27

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Parámetro Dependencia

Introducción Este parámetro permite activar o desactivar un control basado en el resultado de la selección

de otro control.

Sintaxis Parametros

Titulo <‘Titulo parametros’> Pagina <‘Titulo pagina’> Parametro pParametroPadre = <Valor por omisión> Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control ControlPadre Dependencia <ValorFalso>;pControlHijo = False Dependencia <ValorVerdadero>;pControlHijo = True FinCaptura Parametro pParametroHijo = <Valor por omisión> Captura Titulo <'Titulo de la etiqueta'> Ayuda <'Información de ayuda'> Control ControlHijo FinCaptura FinPagina FinParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

<ValorFalso> Si pParametroPadre es igual a este valor entonces el control hijo se desactivará.

<ValorVerdadero> Si pParametroPadre es igual a este valor entonces el control hijo se activará.

Continúa en la siguiente página

Page 68: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-28

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Parámetro Dependencia, Continuación

Ejemplo // Ejemplo de Parámetro dependencia

// Elaboró: Marco A. Muñoz Columnas 4;2,3,1,3 usaempresa tEmpresa;'Contpaq i' Parametros Titulo 'Titulo Parámetros' Pagina 'Principal'

Parametro pCuentas = 0 Captura Titulo 'Cuentas' Ayuda 'Selecciona las cuentas a desplegar' Control CtrlRadio Datos 'Todas';1;'Algunas';2 FinDatos Dependencia 1;pCodCta1 = False Dependencia 1;pCodCta2 = False Dependencia 2;pCodCta1 = True Dependencia 2;pCodCta2 = True FinCaptura Parametro vacio = 0 Captura Control CtrlVacio FinCaptura Parametro pCodCta1 = '000000000000' Captura Titulo 'Cuenta &inicial' Ayuda 'Selecciona la cuenta inicial a imprimir' Control CtrlCodigo tEmpresa->Estructura;'Cuentas';'Nombre' Valida <=;pCodCta2;'No puede ser mayor que la cuenta final' FinCaptura Parametro pCodCta2 = '000000000000' Captura Titulo 'Cuenta &final' Ayuda 'Selecciona la cuenta final a imprimir' Control CtrlCodigo tEmpresa->Estructura;'Cuentas';'Nombre' Valida >=;pCodCta1;'No puede ser menor que la cuenta inicial' FinCaptura FinPagina FinParametros

Continúa en la siguiente página

Page 69: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-29

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Parámetro Dependencia, Continuación

Resultado El resultado del ejemplo en pantalla será el siguiente:

Page 70: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 5-30

Computación en Acción, S.A. de C.V. Derechos Reservados®

Instrucciones de Entrada

Laboratorio 3

Introducción En el siguiente laboratorio generarás una ventana de filtros que permita escoger un rango de

productos del catálogo.

Objetivos En el siguiente laboratorio se pone en práctica:

• Como crear ventanas de parámetros • Utilizar los controles para filtrar datos

Ejercicio

A continuación se muestra la descripción de los pasos a seguir en el laboratorio:

Paso Ejercicio 1 Abre el reporte Base_Lab3 y guardálo como Productos_Lab3. 2 En la sección 4. Parámetros haz lo siguiente:

• Quita los comentarios del código de toda la sección 4. Parámetros. • Modifica la sección 4.1 Consulta parámetros para que lean el producto

inicial y final de la tabla productos. • Modifca la sección 4.2 Crea los parámetros para leer el código inicial y

final del producto. 3 En la sección 6.3 Consulta SQL haz lo siguiente:

• Quita los comentarios del código de la sección 6.3 Consulta SQL. • Modifica el código de esta consulta para leer el código, nombre y precio 1

del producto. 4 Guarda, compila y ejecuta el reporte.

Resultado La ventana de los filtros deberá verse como se muestra a continuación:

Page 71: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 6-1

Computación en Acción, S.A. de C.V. Derechos Reservados®

Funciones

Capítulo 6

Funciones

Visión General

Introducción En este capítulo conocerá como hacer llamados a funciones de Reporteador y aprenderá a

crear funciones propias.

Objetivos Al término de este capítulo conocerá como :

• Hacer llamados a las funciones existentes en Reporteador. • Crear sus propias funciones. • Hacer llamados a librerías.

En este capítulo Este capítulo contiene los siguientes temas:

Tema Página VISIÓN GENERAL 6-1 UTILIZACIÓN DE LAS FUNCIONES DEL REPORTEADOR 6-2 CREACIÓN DE FUNCIONES 6-3 INSTRUCCIÓN INCLUYE 6-5 LABORATORIO 4 6-6

Page 72: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 6-2

Computación en Acción, S.A. de C.V. Derechos Reservados®

Funciones

Utilización de las Funciones del Reporteador

Instrucción Reporteador cuenta con una serie de funciones que permiten ejecutar un conjunto de

instrucciones que al final darán un resultado.

Sintaxis variableResultado = @Funcion(argumento1;argumento2;…;argumentoN)

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

variableResultado La variable que almacena el resultado de la función.

@Funcion El nombre de la función. Argumento1;argumento2;…argumentoN Cada uno de los argumentos que se envían

a la función.

Ejemplo 1 // Ejemplo de llamado a una función.

// El siguiente ejemplo muestra el llamado a la función raíz, el cuál obtendrá la raíz cuadrada // de 81 // Elaboró: Marco A. Muñoz vNumero = 81 vResultado = @Raiz(vNumero) Lista vResultado

Ejemplo 2 // El siguiente ejemplo utiliza una función que extrae una subcadena de texto a partir de una

cadena inicial. Sintaxis: @substr(texto, posición inicial, número de caracteres a extraer). argFechaSinFormato = ‘20130619’ vAnio = @substr(argFechaSinFormato;0;4)

Nota: Para una lista de funciones de Reporteador consulta el documento “Instrucciones del

Reporteador de CONTPAQ i®”.

Page 73: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 6-3

Computación en Acción, S.A. de C.V. Derechos Reservados®

Funciones

Creación de Funciones

Instrucción Además de las funciones ya incluidas en el Reporteador usted podrá crear nuevas

funciones, en este tema se explica como podrá hacerlo.

Sintaxis Deffunc NombreFuncion(argumento1;argumento2;…;argumentoN)

FinFunc

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

NombreFuncion Nombre de la función a crear argumento1;argumento2;…argumentoN Cada uno de los argumentos que se envían

a la función.

Ejemplo 1 // Ejemplo de declaración de una función.

// El siguiente ejemplo muestra la declaración de una función que calcula el cuadrado de un //número. // Elaboró: Marco A. Muñoz // Declaración de la función fCuadrado DefFunc fCuadrado(argBase) vCuadrado = argBase * argBase retorna vCuadrado FinFunc // Llamado a la función fCuadrado vNumero = 5 vResultado = fCuadrado(vNumero) Lista vResultado

Ejemplo 2 // Función que da formato dd/mm/aaaa a una fecha.

DefFunc fFormatoFecha(argFechaSinFormato) vAnio = @substr(argFechaSinFormato;0;4) vMes = @substr(argFechaSinFormato;4;2) vDia = @substr(argFechaSinFormato;6;2) vFechaConFormato = vDia & '/' & vMes & '/' & vAnio retorna vFechaConFormato FinFunc // Esta instrucción hace el llamado a la función pasando como parámetro la fecha sin formato fFormatoFecha(tCuentas(FechaRegistro))

Nota: Para una lista de funciones de Reporteador consulta el documento: “Instrucciones

del Reporteador CONTPAQ i®”.

Continúa en la siguiente página

Page 74: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 6-4

Computación en Acción, S.A. de C.V. Derechos Reservados®

Funciones

Creación de Funciones, Continuación

VARIABLES LOCALES Es posible declarar variables dentro de una función utilizando la instrucción Local. La variable solo estará en memoria mientras esté dentro de la función, al terminar la función la variable se destruye. Ejemplo: Deffunc fCuadrado() Local vCuadrado // Esta variable solo se usará dentro de la función.

vCuadrado = argBase * argBase retorna vCuadrado FinFunc

Page 75: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 6-5

Computación en Acción, S.A. de C.V. Derechos Reservados®

Funciones

Instrucción Incluye

Introducción La instrucción incluye sirve para hacer llamados a librerías de funciones dentro de un

reporte. Es común utilizar una serie de funciones en distintos reportes. Para esto es posible crear un archivo con extensión .RPT, con una serie de funciones (al cual llamaremos librería), este archivo podrá ser incluido en un reporte base, y el reporte base podrá ser uso de las funciones incluidas dentro de la librería. El archivo de la librería de funciones deberá estar en la misma carpeta que el archivo del reporte base.

Sintaxis Incluye <NombreLibreria>

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

<NombreLibreria> Nombre del archivo .RPT que contiene las funciones que se desean incluir en nuestro reporte.

Ejemplo // Ejemplo del uso de la función incluye

// Archivo con Librería de funciones de saludos llamado Saluda.rpt // Función Hola Deffunc fHola() Texto C0;’Hola’ Imprime FinFunc // Función Adiós Deffunc fAdios() Texto C0;’Adiós’ Imprime FinFunc //***************************************************************************** // Reporte Base // Elaboró: Marco Antonio Muñoz columnas 1;4 incluye saluda.rpt fhola()

Nota: Los sistemas de CONTPAQ i® cuentan con una serie de bibliotecas con funciones comunes a varios reportes, mismas que pueden utilizarse en reportes propios, solo es necesario anexarlos con la instrucción Incluye.

Page 76: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 6-6

Computación en Acción, S.A. de C.V. Derechos Reservados®

Funciones

Laboratorio 4

Introducción En el siguiente laboratorio practicarás el manejo de funciones.

Agregarás una columna nueva con la fecha de alta del producto y generarás una función que dé formato a las fechas.

Ejercicio

A continuación se muestran los pasos a seguir para realizar el laboratorio:

Paso Ejercicio 1 Abre el reporte Base_Lab4 y guardálo como Productos_Lab4. 2 En la sección 6.1 Definir columnas en la instrucción Columnas agrega una nueva

columna al final del reporte de 2 cm. 3 En la sección 6.2 Título del reporte agrega una nuevo título, ahora quedarán así:

CÓDIGO, PRODUCTO, FECHA, PRECIO. 4 En la sección 6.3. Consulta SQL agrega el campo CFECHAALTAPRODUCTO a

la consulta para desplegar este campo. 5 En la sección 7. Desplegar datos despliega el campo de la “Fecha del alta” del

producto antes de desplegar el “Precio”. 6 Guarda, compila y ejecuta el reporte. Observa que la fecha se muestra sin formato. 7 Crea la función fFormatoFecha que dé formato a la fecha dd/mm/aaaa. 8 Utiliza la función fFormatoFecha para mostrar el campo fecha que acabas de

agregar con formato. 9 Guarda, compila y ejecuta el reporte.

Resultado El reporte deberá quedar como se muestra a continuación:

Page 77: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 7-1

Computación en Acción, S.A. de C.V. Derechos Reservados®

Formato

Capítulo 7

Formato

Visión General

Introducción En este capítulo se conocerán las instrucciones para dar formato al reporte.

Objetivos Al término de este capítulo:

• Identificará las funciones para cambiar el tipo de letra, alinear texto, aplicar negritas,

generar encabezados, entre otras funciones de formato.

En este capítulo Este capítulo contiene los siguientes temas:

Tema Página VISIÓN GENERAL 7-1 ALINEACIÓN DEL TEXTO 7-2 FUNCIONES DE FORMATO 7-3 LISTA DE FUNCIONES DE FORMATO 7-4 INSTRUCCIÓN ENCAB 7-5 LABORATORIO 5 7-6

Page 78: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 7-2

Computación en Acción, S.A. de C.V. Derechos Reservados®

Formato

Alineación del Texto

Instrucción La instrucción Texto permite alinear el texto a la izquierda, centrado y derecha, a enseguida

se explica como.

Sintaxis A continuación se muestra la descripción de la sintaxis de la instrucción:

Sintaxis Descripción

Texto C0;’Mensaje’ Alinea el mensaje a la izquierda de la columna

Texto C0;’^Mensaje’ Centra el mensaje en la columna Texto C0;’”Mensaje’ Alinea el mensaje a la derecha de la

columna anteponiendo comillas dobles antes del texto.

Saltalin <NumLineas> Salta líneas hacia abajo.

Ejemplo // Ejemplo de alineación con la función texto.

// Elaboró: Marco A. Muñoz Texto C0;’Mensaje a la izquierda’ Imprime Saltalin 2 // Deja dos líneas en blanco Texto C0;’^Mensaje centrado’ Imprime Texto C0;’ “Mensaje a la derecha’ Imprime

Page 79: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 7-3

Computación en Acción, S.A. de C.V. Derechos Reservados®

Formato

Funciones de formato

Instrucción Estas funciones cambian el formato del texto.

Sintaxis A continuación se muestra la descripción de la sintaxis de la instrucción:

Sintaxis Descripción

Función <Parámetro> Aplica la función a todas las columnas [Ca..Cz].Función <Parámetro> Aplica desde la columna Ca hasta la

columna Cz. [Ca,Cb,Cc].Función <Parámetro> Aplica a la columna Ca, la columna Cb y la

columna Cc.

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

Función Nombre de la función. Vea Lista de funciones de formato. [Ca..Cz] Rango de columnas donde se aplicará el formato de la

función. [Ca,Cb,Cc] Listado de columnas a la que se le aplicará la función

formato. <Parámetro> El parámetro de la función puede ser cualquiera de los

siguientes:

Parámetro Se refiere a Vacío Esta función no tendrá parámetros. Booleano Puede ser: True o False:

Valor Descripción True Activa el formato. False Desactiva el formato.

Texto Cualquier valor de texto encerrado entre ‘apóstrofes’.

Número Cualquier valor numérico.

Page 80: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 7-4

Computación en Acción, S.A. de C.V. Derechos Reservados®

Formato

Lista de funciones de formato

Introducción A continuación se listan las funciones de formato.

Función Sintaxis Ejemplo Descripción del Ejemplo Absoluto [RangoCol].Absoluto Booleano [C0..C2].Absoluto true Activa el valor absoluto de la

columna C0 a C2 Altura [RangoCol].Altura Número Altura 12 Ajusta el tamaño de la letra en

12 puntos en todas las columnas

Color [RangoCol].Color @RGB(R;G;B) [C0].Color @RGB(255;0;0) Muestra el texto de color rojo en la columna 0.

Coma [RangoCol].Coma [C3].Coma Divide las cantidades numéricas con comas cada 3 dígitos en la columna 3.

Decimales [RangoCol].Decimales Número [C1,C3].Decimales 4 Las cantidades de las columnas 1 y 3 tendrán 4 decimales. Además redondea los decimales.

Espacio [RangoCol].Espacio [C3].Espacio Inserta un pequeño espacio cada 3 dígitos en las cantidades numéricas en la columna 3.

InvSig [RangoCol].InvSig Booleano [C1].InvSig true Invierte el signo en las cantidades de la columna 1.

Italico [RangoCol].Italico Booleano Italico true Activa el uso de itálicas en todas las columnas.

Negritas [RangoCol].Negritas Booleano Negritas false Desactiva el uso de las negritas en todas las columnas.

SubrayaCol [RangoCol].Subrayacol Imprime

subrayacol imprime

Dibuja una raya horizontal en ese renglón a lo ancho de todas las columnas.

Subrayado [RangoCol].Subrayado Booleano [C2..C4].subrayado true Subraya los datos de la columna 2 a la 4

UsaLetra [RangoCol].UsaLetra ‘Tipo de letra’ UsaLetra 'Arial' Aplica el tipo de letra Arial a todas las columnas.

Page 81: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 7-5

Computación en Acción, S.A. de C.V. Derechos Reservados®

Formato

Instrucción Encab

Introducción La instrucción Encab sirve para definir un encabezado en el reporte. El encabezado es una

parte fija que se repetirá al inicio de cada hoja del reporte.

Sintaxis Encab

//Cuerpo del encabezado FinEncab // Cuerpo del reporte SupEncab // De esta instrucción en adelante se suprime el encabezado.

Ejemplo // Ejemplo para el uso de encabezados

// Elaboró: Marco Antonio Muñoz Encab Texto “^Catálogo Clientes” Imprime Texto C0;’Código’ Texto C1;’Razón Social’ Imprime FinEncab

Page 82: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página 7-6

Computación en Acción, S.A. de C.V. Derechos Reservados®

Formato

Laboratorio 5

Introducción En el siguiente laboratorio se practicarán las funciones para dar formato al reporte.

Ejercicio

A continuación se muestran los pasos a seguir para realizar el laboratorio:

Paso Ejercicio 1 Abre el reporte Base_Lab5 y guardálo como Productos_Lab5. 2 Cambia el tipo de letra a ‘Arial’. 3 En la sección 6.2 Título del reporte define los títulos del reporte dentro de una

sección de encabezado (con las función Encab… FinEncab) e incluye lo siguiente:

• Activa el uso de negritas para los títulos del reporte y de las columnas. • Ajusta el tamaño de los títulos del reporte en 12 puntos. • Centra el título del reporte. • Deja un espacio en blanco entre el título del reporte y el título de las

columnas. • Agrega una línea de división entre los títulos de las columnas y los datos. • Desactiva el uso de negritas para los títulos.

4 En la sección 7. Desplegar datos de la consulta ajusta el tamaño a 10 puntos para desplegar los datos de la consulta.

5 De ser necesario ajusta el tamaño de las columnas. 6 Guarda, compila y ejecuta el reporte.

Resultado El reporte deberá quedar como muestra a continuación:

Page 83: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página A-1

Computación en Acción, S.A. de C.V. Derechos Reservados®

Sentencias básicas en SQL para reportes

Apéndice A

Sentencias básicas en SQL para reportes

Introducción En este apéndice:

• Verás cómo realizar consultas en SQL para realizar reportes de los sistemas de CONTPAQ i®.

• Conocerás la sentencia SELECT con sus diferentes opciones.

En este apéndice Este apéndice contiene los siguientes temas:

Tema Página Tipos de sentencias en SQL A-2 Sentencias básicas A-3

Page 84: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página A-2

Computación en Acción, S.A. de C.V. Derechos Reservados®

Sentencias básicas en SQL para reportes

Tipos de sentencias en SQL

Tipos de sentencias

Existen dos tipos de sentencias en SQL, las sentencias de acción y las sentencias de consulta. En este taller se verán las sentencias de consulta las cuales se utilizan para la generación de reportes.

Sentencias de acción en SQL

Las sentencias de acción más utilizadas en SQL para dar mantenimiento a las bases de datos son:

• CREATE – Crea un objeto dentro de la base de datos. Este objeto puede ser una tabla, función, procedimiento, etcétera.

• ALTER – Permite modificar la estructura de un objeto. Se pueden agregar o quitar campos a una tabla, modificar el tipo de un campo, agregar o quitar índices a una tabla.

• DROP – Elimina un objeto de la base de datos. Este objeto puede ser una tabla, función, procedimiento, etcétera.

• INSERT – Agrega uno o más registros a una sola tabla en una base de datos relacional.

• UPDATE – Modifica los valores de un conjunto de registros existentes en una tabla. • DELETE – Borra registros de una tabla.

Sentencias de consultas en SQL

La consulta básica y más utilizada en SQL es la instrucción SELECT la cual, recupera filas o registros de la base de datos y habilita la selección de una o varias filas o columnas de una o más tablas. Esta instrucción puede utilizarse en varias sintaxis, dependiendo de la información que se necesita. Las más utilizadas son:

• SELECT FROM • WHERE • GROUP BY • HAVING • HAVING vs WHERE

Importante: Al final de la sentencia se recomienda agregar un <Enter> para que la misma pueda ejecutarse correctamente. Estas sentencias son palabras reservadas y se distinguen con el color azul, si no está bien capturada la sentencia, esta aparecerá en color negro.

Page 85: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página A-3

Computación en Acción, S.A. de C.V. Derechos Reservados®

Sentencias básicas en SQL para reportes

Sentencias básicas

Comentarios En SQL los comentarios se agregan con un doble guion - - antes del texto.

-- Comentarios en consulta O para comentar un bloque se utiliza /* */ /* Consulta de Documentos de Venta Agrupado por Cliente */

Declarar Variables

En SQL se pueden definir variables con la instrucción DECLARE. Sintaxis: DECLARE @nombre_variable AS tipo; Ejemplos: -- Declara una variable de tipo entero DECLARE @lIdMoneda AS INT; -- Declara una variable de tipo fecha DECLARE @lFechaIni AS DATETIME; -- Declara una variable de tipo caracter de 30 caracteres DECLARE @lDelCliente AS CHAR(30);

Asignar Variables

Para asignar valores a las variables en SQL se utiliza la instrucción SET. Sintaxis: SET @nombre_variable = 'valor'; Ejemplos: SET @lIdMoneda = '1';

SELECT * FROM La instrucción SELECT FROM se utiliza para seleccionar uno o varios registros de una o más

tablas. El resultado de esta selección se muestra en una tabla temporal, llamada result-set. Sintaxis: SELECT * FROM tabla1,tabla2 Al usar * se extraerán todos los campos de la tabla. Ejemplo: La siguiente consulta muestra todos los registros de la tabla Documentos con todos sus Campos. SELECT * FROM admDocumentos

Continúa en la siguiente página

Page 86: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página A-4

Computación en Acción, S.A. de C.V. Derechos Reservados®

Sentencias básicas en SQL para reportes

Sentencias básicas, Continuación

SELECT campo FROM

La siguiente consulta extrae solo los campos especificados de las tablas. Sintaxis: SELECT campo1, campo2 FROM tabla1,tabla2 Ejemplo: El siguiente ejemplo solo selecciona los campos CFOLIO y CTOTAL de la tabla admDocumentos. SELECT CFOLIO, CTOTAL FROM admDocumentos

WHERE Al utilizar el WHERE se podrán agregar condiciones para filtrar registros.

Sintaxis: SELECT campo1 FROM tabla WHERE campo operador valor Operadores:

Operador Descripción = Igual <> Diferente > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que BETWEEN Entre un rango LIKE Busca un patrón IN Para especificar múltiples valores en un campo AND Operador lógico Y. Permite agregar más de una condición y todas de

deberán cumplir para desplegar el registro. OR Operador lógico O. Permite agregar más de una condición y mientras una de

estas se cumpla se desplegará el registro. Ejemplo: La siguiente consulta extrae solo los registros de la tabla Documentos cuyo Folio es mayor a 2. SELECT * FROM admDocumentos WHERE CFOLIO >2

AND La siguiente consulta extrae solo los registros de la tabla Documentos cuyo Folio es mayor a

1 Y es menor a 4. SELECT * FROM admDocumentos WHERE CFOLIO >1 AND CFOLIO <4

Continúa en la siguiente página

Page 87: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página A-5

Computación en Acción, S.A. de C.V. Derechos Reservados®

Sentencias básicas en SQL para reportes

Sentencias básicas, Continuación

OR La siguiente consulta extrae solo los registros de la tabla Documentos cuyo Folio es 2 O es

4. SELECT * FROM admDocumentos WHERE CFOLIO = 2 OR CFOLIO = 4

IN La siguiente consulta extrae solo los registros de la tabla Documentos cuyo Folio es 1 y 2.

SELECT * FROM admDocumentos WHERE CFOLIO IN (1,2)

BETWEEN La siguiente consulta extrae los registros de la tabla Documentos cuyo Folio está entre 2 y

10. SELECT * FROM admDocumentos WHERE CFOLIO BETWEEN 2 AND 10

Alias La siguiente consulta crea el alias f del campo cFolio y d de la tabla llamada

admDocumentos para reducir el tamaño de la sentencia y facilitar su lectura. SELECT cFolio AS f FROM admDocumentos AS d

ORDER BY ASC La siguiente consulta ordena los registros por folio en forma ascendente.

SELECT * FROM admDocumentos ORDER BY CFOLIO ASC

ORDER BY DESC La siguiente consulta ordena los registros por folio en forma descendente.

SELECT * FROM admDocumentos ORDER BY CFOLIO DESC

SELECT TOP La instrucción SELECT TOP muestra el número de registros especificado.

Sintaxis: SELECT top num_registros FROM tabla

SELECT TOP 1 ASC

La siguiente consulta extrae el primer registro de la tabla Documentos. Ejemplo: SELECT top 1 * FROM admDocumentos ORDER BY CFOLIO ASC

SELECT TOP 1 DESC

La siguiente consulta extrae el último registro de la tabla Documentos. Ejemplo: SELECT top 1 * FROM admDocumentos ORDER BY CFOLIO DESC

Continúa en la siguiente página

Page 88: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página A-6

Computación en Acción, S.A. de C.V. Derechos Reservados®

Sentencias básicas en SQL para reportes

Sentencias básicas, Continuación

Sentencias de cálculo

Estas sentencias se utilizan para realizar cálculos sobre datos. Las más comunes son:

• AVG() – Regresa el valor promedio • COUNT() – Regresa el número de filas • MAX() – Regresa el mayor valor • MIN() – Regresa el menor valor • SUM ()– Regresa la suma

Estas sentencias obtienen un resultado matemático y se distinguen con el color rosa fuerte. Si no está bien capturada la sentencia, esta aparecerá en color negro.

SUM() La siguiente consulta suma el campo CTOTAL de todos los registros de la tabla

Documentos. SELECT SUM(CTOTAL) AS TotalDocumentos FROM admDocumentos

GROUP BY Esta instrucción agrupa los registros que comparten una característica o un mismo valor de

acuerdo a la selección indicada. Instrucción: SELECT (lista de atributos) FROM (lista de tablas) GROUP BY (orden en que se agruparan la lista de atributos) Esta sentencia por sí sola no tiene mucha utilidad, por lo que generalmente se utiliza con las sentencias de cálculo para que esta tenga mayor funcionalidad.

GROUP BY SUM()

La siguiente consulta agrupa la suma de todos los documentos de un mismo cliente de la tabla Documentos. Ejemplo: SELECT CIDCLIENTEPROVEEDOR, SUM(CTOTAL) AS VENTAS_X_CTE FROM admDocumentos GROUP BY CIDCLIENTEPROVEEDOR

HAVING vs. WHERE

Ambas instrucciones requieren de una condición y puede resultar confuso saber cuándo utilizar una instrucción u otra. La cláusula WHERE es utilizada para extraer solo aquellos registros que cumplan con un criterio específico. La sentencia HAVING se utiliza cuando la condición o criterio necesita realizarse sobre una agrupación de datos o campos; y tiene mayor utilidad cuando se maneja en conjunto con GROUP BY.

Continúa en la siguiente página

Page 89: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página A-7

Computación en Acción, S.A. de C.V. Derechos Reservados®

Sentencias básicas en SQL para reportes

Sentencias básicas, Continuación

HAVING Esta instrucción especifica una condición de búsqueda para un grupo o agregado y solo se

puede utilizar junto con SELECT. Sintaxis: SELECT campo HAVING campo Normalmente, el HAVING se utiliza dentro de una cláusula GROUP BY. Cuando no se utiliza dentro de esta cláusula, el HAVING se comporta como una cláusula WHERE. La siguiente consulta agrupa la suma de todos los documentos de un mismo cliente de la tabla Documentos. Y solo muestra aquellos clientes cuya suma de TODOS sus documentos sea mayor a 2000. SELECT CIDCLIENTEPROVEEDOR, SUM(CTOTAL) FROM admDocumentos GROUP BY CIDCLIENTEPROVEEDOR HAVING SUM(CTOTAL)>2000

WHERE La siguiente consulta agrupa la suma de todos los documentos de un mismo cliente de la

tabla Documentos. Y solo agrupa aquellos documentos cuyo Total sea mayor a 2000. SELECT CIDCLIENTEPROVEEDOR, SUM(CTOTAL) AS TotalDoc FROM admDocumentos WHERE CTOTAL>2000 GROUP BY CIDCLIENTEPROVEEDOR

JOINS Las sentencias JOIN permiten combinar registros de dos o más tablas. Existen varios tipos de

JOIN, dentro de los más utilizados están:

• INNER JOIN o JOIN. Selecciona todos los registros de ambas tablas siempre y cuando haya coincidencias en ambas tablas.

• LEFT JOIN. Regresa todos los registros de la tabla de la izquierda que coincidan

con los registros de la tabla derecha. El resultado es NULL del lado derecho cuando no haya coincidencia.

INNER JOIN La siguiente consulta muestra todos los documentos con sus movimientos a través de la

unión de la tabla Documentos y Movimientos tomando el campo común CIDDOCUMENTO ubicado en ambas tablas. SELECT * FROM admDocumentos D INNER JOIN admMovimientos M ON D.CIDDOCUMENTO = M.CIDDOCUMENTO

LEFT JOIN La siguiente consulta muestra todos los documentos aun si no tienen movimientos.

SELECT * FROM admDocumentos D LEFT JOIN admMovimientos M ON D.CIDDOCUMENTO = M.CIDDOCUMENTO

Continúa en la siguiente página

Page 90: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página A-8

Computación en Acción, S.A. de C.V. Derechos Reservados®

Sentencias básicas en SQL para reportes

Sentencias básicas, Continuación

CAST La función CAST convierte un valor a un tipo de dato.

La siguiente consulta muestra todos los documentos del mes de junio del 2013, utiliza la función CAST para convertir el valor '20130601' del tipo DATETIME. SELECT * FROM admDocumentos WHERE CFECHA >= CAST('20130601' AS DATETIME) AND CFECHA <= CAST('20130630' AS DATETIME)

NULL La restricción IS NOT NULL obliga a que los valores a mostrar en esa columna no sean

NULL. La siguiente consulta muestra todos los documentos cuyo campo cTextoExtra1 de la tabla Documentos no es nulo (es decir sí tienen información). SELECT * FROM admDocumentos WHERE CTEXTOEXTRA1 IS NOT NULL

CASE WHEN La expresión CASE WHEN compara una expresión con un conjunto de expresiones para

determinar su resultado. La siguiente consulta evalúa el valor del campo cTipoCliente e imprime el texto según su valor (1=Cliente, 2=Cliente-Proveedor, 3=Proveedor). SELECT CRAZONSOCIAL, CASE WHEN CTIPOCLIENTE=1 THEN 'Cliente' WHEN CTIPOCLIENTE=2 THEN 'Cliente-Proveedor' WHEN CTIPOCLIENTE=3 THEN 'Proveedor' END AS TIPO FROM admClientes

Page 91: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página B-1

Computación en Acción, S.A. de C.V. Derechos Reservados®

Actualización de reportes de AdminPAQ

Apéndice B

Actualización de reportes de AdminPAQ

Visión General

Introducción En este apéndice se muestra la forma de actualizar reportes de AdminPAQ a CONTPAQ i®

COMERCIAL.

Objetivos Al término de este apéndice el participante conocerá:

• Las diferencias entre el Reporteador de AdminPAQ y el Reporteador de

CONTPAQ i® COMERCIAL. • Los conocimientos para actualizar reportes a CONTPAQ i® COMERCIAL.

En este apéndice Este apéndice contiene los siguientes temas:

Tema Página VISIÓN GENERAL B-1 CAMBIO DE INSTRUCCIONES EN CONTPAQ i® B-2 EJEMPLO. ACTUALIZACIÓN DE UN REPORTE B-4

Page 92: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página B-2

Computación en Acción, S.A. de C.V. Derechos Reservados®

Actualización de reportes de AdminPAQ

Cambio de instrucciones en CONTPAQ i®

Introducción Los reporteadores utilizados en AdminPAQ y CONTPAQ i® COMERCIAL cuentan con

similitudes y diferencias. Los reportes que se incluyen en CONTPAQ i® COMERCIAL están desarrollados en el reporteador de CONTPAQ i® los cuales acceden a bases de datos de SQL. Los reportes que se hicieron a la medida en AdminPAQ deberán ser actualizados a este nuevo reporteador.

Similitudes Las similitudes entre ambos reporteadores son las siguientes:

• Definición de columnas • Instrucciones de Formato • Impresión de datos • Ciclos • Condiciones • Funciones • Variables

Diferencias Las diferencias entre los reporteadores son:

• Las instrucciones de entrada (para crear filtros). • La forma de acceso a las tablas de la empresa. • Las instrucciones de salida a Excel®.

Instrucciones de entrada

Para hacer filtros, en AdminPAQ se utilizaban las instrucciones PARÁMETRO y ACEPTA para recibir datos del usuario. Ahora se utilizan las instrucciones PARAMETROS, CONTROL, DEPENDENCIA, etcétera, por lo que deberás sustituir las anteriores por las nuevas, para más información consulta el Capítulo 5. Instrucciones de Entrada.

AdminPAQ CONTPAQ i® COMERCIAL

• PARAMETRO • ACEPTA

• PARAMETROS • CONTROL • DEPENDENCIA

Conexión a la BDD

Las instrucciones para la conexión a la Base de Datos cambian y son las que se muestran en la siguiente tabla. Para más información consulta el Capítulo 4. Acceso a las Bases de Datos.

AdminPAQ CONTPAQ i® COMERCIAL

• UsaEmpresa • UsaTabla

• CONEXION • CONSULTA

Nombres de tablas y campos

Los nombres de las tablas y los campos cambiaron, por lo que habrá que actualizarlos.

Continúa en la siguiente página

Page 93: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página B-3

Computación en Acción, S.A. de C.V. Derechos Reservados®

Actualización de reportes de AdminPAQ

Cambio de instrucciones en CONTPAQ i®, Continuación

Tabla comparativa

Las principales ventajas del Reporteador de CONTPAQ i son que:

• Está orientado a bases de datos Cliente/Servidor, es decir, los datos se procesan en el Servidor y son enviados al cliente (es un Servidor de datos, no de archivos).

• Los parámetros o filtros de los reportes son configurables. • La salida de los reportes está abierta a otros formatos de archivo, como HTML, XLS

y PDF; además de las salidas acostumbradas: pantalla, impresora o disco. Consulta la siguiente tabla comparativa:

Características Reporteador programable Reporteador CONTPAQ i

Modelo de tres capas • Filtros configurables • Manejo de funciones • • Salida a TXT • • Salida a HTML • Salida a PDF • Salida a Excel • • Salida a impresora • • Salida a disco • • Salida a pantalla • • Instrucciones OLE DB • • Bases de datos local • Bases de datos Cliente/Servidor

Editor de reportes • Depurador • Configuración de la hoja • Manejo de queries de SQL •

Page 94: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página B-4

Computación en Acción, S.A. de C.V. Derechos Reservados®

Actualización de reportes de AdminPAQ

Ejemplo. Actualización de un reporte

Introducción A continuación se muestra un ejemplo de actualización de un reporte de AdminPAQ a

CONTPAQ i® COMERCIAL. Primero se muestra el reporte en AdminPAQ y después se muestra el mismo reporte actualizado a CONTPAQ i® COMERCIAL.

AdminPAQ // Descripción: Reporte de ventas por fecha

// Elaboró: Marco Muñoz // Fecha: 25/06/2013 // Conexión a la Base de Datos UsaEmpresa tEmpresa;'AdminPAQw' // Filtros Acepta 'Ventas';'Captura la fecha inicial'; pFechaInicial Acepta 'Ventas';' Captura la fecha final'; pFechaFinal // Definición de columnas del reporte Columnas 2;3,3 // Títulos del reporte Texto '^VENTAS POR FECHA' Imprime Texto C0;'^FOLIO' Texto C1;'^TOTAL' Imprime // Se crea la consulta UsaTabla tDoc=tEmpresa['MGW10008'] tDoc.usaindice['IDOCUMEN01'] Mientras [tDoc.Busca['4'];tDoc ->encontro;tDoc.Busca Siguiente[1]] Si tDoc(cFecha)>=pFechaInicial Y tDoc(cFecha)<=pFechaFinal Lista tDoc(cFolio), tDoc(cTotal) FinSi FinMientras

Continúa en la siguiente página

La definición de columnas NO cambia

Los definición de títulos del reporte NO cambia

La conexión a la BDD SÍ cambia por la instrucción Conexion

En la definición de filtros las instrucciones Acepta se cambiarán por Parametros

La Búsqueda cambia por una consulta de SQL

Page 95: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página B-5

Computación en Acción, S.A. de C.V. Derechos Reservados®

Actualización de reportes de AdminPAQ

Ejemplo. Actualización de un reporte, Continuación

Reporte en CONTPAQ i® COMERCIAL

// Descripción: Reporte de ventas por fecha // Elaboró: Marco Muñoz // Fecha: 25/06/2013 // Conexión a la Base de Datos gServidor = '//localhost/adROJA' gInstancia = 'COMPAC' gUsuarioSQL = 'sa' gClaveSQL = 'Compac2008' Conexion tEmpresa = Conexion.crear('jdbc:jtds:sqlserver:' & gServidor & ';instance=' & gInstancia,gUsuarioSQL,gClaveSQL) // Filtros Parametros Titulo 'Ventas' Pagina '&1 Principal' Parametro pFechaInicial = '20000101' Captura Titulo 'Fec&ha inicial' Ayuda 'Selecciona la fecha inicial de los documentos' Control CtrlFecha CambiaAlSalir pFechaFinal = pFechaInicial FinCaptura Parametro pFechaFinal = '20200101' Captura Titulo 'Fecha fi&nal' Ayuda 'Selecciona la fecha final de los documentos' Control CtrlFecha Valida >=; pFechaInicial; 'La fecha final no puede ser menor a la inicial' FinCaptura FinPagina FinParametros // Definición de columnas del reporte Columnas 2;3,3

Continúa en la siguiente página

La conexión a la BDD SÍ cambia por la instrucción Conexion

En la definición de filtros las instrucciones Acepta se cambiarán por Parametros

La definición de columnas NO cambia

Page 96: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página B-6

Computación en Acción, S.A. de C.V. Derechos Reservados®

Actualización de reportes de AdminPAQ

Ejemplo. Actualización de un reporte, Continuación

Reporte en CONTPAQ i® COMERCIAL (Continúa)

// Título del reporte Texto '^VENTAS POR FECHA' Imprime Texto C0;'^FOLIO' Texto C1;'^TOTAL' Imprime // Se crea la consulta gStrQuery = 'Declare @FechaIni as datetime; ' gStrQuery = gStrQuery & 'Declare @FechaFin as datetime; ' gStrQuery = gStrQuery & 'set @FechaIni = \'' & pFechaInicial & '\'; ' gStrQuery = gStrQuery & 'set @FechaFin = \'' & pFechaFinal & '\'; ' gStrQuery = gStrQuery & 'SELECT CFOLIO,CTOTAL FROM admDocumentos d WHERE CIDDOCUMENTODE=4' gStrQuery = gStrQuery & 'AND d.cFecha >= @FechaIni AND d.cFecha <= @FechaFin' // Se ejecuta la consulta Consulta tMiConsulta = tEmpresa[gStrQuery] // Se despliegan los datos de la consulta, nota que los //nombres de los campos van entre //apóstrofes Mientras tMiConsulta->Encontro // Se despliegan los campos del registro actual en //pantalla Lista tMiConsulta('CFOLIO'), tMiConsulta('CTOTAL') // Se salta al siguiente registro tMiConsulta.Busca Siguiente FinMientras

Los títulos del reporte NO cambian

La Búsqueda cambia por una consulta de SQL

Page 97: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-1

Casos especiales Computación en Acción, S.A. de C.V. Derechos Reservados®

Apéndice C

Casos especiales

Visión General

Introducción En este apéndice se muestran instrucciones extras a la programación común de un reporte.

Casos como la programación de reportes con Excel®, creación de consultas con SQL y generación de reportes sensibles al contexto.

Objetivos Al término de este apéndice el participante conocerá cómo crear:

• Un reporte con salida directa a Excel® utilizando VBA • Reportes sensibles al contexto • Consultas utilizando sentencias de SQL • Un reporte en CONTPAQ i® NÓMINAS • Conexiones entre tablas de la base de datos

En este apéndice Este apéndice contiene los siguientes temas:

Tema Página VISIÓN GENERAL C-1 REPORTES EN EXCEL® C-2 REPORTES SENSIBLES C-7 REPORTES EN CONTPAQ I® NÓMINAS C-12

Page 98: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-2

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos especiales

Reportes en Excel®

Reportes en Excel

Es posible crear reportes con salida directa a Excel® utilizando VBA (Visual Basic for Applications). De esta forma podrá:

• Dar formato a celdas (tamaño, color, tipo de letra, etcétera) de Excel® directamente desde el Reporteador.

• Crear Macros en VBA en un libro de Excel® y mandarlas ejecutar desde código del Reporteador.

• Hacer uso de las funciones de Excel® como tablas dinámicas, gráficos, ordenamiento de datos, entre otros, todo directamente con código desde el Reporteador.

Instrucciones OLE

Para crear un reporte en Excel, es necesario utilizar una serie de instrucciones básicas para crear un libro de Excel. Para el resto de las instrucciones es necesario conocer VBA.

Crear un objeto OLE

Para crear un objeto OLE se utiliza la instrucción ObjetoOLE y se puede hacer de dos formas. //Ejemplo 1: ObjetoOLE excel = ObjetoOLE.crear('Excel.Application') Ejemplo 2: ObjetoOLE excel excel = ObjetoOLE.crear('Excel.Application')

Métodos y propiedades

Una vez creado el objeto se podrán utilizar sus métodos y asignarle valores a sus propiedades: // Ejemplos excel.visible=true ws.Range('A1').Value='Hola mundo'

Constantes especiales

Existen 3 constantes especiales para el llamado de métodos OLE:

Constante Descripción ObjetoOLE.nulo Representa un valor nulo ObjetoOLE.vacio Representa un valor vacío ObjetoOLE.ausente Representa un valor ausente. Útil cuando el

objeto OLE destino usa valores por defecto

Continúa en la siguiente página

Page 99: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-3

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos espeicales

Reportes en Excel®, Continuación

Crear un libro nuevo

El siguiente código crea un libro de Excel y manda el mensaje ‘Hola mundo’ en la celda A1. Columnas 1;1 ObjetoOLE Excel = ObjetoOLE.crear('Excel.Application') ObjetoOLE wb=Excel.Workbooks.add(-4167) ObjetoOLE ws=wb.Sheets('Hoja1') Excel.Visible=true ws.Range('A1').Value='Hola Mundo'

Abrir un libro existente

El siguiente código abre un libro de Excel existente. Columnas 1;1 ObjetoOLE Excel = ObjetoOLE.crear('Excel.Application') ObjetoOLE wb=Excel.Workbooks.Open('C:/MiLibro.xls') ObjetoOLE ws=wb.Sheets('Hoja1') Excel.Visible=true ws.Range('A1').Value='Hola Mundo’

Ordenación en Excel

El siguiente código muestra cómo se ordenan datos en Excel, además se hace uso de la constante ObjetoOLE.ausente. // Ejemplo: // Declaración de constantes de Excel constante xlAscending 1 // Inicializar variables ObjetoOLE excel = ObjetoOLE.crear('Excel.Application') ObjetoOLE wb=excel.Workbooks.open('c:/testOle.xls') ObjetoOLE ws=wb.Sheets('Hoja1') //Muestra Excel excel.Visible=true // Ordenar de B3 a D16 ws.Range('B3:D16').Select excel.Selection.Sort(ws.Range('B3');xlAscending;ws.Range('C3');ObjetoOLE.ausente;xlAscending;ws.Range('D3');xlAscending)

Ejecutar una macro

El siguiente código ejecuta una macro llamada AplicarFormatoColumnas. // Inicializar objetos ObjetoOLE excel = ObjetoOLE.crear('Excel.Application') ObjetoOLE wb=excel.Workbooks.open('c:/testOle.xls') // Hacer visible Excel excel.Visible=true // Ejecutar Macro excel.Run('AplicarFormatoColumnas')

Continúa en la siguiente página

Page 100: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-4

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos especiales

Reportes en Excel®, Continuación

Crear un gráfico en Excel

El siguiente código crea un gráfico en Excel // Inicializar objetos ObjetoOLE excel = ObjetoOLE.crear('Excel.Application') ObjetoOLE wb=excel.Workbooks.open('c:/testOle.xls') wb.Charts.Add wb.ActiveChart.ChartType = 4 wb.ActiveChart.SetSourceData(wb.Sheets('Hoja2').Range('C4:C13');2) wb.ActiveChart.Location(2;'Hoja2') wb.ActiveChart.HasTitle = False wb.ActiveChart.Axes(1;1).HasTitle = False wb.ActiveChart.Axes(2;1).HasTitle = False // Mostrar Excel excel.Visible=true

Creación del encabezado

El siguiente código crea el encabezado de un reporte, con formato: // Constantes de Excel constante xlCentrarEnSeleccion 7 constante xlAutomatico -4105 constante xlManual -4135 constante xlInferior -4107 constante xlSubrayadoDoble -4119 constante xlIzquierda -4131 constante xlMediano -4138 constante xlNinguno -4142 constante xlDerecha -4152 constante xlSuperior -4160 constante xlHojaCalculo -4167 constante xlLineaSimple 1 constante xlBordeSuperior 8 constante xlBordeInferior 9 constante xlBordeIzquierda 7 constante xlBordeDerecha 10 constante xlCentro -4108 // Abrir excel ObjetoOLE Excel = ObjetoOLE.crear('Excel.Application') // Crear un libro ObjetoOLE wb=Excel.Workbooks.add(xlHojaCalculo) // Crear una hoja ObjetoOLE ws=wb.WorkSheets(1)

Continúa en la siguiente página

Page 101: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-5

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos espeicales

Reportes en Excel®, Continuación

Creación del encabezado Continúa

// Establecer ancho de columnas ws.Columns(1).ColumnWidth = 10 ws.Columns(2).ColumnWidth = 24 ws.Columns(3).ColumnWidth = 10 ws.Columns(4).ColumnWidth = 14 ws.Columns(5).ColumnWidth = 14 ws.Columns(6).ColumnWidth = 20 // Mostrar Excel excel.visible=-1 vReng=1 // Ultima Columna argColFinal='I' // Pone el nombre del sistema ws.Range('A' & vReng).Font.Color = @RGB(255;0;0) ws.Range('A' & vReng).Font.Size = 10 ws.Range('A' & vReng).Value = 'CONTPAQ i CONTABILIDAD' vReng=vReng+1 // Pone el nombre de la empresa ws.Range('A' & vReng).Font.Size = 14 ws.Range('A' & vReng).Font.FontStyle = 'Negrita' // Lo centra en las columnas B a la R ws.Range('A' & vReng & ':' & argColFinal & vReng).HorizontalAlignment = xlCentrarEnSeleccion ws.Range('A' & vReng ).Value = 'Gran Empresa' vReng=vReng+1 // Pone el titulo del reporte en EXCEL ws.Range('A' & vReng).Font.Size = 12 ws.Range('A' & vReng).Font.FontStyle = 'Negrita' ws.Range('A' & vReng ).Value = 'Listado de Pólizas' // Lo centra en las columnas A a la S ws.Range('A' & vReng & ':' & argColFinal & vReng).HorizontalAlignment = xlCentrarEnSeleccion vReng=vReng+1 ws.Range('A' & vReng).Font.Size = 12 ws.Range('A' & vReng).Font.FontStyle = 'Negrita' // Lo centra en las columnas A a la S ws.Range('A' & vReng & ':' & argColFinal & vReng).HorizontalAlignment = xlCentrarEnSeleccion

Continúa en la siguiente página

Page 102: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-6

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos especiales

Reportes en Excel®, Continuación

Creación del encabezado Continúa

// Avanza de renglon vReng = vReng + 4 // Pone el titulo de cada columna en EXCEL ws.Range('A' & vReng & ':' & argColFinal & vReng).Borders(xlInferior).LineStyle = xlLineaSimple ws.Range('A' & vReng & ':' & argColFinal & vReng).Borders(xlSuperior).LineStyle = xlLineaSimple ws.Range('A' & vReng & ':' & argColFinal & vReng).Borders(xlIzquierda).LineStyle = xlLineaSimple ws.Range('A' & vReng & ':' & argColFinal & vReng).Borders(xlDerecha).LineStyle = xlLineaSimple ws.Range('A' & vReng & ':' & argColFinal & vReng).Interior.ColorIndex = 55 ws.Range('A' & vReng & ':' & argColFinal & vReng).Font.FontStyle = 'Negrita' ws.Range('A' & vReng & ':' & argColFinal & vReng).Font.Color = @RGB(255;255;255) ws.Range('A' & vReng).Value='Cuenta' ws.Range('B' & vReng).Value='Nombre' ws.Range('C' & vReng).Value='Tipo' ws.Range('D' & vReng).Value='Periodo' ws.Range('E' & vReng).Value='Ejercicio' ws.Range('F' & vReng).Value='Concepto' ws.Range('G' & vReng).Value='Fecha' ws.Range('H' & vReng).Value='Cargos' ws.Range('I' & vReng).Value='Abonos' vReng=vReng+1 // Agregar Autofiltro ws.rows(8).AutoFilter

Page 103: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-7

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos espeicales

Reportes sensibles

Introducción El Reporteador tiene la capacidad de crear reportes sensibles al contexto, al hacer clic en un

área del reporte se ejecutará un segundo reporte basado en la información del primero.

Sintaxis DefFunc fFuncionSensible(aColumna; aArgumentos)

Ejecuta 'REPORTE_DESTINO.RTW'; parametro1, parametroN; aParametros FinFunc DefRegion fFuncionSensible [CN].RegionInfo vStringParametros

Parámetros A continuación se muestra la descripción de los parámetros:

Parámetro Se refiere a

fFuncionSensible Nombre de la función que se ejecutará. aColumna Número de columna sensible. aParametros String con los argumentos de la función. parametro1,…, parametroN

Parámetros a enviar al reporte destino. Importante: Los parámetros deben ser exactamente los mismos que se reciben en el reporte destino.

aParametros String fijo requerido por la función. CN Define la columna sensible al contexto. vStringParametros String con los parámetros a enviar a la función.

Ejemplo El siguiente ejemplo muestra el reporte fuente Sensibles_Polizas.RTW que despliega un

listado de pólizas, y el reporte destino Sensibles_Movimientos.RTW que despliega los movimientos de las pólizas.

Columna sensible

En el reporte fuente, se define la columna del “Folio” como area sensible al contexto, quiere decir que al hacer clic sobre el folio se ejecutará el reporte destino mostrando los movimientos de póliza de ese folio.

Parámetros Se enviarán 4 campos como parámetros: "Ejercicio", "Periodo", "Tipo" y "Folio".

Importante: Los parámetros que se envían desde el reporte fuente deben ser exactamente los mismos que se reciben en el reporte destino.

Continúa en la siguiente página

Page 104: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-8

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos especiales

Reportes sensibles, Continuación

Ejemplo reporte fuente

// Reporte Listado de pólizas "Sensibles_Polizas" // incluye un área sensible que ejecuta los movimientos de póliza // se mandan como parametros: Ejercicio, Periodo, TipoPol y Folio // Elaboró: Marco A. Muñoz // Fecha: 18 / Dic / 2008 // Se definen las columnas del reporte Columnas 7;3 // ******************** // fEjecutaMovimientos // Se define la función que ejecutará el reporte de movimientos de póliza // // Argumento - aColumna: Número de columna // Argumento - aMovimientos: String que contiene los campos "Ejercicio", "Periodo", "Tipo" y //"Folio" que se enviarán como parámetro //al reporte "Sensibles_Movimientos.RTW" // ******************** DefFunc fEjecutaMovimientos(aColumna; aMovimientos) Ejecuta 'SENSIBLES_MOVIMIENTOS2.RTW'; @Escoge(aMovimientos;0),@Escoge(aMovimientos;1),@Escoge(aMovimientos;2),@Escoge(aMovimientos;3); aMovimientos FinFunc // Se abre la empresa usaempresa tEmpresa;'Contpaq i' // Se abre la tabla Pólizas usatabla tPolizas = tEmpresa['Polizas'] // Se despliega el título del reporte Texto '^L I S T A D O D E P O L I Z A S' Imprime // Se despliegan los títulos de las columnas Lista 'EJERCICIO','PERIODO','TIPO','FOLIO','CARGOS','ABONOS','ID'

Continúa en la siguiente página

Page 105: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-9

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos espeicales

Reportes sensibles, Continuación

Ejemplo reporte fuente

// Se define la región sensible al contexto y la función que se ejecutará // al hacer doble clic sobre un registro DefRegion fEjecutaMovimientos // Se agregan los campos del query tPolizas.Agregacolumna ['Ejercicio'] tPolizas.Agregacolumna ['Periodo'] tPolizas.Agregacolumna ['TipoPol'] tPolizas.Agregacolumna ['Folio'] tPolizas.Agregacolumna ['Cargos'] tPolizas.Agregacolumna ['Abonos'] tPolizas.Agregacolumna ['Fecha'] tPolizas.Agregacolumna ['Id'] // Se procesa el query tPolizas.Procesa // Se recorre toda la tabla Pólizas Mientras tPolizas->Encontro // Se define la columna C3 que se marcará como área sensible al contexto, al hacer // doble clic sobre el registro de esta columna // se mandarán los campos "Ejercicio", "Periodo", "TipoPol" y "Folio" como //parámetros a la función fEjecutaMovimientos [C3].RegionInfo tPolizas(Ejercicio) & ',' & tPolizas(Periodo) & ',' & tPolizas(TipoPol) & ',' & tPolizas(Folio) // Se despliegan los campos del registro actual en pantalla Lista tPolizas(Ejercicio),tPolizas(Periodo),tPolizas(TipoPol),tPolizas(Folio),tPolizas(Cargos),tPolizas(Abonos),tPolizas(Id) // Se salta al siguiente registro tPolizas.Busca Siguiente FinMientras

Continúa en la siguiente página

Page 106: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-10

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos especiales

Reportes sensibles, Continuación

Ejemplo reporte destino

// Reporte de movimientos de póliza // Elaboró: Marco A. Muñoz // Fecha: 18 / Dic / 2008 // Se definen las columnas del reporte Columnas 6;3 // Se abre la empresa usaempresa tEmpresa;'Contpaq i' // Se abre la tabla de Movimientos usatabla tMovimientos = tEmpresa['MovimientosPoliza'] // Se despliega el título del reporte Texto '^L I S T A D O D E M O V I M I E N T O S' Imprime // Se despliegan los títulos de las columnas Lista 'EJERCICIO','PERIODO','TIPO','FOLIO','CARGOS','ABONOS'//,'ID' // Se definen los filtros del reporte Parametros Titulo 'Filtros del reporte' Pagina 'Principal' Parametro pEjercicio = 2008 Captura Titulo 'Ejercicio' Ayuda 'Capture el Ejercicio' Control CtrlNumero FinCaptura Parametro pPeriodo = 1 Captura Titulo 'Periodo' Ayuda 'Capture el Periodo' Control CtrlNumero FinCaptura Parametro pTipoPol = 1 Captura Titulo 'Tipo Póliza' Ayuda 'Capture el Tipo de Póliza' Control CtrlNumero FinCaptura Parametro pFolio = 1 Captura Titulo 'Folio' Ayuda 'Capture el Folio' Control CtrlNumero FinCaptura FinPagina FinParametros

Continúa en la siguiente página

Page 107: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-11

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos espeicales

Reportes sensibles, Continuación

Ejemplo reporte destino

// Se define la búsqueda en la tabla Movimientos tMovimientos.Agregacolumna ['Ejercicio'] tMovimientos.Agregacolumna ['Periodo'] tMovimientos.Agregacolumna ['TipoPol'] tMovimientos.Agregacolumna ['Folio'] tMovimientos.Agregacolumna ['TipoMovto'] tMovimientos.Agregacolumna ['Importe'] tMovimientos.Agregacolumna ['Fecha'] tMovimientos.Agregacondicion [tMovimientos(Ejercicio) = pEjercicio] tMovimientos.Agregacondicion [tMovimientos(Periodo) = pPeriodo] tMovimientos.Agregacondicion [tMovimientos(TipoPol) = pTipoPol] tMovimientos.Agregacondicion [tMovimientos(Folio) = pFolio] tMovimientos.Procesa Mientras tMovimientos->Encontro // Se despliegan los campos del registro actual en pantalla Texto C0;tMovimientos(Ejercicio) Texto C1;tMovimientos(Periodo) Texto C2;tMovimientos(TipoPol) Texto C3;tMovimientos(Folio) Si tMovimientos(TipoMovto)=false Texto C4;tMovimientos(Importe) Sino Texto C5;tMovimientos(Importe) FinSi Imprime // Se salta al siguiente registro tMovimientos.Busca Siguiente FinMientras

Page 108: MANUAL DE REPORTEADOR - contpaqi.com€¦ · Cualquier otra marca que se mencione dentro de este manual que pertenezca a terceras partes tiene ... • Sea capaz de crear un reporte

Página C-12

Computación en Acción, S.A. de C.V. Derechos Reservados®

Casos especiales

Reportes en CONTPAQ i® NÓMINAS

Introducción Los reportes en CONTPAQ i® NÓMINAS con conexión a SQL son prácticamente igual a los

reportes de CONTPAQ i® COMERCIAL, solo cambian las instrucciones de conexión que se explican a continuación.

Instrucción Conexion

La instrucción Conexion establece una liga a las bases de datos. Para el caso de CONTPAQ i® NÓMINAS se establecen dos conexiones:

• A las tablas generales. • Y a las tablas dentro de la empresa.

Conexión a las tablas de la empresa

La siguiente instrucción establece una conexión a las tablas de la empresa: Conexion conexionNomipaq = Conexion.crear('jdbc:jtds:sqlserver://' & @parametroConsola('Servidor') & '/'& @parametroConsola('NombreEmpresa') &';instance='& @parametroConsola('Instancia'),@parametroConsola('NombreUsuario'),@parametroConsola('Clave')) Nota: La instrucción @parametroConsola envía los parámetros necesarios para el String de conexión.

Conexión a las tablas generales

La siguiente instrucción establece una conexión a las tablas generales: Conexion conexionNomipaq2 = Conexion.crear('jdbc:jtds:sqlserver://' & @parametroConsola('Servidor') & '/nomGenerales;instance='& @parametroConsola('Instancia'),@parametroConsola('NombreUsuario'),@parametroConsola('Clave'))

Consultas Para extraer información de las tablas se utiliza la instrucción Consulta.

// El siguiente código extrae información de la empresa a partir de las tablas generales. idemp= @parametroConsola('IdEmpresa') Consulta ConsultaE=conexionNomipaq2['SELECT e.NombreEmpresa,e.RFC,e.RegistroIMSS,e.FechaConstitucion,e.Homoclave, e.mascarillacodigo FROM nom10000 e WHERE e.IdEmpresa = \''& idemp &'\'' ] Nota: Observe que el apóstrofe es caracter reservado tanto en SQL como en reporteador. A fin de que el apostrofe se tome como caracter literal, se deberá anteponer una diagonal inversa. Ejemplo \’. Referencia: Para más información sobre reportes de CONTPAQ i® NÓMINAS, consulte el reporte AltaIMSS.RPT ubicado en <C:\Compac\Empresas\Reportes\NOMINAS>

Editor de reportes

Para ejecutar el Editor de reportes de CONTPAQ i® NÓMINAS haga doble clic sobre el archivo run editor.bat ubicado en la siguiente ruta: <C:\Archivos de programa\Compac\Nominas\reporteador i>