Visualizzare su più pagine risultato query con fpdf

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio

Max61

Utente Attivo
2 Mar 2014
760
4
18
Salve, sono di nuovo qua a chiedere aiuto, questa volta ho la necessità di visualizzare il risultato di una query su più pagine.
Mi spiego meglio: lancio una query che mi crea una tabella con i risultati, eseguo una query che legge i risultati se è 1 ok, se sono due o più vorrei stamparli su più pagine (uso fpdf )
Es.
record 1: Pippo, pratica 32, ecc.
record 2, Pluto, pratica 20, ecc.
bene questi 2 risultati li vorrei vedere su 2 pagine e non sulla stessa pagina, c'è un funzione per mandare a capo o qualcosa di simile?
Ho provato con $pdf->AddPage(); ma non funziona, nel senso che aggiunge una pagina, ma vuota.

Grazie
Max61
 
PHP:
<?php

require_once "FPDF/fpdf.php";

class PDF extends FPDF
{
    function Header()
    {
    }

    function BodyTable()
    {
    }

    function Footer()
    {
    }
}

$pdf = new PDF('L', 'mm', 'A4');
$pdf->SetFont('Times','',12);
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->Cell(0,10,"prova riga 1",0,1);
$pdf->Cell(0,10,"prova riga 2",0,1);
$pdf->AddPage();
$pdf->Cell(0,10,"prova riga 1",0,1);
$pdf->Cell(0,10,"prova riga 2",0,1);
$pdf->Output();
?>
 

Allegati

Grazie Marino dell'aiuto, ci siamo quasi io vorrei che nella pagina 1 ci sia stampato Pippo, pratica 32
nella pagina 2 Pluto, pratica 20, nella pagina 3 altro record cioè stampare i dati di ogni record del db per pagina, se c'è un record stamperà una pagina, altrimenti n pagine.
Spero di essermi spiegato.
Io uso questa query per recuperare i dati dal db


$sql1 = "Select * from stampaverbali";

$sql = mysql_query($sql1,$myconn) ;
while($R=mysql_fetch_array($sql)){

$Nominativo = $R['Nominativo'] ;
$NumPratica = $R['NumPratica'] ;
$DataSinistro = $R['DataSinistro'] ;
$OraSinistro = $R['OraSinistro'] ;
$LocalitaSinistro = $R['LocalitaSinistro'] ;
$ViaSinistro = $R['ViaSinistro'] ;
}

Scusa ma non so dove si trovano i TAG
Grazie ancora
Max61
 
Ultima modifica:
ci siamo quasi, vuole dire qualche "leggera" modifica allo script iniziale,
lo script che ti posto può essere usato per stampare delle liste,
ho cercato di renderlo adattabile facilmente a liste diverse
non ho potuto provare il controllo del cambio pagina, al cambio del nominativo, spero funzioni
tutto il resto funziona
fai sapere

PHP:
<?php

require_once "FPDF/fpdf.php";

class PDF extends FPDF
{
    function Header()
    {
        global $titolo, $colonne, $intestaz, $misure, $allineam, $Ncolonne, $Tmisure, $HeaderCntrl;

        $Ncolonne = count($colonne);
        $Tmisure  = array_sum($misure);

//      TITOLO
        $this->SetTextColor(0);
        $this->SetFont('Helvetica','B',16);
        $this->Cell($Tmisure, 10, $titolo, 0, 1, 'L');

//      INTESTAZIONE COLONNE
        $this->SetFillColor(0,153,255);
        $this->SetTextColor(255);
        $this->SetFont('Helvetica','B',10);

        for( $i=0; $i<$Ncolonne; $i++ )
            $this->Cell($misure[$i], 6, $intestaz[$i], 1, 0, $allineam[$i], 1);
        $this->Ln();

//      SETTINGS FOR BODY and FOOTER PRINTING
        $HeaderCntrl = true;
    }

    function BodyTable()
    {
        global $colonne, $misure, $allineam, $Ncolonne, $Tmisure, $HeaderCntrl, $fill, $R;

//      CONTROLLA IL SALTO PAGINA
        $this->Cell(0, 6, ' ', 0, 0, 'L');
        $this->Ln(0);

//      INIZIALIZZA LA STAMPA SULLA NUOVA PAGINA
        if ($HeaderCntrl)
        {
            $fill = false;
            $this->SetFillColor(178,178,178);
            $this->SetTextColor(0);
            $this->SetFont('');
        }

//      STAMPA LA RIGA
        for($i=0; $i<$Ncolonne; $i++)
            $this->Cell($misure[$i], 6, $R[$colonne[$i]], 'LR', 0, $allineam[$i], $fill);
        $this->Ln();

//      flips from true to false and vise versa, line background color
        $fill =! $fill;

        $HeaderCntrl = false;
    }

    function Footer()
    {
        global $Tmisure;

//      CHIUDE LA STAMPA SULLA PAGINA
        $this->Cell($Tmisure, 0, '', 'T');

//      STAMPA IL PIEDE
        $this->SetY(-10);
        $this->SetFont('Helvetica','I',8);
        $this->Cell(0, 0, 'Nome della società', 0, 0, 'L');
        $this->Ln(0);
        $this->Cell(0, 0, 'Pagina '.$this->PageNo().'/{nb}', 0, 0, 'C');
        $this->Ln(0);
        $this->Cell(0, 0, date('e - l, F jS, Y - H:i:s'), 0, 0, 'R');
    }
}

$titolo="";
$colonne  = array('NumeroPratica' , 'DataSinistro' , 'OraSinistro' , 'LocalitaSinistro' , 'IndirizzoSinistro' );
$intestaz = array('Numero Pratica', 'Data Sinistro', 'Ora Sinistro', 'Localita Sinistro', 'Indirizzo Sinistro');
$misure   = array( 30             ,  30            ,  30           ,  50                ,  100                );
$allineam = array( 'L'            ,  'L'           ,  'L'          ,  'L'               ,  'L'                );

$sql = "Select * from stampaverbali order by Nominativo, NumPratica";
$sql = mysql_query($sql, $myconn) ;

$pdf = new PDF('L', 'mm', 'A4');
$pdf->SetFont('Times','',12);
$pdf->AliasNbPages();

while( $R = mysql_fetch_array($sql) )
{
    if( $titolo != $R['Nominativo'] )
    {
        $titolo = $R['Nominativo'];
        $pdf->AddPage();
    }
    $pdf->BodyTable();
}
$pdf->Output();
?>
 
Buongiorno e GRAZIE sei un GENIO!
Ma c'è un ma...l'impaginazione la vorrei diversa, ho provato a farla ma non ce la posso fare. Ti invio il modello che utilizzo nel programma Access, mi serve identico.
Scusa ma se è troppo lascia perdere, non vorrei abusare della tua pazienza.
Comunque GRAZIE di nuovo
Max61
 

Allegati

Non ti preoccupare hai fatto anche troppo.
Grazie Marino
Buona giornata
Max61
 

Discussioni simili