Anda di halaman 1dari 17

Minicomputadoras

-1-

Ing. Alberto Moreno

CREACION DE REPORTES MEDIANTE RLU


EL RLU .- Es un utilitario que permite disear reportes , creando miembros de tipo PRTF , cuando se crea el objeto lo genera con el atributo *PRTF . Una vez creado el objeto puede ser utilizado por cualquier lenguaje de programacin del entorno AS/400. como arrancamos el RLU NOTA.- vamos a elaborar el reporte de una lista de clientes a partir de la siguiente tabla:
TABCLI, cuya estructura es la siguiente:

=>STRRLU

F4

al Pulsar [F4], nos mostrara la siguiente pantalla, donde tendremos que ingresar los siguientes parmetros.

Donde:

Minicomputadoras
o o o o o o

-2-

Ing. Alberto Moreno

Nombre de Archivo Fuente: Es el nombre donde vamos a guardar el diseo de impresora Nombre de Biblioteca: Es el nombre de nuestra biblioteca Nombre de Miembro Fuente: Es el nombre del reporte Opcin: 2 = Editar Anchura de Pagina: Es la anchura de pagina que tendr nuestro reporte Texto Descriptivo: Es un comentario del reporte a crear

Luego al presionar [ENTER], nos mostrara una pantalla, donde tendremos que disear nuestro reporte.

Si mostrara un error al crear el reporte , que no tiene la QTXTSRC Lo procede a crearlo => CRTSRCPF QTXTSRC

Luego al presionar [ENTER], nos mostrara una pantalla, donde tendremos que disear nuestro reporte.

Mandatos a utilizar en un reporte:

o o o o o o o o

DRR= Permite definir un registro en Bloque. DR= Permite definir un solo registro. DC= Permite definir constantes. VF= Permite definir una lnea de campo. I= Permite insertar lneas. CLC= Permite cambiar una lnea de Punto a Mas. [F10]= Permite Seleccionar campos de una Base de Datos. [F11]= Permite crear una variable.

Minicomputadoras
o o o o o o

-3-

Ing. Alberto Moreno

[F13]= Permite marcar y desmarcar un campo o etiqueta. [F14]= Permite copiar un campo o etiqueta marcado. [F15]= Permite mover un campo o etiqueta marcado. [F16]=Permite suprimir una variable o etiqueta. [F18] + [F10]= Permite cambiar de nombre a un registro. [F23] + [F10]= Permite Modificar una variable.

Bien ahora vamos a comenzar a realizar nuestro diseo de impresora, solo lo que te pido es que sigas las pantallas. Primeramente debemos saber cuantos registros tendremos que crear, para esta aplicacin vamos a crear 2 registros (TITULO, DETALLE), entonces como vamos a crear un registro en bloque para el TITULO vamos a utilizar el mandato DRR, como se muestra en la siguiente pantalla.

Luego cuando presiones [ENTER], nos mostrara la siguiente pantalla.

Minicomputadoras

-4-

Ing. Alberto Moreno

Luego el siguiente paso es cambiarle de nombre al registro RDC001 por TITULO, para esto debemos de colocar el cursor donde dice RCD001, y pulsar [F18], y luego [F10], para que nos muestre la siguiente pantalla.

Luego de haberle cambiado el nombre de formato de registro solo tienes que pulsar [ENTER] 2 veces, para que nos muestre la siguiente pantalla.

Minicomputadoras

-5-

Ing. Alberto Moreno

Luego tenemos que comenzar a disear la parte del TITULO, algo as como se muestra en la siguiente pantalla.

Luego tenemos que declarar las constantes con el mandato DC, solo tienes que colocar el mandato DC donde dice TITULO, y colocar el nmero de lneas a declarar como constantes, en este caso seria DC8 como en la siguiente pantalla.

Minicomputadoras

-6-

Ing. Alberto Moreno

Luego cuando presiones [ENTER], te debe mostrar la siguiente pantalla.

