Está en la página 1de 51

Taller

Reporteador Windows
Nivel Bsico
Agenda
Revisin de caractersticas e
instrucciones bsicas del reporteador.
Desarrollo de reportes de casos prcticos
(1a. Parte).
Receso
Desarrollo de reportes de casos prcticos
(2a. parte).
Receso
Desarrollo de reportes de casos prcticos,
(Parte final).

Objetivo
Aprender y/o aumentar el
conocimiento de las caractersticas
bsicas del Reporteador Windows
desarrollando casos prcticos.
Conceptos bsicos
Reporte.
Reporteador.
Algoritmo.
Compilador.
Editor.

Caractersticas
Columnar.
400 cm o 255 columnas.
Hasta 3000 renglones o instrucciones de cdigo en las
nuevas versiones.
Cliente de OLE Automation (Excel, Word, etc.).
Hoja dinmica interna (similar hoja de Excel).
Reportes sensibles al contexto.
Sintxis no sensible a minsculas o maysculas.

Compiladores
Compilador Base de
Datos
Sistemas Ubicacin
WinRep.exe Foxpro 2.5 o
superior y
CodeBase
ContPAQ y
MegaPAQ
Windows 16 Bits
C:\Compacw\Sistemas\ContPAQ
C:\Compacw\Sistemas\MegaPAQ

WinRep32.exe Foxpro 2.5 o
superior y
CodeBase
ContPAQ y
AdminPAQ
(CodeBase)
Windows 32 Bits
C:\Archivos de programa\Compacw\Bin
C:\Archivos de programa\Compacw\AdminPAQ

BDERep32 Paradox CheqPAQ,
NomiPAQ
AdminPAQ
(Paradox)
C:\Archivos de programa\Compacw\Bin
C:\Archivos de programa\Compacw\AdminPAQ

Proceso para generar cdigo mquina
Archivo Cdigo
Fuente
Compilador
Archivo Cdigo
Mquina
Archivo.RPT
WinRep.EXE
Winrep32.EXE
BDERep32.EXE
Archivo.RTW
Instrucciones bsicas
Puntos a tomar en cuenta al desarrollar
un reporte.
Instruccin para comentarios.
Instruccin COLUMNAS.
Uso de variables.
Puntos a tomar en cuenta
Descripcin 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 lnea en blanco
(dar un <Enter> despus de la ltima instruccin).
Puntos a tomar en cuenta
Encabezado
Detalle
Diseo del reporte
Comentarios
La forma de insertar comentarios en el reporte es con
la doble dagonal //.

Ejemplo:

// Archivo: Mi primer reporte.RPT
// Descripcin: Reporte de prueba para comprender el uso de // comentarios.
//
// Fecha:
// Autor:
//

Instruccin COLUMNAS
Sirve para definir el nmero de columnas y el tamao que tendr
el reporte.

Sintxis:
COLUMNAS NumColumnas;Ancho1,Ancho2,...

Parmetros:
NumColumnas: es el nmero de columas del reporte
Ancho1,Ancho2,... : ancho de las columnas en centmetros

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 nmero de casillas, dnde N es el nmero
de columnas definidos en el reporte.

Sintxis:
Variable[NumeroCasilla] = nmero
Variable[NumeroCasilla] = Texto
Variable = nmero[C<NumeroColumna>]

Uso de variables, continuacin...
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 nmero 45 en la casilla 1 de la variable varDatos se hace de la
siguiente manera:
varDatos[1] = 45
o tambin de la siguiene manera:
varDatos = 45[C1]

COLUMNAS 4;2

0 1 2 3

Hola 45 12 Mundo
Uso de variables, continuacin
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, continuacin
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
Instruccin LISTA.
Instruccin TEXTO.
Instruccin PARAMETRO.
Instruccin ACEPTA.
Instruccin ACEPTA con lista de
opciones.

Instruccin LISTA
Manda informacin a pantalla. Puede ser textos, nmeros o
valores almacenados en una variable.

Sintxis:
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 Prez

varTelefono = 38180900
LISTA ,,,varTelefono

varTotal = Total:[C0]
varTotal = 200[C1..C6]
LISTA varTotal;1

Instruccin TEXTO e IMPRIME
Manda informacin a pantalla. Puede ser textos, nmeros o
valores almacenados en una variable.

Sintxis:
TEXTO Mensaje texto

TEXTO C<NumeroColumna>;Mensaje Texto

TEXTO Posicion_en_Centmetros;Mensaje Texto

IMPRIME

Ejemplos:
TEXTO Hola
TEXTO C1;Mundo
TEXTO 6.5;Mi nombre es
IMPRIME

Instruccin PARAMETRO
Se utiliza para recibir valores desde un dilogo propio de la
aplicacin (ContPAQ, NomiPAQ, etc), cuando no se enva
nada del dilogo o se ejecuta el reporte directamente se toma
por omisin los valores asumidos en esta instruccin.

Sintxis:
PARAMETRO variable = ValorInicial


Ejemplos:

PARAMETRO Ejercicio = 2005
PARAMETRO ProductoInicial = 52011232252
PARAMETRO ImprimirCancelados = FALSO

Instruccin ACEPTA



Se utiliza para recibir valores del Usuario que pueden servir para aplicar
filtros.

Sintxis:
ACEPTA [Ttulo ventana;]Mensaje;variableReceptora


Ejemplos:

ACEPTA Datos Personales;Introduce la edad;varEdad
Datos Personales
Introduce la edad
|
Aceptar
Cancelar
X
Instruccin ACEPTA lista de opciones



Se utiliza para recibir valores, mostrando una lista de opciones de las cuales
el Usuario puede seleccionar alguna de ellas.

Sintxis:
ACEPTA [Ttulo ventana;]Mensaje;variableReceptora;elemento1,elemento2,...

Ejemplos:

ACEPTA Lista de colores;Seleccione un color;varColor;Rojo,Azul,Blanco,Verde
Lista de colores
Seleccione un color
Rojo
Azul
Blanco
Verde
Aceptar
Cancelar
X
Conociendo las bases de datos (BD)
Conceptos de Bases de Datos.
Ubicacin 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 BDs
Conectndose 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 instruccin USAEMPRESA se utiliza para conectarse a la empresa.
Esta instruccin declara una variable que ser utilizada para hacer
referencia a empresa.

Sintxis:
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.
Seleccin de empresa
Seleccione una empresa
Aceptar
Cancelar
X
La Gran Empresa, SA de CV
Empresa Demostracin
Campos de la empresa
Los campos de la empresa nos sirven para extraer informacin
general de la empresa, tales como el Nombre, Direccin,
Telefonos, Colonia, etc.

Sintxis:
variableEmpresa->Campo

Ejemplos:
COLUMNAS 5;2
USAEMPRESA varEmp1;CONTPAQW
TEXTO varEmp1->Nombre
IMPRIME

Definiendo las tablas
La instruccin USATABLA declara una variable que ser utilizada
en el reporte para hacer referencia a una tabla.

Sintxis:
USATABLA variableTabla = variableEmpresa[NombreTabla]

Ejemplos:
USATABLA tClientes = varEmpAdm[MGW10002]
USATABLA tCuentas = varEmpCtw[CTW10001]
USATABLA tBenefPag = varEmpChq[BenefPag]
USATABLA tEmpleados = varEmpNom[Nom10001]
Definiendo los ndices
La funcin USAINDICE de la variable Tabla se utiliza para ordenar
el despliegue de los datos por medio del ndice en conjunto
con bsquedas en base a criterios.

Sintxis:
variableTabla.USAINDICE[NombreIndice]

Ejemplos:
tClientes.USAINDICE[CCODIGOCLIENTE]
tCuentas.USAINDICE [ICUENTA]
tBenefPag.USAINDICE [PRIMARYKEY]
tEmpleados.USAINDICE []
Buscando datos
La funcin BUSCA PRIMERO de la variable Tabla se utiliza para
buscar el primer registro de la tabla en el orden del ndice
activo.

Sintxis:
variableTabla.BUSCA PRIMERO

Ejemplos:
tClientes.BUSCA PRIMERO
tCuentas.BUSCA PRIMERO
tBenefPag.BUSCA PRIMERO
tEmpleados.BUSCA PRIMERO
Buscando datos, continuacin
La funcin BUSCA ULTIMO de la variable Tabla se utiliza para
buscar el ltimo registro de la tabla en el orden del ndice
activo.

Sintxis:
variableTabla.BUSCA ULTIMO

Ejemplos:
tClientes.BUSCA ULTIMO
tCuentas.BUSCA ULTIMO
tBenefPag.BUSCA ULTIMO
tEmpleados.BUSCA ULTIMO
Buscando datos, continuacin
La funcin SALTAREG de la variable Tabla se utiliza para buscar
el siguiente o anterior registro de la tabla en el orden del
ndice activo.

