Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]"Wciągnięcie" zmiennej do public function
hubson87
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 8
Dołączył: 9.02.2011
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Witam używam TCPDF do tworzenia raportów. Wszystko fajnie tylko mam maly problem:

  1. // extend TCPF with custom functions
  2. class MYPDF extends TCPDF {
  3.  
  4. //Page header
  5. public function Header() {
  6. $wynik = mysql_query("SELECT id_dostawca, nr_dostawa as nrd, data, nazwa, id_mag, status
  7. FROM dostawa as d
  8. left join produkcja as p on d.id_dostawca = p.id_wydzial
  9. WHERE id_dostawa='$id1' ") or die('Błąd zapytania');
  10. $z=mysql_fetch_assoc($wynik);
  11. $id_dost=$z['id_dostawca'];
  12. $nr=$z['nrd'];
  13. $czas=$z['data'];
  14. $wydz=$z['nazwa'];
  15. $mag=$z['id_mag'];
  16. $s=$z['status'];
  17. $mag = 'Mag-'.$mag;
  18. if($s==1)
  19. $s='oczekujący';
  20. else
  21. $s='zatwierdzony';
  22.  
  23. $html = <<<EOF
  24. <h2>Raport magazynowy</h2>
  25. <table border="1" cellpadding="4">
  26. <tr><td>Typ dokumentu: <b>PW</b></td><td>Nr: <b>$nr</b></td><td>Data: <b>$czas</b></td></tr>
  27. <tr><td>Realizacja: <b>$wydz</b></td><td>Odbiorca: <b>$mag</b></td><td>Status: <b>$s</b></td></tr></table>
  28. EOF;
  29. // output the HTML content
  30. $this->writeHTML($html, true, false, true, false, '');
  31. }
  32.  
  33. }


W powyższym kodzie zmienna $id1 w klauzuli where pochodzi z formularza. Nie wiem tylko co zrobić żeby ta zmienna była rozpoznawalna wewnątrz public function Header() {....
Z góry dzięki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
jasin
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 32
Dołączył: 21.08.2008
Skąd: Toruń

Ostrzeżenie: (0%)
-----


Przecież mortus jasno napisał... ale jak coś to możesz rozszerzyć klasę o nowe pole i napisać dla niego settera czyli coś takiego:
Kod
class MYPDF extends TCPDF
{
  private $id1 = 0;

  public function setId1($id)
  {
    $this->id1 = $id;
  }

  public function Header() {
        $wynik = mysql_query("SELECT id_dostawca, nr_dostawa as nrd, data, nazwa, id_mag, status
                      FROM dostawa as d
                      left join produkcja as p on d.id_dostawca = p.id_wydzial
                      WHERE id_dostawa='$this->id1' ") or die('Błąd zapytania');

...


i jak masz tworzenie pdf:
Kod
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->setId1(wartość którą chcesz wstawić);
...


lub możesz napisać własny konstruktor,przekazać w nim jeden parametr więcej (czyli owe id), ustawić w nim wartość pola id1 a następnie wywołać kontruktor parenta czyli:
Kod
class MYPDF extends TCPDF
{
  private $id1 = 0;
  
  public function __construct($id) {
    $this->id1 = $id;
    parent::__construct(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

    }
...


i wówczas będzie to wyglądać tak:
Cytat
$pdf = new MYPDF(wartosc id którąchcesz wstawić);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Hubert Janik');
$pdf->SetTitle('Przychód wewnętrzny');
$pdf->SetSubject('Raport Magazynowy');




// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

//set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

//set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

//set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

//set some language-dependent strings
$pdf->setLanguageArray($l);

// ---------------------------------------------------------

// set font
$pdf->SetFont('dejavusans', '', 10);

// add a page

$pdf->AddPage();



Ten post edytował jasin 1.06.2011, 21:48:29
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 19:42