Página 1 de 2

HTML::ReportWriter

NotaPublicado: 2008-10-08 08:21 @390
por Lor
Agradecería si me pudiesen ayudar a encontrar lo que estoy haciendo mal en la utilización de este módulo HTML::ReportWriter.

Solo estoy probando con los ejemplos que muestra el CPAN, y no hace nada. No tira error tampoco. La pantalla no muestra el reporte.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w

 use strict;
 use HTML::ReportWriter;
 use CGI;
 use Template;
 use DBI;


 my $dbh = DBI->connect('DBI:mysql:tabla', 'usuario', 'clave');

 my $report = HTML::ReportWriter->new({
                DBH => $dbh,
                DEFAULT_SORT => 'nombre_equipo',
                SQL_FRAGMENT => 'FROM equipos ',
                COLUMNS => [ 'nombre_equipo', 'codigo_equipo' ],
 });

 $report->draw();
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Mirando el log del Apache me tiran los siguientes errores a lo mejor puede ayudar:

1) Primero la sentencia sql se genera AUTOMÁTICAMENTE con LÍMITE CERO: "Executing SQL: SELECT SQL_CALC_FOUND_ROWS nombre, codi_equipo, id_equipo FROM equipos LIMIT 0"

2) Aparece lo siguiente : Can't locate object method "new" via package "Template" (perhaps you forgot to load "Template"?) TENGO INSTALADO el módulo Template.

¡¡¡ GRACIAS !!! :D

NotaPublicado: 2008-10-08 11:35 @524
por explorer
Haz la prueba de hacer un perl -MTemplate -e 1.

para saber si está bien instalado...

NotaPublicado: 2008-10-10 05:07 @255
por Lor
La instalación correcta, no sale ningún tipo de error.

No entiendo la causa de porqué cuando genera la sentencia SQL le anexa al final por si solo " LIMIT 0 " ¿Dónde está SETEADO eso?. Con esa clausula el resultado del select es siempre vacío. ¿¿¿Pero cómo hago para sacarla???

Otra cosa que detecté es que debido a que estoy trabajando con sesiones CGI::SESSION esto también me esta ocasionando problemas.

¡¡¡Si hay alguna idea de ayuda SERÁ BIENVENIDA!!!

NotaPublicado: 2008-10-10 05:32 @272
por explorer
Según veo en el código fuente, el valor de LIMIT lo pone el valor del parámetro RESULTS_PER_PAGE, del módulo HTML::ReportWriter::PagingAndSorting que HTML::ReportWriter usa.

La documentación dice que, si no se indica nada, ese parámetro vale 25. Y, en efecto, así está puesto en el código.

Pero entonces es muy raro lo que te pasa, porque dices que te sale un 0.

Ahora mismo no puedo hacerlo yo, pero prueba a colocar
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
RESULTS_PER_PAGE => 25,
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
en la creación del $report. Al menos, para ver si se trata de un bug del módulo...

En cuanto a lo de CGI::Session, es otro tema que también se las trae. Lleva un rato entender el funcionamiento de las sesiones, pero, como todo en la vida, una vez que hecha a andar, va perfecto (si descontamos los problemas por permisos en la creación de ficheros del lado del servidor, etc. :) )

Si nos das más detalles de los problemas, mejor.

NotaPublicado: 2008-10-13 17:06 @754
por Lor
Deje la aplicación limpia, sacándole todo lo que podría generar error. Por ejemplo sesiones, y NO FUNCIONA. Los módulos están bien instalados, ya los verifiqué. En el LOG tira lo siguiente:

Código: Seleccionar todo
Can't locate object method "new" via package "Template"


Abrí el módulo HTML::ReportWriter y el problema se genera en la función draw en la sentencia new:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  my $template = Template->new();
  my $url = $self->{'CGI_OBJECT'}->url( -absolute => 1, -query => 1 );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Bueno, muchas gracias.

NotaPublicado: 2008-10-13 17:24 @767
por explorer
¿Qué versión tienes?

Según veo en el código de Template.pm, el método new() está implementado en Template::Base, en el fichero Template/Base.pm.

Si no te funciona, tampoco te funcionará entonces esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
perl -MTemplate -le '$x = Template->new()'
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

NotaPublicado: 2008-10-13 19:06 @838
por Lor
La versión que tengo es HTML::ReportWriter 1.4.1.

¡¡¡Saludos y Gracias!!!

NotaPublicado: 2008-10-13 19:22 @848
por explorer
Me refería a la versión de Perl.

NotaPublicado: 2008-10-14 05:01 @250
por Lor
Estoy atrasada: 5.8.8. No he podido migrar a la 5.10 debido a que trabajo bajo Windows y hay módulos tales como el DBD::mysql que todavía no aparecen para la 5.10 y los necesito.

Bueno ¡¡¡MUCHAS GRACIAS!!!

NotaPublicado: 2008-10-14 05:20 @263
por explorer
El 5.8.8 es el mejor, hasta ahora.

¿Has probado a ejecutar perl -MTemplate -le "$x = Template->new()" desde la línea de comandos?

Veo que estás en Windows.

Según veo, la instalación de Template requiere además la instalación de los módulos
* AppConfig
* Spreadsheet::SimpleExcel
* Spreadsheet::WriteExcel
* IO::Scalar
* OLE::Storage_Lite

Si lo instalo todo me sale
Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
joaquin:~ $ perl -MHTML::ReportWriter -le '$hrw = HTML::ReportWriter->new()'
Argument 'DBH' is required at /usr/lib/perl5/site_perl/5.8.8/HTML/ReportWriter.pm line 245.
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
pero ya reconoce la presencia de Template.

La versión última es la 2.20. En ActiveState veo que está la 2.19 de Template-Toolkit.

¿Has usado el gestor de paquetes PPM?