righe numerose come le gestisco

Ciao Ragazzi. Ho quasi portato a termine il mio progetto (almeno per quanto riguarda la prima parte)

Ho creato anche un file flash nel quale vengono visualizzati i dati della fattura negli appositi

spazi...fico!

Mi sono reso conto di una cosa però.

Se il numero degli articoli e quindi delle righe è troppo numeroso (diciamo superiore a 20)

non possono essere visualizzati nel documento che ha una determinata grandezza visto

che deve essere stampato per intero su un foglio A4.

Nella pagina php in cui inserisco i dati

degli articoli (codice, descrizione, iva, prezzo ecc ecc) posso inserire quanti articoli e righe voglio, non ci

sono limiti in questo caso (se le righe sono numerose le posso comunque visualizzare spostandomi con la barra laterale della pagina).

Avevo pensato di risolvere in questo modo:

Prima soluzione:

Inserisco una condizione IF nella pagina php che verifichi che le righe non superino un Numero TOT (20 per esempio)

segnalandomi con un messaggio il limite raggiunto e bloccandomi l'inserimento di altri articoli.

In pratica dovrei prima stampare il documento in corso e poi crearne un altro. Niente di

particolarmente difficile quindi.

Seconda soluzione:

I dati degli articoli sono richiamati dal DB (in entrambi i casi) da una tabella nella quale  vengono salvati i dati degli

articoli una volta confermato il tutto. Essi poi sono richiamati nel foglio per la stampa in base

al' ID o numero fattura di appartenenza. Dovrei in questo caso creare un codice che verifichi il numero delle righe, richiamare i primi venti articoli e produrre la stampa (o la semplice visualizzazione) del primo documento  (con un numero fattura) e poi successivamente far produrre automaticamente

produrre un nuovo documento fattura con un nuovo numero per stampare il resto.

Ad esempio se gli articoli sono 25 dovrebbe essere stampato il primo documento con i primi 20 articoli e il secondo con solo i rimanenti 5 e ovviamente proseguire così se gli articoli sono 35, 40, 53 ecc.

Questa sarebbe una soluzione più "professionale" ma non saprei come procedere.

Voi quale soluzione mi consigliate?

Nel caso fosse la seconda soluzione come imposto il codice?

Grazie

inviato 9 anni fa
frankphp
modificato 9 anni fa
X 0 X

come avviene il processo di stampa?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Ciao!

Mi iscrivo alla discussione sono molto interessato. Anch'io ho fatto la tua stessa cosa e ho lo stesso tuo "problema".

Io evevo pensato all'opzione che il numero fattura resta lo stesso ma visualizza 2 o 3... pagine.

Cioè pagina 1/3 2/3 e 3/3 del fattura N° xx.

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

maverikgoos è la soluzione giusta, una fattura può avere + pagine.

C'è da tenere presente alcune cose:

1 - Il commercialista per registrare le fatture si fa pagare, magari x un tot di fatture è tutto incluso ma poi sono costi maggiori

2 - è scomodo da gestire più fatture per un unico ordine, sia per il cliente che per chi emette la fattura

3 - E' + semplice aggiungere una pagina che un nuovo numero di fattura

E non sono le uniche motivazioni, ma tra le più importanti.

Io per gestire queste cose uso i pdf: con fpdf genero la fattura, se una pagina non basta e sufficiente un addpage() e via. Poi ho trovato una "estensione", di cui non ricordo il nome purtroppo ma se volete lo cerco e vi farò sapere, grazie alla quale carico come modello di fattura un pdf così faccio stampare su foglio bianco (risparmiando anche i costi dei prestampati) ed inoltre c'è la possibilità di salvarle in pdf e quindi anche anticiparle via mail cl cliente.

risposto 9 anni fa
LonelyWolf
X 0 X

 :smitten: LonelyWolf  :smitten:

risposto 9 anni fa
Marco Dario
X 0 X

Attenzione, in caso di + pagine:

