Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Stampare una fattura

  1. #1

    Stampare una fattura

    Carissimi ragazzi, ho un problema.....
    ho creato un piccolo gestionale, una delle funzioni è quella di stampa della fattura.
    Il problema si crea nel momento della stampa tramite stampante della fattura inserita. Vi spiego meglio:
    in un foglio A4, per come ho implemetato il tutto, entrano circa 20 prodotti. Il problema sorge se inserisco una fattura contenente più di 20 prodotti, infatti inserendola, quando mando in stampa, la fattura mi viene stampata in questo modo:
    Prima pagina, intestazioni(logo negozio, generalità del venditore, generalità dell'acquirente),+ i primi 20 prodotti;
    nella seconda pagina, mi viene stampato, il rimanente dei prodotti cher non sono entrati per motivi di spazio nella prima pagina + il saldo .
    Il problema che non riesco a risolvere, è che sulla seconda pagina oltre ad essere stampati i prodotti, deve essere stampata l'intestazione. Come faccio a stampare la fattura nel modo corretto? Come faccio a stampare sul secondo foglio di stampa o sui fogli successivi l'intestazione?

    Aspetto vostre notize, inoltre qui di seguito vi scrivo la pagina nella quale richiamo la funzione javascriptrint().

    Sono in crisi aiuto!!!!!!



    ***QUESTA è L'INTESTAZIONE CHE VA INSERITA SEMPRE SU OGNI FOGLIO***
    <table width="100%">
    <tr>
    <?
    echo "<img src=\"$logo\" border=0>

    ";
    ?>
    </tr>
    <tr>
    <td>
    <?
    echo " <H2>$nome
    </H2>";
    echo " $indirizzo
    ";
    echo " $localita $cap
    ";
    echo " P.iva: $piva
    ";
    echo " Cod.Fiscale: $fiscale
    ";
    echo " Telefono:$telefono Fax: $fax
    ";
    echo " $sitoweb - $email";
    ?>

    </td>
    <td></td>

    <td align="right">
    <?echo "$localita $dataemissione

    ";?>
    <?echo "Spett.le ".$nome_cliente ."
    " ; ?>
    <?echo $indirizzo_cliente ."
    " ; ?>
    <?echo $citta_cliente ."".$provincia_cliente."".$cap_cliente."
    " ; ?>
    <?echo "P. IVA: ".$piva_cliente ."
    " ; ?>
    <?echo "Cod. Fiscale: ".$fiscale_cliente ; ?>
    </td>
    </tr>
    <td>
    </td>
    <tr>
    <td colspan="2"><h2>FATTURA N. <?echo $id_fattura;?></h2></td>
    </tr>
    </table>









    ****QUESTA è LA TABELLA CHE CONTIENE TUTTI I PRODOTTI DELLA FATTURA****

    <table width=100% border='0'>
    <tr>
    <td align="center">Nome</td>
    <td align="center">Descrizione</td>
    <td align="center">Prezzo</td>
    <td align="center" width="66">Sconto</td>
    </tr>

    <?
    $result = mysql_query("select * from prodotti INNER JOIN fatt_prod ON ( prodotti.id = fatt_prod.id_prodotto ) WHERE id_fattura = $id_fattura ORDER BY prodotti.id");

    while($array=mysql_fetch_array($result)){
    echo "<tr align=\"center\">";
    echo "<td >".$array[nome]."</td>";
    echo "<td >".$array[descrizione]."</td>";
    echo "<td >".$array[prezzo]."</td>";
    echo "<td >".$array[sconto]."%</td>";
    echo "</tr>";
    }
    ?>

    </table>








    ***QUESTA è L'ULTIMA PARTE CHE VA INSERITA SULL'ULTIMO FOGLIO***

    <?
    echo "<table width=\"100%\">";
    if($inps!=0){
    echo "<tr><td>Contributo INPS ". $inps ." %</td><td align=\"right\">". $inps_fattura ." €</td></tr>";
    }
    echo "<tr><td>Totale imponibile</td><td align=\"right\">" . $imponibile ." €</td></tr>";
    echo "<tr><td>Iva ". $iva ." %</td><td align=\"right\" > ". $iva_fattura ." €</td></tr>";
    echo "<tr><td>Totale fattura</td><td align=\"right\"> ". $fattura ." €</td></tr>";
    if($ritenuta_imp!=0){
    echo "<tr><td>Ritenuta acconto del ". $ritenuta_imp ." %</td><td align=\"right\"> ". $ritenuta ." €</td></tr>";
    }
    if($ritenuta_imp!=0){
    echo "<tr><td>Netto da ricevere</td><td align=\"right\"> ". $netto ." €</td></tr>";
    }
    echo "</table>";
    ?>





    <?
    echo "Tipo di pagamento: ". $tipo_pagamento ."
    ";
    if ($datapagamento!=""){
    echo "Data pagamento: ". $datapagamento ."

    ";
    }
    echo "Nostri riferimenti bancari:
    ";
    echo "Banca: $banca
    ";
    echo "N. conto: $conto Abi: $abi Cab: $cab Iban: $iban";
    ?>



    <input type="button" value="Stampa" onclick="javascriptrint();">

    </div>
    </div>

    <div id="left">

    <?
    sub_menu::setFunz_fatture();
    ?>

    <div class="box">
    <div style="font-size: 0.8em; display: none; { display: none; }">Design by </div>
    </div>
    </div>
    </div>
    </body>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    87
    allora per esperienza personale ti dico che:
    anche io realizzo gestionali piu o meno complessi. Ho notato che la cosa migliore invece di stampare tramite browser lavorando con in css , è quella di generare un pdf con quei dati.

    Risultati:
    1. Ottima versatilita'. In quanto pdf nelle aziende lo usano tutti quindi nn ci sono problemi di installare player.
    2. Ottima impaginazione con intestazioni, footer e tutto quello che vuoi.
    3. adirittura la libreria per il pdf interpreta i tag html se si vuole
    4. Inserisci immagini e la genereazione di un file pdf complesso sta pochi secondi (ad esempio ho un pdf con 30query su un db e 10pagine di dati me lo genera in meno di 5secondi su internet.. in locale in 1 secondo te lo fa).


    Quindi ti consiglio di usare la libreria FPDF (cerca con google). All'inizio ti può risultare complicata.. in un paio di giorni la impari a sfruttare al massimo.


    In alternativa può utilizzare librerie che generano file word e excel.

    In qualunque caso i file generati vengono visualizzati sul browser. Oppure ti danno altri metodi di visualizzazione e salvataggio.

  3. #3
    Grazie per la dritta, ora cerchero di analizzare la libreria che mi hai dat. Mica puoi suggerrirmi come fare tecnicamente per dividere la tabella che avrò come risultato, ad esempio, se la mia query mi da come risultato 30 righe, e nel mio foglio A4 ce ne vanno 20, quindi lui automaticamente mi genererà 2 fogli, sul primo ci sarà l'intestazione e le prime 20 righe della tabella, e nel secondo foglio, le restanti 10 righe, è solo che, sul secondo foglio deve esserci anche l'intestazione, come posso fare? In pratica mi servirebbe che su ogni pagina che viene creata, sia presente sempre l'intestazione, insomma mi servirebbe un layout fisso per ogni foglio..... posso impostarlo il layout per ogni pagina???? spero di essere stato chiaro, in caso contrario fammi sapere.... Ciao e grazie ancora

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    87
    la libreria ha il cambio pagina automatico .. e in ogni pagina viene fuori header e footer che vuoi tu.. lo imposti una volta..

    adirittura puoi mettere i numeri di pagina..

    se non ti va bene che vada in automatico da sola sulla nuova pagina, potresti usare il LIMIT nella query mysql e mettere 30record per pagina ad esempio e poi gli dai il comando alla libreria per inserire la pagina nuova.


    cmq sul sito della libreria cè scritto tutto con tanto di esempi.. descrizione deille funzioni e tutto

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    87
    io da quando uso questo sistema riesco ad avere tutti i documenti della mia azienda ordinati.. e con la stessa formattazione.. inserisco i dati tramite il gestionale e quando ho bisogno di stampare con un click mi genera i documenti.. veramente una cosa utilissima che mi ha salvato da tanti grattacapi

    l'unica cosa che devi prendere mano con la libreria.. comincia con robe semplici e poi via via le vai a migliorare..

  6. #6
    Scusami potresti darmi l'indirizzo internet della libreria, così riesco finalmente a risolvere il problema.... Ti ringrazio tantissimo..... Ciao

  7. #7

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 © 2025 vBulletin Solutions, Inc. All rights reserved.