Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]"Wciągnięcie" zmiennej do public function
hubson87
post 1.06.2011, 21:07:06
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
mortus
post 1.06.2011, 21:14:03
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Podawaj ją jako argument funkcji Header():
  1. public function Header($id1) {
  2. // ...
  3. }
a później przy wywoływaniu:
  1. $id1 = $_GET['id']; // to tylko przykład pobrania zmiennej
  2. $pdf = new MYPDF();
  3. $pdf->Header($id1);
Go to the top of the page
+Quote Post
hubson87
post 1.06.2011, 21:30:58
Post #3





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

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


Ok a z tym wywołaniem to mógłbyś trochę jaśniej prawdę mówiąc to z tą biblioteką znamy się od wczoraj:D

U mnie to wygląda mniej więcej tak do momentu wypełniania dokumentu

  1. // create new PDF document
  2. $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
  3. // set document information
  4. $pdf->SetCreator(PDF_CREATOR);
  5. $pdf->SetAuthor('Hubert Janik');
  6. $pdf->SetTitle('Przychód wewnętrzny');
  7. $pdf->SetSubject('Raport Magazynowy');
  8.  
  9.  
  10.  
  11.  
  12. // set header and footer fonts
  13. $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
  14. $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
  15.  
  16. // set default monospaced font
  17. $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
  18.  
  19. //set margins
  20. $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
  21. $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
  22. $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
  23.  
  24. //set auto page breaks
  25. $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
  26.  
  27. //set image scale factor
  28. $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
  29.  
  30. //set some language-dependent strings
  31. $pdf->setLanguageArray($l);
  32.  
  33. // ---------------------------------------------------------
  34.  
  35. // set font
  36. $pdf->SetFont('dejavusans', '', 10);
  37.  
  38. // add a page
  39.  
  40. $pdf->AddPage();


Ten post edytował hubson87 1.06.2011, 21:32:26
Go to the top of the page
+Quote Post
jasin
post 1.06.2011, 21:46:48
Post #4





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
hubson87
post 1.06.2011, 22:08:56
Post #5





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

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


Ok dzięki wielkie Panowie
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 29.05.2024 - 10:46