1 -  ogni pagina deve riportare il totale parziale, cioè il totale degli articolo della pagina più quello delle pagine precedenti (ma solo quello, l'IVA no)

2 - ogni pagina deve avere l'intestazione dell'emittente e del cliente ed ovviamente lo stesso numero

3 - possibilmente come ultima riga inserite: segue o altra dicitura a scelta ma che faccia capire che ci sono più pagine.

Questo e quanto io so, avendo fatto un paio di applicazioni intranet; in sostanza sono le specifiche datemi dai commercialisti dei "clienti".

risposto 9 anni fa
LonelyWolf
X 0 X

Perfetto!

Puoi entrare più nel dettaglio della paginazione delle voci fattura?

Cioè, come hai fatto a generare il pdf dinamicamente con più pagine? Ipotesi, fattura con voci per 3 pagine, hai fatto un'unico pdf da 3 pagine?

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

Si.

Prima di tutto, in fase di test, ho fatto generare il pdf con x voci, dove x è un numero sicuramente superiore allo spazio disponibile su una pagina, così ho potuto verificare quante righe effettive ci sono a disposizione (ricorda che comunque su ogni pagina ci va il "piede" della fattura dove sta il totale, ecc).

Poi ho messo un semplice contatore, dato che recupero le voci dal db non voglio fare + query, ne ciclo una sola ed il contatore mi serve per sapere quante ne ho scritte nel pdf, arrivato al limite aggiungo la pagina nuova con le intestazioni, azzero il contatore e proseguo le voci ciclando la query.

Alla fine della query è finita la fattura, il filo logico è + o - questo:

1 - recuperare le intestazioni (cliente, emittente, varie ed eventuali) e "metterle" nel pdf

2 - recuperare le voci della fattura con la query

3 - azzero il contatore

4 - ciclo della query, all'interno un semplice if per controllare le righe tipo: if ($contatore==$righjemax) { scrivi totale a fine pagina, aggiungi pagina, scrivi le intestazioni, azzera $contatore } aggiunta della voce e incremento del contatore

5 - query finita si calcola iva, sconti e tutto il resto e inserimento nel pdf

A questo punto devi solo decidere se salvare il pdf o visualizzarlo direttamente.

Edit:

Io ho scelto per il pdf perchè gestire una stampa che abbia certe caratteristiche e i limiti di un foglio è più semplice, se una fattura si potesse stampare senza regole come un semplice elenco si sarebbe potuto fare anche come semplice pagina web e darne la stampa.

risposto 9 anni fa
LonelyWolf
modificato 9 anni fa
X 0 X

Ok! Chiarissimo!  O0

Ho già la stessa struttura in html, il problema era appunto se avevo 2 pagine come facevo a stampare la prima e poi la seconda e così via? Mentre con il pdf è moooolto più semplice da gestire!  :coolsmiley:

Adesso devo studiarmi questo fpdf e impaginare di nuovo la fattura...  :buck:

grasssie!

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

fpdf è semplicissimo vedrai che in 15 minuti sarai in grado di utilizzarlo.

www.fpdf.org

Leggi bene un paio di tutorials, poii ti consiglio anche di prendere qualcuno degli scripts presenti che aiutano nell'implementare alcune cosine interessanti.

risposto 9 anni fa
LonelyWolf
X 0 X

Azz,  pare che la cosa non interessi solo a me!

In ogni caso Sto provando a finire il progetto stampando un filmato flash e quindi la cosa si complica

in questo caso per me.

Diciamo comunque che evito di utilizzare flash e mi concentro solo sulla pagina php che richiama

le funzioni di fpdf; ci sono alcune cose che non mi sono tanto chiare

Lonely dice: "ogni pagina deve riportare il totale parziale".

Ti riferisci al solo totale imponibile?

Poi non mi è chiaro il fatto del contatore, del ciclo e della query (scusate ma sono un principiante :P).

Mi servirebbe un po' di codice.

Intanto provo a studiami sto FPDF.

Grazie

risposto 9 anni fa
frankphp
X 0 X

Il totale parziale è appunto l'imponibile se non mi sbaglio.. :-\

Mentre per il discorso del ciclo while serve per contare le righe che stampa la query, quando è arrivato al limite massimo per pagina si ferma e aggiunge una nuova pagina.

Per il codice io domani comincio a studiare un pò di fpdf e poi magari posto qualcosa.

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

Azz,  pare che la cosa non interessi solo a me!

In ogni caso Sto provando a finire il progetto stampando un filmato flash e quindi la cosa si complica

in questo caso per me.

Diciamo comunque che evito di utilizzare flash e mi concentro solo sulla pagina php che richiama

le funzioni di fpdf; ci sono alcune cose che non mi sono tanto chiare

Lonely dice: "ogni pagina deve riportare il totale parziale".

Ti riferisci al solo totale imponibile?

Poi non mi è chiaro il fatto del contatore, del ciclo e della query (scusate ma sono un principiante :P).

Mi servirebbe un po' di codice.

Intanto provo a studiami sto FPDF.

Grazie

In firma ho un link che probabilmente potrebbe fare al caso tuo, dagli un'occhiata..se ti serve aiuto chiedi

risposto 9 anni fa
Lex84
modificato 9 anni fa
X 0 X

Ho praticamente impaginato di nuvo la fattura con fpdf  :o Devo dire che è uno strumento utilissimo e facile da usare!  ;)

Per l'amplicazione che frankphp intendeva fare secondo me è la soluzione più indicata!

Grazie LonelyWolf  O0

 :bye:

risposto 9 anni fa
Marco Dario
X 0 X

Ho praticamente impaginato di nuvo la fattura con fpdf  :o Devo dire che è uno strumento utilissimo e facile da usare!  ;)

Per l'amplicazione che frankphp intendeva fare secondo me è la soluzione più indicata!

Grazie LonelyWolf  O0

 :bye:

Ho considerato un po' la cosa e pensandoci per adesso non vorrei complicarmi la vita

studiando un nuovo strumento, poi non saprei nemmeno utilizzarlo a dovere visto che non sono

un programmatore.

Vorrei provare a sviluppare il secondo metodo che ho proposto nel mio primo post.

Devo leggere anche la pagina del link suggerito da lex..magari mi rifaccio sentire, ok?

Grazie

risposto 9 anni fa
frankphp
X 0 X

Il totale parziale è appunto l'imponibile se non mi sbaglio.. :-\

Mentre per il discorso del ciclo while serve per contare le righe che stampa la query, quando è arrivato al limite massimo per pagina si ferma e aggiunge una nuova pagina.

Per il codice io domani comincio a studiare un pò di fpdf e poi magari posto qualcosa.

 :bye:

ok il parziale riguarda solo l'imponibile.

Per il ciclo while come dici tu ho capito che serve a contare le righe. Ma è praticamente il "meccanismo" che controlla, si ferma, aggiunge una pagina e riprende a stampare che non ho presente!

Potresti postare qualcosa?

Grazie

risposto 9 anni fa
frankphp
X 0 X

Vedi qui:

http://www.phpnews.it/forum/index.php?topic=1834.0

E' una funzione per dividere dei dati su più pagine, credo sia quello che fa al caso tuo:

Gli passi la query per la selezione delle tue righe, stabilisci i risultati per pagina, il numero di link alle pagine visualizzate e ti ordina in automatico i dati estratti

risposto 9 anni fa
Lex84
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda