106 messaggi dal 11 giugno 2001
salve...ho bisofgno d'aiuto ho gia cjiesto come posso fare ..ma nnn cho capito niente.....ho visto come fare con i rtf...ma nn ho capito molto.....coi pdf....troppa roba dainstallate....qlcsa di + semplice...devo stampare fatture.....io ho provaro a stampare su cristal report...ma ...niente....vi prego ...datemi ub indicazione.....partendo dalle basi....come devo fare? devo creare 1 filesystem...1 file object?bo....nn cho capito niente....aiuto vi prego.....
11.886 messaggi dal 09 febbraio 2002
Contributi
puoi stampare tranquillamente da web, non c'è proprio la necessità impellente di usare crystal report.
Si tratta di stampare fatture... chi deve farlo? tutti gli utenti di un sito internet? gli amministratori di un intranet?
Devi generare una pagina e poi chiamare il metodo javascript window.print()

non è tanto difficile...
se compare l'url alla fine della pagina pazienza... cerca di farci entrare tutto. Spiegati meglio...

Enjoy learning and just keep making
106 messaggi dal 11 giugno 2001
solo l'amministratore pò fatturare...il nome pagina alla fine nn è 1 grosso problema...il problema ni viebìne quando la fattura è + di 1 pagina...nella fattura a + pagine l'intestazione va stampata ad ogni pag...e gliimporti solo sull ultima...come faccio?
11.886 messaggi dal 09 febbraio 2002
Contributi
effettivamente il problema sorge se non conosci il numero di pagine da stampare.
Cioè, in base ai dati immessi, riesci a determinare quante pagine verranno stampate?
Perchè, ti spiego, ho fatto una cosa simile alla tua, in cui l'amministratore deve stampare delle schede di lavoro: anagrafica del cliente, preventivi, tempi e costi di lavorazione... in base alle cose selezionate sapevo di quante pagine sarebbe stata la stampa finale.

Con che criteri la fattura sarà di 1, 2 o 3 pagine? C'è molto testo che potrebbe non entrare nella prima?
Se riesci a sapere con esattezza come dividere il contenuto della fattura su più pagine allora è fattibile.
Dovrai usare delle tabelle con posizione assoluta, funziona egregiamente (già provato) però devo ricredermi: Crystal reports ti risparmierebbe un po' di grane...

Enjoy learning and just keep making
106 messaggi dal 11 giugno 2001
be..nn cè criterio la fattura potrebbe essere anche di 10 pagine...dipende da quante righe sono.....quello che so è che la pag a4 tiene 17 righe e poi cambia sulla seconda....mim basteebbe dirgli di cambiare pag dopo la 17° ...ma come faccio x gargli stampare l'intestazione su tutte le pag. e l'importo solo sull'ultima?
11.886 messaggi dal 09 febbraio 2002
Contributi
Proviamo una cosa alla volta, ora è importante che tu riesca a stampare l'intestazione su ogni foglio, fatto questo pensiamo anche agli importi.
Per avere un buon risultato, è necessario che i margini di stampa siano sempre gli stessi, altrimenti non ti entrerebbero più 17 righe, ma 19 o 16.
Prima di stampare, magari con un'alert avverti all'amministratore di controllare dal menu File -> Imposta pagina di IE, che l'orientamento del foglio A4 sia verticale, che intestazione e piè di pagina siano vuoti, e che i margini siano tutti di 10 mm, tranne quello inferiore impostato a 20 mm.
Così messi i margini, l'area di stampa dovrebbe rientrare nello "stampabile" di ogni stampante. (quante volte ho ripetuto la parola stampa??)

A questo punto disponi di un'area di stampa che corrisponde ad un A4 meno i margini citati, e cioè, in dimensioni: 190mm x 267 mm.
Quello che devi fare è costruire da frontpage o qualsiasi altro editor html, una tabella che comprenda intestazione e spazio per scrivere il testo della fattura delle dimensioni esatte dell'area di stampa. Si ma a quanti pixel corrisponde? Internet explorer stampa il contenuto di una pagina web a 96dpi. Quindi, una tabella che occupa 190x267 mm è grande 718 x 1009 pixel. Ricordati bene 1009 pixel perchè è l'intervallo che intercorre tra una pagina e l'altra, con i margini settati a quel modo (10mm il superiore, 20 l'inferiore).
Per arrotondare un po' le misure, tu costruisci una tabella 700x1000 pixel, all'interno della quale ci sarà l'intestazione ed il testo da inserire.
Ci saranno tante tabelle quante pagine da stampare, ed ognuna avrà posizioni assolute con l'intervallo di 1009 pixel. (Lo so che è lunghetto come procedimento, però io non ce l'ho crystal reports, bisogna arrangiarsi come si può, qualche volta).
Per prima cosa, nella pagina asp devi rilevare di quante pagine sarà composta la stampa finale. Taglierò le frasi a 1000 caratteri. Per cui, se tutto il testo è lungo 3750 caratteri, le pagine da stampare saranno 4:

<%
Dim testo, contatore
Dim pagine()
testo = Request.form("testo")
contatore = 0
while Len(testo) > 1000
Redim preserve pagine(contatore)
pagine(contatore) = Left(testo,1000)
testo = Mid(testo, 1001)
contatore = contatore + 1
wend
%>

in questo modo si crea un'array ("pagine") che ha per ogni elemento, tutto il testo di massimo 1000 caratteri, da scrivere in una pagina.
Passiamo a generare le pagine con quelle benedette tabelle:

<%
for i = 0 to Ubound(pagine)
distacco = i*1009
%>
<table width="700" height="1000" style="position:absolute; left:0, top:<%=distacco%>">
<tr><td>Intestazione</td><tr>
<tr><td><%=pagine(i)%></td></tr>
</table>
<%
next
%>

Questo creerà tante tabelle quanti sono gli elementi dell'array "pagine".
Le tabelle si ripetono con un'intervallo di 1009 pixel, infatti guarda la proprietà top: all'inizio vale 0, poi 1009, poi 2018 ecc.. e in ogni pagina avrai l'intestazione con la porzione di testo.
Io ho tagliato a 1000 caratteri esatti, le parole risulteranno troncate, ti puoi rifinire meglio il sistema di "taglio", mettendolo al punto, o all'"a capo".

Per inserire gli importi, nel ciclo for metti questa condizione:
if i = Ubound(pagine) then
'aggiungi gli importi
end if

vedi se ti piace tutto questo metodo, lo so che è faticoso, io l'ho fatto non potendo usare Crystal Reports... vedi tu! In bocca al lupo...
Modificato da BrightSoul il 06 ottobre 2002 15.57 -

Enjoy learning and just keep making
106 messaggi dal 11 giugno 2001
grazie..adesso sono un po in coma....e nn cho capito molto .......cmq mi stampo il tutto e ci proverò...cmq a occhio e croce dovrebbe andare bene...grazie ancora .........ti farò sapere...........
160 messaggi dal 08 novembre 2001
Ho trovato il post che cercavo perchè anche io devo stampare le fatture, ma ho un problema in più : il numero di record da stampare è dinamico, e non è detto che un record = una riga ....se esistesse qualche variabile che alla fine del do loop sul movenext mi calcola il pixel della pagina allora sarei a posto:
if pixel > 1000 then
'Pagina
Rifare Tabella con Intestazione
end if

Bright tu ne sai qualcosa ?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.