Luego tenemos que crear el registro de DETALLE, solamente ubcate en la Ultima Lnea, en este caso seria la LINEA9, e insertar una lnea en blanco con el mandato I, y te debe mostrar la siguiente pantalla.

Minicomputadoras

-7-

Ing. Alberto Moreno

Luego creas un solo registro con el mandato DR, como en la siguiente pantalla.

Luego cuando presiones [ENTER], te debe mostrar el registro RCD001, y solamente tienes que cambiarle de nombre a DETALLE, hazlo igual como le cambiaste el nombre al registro de TITULO pulsando [F18] y luego [F10], para que te muestre la siguiente pantalla.

Luego tenemos que llamar a los campos de la tabla TABCLI, para referenciarlo con el reporte, para esto tenemos que utilizar la tecla de funcin [F10], y nos saldr la siguiente pantalla. Donde tenemos que ingresar las siguientes opciones

Minicomputadoras

-8-

Ing. Alberto Moreno

Luego de haber llenado las opciones, solo presiona [ENTER], para que te muestre el listado de los campos de la tabla TABCLI, como se muestra en la siguiente pantalla.

Luego tienes que seleccionar los campos con la opcin 1, como se muestra en la siguiente pantalla.

Luego de haber seleccionado los campos a referenciar presionas [ENTER], hasta llegar al diseo de impresora, y te vas a dar cuenta que en la parte inferior va a estar el campo que has referenciado, como se muestra en la siguiente pantalla.

Minicomputadoras

-9-

Ing. Alberto Moreno

Luego para referenciar el campo, antes que todo tienes que crear una Lnea de campo (FLD1) antes de DETALLE, y para esto tenemos que utilizar el mandato VF, solamente coloca el cursor en DETALLE y luego coloca el mandato VF, y cuando presiones [ENTER], te tiene que mostrar la siguiente pantalla.

Ahora para referenciar el campo CODCLI al reporte, solo tienes que colocar el nmero que pertenece al campo, como en la siguiente pantalla.

Minicomputadoras

-10-

Ing. Alberto Moreno

Luego cuando presiones [ENTER], el campo CODCLI, ya tiene que estar referenciado al reporte, como se muestra en la siguiente pantalla.

Luego por ultimo vamos a crear un campo llamado XNOMALU, para hacer esto solamente tienes que colocar el cursor donde quieras crear el campo, y pulsar la tecla de funcin [F11], y te mostrara la siguiente pantalla. Donde en vez de FLD001, tienes que colocar el campo a crear, y en longitud darle la longitud al campo.

Minicomputadoras

Nota:

-11-

Ing. Alberto Moreno

Por defecto el campo a crear siempre ser carcter, pero si vas a crear un campo numrico, solamente tienes que pulsar la tecla [AV.PAG], para que te muestre la siguiente pantalla.

Si quieres que el campo sea numrico solamente cmbiale el Tipo de Dato a 2, y le das los decimales que tendra tu campo numrico.

Luego cuando halla creado tu campo solamente pulsa [ENTER], hasta llegar al diseo de tu reporte, y te mostrara el campo creado donde tu colocaste tu cursor, como en la siguiente pantalla.

Nota: P para modificar un campo solamente tienes que colocar el cursor en el campo a modificar y pulsar [F23], y luego [F10]

El resultado te tu diseo seria el siguiente:

Minicomputadoras

-12-

Ing. Alberto Moreno

Nota: para darle la fecha y hora solamente tienes que colocar el cursor al lado de la etiqueta, pero al nivel de la lnea de campo (FLD1) y utilizar los mantos *DATE para fecha y *TIME para hora.

Para crear su programa:


ARCHIVO

INDICADOR DE DESBORDAMIENTO CUANDO SE LLEGA AL FIN DE LAPAGINA

FPRT001 O E FTABCLI IF E K C *LOVAL SETLL C READ C WRITE C DOW C WRITE C IF C WRITE C EVAL C ENDIF C READ C ENDDO C EVAL

PRINTER OFLIND(*IN10) DISK REGCLI REGCLI TITULO *IN30='0' DETALLE *IN10='1' TITULO *IN10='0' REGCLI *INLR=1 30
IMPRIME EL DETALLE , SI DETECTO EL FIN DE PAGINA SE ACTIVA EL INDICADOR

30

El siguiente paso es compilar el programa y ejecutarlo , luego ver el reporte en el spool. EJEMPLO 2.- realizar un reporte con quiebres, relacin de alumnos por curso, adems despus de cada grupo debe mostrar la cantidad de alumnos por curso. Lo vamos a desarrollar este ejemplo con dos casos empleando un lgico de unin , y el caso dos es sin emplear un lgico de unin . Las tablas fsicas y lgicas que se disponen son:

Minicomputadoras Tabla Alumnos PF A A A A A R REGALU CODALU APEALU NOMALU K CODALU

-13-

Ing. Alberto Moreno

5A 15A 15A

Tabla de cursos A A A A A R REGC CODCUR NOMCUR CREDITOS K CODCUR

4 25 2S 0

Tabla notas A R REGN A CODALU A CODCUR A EXAPAR A EXAFIN A K CODALU A K CODCUR

5 4 2S 0 2S 0

Lgico de unin LOGUNI LF

************ Principio de datos ************************************ A R REGUNI JFILE(ALUMNOS NOTAS CURSOS) A J JOIN(1 2) A JFLD(CODALU CODALU) A J JOIN(2 3) A JFLD(CODCUR CODCUR) A CODALU JREF(1) A NOMALU A APEALU A CODCUR JREF(2) A NOMCUR A EXAPAR A EXAFIN A K CODALU Luego compilamos y visualizamos los datos: =>RUNQUERY *NONE LOGUNI CODALU NOMALU APEALU 000001 A0001 juan Mitma Ramirez 000002 A0003 Marilyn Leon Choy CODCUR NOMCUR C001 Matematica I C001 Matematica I

Minicomputadoras 000003 A0008 000004 A0006 000005 A0001 000006 A0005 000007 A0006 000008 A0009 000009 A0011 000010 A0001 000011 A0002 000012 A0008 000013 A0009 000014 A0002 000015 A0003 000016 A0007 eva Ana juan Lucia Ana Rogger Maria juan Jose eva Rogger Jose Marilyn Jose

-14-

Ing. Alberto Moreno

Rosales Vega C001 Matematica I Gutierrez C001 Matematica I Mitma Ramirez C002 Filosofia Fernandez Vega C002 Filosofia Gutierrez C002 Filosofia Velasquez Vera C002 Filosofia Montez Diaz C002 Filosofia Mitma Ramirez C003 Medio ambiente Soto Cardenas C003 Medio ambiente Rosales Vega C003 Medio ambiente Velasquez Vera C003 Medio ambiente Soto Cardenas C004 Analisis y Diseo Leon Choy C004 Analisis y Diseo Pando Vega C004 Analisis y Diseo

Diseo del reporte REPNOTAS PRTF

BASE ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ------------------------ Inicio de Pgina 001 ------------------------TITULO FLD1 <...> <......> <..> <......> 00002 + FECHA 13/07/07 HORA 12:57:19 00003 + FLD1 <..........................> 00004 + REPORTE DE ALUMNOS POR CURSO 00005 + FLD1 <.......> <..> <........> <....................... 00006 + COD.CURSO XXXX ASIGNATURA XXXXXXXXXXXXXXXXXXXXXXXX FLD1 <.....> <......> <....> <.....> <...> 00007 + COD.ALU APELLIDO NOMBRE PARCIAL FINAL 00008 + FLD1 <...> <.............> <.............> <> <> DETALLE XXXXX XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX 99 99 FLD1 <...................................................................> PIE --------------------------------------------------------------------F3=Salir F11=Definir campo F16=Suprimir campo F22=Teclas alternativas F24=Ms teclas

Minicomputadoras

-15-

Ing. Alberto Moreno

Y el programa: PGREPNOTA RPGLE FREPNOTAS O E PRINTER OFLIND(*IN10) FLOGUNI IF E K DISK DXCUR S 4A C *LOVAL SETLL REGUNI C READ REGUNI 30 C EVAL XCUR=CODCUR C WRITE TITULO C DOW *IN30='0' C IF XCUR=CODCUR C WRITE DETALLE C IF *IN10='1' C WRITE TITULO C EVAL *IN10='0' C ENDIF C ELSE C WRITE PIE C EVAL XCUR=CODCUR C EVAL *IN10='0' C WRITE TITULO C ITER C ENDIF C READ REGUNI 30 C ENDDO C WRITE PIE C EVAL *INLR='1' SEU==> Proceder a compilar el programa y ejecutarlo =>CALL PGREPNOTA

Minicomputadoras

-16-

Ing. Alberto Moreno

EJERCICIOS : - NOTA EQUIVALENTE A UNA PRACTICA: ELABORAR LOS SIGUIENTES REPORTES: 1.- Que muestre todas las boletas de notas de cada alumno: Fecha : dd/mm/yyyy Boleta de Nota Codigo :xxxxxxx Apellido y Nombre: XXXXXXXXXXXXXXXXXX Hora:hh:mm:ss

Especialidad: XXXXXXXXXXXXXXXXXXXXXXX Cod.Curso Aignatura Parcial Final Promedio Observacin xxxx xxxxxxxxxxxxxxx 99 99 99.99 xxxxxxxxxxx ============================================================== Promedio de Ciclo =>99.99

2.- Reporte que muestre todos los pagos por cada alumno Fecha : dd/mm/yyyy Pagos Realizados Por los Alumnos Codigo :xxxxxxx Apellido y Nombre: XXXXXXXXXXXXXXXXXX Hora:hh:mm:ss

Especialidad: XXXXXXXXXXXXXXXXXXXXXXX CICLO NCUOTA FECHA MONTO xxxx 99 99/99/9999 99,999.99 ============================================================== Total monto =>9,999.99

3.- Tomando como base los archivos del sistema de transito, realizar un programa que pida el ingreso de un numero de placa de un vehculo , si no existe muestre un mensaje de error y en caso que exista el numero de placa mostrar un mensaje placa encontrada ver su reporte en el spool.

Minicomputadoras

-17-

Ing. Alberto Moreno

Fecha : dd/mm/yyyy Papeletas del Vehiculo Placa :xxxxxxx

Hora:hh:mm:ss

Apellido y Nombre: XXXXXXXXXXXXXXXXXX

Color del vehiculo: XXXXXXXXXXXXXXXXXXXXXXX PAPELETA FECHA INFRACCION MONTO xxxx 99/99/9999 XXXXXXXXX 99,999.99 ============================================================== Total monto =>9,999.99

0 FLISTCLI O E PRINTER OFLIND(*IN10) 0 FTABCLI IF E K DISK 1 DXMSG S 40A 0 C *ENTRY PLIST 0C PARM XMSG 0 C *LOVAL SETLL REGCLI 0C READ REGCLI 30 0C WRITE TITULO 0C DOW *IN30='0' 0C EVAL XCOD=CODCLI 0C EVAL XAPE=%TRIM(PATCLI)+' '+%TRIM(MATCLI)+ 0C ', '+%TRIM(NOMCLI) 1C EVAL XTOT=XTOT+1 0C WRITE DETALLE 0C IF *IN10='1' 0C WRITE TITULO C C C C C C C C WRITE EVAL ENDIF READ ENDDO WRITE EVAL EVAL TITULO *IN10='0' REGCLI 30

PIE XMSG='REPORTE IMPRESO' *INLR='1'

Anda mungkin juga menyukai