perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 19
Click for quality!




12.02.2012 / 04:10

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragFrage zu Schleifen
Seitenanfang
Hallo,

habe ein Perl Script, was aus einer DB Datensätze ausliest, und diese als PDF ausdruckt.


prFile("Test1.pdf");
prFont('Helvetica'); # Just setting a font
prFontSize(8);

do {
prText(15,800,"Datei: Test1.pdf");

prText(520,800,"Seite: $y");

prText(15,780,"Datum");
prText(85,780,"Uhrzeit");
prText(150,780,"Rufnummer");
prText(250,780,"Status");
while(my $row = $select_sth->fetchrow_arrayref) {
foreach my $z (1..70) {
prText(15,770-$z*10,$row->[0]);
prText(85,770-$z*10,"10:00:00");
prText(150,770-$z*10,$row->[2]);
prText(250,770-$z*10,"Status xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
#print $row->[0];
}

if ($y < $pages) {
prPage();
}
}
} until $y > $pages;

prEnd();

Wenn ich das ganze Script ohne das Auslesen der DB ausführe, funktioniert alles super.

Ich weiß jetzt nur nicht, wo ich das Auslesen der DB einfüge.

Es sollen pro Seite 70 Datensätze ausgedruckt werden.

Die Anzahl der Seiten wird aus der Anzahl der Datensätze/70 Zeilen pro Seite berechnet.

DAnke im vorraus.

Thomas

Datum: 23.04.2008-21:04

Beitragre: Frage zu Schleifen
Seitenanfang
versuch es mal so :


prFile("Test1.pdf");
prFont('Helvetica'); # Just setting a font
prFontSize(8);

#hier irgendwo die mysql abfrage

$stop = 0; $y = 1;
do {
prText(15,800,"Datei: Test1.pdf");
prText(520,800,"Seite: $y");
prText(15,780,"Datum");
prText(85,780,"Uhrzeit");
prText(150,780,"Rufnummer");
prText(250,780,"Status");
for($z = 1; $z<=70; $z++){
if(my $row = $select_sth->fetchrow_arrayref){
prText(15,770-$z*10,$row->[0]);
prText(85,770-$z*10,"10:00:00");
prText(150,770-$z*10,$row->[2]);
prText(250,770-$z*10,"Status xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
#print $row->[0];
} else {
$stop = 1; $z=99;
};
};
$y++;
} until $stop == 1;

prEnd();

aussen rum die do-until Schleife, welche auf die Variable $stop wartet und im Endeffekt für die Befüllung der Seiten dient

innerhalb befindet sich die for-schleife welche 70x ausgeführt wird. Sobald keine Daten mehr vorliegen , wird die for-Schleife abgebrochen ($z=99 erfüllt nicht mehr die Laufbedingung der for-schleife) und die Variable $stop wird gesetzt. Daraufhin wird auch die do-until Schleife abgebrochen.

Vielleicht nicht gerade ultra-elegant - sollte aber funktionieren.

Datum: 24.04.2008-17:08

Beitragre: Frage zu Schleifen
Seitenanfang
Hallo,

ich habe es anders gelöst.

Erstens hatte ich vergessen ein $y++ in der do-until Schleife einzufügen.

Und in der while-Schleife für die Datensatzabfrage habe ich ein "last" eingefügt und es läuft alles sauber durch.

Trotzdem Danke.

Datum: 25.04.2008-09:15

-






-
-