520 likes | 689 Views
Taller Reporteador Windows Nivel Básico. Agenda. Revisión de características e instrucciones básicas del reporteador. Desarrollo de reportes de casos prácticos (1a. Parte). Receso Desarrollo de reportes de casos prácticos (2a. parte). Receso
E N D
Agenda • Revisión de características e instrucciones básicas del reporteador. • Desarrollo de reportes de casos prácticos (1a. Parte). • Receso • Desarrollo de reportes de casos prácticos (2a. parte). • Receso • Desarrollo de reportes de casos prácticos, (Parte final).
Objetivo Aprender y/o aumentar el conocimiento de las características básicas del Reporteador Windows desarrollando casos prácticos.
Conceptos básicos • Reporte. • Reporteador. • Algoritmo. • Compilador. • Editor.
Características • Columnar. • 400 cm o 255 columnas. • Hasta 3000 renglones o instrucciones de código en las nuevas versiones. • Cliente de OLE Automation (Excel, Word, etc.). • Hoja dinámica interna (similar hoja de Excel). • Reportes sensibles al contexto. • Sintáxis no sensible a minúsculas o mayúsculas.
Proceso para generar código máquina Archivo Código Fuente Archivo Código Máquina Compilador Archivo.RPT Archivo.RTW WinRep.EXE Winrep32.EXE BDERep32.EXE
Instrucciones básicas • Puntos a tomar en cuenta al desarrollar un reporte. • Instrucción para comentarios. • Instrucción COLUMNAS. • Uso de variables.
Puntos a tomar en cuenta • Descripción de las instrucciones utilizando comentarios. • Uso de tabuladores (uso de otrosEditores). • Nomenclatura en los nombres (utilizar nombres descriptivos para las variables). • Es muy importante definir columnas al inicio de cualquier reporte. • Terminar el reporte con una línea en blanco (dar un <Enter> después de la última instrucción).
Puntos a tomar en cuenta • Diseño del reporte Encabezado Detalle
Comentarios La forma de insertar comentarios en el reporte es con la doble díagonal //. Ejemplo: // Archivo: Mi primer reporte.RPT // Descripción: Reporte de prueba para comprender el uso de // comentarios. // // Fecha: // Autor: //
Instrucción COLUMNAS Sirve para definir el número de columnas y el tamaño que tendrá el reporte. Sintáxis: COLUMNAS NumColumnas;Ancho1,Ancho2,... Parámetros: NumColumnas: es el número de columas del reporte Ancho1,Ancho2,... : ancho de las columnas en centímetros Ejemplo: COLUMNAS 4;10,2,4,1
Uso de variables Es un espacio que se designa en memoria para almacenar un valor de cualquier tipo. Una variable tiene N número de casillas, dónde N es el número de columnas definidos en el reporte. Sintáxis: Variable[NumeroCasilla] = número Variable[NumeroCasilla] = ‘Texto’ Variable = número[C<NumeroColumna>]
Uso de variables, continuación... Ejemplos: Para asignar la palabra Hola en la casilla 0 de una variable llamada varDatos se hace de la siguiente manera: varDatos[0] = ‘Hola’ Para asignar el número 45 en la casilla 1 de la variable varDatos se hace de la siguiente manera: varDatos[1] = 45 o también de la siguiene manera: varDatos = 45[C1] COLUMNAS 4;2 0 1 2 3
Uso de variables, continuación Ejemplos: COLUMNAS 6;2 varDatos = ‘Totales:’ varDatos = 100[C1..C5] varDatos = 500[C7] varDatos[1..5] = 100 varDatos[1,5] = 200 varDatos = 500[1..5]
Uso de variables, continuación Ejemplos: COLUMNAS 6;2 varDatos = ‘Totales:’ varDatos = 100[C1..C5] varDatos = 500[C7] INCORRECTA varDatos[1..5] = 100 INCORRECTA varDatos[1,5] = 200 varDatos = 500[1..5] INCORRECTA
Interactuando con el usuario • Instrucción LISTA. • Instrucción TEXTO. • Instrucción PARAMETRO. • Instrucción ACEPTA. • Instrucción ACEPTA con lista de opciones.
Instrucción LISTA Manda información a pantalla. Puede ser textos, números o valores almacenados en una variable. Sintáxis: LISTA ‘Mensaje texto en Columna 0’,’Mensaje texto en Columna 1’,... LISTA variable_en_Columna_0, variable_en_Columna_1,... LISTA variable;avance_de_lineas Ejemplos: LISTA ‘Mi nombre es’,’Juan Pérez’ varTelefono = ‘38180900’ LISTA ‘’,’’,’’,varTelefono varTotal = ‘Total:’[C0] varTotal = 200[C1..C6] LISTA varTotal;1
Instrucción TEXTO e IMPRIME Manda información a pantalla. Puede ser textos, números o valores almacenados en una variable. Sintáxis: TEXTO ‘Mensaje texto’ TEXTO C<NumeroColumna>;’Mensaje Texto’ TEXTO Posicion_en_Centímetros;’Mensaje Texto’ IMPRIME Ejemplos: TEXTO ’Hola’ TEXTO C1;’Mundo’ TEXTO 6.5;’Mi nombre es’ IMPRIME
Instrucción PARAMETRO Se utiliza para recibir valores desde un diálogo propio de la aplicación (ContPAQ, NomiPAQ, etc), cuando no se envía nada del diálogo o se ejecuta el reporte directamente se toma por omisión los valores asumidos en esta instrucción. Sintáxis: PARAMETRO variable = ValorInicial Ejemplos: PARAMETRO Ejercicio = 2005 PARAMETRO ProductoInicial = ‘52011232252’ PARAMETRO ImprimirCancelados = FALSO
Instrucción ACEPTA Se utiliza para recibir valores del Usuario que pueden servir para aplicar filtros. Sintáxis: ACEPTA [´Título ventana’;]’Mensaje’;variableReceptora Ejemplos: ACEPTA ‘Datos Personales’;’Introduce la edad’;varEdad Datos Personales X Introduce la edad Aceptar | Cancelar
Instrucción ACEPTA lista de opciones Se utiliza para recibir valores, mostrando una lista de opciones de las cuales el Usuario puede seleccionar alguna de ellas. Sintáxis: ACEPTA [´Título ventana’;]’Mensaje’;variableReceptora;’elemento1,elemento2,...’ Ejemplos: ACEPTA ‘Lista de colores’;’Seleccione un color’;varColor;’Rojo,Azul,Blanco,Verde’ Lista de colores X Seleccione un color Aceptar Rojo Azul Blanco Verde Cancelar
Conociendo las bases de datos (BD) • Conceptos de Bases de Datos. • Ubicación de las Tablas. • Estructura de las Tablas. • Proceso para el Acceso a las Bases de Datos.
Conceptos de BD • Dato • Campo • Registro • Tabla • Empresa
Proceso para el acceso a BD • Conectarse a la empresa. • Definir las tablas a utilizar para el reporte. • Definir los índices a utilizar. • Definir los campos a desplegar.
Accesando las BD´s • Conectándose a la Empresa. • Campos de la Empresa. • Definiendo las Tablas. • Definiendo los Índices. • Buscando Datos. • Saltando Registros. • Definiendo los campos.
Conectandose a la empresa La instrucción USAEMPRESA se utiliza para conectarse a la empresa. Esta instrucción declara una variable que será utilizada para hacer referencia a empresa. Sintáxis: USAEMPRESA variableEmpresa;’Sistema’[;’Ruta’] Ejemplos: USAEMPRESA empMegaPAQ;’MegaPAQ1.00’;’C:\Compacw\Empresas\Emp1’ USAEMPRESA empContPAQ;’CONTPAQW’ USAEMPRESA empAdminPAQ;’ADMINPAQW’ USAEMPRESA empCheqPAQ;’CHEQPAQW’ USAEMPRESA empNomiPAQ;’NOMIPAQW’
Conectandose a la empresa, cont. Selección de empresa X Seleccione una empresa Aceptar La Gran Empresa, SA de CV Empresa Demostración Cancelar
Campos de la empresa Los campos de la empresa nos sirven para extraer información general de la empresa, tales como el Nombre, Dirección, Telefonos, Colonia, etc. Sintáxis: variableEmpresa->Campo Ejemplos: COLUMNAS 5;2 USAEMPRESA varEmp1;’CONTPAQW’ TEXTO varEmp1->Nombre IMPRIME
Definiendo las tablas La instrucción USATABLA declara una variable que será utilizada en el reporte para hacer referencia a una tabla. Sintáxis: USATABLAvariableTabla = variableEmpresa[‘NombreTabla’] Ejemplos: USATABLA tClientes = varEmpAdm[‘MGW10002’] USATABLA tCuentas = varEmpCtw[‘CTW10001’] USATABLA tBenefPag = varEmpChq[‘BenefPag’] USATABLA tEmpleados = varEmpNom[‘Nom10001’]
Definiendo los índices La función USAINDICE de la variable Tabla se utiliza para ordenar el despliegue de los datos por medio del índice en conjunto con búsquedas en base a criterios. Sintáxis: variableTabla.USAINDICE[‘NombreIndice’] Ejemplos: tClientes.USAINDICE[‘CCODIGOCLIENTE’] tCuentas.USAINDICE [‘ICUENTA’] tBenefPag.USAINDICE [‘PRIMARYKEY’] tEmpleados.USAINDICE [‘’]
Buscando datos La función BUSCA PRIMERO de la variable Tabla se utiliza para buscar el primer registro de la tabla en el orden del índice activo. Sintáxis: variableTabla.BUSCA PRIMERO Ejemplos: tClientes.BUSCA PRIMERO tCuentas.BUSCA PRIMERO tBenefPag.BUSCA PRIMERO tEmpleados.BUSCA PRIMERO
Buscando datos, continuación La función BUSCA ULTIMO de la variable Tabla se utiliza para buscar el último registro de la tabla en el orden del índice activo. Sintáxis: variableTabla.BUSCA ULTIMO Ejemplos: tClientes.BUSCA ULTIMO tCuentas.BUSCA ULTIMO tBenefPag.BUSCA ULTIMO tEmpleados.BUSCA ULTIMO
Buscando datos, continuación La función SALTAREG de la variable Tabla se utiliza para buscar el siguiente o anterior registro de la tabla en el orden del índice activo. Sintáxis: variableTabla.SALTAREG[‘Numero de registros a saltar’] Ejemplos: tClientes.SALTAREG[1] tCuentas.SALTAREG[-1] tBenefPag.SALTAREG[1] tEmpleados.SALTAREG[1]
Buscando datos, continuación La función BUSCA de la variable Tabla se utiliza para buscar un registro en base a un criterio aplicado sobre la llave del índice activo. Sintáxis: variableTabla.BUSCA[Llave] Ejemplos: tClientes.BUSCA[‘100’] tCuentas.BUSCA[‘110101’] tBenefPag.BUSCA[‘500’] tEmpleados.BUSCA[‘ROBERTO DEL ALTO TORRES’]
Buscando datos, continuación Diferencias en el uso de la función BUSCA de las diferentes versiones del reporteador. WinRep32: Ejemplo: tSaldosCuentas.BUSCA[‘110101 20051’] BDERep32 Ejemplo: tEmpleado.BUSCA[campoLlave1 & ‘:’ & campoLlave2 & …]
Definiendo los campos Sintáxis: variableTabla.(NombreCampo) Ejemplos: tClientes(cNombreCliente) tCuentas.(Codigo) tBenefPag.(Nombre) tEmpleados.(Nombre)
Ciclos • Comparadores • Instrucción Mientras • Instrucción InicioRepite • Terminación de ciclos
Comparadores • Encontro Mientras se encuentren registros • Igualdad a = b • Desigualdad a != b • Negación !a • Mayor Que a > b • Menor Que a < b • Mayor Igual Que a >= b • Menor Igual Que a <= b • Conjunción a Y b • Disyunción a O b
Instrucción MIENTRAS Sintáxis: MIENTRAS condición // Instrucciones a repetir mientras la condición sea verdadera FINMIENTRAS Ejemplos: tCliente.BUSCA PRIMERO MIENTRAS tCliente->Encontro LISTA tCliente(cCodigoClienteProveedor,RazSocial) tCliente.SALTAREG[1] FINMIENTRAS
Instrucción MIENTRAS, continuación Con iniciación, condición e incremento. Sintáxis: MIENTRAS [ iniciación; condición; incremento ] // Instrucciones a repetir mientras la condición sea verdadera FINMIENTRAS Ejemplos: MIENTRAS[tCliente.BUSCA PRIMERO; tCliente->Encontro; tCliente.SALTAREG[1] ] LISTA tCliente(cCodigoClienteProveedor,RazSocial) FINMIENTRAS
Instrucciones INICIOREPITE, REPITE Sintáxis: INICIOREPITE // Instrucciones a repetir al menos una vez // antes de verificar si no se cumple la condición REPITE MIENTRAS condición Ejemplos: tCliente.BUSCA PRIMERO Si tCliente->Encontro INICIOREPITE LISTA tCliente(cCodigoClienteProveedor,RazSocial) tCliente.SALTAREG[1] REPITE tCliente->Encontro FinSi
Finalización de ciclos Sintáxis: FINCICLO Ejemplos: Numero = 0 tCliente.BUSCA PRIMERO Si tCliente->Encontro INICIOREPITE Numero = Numero + 1 LISTA tCliente(cCodigoClienteProveedor,RazSocial) Si Numero = 10 FINCICLO FinSi tCliente.SALTAREG[1] REPITE tCliente->Encontro FinSi
Condiciones • Instrucciones SI, SINO y FINSI • Instrucciones ESCOGE, CASO, FINCASO, FINESCOGE
Instrucciones SI, SINO, FINSI Sintáxis: SI condición // Instrucciones a ejecutar si la condición es verdadera SINO // Instrucciones a ejecutar si la condición es falsa FINSI Ejemplos: SI varEdad > 18 Lista ‘Mayor de edad’ SINO Lista ‘Menor de edad’ FINSI
Instrucciones ESCOGE, CASO, FINCASO y FINESCOGE Se utiliza para ejecutar un bloque de instrucciones dependiendo del valor de una variable. Sintáxis: ESCOGE NombreVariable CASO 1 // Instrucciones a ejecutar FINCASO CASO 2 // Instrucciones a ejecutar CASO N // Instrucciones a ejecutar FINESCOGE
Instrucciones ESCOGE, CASO, FINCASO y FINESCOGE, cont. Ejemplo: ESCOGE variablePais CASO ‘México’ Nacionalidad = ‘Mexicano’ FINCASO CASO ‘Estados Unidos’ Nacionalidad = ‘Estadounidense’ FINCASO CASO ‘Francia’ Nacionalidad = ‘Francés FINCASO FINESCOGE
Crear nuevas funciones Se utiliza para agrupar instrucciones que serán ejecutadas repetidamente y además estas funciones pueden convertirse en extensión del lenguaje del reporteador. Sintáxis: DEFFUNC nombre_funcion(argumento1;argumento2,...,argumentoN) // Instrucciones... FINFUNC Invocación de Funciones: variableResultado = NombreFuncion(argumento1;argumento2;...;argumentoN) NOTA IMPORTANTE: La función a invocar debe estar definida previamente al punto de donde será invocada.
Reporteador y Excel Instrucciones Básicas Objeto Excel = @CreaObjeto(‘Excel.Application’) Objeto wb = Excel.Workbooks.Add(-4167) Objeto ws = wb.workSheets(1) Excel.Visible = 1[C0] ws.Range(‘A1’).Value = ‘Hola Mundo’