Sintxis:
variableTabla.SALTAREG[Numero de registros a saltar]

Ejemplos:
tClientes.SALTAREG[1]
tCuentas.SALTAREG[-1]
tBenefPag.SALTAREG[1]
tEmpleados.SALTAREG[1]

Buscando datos, continuacin
La funcin BUSCA de la variable Tabla se utiliza para buscar un
registro en base a un criterio aplicado sobre la llave del ndice
activo.

Sintxis:
variableTabla.BUSCA[Llave]

Ejemplos:
tClientes.BUSCA[100]
tCuentas.BUSCA[110101]
tBenefPag.BUSCA[500]
tEmpleados.BUSCA[ROBERTO DEL ALTO TORRES]
Buscando datos, continuacin
Diferencias en el uso de la funcin BUSCA de las diferentes
versiones del reporteador.

WinRep32:
Ejemplo:
tSaldosCuentas.BUSCA[110101 20051]

BDERep32
Ejemplo:
tEmpleado.BUSCA[campoLlave1 & : & campoLlave2 & ]

Definiendo los campos
Sintxis:
variableTabla.(NombreCampo)

Ejemplos:
tClientes(cNombreCliente)
tCuentas.(Codigo)
tBenefPag.(Nombre)
tEmpleados.(Nombre)
Ciclos
Comparadores
Instruccin Mientras
Instruccin InicioRepite
Terminacin de ciclos

Comparadores
Encontro Mientras se encuentren registros
Igualdad a = b
Desigualdad a != b
Negacin !a
Mayor Que a > b
Menor Que a < b
Mayor Igual Que a >= b
Menor Igual Que a <= b
Conjuncin a Y b
Disyuncin a O b

Instruccin MIENTRAS
Sintxis:
MIENTRAS condicin
// Instrucciones a repetir mientras la condicin sea verdadera
FINMIENTRAS

Ejemplos:
tCliente.BUSCA PRIMERO
MIENTRAS tCliente->Encontro
LISTA tCliente(cCodigoClienteProveedor,RazSocial)
tCliente.SALTAREG[1]
FINMIENTRAS
Instruccin MIENTRAS, continuacin
Con iniciacin, condicin e incremento.

Sintxis:
MIENTRAS [ iniciacin; condicin; incremento ]
// Instrucciones a repetir mientras la condicin sea verdadera
FINMIENTRAS

Ejemplos:
MIENTRAS[tCliente.BUSCA PRIMERO; tCliente->Encontro; tCliente.SALTAREG[1] ]
LISTA tCliente(cCodigoClienteProveedor,RazSocial)
FINMIENTRAS
Instrucciones INICIOREPITE, REPITE
Sintxis:
INICIOREPITE
// Instrucciones a repetir al menos una vez
// antes de verificar si no se cumple la condicin
REPITE MIENTRAS condicin
Ejemplos:
tCliente.BUSCA PRIMERO
Si tCliente->Encontro
INICIOREPITE
LISTA tCliente(cCodigoClienteProveedor,RazSocial)
tCliente.SALTAREG[1]
REPITE tCliente->Encontro
FinSi
Finalizacin de ciclos
Sintxis:
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
Sintxis:
SI condicin
// Instrucciones a ejecutar si la condicin es verdadera
SINO
// Instrucciones a ejecutar si la condicin 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.

Sintxis:
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 Mxico
Nacionalidad = Mexicano
FINCASO
CASO Estados Unidos
Nacionalidad = Estadounidense
FINCASO
CASO Francia
Nacionalidad = Francs
FINCASO
FINESCOGE
Crear nuevas funciones
Se utiliza para agrupar instrucciones que sern ejecutadas repetidamente y
adems estas funciones pueden convertirse en extensin del lenguaje del
reporteador.

Sintxis:
DEFFUNC nombre_funcion(argumento1;argumento2,...,argumentoN)
// Instrucciones...
FINFUNC
Invocacin de Funciones:
variableResultado = NombreFuncion(argumento1;argumento2;...;argumentoN)


NOTA IMPORTANTE: La funcin a invocar debe estar definida
previamente al punto de donde ser invocada.

Casos prcticos
Reporteador y Excel
Instrucciones Bsicas

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
Caso prctico

También podría gustarte