Thread PostScript::Report - Wie columns erzeugen (5 answers)
Opened by Kean at 2013-01-04 11:01

Kean
 2013-01-04 11:01
#164626 #164626
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Ich versuche Daten aus einer HList in einem Report auszugeben.
Hierzu nutze ich PostScript::Report.

Bei den Columns der Tabelle habe ich leider Probleme diese dynamisch zu erzeugen. So werden sie statisch erzeugt:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
# Describe the report:
my $desc = {
  columns => {
    data => [
      [ 'Number' =>  40 ],
      [ 'Letter' =>  40 ],
      [ 'Text'   => 320 ],
      [ 'Right'  =>  60 ],
    ],
  }, # end columns
};


Wie könnte ich die columns dynamisch in einer Schleife erzeugen?
Handelt es sich hierbei um ein Hash in einem Array das in einem Array steckt??

Mein Lösungsansatz sieht vereinfacht so aus:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my @header = ();

for(my $c = 0; $c < $rangecolumns; $c++)
    {
    my @row = ();
    if ($_[2]->headerCget($c, -itemtype) && $_[2]->headerCget($c, -itemtype) eq 'text')
        {
        my %entry = ( $_[2]->headerCget($c, -text) => 40);
        push @row, \%entry;
        }
    push @header, \@row;
    }

my $desc = {
    columns => {
        data => @header,
    },
};  


Hierbei kommt aber die Fehlermeldung:

Code: (dl )
Tk::Error: Not an ARRAY reference


Hat vielleicht jemand eine Idee was ich falsch mache?

modedit Editiert von GwenDragon: Titel erweitert; Tabs gesetzt
Last edited: 2013-01-04 12:08:11 +0100 (CET)

View full thread PostScript::Report - Wie columns erzeugen