Foros del Web » Programación para mayores de 30 ;) » Programación General »

Generar Reportes para queries : Perl pros :

Estas en el tema de Generar Reportes para queries : Perl pros : en el foro de Programación General en Foros del Web. Buenos Dias, Me he estado quebrando la cabeza para poder generar reportes más dinamicos en perl. No habia tenido problema haciendo mis propios reportes, pero ...
  #1 (permalink)  
Antiguo 17/06/2008, 12:21
 
Fecha de Ingreso: mayo-2006
Mensajes: 7
Antigüedad: 18 años, 6 meses
Puntos: 0
Exclamación Generar Reportes para queries : Perl pros :

Buenos Dias,

Me he estado quebrando la cabeza para poder generar reportes más dinamicos en perl.

No habia tenido problema haciendo mis propios reportes, pero ahora necesito generar un crosstable report.

Como se puede lograr esto?

Esta es la data que tengo:
Ejempolo:

Código:
codigo | talla | color | cantidad |
--------+------+-------+-----------+
PA-200  11  	Azul  	1
PA-200 	14 	Azul 	24
PA-200 	12 	Negro 	18
PA-200 	13 	Negro 	8
PA-200 	14 	Negro 	106
PA-200 	15 	Negro 	17
PA-200 	17 	Negro 	75
Estoy desplegando esto en el reporte pero tengo que obtener un reporte que sea asi:

PA-200

Código:
             
       | 11 | 12 | 13 | 14 | 15 | 17 
       +----+-----+---+----+-----+---+
Azul   |  1   0    0    24    0    0
Negro  |  0   18   8   106   17    75

Se los agradesco por adelantado, y espero que entiendan ya que esta medio raro :p
  #2 (permalink)  
Antiguo 17/06/2008, 13:53
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: Generar Reportes para queries : Perl pros :

Código:
#!/usr/bin/perl
use warnings;
use strict;

my @data = (
#         codigo talla color cantidad
    [ qw( PA-200 11    Azul  1   ) ],
    [ qw( PA-200 14    Azul  24  ) ],
    [ qw( PA-200 12    Negro 18  ) ],
    [ qw( PA-200 13    Negro 8   ) ],
    [ qw( PA-200 14    Negro 106 ) ],
    [ qw( PA-200 15    Negro 17  ) ],
    [ qw( PA-200 17    Negro 75  ) ],
);

print 'Introduzca el código:';
chomp(my $codigo_a_sacar = <>);

my %resultados;
my %tallas;

# Recogida de datos
foreach my $fila ( @data ) {
    my ($data_codigo,$data_talla,$data_color,$data_cantidad) = @$fila;
    next if $data_codigo ne $codigo_a_sacar;

    $resultados{$data_color}{$data_talla} = $data_cantidad;
    $tallas{$data_talla} = 1;
}

# Salida
print join q{|}, q{ }x8, map { sprintf " %2d ", $_ } sort keys %tallas;
print "\n";
print join q{+}, q{ }x8, map { '----' } 1 .. scalar keys %tallas;
print "\n";
foreach my $color ( sort keys %resultados ) {
    printf "%-8s|", $color;
    foreach my $talla ( sort keys %tallas ) {
        my $dato = $resultados{$color}{$talla} || 0;
        printf "%3d  ", $dato;
    }
    print "\n";
}

__END__
La salida es:
Código:
Introduzca el código:PA-200
        | 11 | 12 | 13 | 14 | 15 | 17
        +----+----+----+----+----+----
Azul    |  1    0    0   24    0    0
Negro   |  0   18    8  106   17   75

Última edición por jferrero; 17/06/2008 a las 17:23
  #3 (permalink)  
Antiguo 17/06/2008, 16:34
 
Fecha de Ingreso: mayo-2006
Mensajes: 7
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Generar Reportes para queries : Perl pros :

Jajaja siempre lo hace ver tan facil !

Es 3ra pregunta que me responde :p

Muchas gracias.

Existe algun modulo para generar reportes?
  #4 (permalink)  
Antiguo 17/06/2008, 17:22
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 6 meses
Puntos: 11
Respuesta: Generar Reportes para queries : Perl pros :

Unos 238... de momento...
http://search.cpan.org/search?query=report&mode=module
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:22.