[Perl] Formateador de reportes
Gunnar Wolf
gwolf@campus.iztacala.unam.mx
Wed, 24 Apr 2002 18:43:47 -0600 (CST)
Hola,
Estoy en un aprieto: Necesito hacer reportes sin saber qu=E9 es lo que esto=
y
reportando de antemano - El usuario elige qu=E9 campos de la BD va a querer=
,
con qu=E9 ordenamiento, criterios, etc., y le entrego el reporte. Esto me
cost=F3 1.5 huevos, pero ya qued=F3, y estoy reporteando muy bonito por CGI=
=2E
El problema es que cuando al usuario le gusta un reporte puede decidir
imprimirlo en la venerable matricial de 132 caracteres por rengl=F3n... Par=
a
esto supongo que la mejor herramienta es el reporteador interno de Perl,
ese que se llama con:
format SALIDA_TOP =3D
P=E1gina @<
$%
Campo Otrocampo Otro El=DAltimo
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D
=2E
format SALIDA =3D
@<<<< @<<<<<<<< @<<<< @<<<<<<<<
$campo1, $campo2, $campo3, $campo4
=2E
open(SALIDA,'>archivo.txt');
while ( ($campo1,$campo2,$campo3,$campo4) =3D $sth->fetchrow_array) {
write(SALIDA);
}
close(SALIDA);
Bueno... Todo muy bien hasta aqu=ED. Cabe mi comentario: Esto NO ES PERL!
;-) No cumple con la sintaxis b=E1sica ni de lejos! Pero eso s=ED, es =FAti=
l.
Mi problema es el siguiente: Por medio de un par de eval y recursos
similares ya logr=E9 formar din=E1micamente el segundo formato (SALIDA). Si=
n
embargo, para el encabezado (SALIDA_TOP) a=FAn no doy... Los nombres de
campos los quiero poner (claro, din=E1micamente tambi=E9n) en su lugar. Se =
me
har=EDa muy puerco (adem=E1s de no saber c=F3mo hacerlo ;-) ) el usar la sa=
lida
de un reporte para la entrada del siguiente... =BFQu=E9 me sugieren? =BFCon=
ocen
alg=FAn modulito del CPAN que me pueda sacar del paso? =BFO me convendr=E1 =
crear
mi encabezado con una bola de substr(...)s?
Sale pues... Tengo que irme, espero que me puedan ayudar con esto.
Saludos,
--=20
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52-55)5623-1118
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF