Avatar billede scooterDK Nybegynder
11. maj 2010 - 12:32 Der er 7 kommentarer og
1 løsning

fpdf - hvorfor virker sideskift ikke som hensigten...

Hej med jer

Er der en der kan forklare mig hvorfor at sideskift i FPDF ikke virker som jeg erne vil, jeg bruger ver. 1,6.

Den første side kommer fint frem med alle data og pænt i rækkefølge som den skal, men når vi skal til side to da skriver den kun en linie og derefter går til side tre osv.. Der vil jeg gerne hvis den fylder hele side to ud før den går idre til side 3 ?? :

----blaaa--- ^ ^ header og conn  ^ ^ ------blaaa----


$pdf=new PDF('L');
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',10);

$y_axis = 40;
$i = 0;
$max = 20;
$row_height = 15;

    while($row = mysql_fetch_array($result))


    $navn = $row['navn'];
    $adr1 = $row['adr1'];
    $adr2 = $row['adr2'];
    if ($i == $max)
    {
        $pdf->AddPage();
    }
    $pdf->SetY($y_axis);
    $pdf->SetX(25);
    $pdf->Cell(30,6,$navn,1,0,'L',0);
    $pdf->Cell(30,6,$adr1,1,0,'L',0);
    $pdf->Cell(100,6,$adr2,1,0,'L',0);
    $y_axis = $y_axis + $row_height;
    $i = $i + 1;
}
$pdf->Output();

?>
Avatar billede jakobdo Ekspert
11. maj 2010 - 21:51 #1
Din $max bliver talt op, og den forsætter til over 20.
Så du skal enten nulstille $i, når du når $i == $max eller også skal du bruge modulus.
Avatar billede scooterDK Nybegynder
12. maj 2010 - 06:53 #2
På denne måde ?

while($row = mysql_fetch_array($result))

 
 
    if ($i == $max) {
          $pdf->AddPage();

   
        $pdf->SetY($y_axis_initial);
        $pdf->SetX(12);
        $pdf->Cell(35,6,'Navn',1,0,'L',1);
        $pdf->Cell(35,6,'Adresse',1,0,'L',1);
        // og flere

        //gå til næste række
        $y_axis = $y_axis + $row_height;
       
        //Sætter $i variable til 0)
      $i = 0;


    }
  $navn = $row['navn'];
    $adr1 = $row['adr1'];
    $adr2 = $row['adr2'];
    $tlf = $row['telefon'];
    $hol = $row['hold'];
    $be1 = $row['be1'];
    $kag = $row['kage'];
    $bol = $row['boller'];
    $and = $row['andet'];
   
    $pdf->SetY($y_axis);
    $pdf->SetX(12);
    $pdf->Cell(35,6,$navn,1,0,'L',0);
    $pdf->Cell(35,6,$adr1,1,0,'L',0);
    $pdf->Cell(35,6,$adr2,1,0,'L',0);
    $pdf->Cell(20,6,$tlf,1,0,'L',0);
    $pdf->Cell(15,6,$hol,1,0,'L',0);
    $pdf->Cell(90,6,$be1,1,0,'L',0);
    $pdf->Cell(13,6,$kag,1,0,'L',0);
    $pdf->Cell(13,6,$bol,1,0,'L',0);
    $pdf->Cell(25,6,$and,1,0,'L',0);
   
    $y_axis = $y_axis + $row_height;
    $i = $i + 1;


}
$pdf->Output();
Avatar billede jakobdo Ekspert
12. maj 2010 - 08:18 #3
Prøv:

$pdf=new PDF('L');
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',10);

$y_axis = 40;
$i = 0;
$max = 20;
$row_height = 15;

    while($row = mysql_fetch_array($result))
{
    if ($i == $max)
    {
        $pdf->AddPage();
$i = 0;
    }
    $navn = $row['navn'];
    $adr1 = $row['adr1'];
    $adr2 = $row['adr2'];
    $pdf->SetY($y_axis);
    $pdf->SetX(25);
    $pdf->Cell(30,6,$navn,1,0,'L',0);
    $pdf->Cell(30,6,$adr1,1,0,'L',0);
    $pdf->Cell(100,6,$adr2,1,0,'L',0);
    $y_axis = $y_axis + $row_height;
    $i = $i + 1;
}
$pdf->Output();
Avatar billede scooterDK Nybegynder
12. maj 2010 - 09:04 #4
Imponerende , det lader til at virke som jeg gerne vil , men hvad er forskellen på det jeg har skrevet og det du har skrevet. lad os sige at jeg gerne på side 2 vil have "overskrift" tabellen med..  er der forskel på hvor jeg indsætter denne tabel  I if området ? ? ?

  if ($i == $max)
    {
//mine faste tabeller her
        $pdf->AddPage();
$i = 0;
//eller  her
    }
Avatar billede jakobdo Ekspert
12. maj 2010 - 09:06 #5
Din IF sætning køres jo kun når $i == $max.
Avatar billede jakobdo Ekspert
12. maj 2010 - 09:06 #6
Og du får et svar.
Avatar billede scooterDK Nybegynder
12. maj 2010 - 10:14 #7
Tak for hjælpen, men gør det nogen forskel hvor jeg placerer overskrift "tabellen" i if sætningen ?.
Avatar billede jakobdo Ekspert
12. maj 2010 - 10:23 #8
Du kan jo prøve. :o)
Og tak for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester