Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    82

    Problemi di paginazione con FPDF

    Ciao a tutti,

    stò creando con FPDF dei report di stampa con dei dati presi da un DB il problema è che la prima pagina viene compilata senza nessun problema, dalla seconda in poi, la pagina è composta solo dalla prima riga, la successiva viene messa nella terza, quella dopo nella quarta e così via... da cosa può dipendere il problema? :master:

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    82
    ragazzi... nessuno mi sa aiutare

  3. #3
    se non posti codice non è facile

    ad occhio sembrerebbe che imposti la coordinata y non azzerandola ad ogni cambio pagina

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2001
    Messaggi
    82
    ecco il codice

    Codice PHP:
        // CREO UN NUOVO PDF
        
    $pdf=new PDF('L');
        
    $pdf->AliasNbPages();
        
    $pdf->AddPage();

        
    $Y_Fields_Name_position 30;
        
    $Y_Table_Position 34;
        
        
    $i 0;
        
        for(
    $k=0;$k<$num_societa;$k++){
            
    // Ottengo il nome delle società
            
    $query1 "SELECT * FROM tbSocieta WHERE id = '$scelta_soc_a[$k]'";
            
    $ris1 mysql_query($query1);
            
    $row1 mysql_fetch_array($ris1);
            
    $societa1[$k] = $row1['id'];
            
    $societa2[$k] = $row1['nome_societa'];
            
    // Di ogni società ottengo l'elenco dei conti correnti
            
    $query2 "SELECT * FROM tbContoCorrente WHERE id_societa = '$societa1[$k]'";
            
    $ris2 mysql_query($query2);
            
    $numero_conti 0$numero_partite 0;
            
    // Inizio a scansionare l'elenco delle partite maturate di ogni conto corrente
            
    while($row2=mysql_fetch_array($ris2)){
                
                if (
    $i == 0) {
                    
    $Y_Table_Position $Y_Table_Position;
                    
    $pdf->SetY($Y_Table_Position);                                        
                }
                if (
    $i 0) {
                    
    $Y_Table_Position $Y_Table_Position+8;
                    
    $pdf->SetY($Y_Table_Position);                
                }
                            
                
    // [PDF] - CREAZIONE INTESTAZIONE DELLA TABELLA
                
    $pdf->SetFillColor(232,232,232);
                
    $pdf->SetFont('Arial','B',10);
                
    $pdf->SetX(5);
                
    $pdf->Cell(75,4,'Società',1,0,'L',1);
                
    $pdf->SetX(80);
                
    $pdf->Cell(40,4,'Conto Corrente',1,0,'L',1);
                
    $pdf->SetX(120);
                
    $pdf->Cell(35,4,'Data',1,0,'L',1);
                
    $pdf->SetX(155);
                
    $pdf->Cell(35,4,'Importo',1,0,'R',1);
                
    $pdf->SetX(190);
                
    $pdf->Cell(35,4,'Num.Banca',1,0,'L',1);
                
    $pdf->SetX(225);
                
    $pdf->Cell(35,4,'Fornitore',1,0,'L',1);
                
    $pdf->SetX(260);
                
    $pdf->Cell(35,4,'Causale',1,0,'L',1);
                
    $pdf->Ln();            
                
    $ccsoc1[$i] = $row2["id"];
                
    $ccsoc2[$i] = $row2["numero_conto"];
                
    $ccsoc3[$i] = $row2["nome_banca"];
                
    $numero_conti $numero_conti+1;
                
    $query3 "SELECT * FROM tbPartite WHERE id_societa = '$societa1[$k]' AND id_contocorrente = '$ccsoc1[$i]' AND incassato = '1' AND data <= NOW() ORDER BY data ASC";
                
    $ris3 mysql_query($query3);
                
    $numero_partite $numero_partite mysql_num_rows($ris3);
                
    $totale_parziale 0;
                
    // Stampo a video il dettaglio di ogni partita maturata che ho trovato
                
    while($row3=mysql_fetch_array($ris3)){
                    
    $partita1[$x] = $row3["data"];
                    
    $partita2[$x] = $row3["num_banca"];
                    
    $partita3[$x] = $row3["fornitore"];
                    
    $partita4[$x] = $row3["causale"];
                    
    $partita5[$x] = $row3["importo"];        
                    
    $data_ita[$x] = substr($partita1[$x],8,2)."-".substr($partita1[$x],5,2)."-".substr($partita1[$x],0,4);
                    
    $importo[$x] = number_format($partita5[$x],2',''.');            
                    
    // [PDF] - COMPILO LA TABELLA CON LE PARTITE TROVATE

                    
    if ($x == 0) {
                        
    $Y_Table_Position $Y_Table_Position+4;
                        
    $pdf->SetY($Y_Table_Position);                                        
                    }
                    if (
    $x 0) {
                        
    $Y_Table_Position $Y_Table_Position+4;
                        
    $pdf->SetY($Y_Table_Position);                
                    }
                    
                    
    $pdf->SetFont('Arial','',8);
                    
    $pdf->SetX(5);
                    
    $pdf->Cell(75,4,"$societa2[$k]",1);
                    
    $pdf->SetX(80);
                    
    $pdf->Cell(40,4,"$ccsoc3[$i] - $ccsoc2[$i]",1);
                    
    $pdf->SetX(120);
                    
    $pdf->Cell(35,4,"$data_ita[$x]",1,0,'L');
                    
    $pdf->SetX(155);
                    
    $pdf->Cell(35,4,"€ $importo[$x]",1,0,'R');
                    
    $pdf->SetX(190);
                    
    $pdf->Cell(35,4,"$partita2[$x]",1,0,'L');
                    
    $pdf->SetX(225);
                    
    $pdf->Cell(35,4,"$partita3[$x]",1,0,'L');
                    
    $pdf->SetX(260);
                    
    $pdf->Cell(35,4,"$partita4[$x]",1,0,'L');
                    
    $totale_partite $totale_partite $partita5[$x];
                    
    $totale_parziale $totale_parziale $partita5[$x];
                    
    $x $x+1;                
                }            
                 
    $totale_parziale number_format($totale_parziale,2',''.');                    
                
    $Y_Table_Position $Y_Table_Position+4;
                
    $pdf->SetY($Y_Table_Position);                
                
    $pdf->SetFont('Arial','B',8);
                
    $pdf->SetX(155);
                
    $pdf->Cell(35,4,"€ $totale_parziale",1,0,'R');
                
    $i $i+1;
            }
        }
        
        
    $pdf->Output(); 
    in effetti ad ogni cambio pagina non azzero nulla... ma come faccio a capire che la pagina sta cambiando? Grazie mille!

  5. #5
    devi ridefinire il metodo
    AcceptPageBreak()

    in modo da adattarlo alle tue esigenze


    [edit]

    In pratica questo metodo se ritorna true va a pagina nuova, devi fargli restituire true ma devi anche fargli azzerare gli spostamenti y

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.