Seite 1 von 1

Werte an Header übergeben

Verfasst: Mo 23. Apr 2018, 22:49
von Zettmaster
Hallo zusammen, mein erster Post, ich hoffe hier finde ich ein wenig Hilfe.

Hier mein Problem. Ich bekomme für eine Klasse eine Methode mit einem Wert übergeben. Leider steht dieser Wert dann nicht im gesamten Skript zur Verfügung. Zur Verdeutlichung hier der Code mit den Kommentaren. Es wird eine Artikelliste ausgegeben und im Header soll die NR dieser angezeigt werden. Die Funktion erstellen($listennr) die zur Klasse artikkelliste gehört startet das Skript und stellt den Wert zur Verfügung. Bei der Funktion Header() die die FPDF Klasse stellt kommen keinerlei Variablen an. Wie geht das zu lösen?

Code: Alles auswählen

<?php  require_once('/home/www/faktura/fpdf/fpdf.php');
 
class artikelliste extends fpdf
{   
    public $listennr;               //hier könnte der Wert ankommen

     function __construct() {
      
parent::__construct("P", "mm", "A4");

                                               //oder auch hier um diesen abzugreifen
$this->datum = date("d.m.Y");
$this->SetDisplayMode(100);     
$this->AddPage();
                             }   
   
     function Header() {
    
$this->SetFont('Times','',14);
$this->Cell(140,5,'                           ARTIKELLISTE',0,0, 'C'); $this->Cell(20,5,'Datum:',0,0,'R'); $this->Cell(30,5,$this->datum,0,1,'C');
$this->Cell(140,5,'                                       ',0,0, 'C'); $this->Cell(20,5,'Seite:',0,0,'R'); $this->Cell(30,5,$this->PageNo().' von {nb}',0,1,'R');
$this->Cell(140,5,'                                       ',0,0, 'C'); $this->Cell(20,5,'Liste:',0,0,'R'); $this->Cell(30,5,$this->listennr,0,1,'C');  //hier soll der Wert  hin
$this->Cell(25,5,'Name',0,0,'');$this->Cell(20,5,'Menge',0,0,'C');     $this->Cell(60,5,'Bezeichnung',0,1,'R');
$this->Text(10,32,'--------------------------------------------------------------------------------------------------------------------');

$this->Ln(5);

                       }
       
     function Footer() {
   
    $this->SetY(-15);
    $this->SetFont('Times','',14);
    $this->Cell(0,10,'Seite '.$this->PageNo().'/{nb}',0,0,'C');
   
                       }
       
     function erstellen($listennr) { //wie bekomme ich den übergebenen Wert $listennr in den Header() der FPDF Klasse?
    
$pdf = new artikelliste();
$pdf->AliasNbPages();
$pdf->SetFont('Times','',14);
for($i=1;$i<=40;$i++)
$pdf->Cell(0,10,'Testzeile '.$i.'  Listennummer: '.$listennr,0,1); //hier wird der Wert aber angezeigt
$pdf->Output('test.pdf', 'I');

                                   }
}
?>





Liebe Grüße

Re: Werte an Header übergeben (gelöst)

Verfasst: Mi 25. Apr 2018, 22:45
von Zettmaster
Hier des Rätsels Lösung ;-)

Das war natürlich gar nicht so schwer und reicht mir vollkommen aus.

Code: Alles auswählen


<?php  require_once('/home/www/faktura/fpdf/fpdf.php');

//globale Variablen ausserhalb der Klasse nutzen
 $title="Artikelliste";
 $datum=date("d.m.Y");

class artikelliste extends fpdf
{   
      
     public function __construct() {
      
parent::__construct("P", "mm", "A4");

$this->SetDisplayMode(100);     
$this->AddPage();

                                                          }   
   
     public function Header() {
global $title; // und hier wieder abfangen
global $liste;
global $datum;
$this->SetFont('Times','',14);
$this->Cell(140,5,                               $title,0,0, 'C');       $this->Cell(20,5,'Datum:',0,0,'R'); $this->Cell(30,5,$datum,0,1,'C');
$this->Cell(140,5,'                                       ',0,0, 'C'); $this->Cell(20,5,'Seite:',0,0,'R'); $this->Cell(30,5,$this->PageNo().' von {nb}',0,1,'R');
$this->Cell(140,5,'                                       ',0,0, 'C'); $this->Cell(20,5,'Liste:',0,0,'R'); $this->Cell(30,5,$liste,0,1,'C');
$this->Cell(25,5,'Name',0,0,'');$this->Cell(20,5,'Menge',0,0,'C');     $this->Cell(60,5,'Bezeichnung',0,1,'R');
$this->Text(10,32,'--------------------------------------------------------------------------------------------------------------------');

$this->Ln(5);

                       }
       
     public function Footer() {
   
    $this->SetY(-15);
    $this->SetFont('Times','',14);
    $this->Cell(0,10,'Seite '.$this->PageNo().'/{nb}',0,0,'C');
   
                       }
       

function erstellen($listennr){

global $liste;         // global bereitstellen
$liste = $listennr; // Variable abfangen

global $title;
global $datum;
$pdf = new artikelliste();

$pdf->AliasNbPages();
$pdf->SetFont('Times','',14);
for($i=1;$i<=40;$i++)
$pdf->Cell(0,10,'Testzeile '.$i.'  Listennummer: '.$listennr. '     ' .$title.'                '  .$datum,0,1);
$pdf->Output('test.pdf', 'I');
}}
?>