Newsgroup: it.comp.appl.access
Titolo: Stampare documento su carta prestampata

Ciao a tutti sono Dino.Avrei necessita' di stampare diversi report
ogniuno dei quali deve avere una sua carta prestampata.
Ho provato con in due modi ma non ho avuto un buon risultato.
Ho provato con il metodo Lines ma mi crea un bordo generico a tutto il
foglio.
Allora mi sono creato il JPG della carta prestampata e sono andato an
inserirlo nel report via codice(all'evento apertura report) con la
seguente istruzione:
Me.Report.Picture = "C:\Documents and Settings\dino\Desktop\Lavori in
corso\Buongiorno\programma\tools\Fattura_verticale2.jpg"
Il problema e' che per settare il tutto si va fuori di testa,
Volevo da voi alcuni consigli piu' mirati,sperando che l'unica
soluzione non sia Crystal report.
Grazie in anticipo
Dino

 ha scritto nel messaggio 
news:3e738ddc-6e5a-4876...@v39g2000yqm.googlegroups.com...

Crystal report o meno la posizione e le dimensioni dei controlli devi 
farteli sempre a manina.
Puoi anche usare il merge di word ma anche in questo caso dovrai prepararti 
il modello in word e, a mio avviso, il lavoro è ancora più lungo e 
complesso.
Proprio oggi ho appena terminato il report di una fattura che andrà stampato 
su carta intestata e già fincata.
La fattura non ha molti controlli, al massimo una ventina. Ci sono poi i 
dettagli fattura che al massimo avranno una decina di controlli. Questi 
ultimi li sistemo in un sottoreport che inserisco nel corpo del report 
principale.
Se può esserti d'aiuto inserisci pure una immagine della fattura come sfondo 
del report ma, una volta sistemati i controlli, aiutandoti con l'immagine, 
devi toglierla. Nel report rimangono solo i controlli che ovviamente saranno 
collegati a una query o tabella.
In genere io faccio così: grosso modo sistemo i controlli utilizzando 
l'intestazione di pagina per la testata della fattura. Nel corpo metto un 
sottoreport con i dettagli e, infine, nel piè di pagina pagina inserisco i 
totali, le note, i valori per il trasporto ecc. A questo punto faccio una 
stampa di prova su foglio bianco e, per trasparenza, gli sovrappongo il 
modello vuoto della fattura...mi accorgo subito degli scostamenti e provvedo 
alla corrazione.
Seguendo questa tecnica e per fatture particolarmente difficili dovresti 
impiegare non più di due ore.
Ciao, Carlo
 

 Ciao, Carlo
Secondo me questo approccio è valido solo se la stampa avviene in una
stampante ad aghi per stampa su carta ricalcante.
Ormai con le laser a colori su foglio A4 tutto questo procedimento mi
sembra superato.
Ai tempi (quando non c'erano le laser) mi ero costruito una scatola con un
vetro ed una lampadina all'interno per vedere in trasparenza e calcolare
meglio la disposizione dei controlli!!! :-)) 
Ciao
--
sv
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 sembra superato.
Sì, ammesso che abbia una laser a colori e di grande qualità, potrebbe anche 
stampare direttamente l'immagine usata come sfondo. Rimane comunque il 
problema di posizionare correttamente i controlli (questo è il suo 
problema).
Da non sottovalutare il fatto che i moduli prestampati possono essere varie 
migliaia a seconda dell'ordinativo alla tipografia. Anche in questo caso 
dovrà solo posizionare i controlli al posto giusto.
Per tutto il resto c'è master-card...
Ciao, Carlo

 Ciao, Carlo
Non intendevo questo. E' chiaro che se usi un'immagine come sfondo si
debbano per forza di cose adattarne i controlli. Io invece, penso ad un
intero report in struttura con un suo logo, righe linee e colori che
diventeranno in quel caso fattura su carta intestata. In pratica inserisci
nella stampante il foglio bianco.
Ciao, Salvino


"Dino"

Puoi preparare il Report, centrando i controlli con l'ausilio della tua 
stampante (non hai specificato se si tratti di moduli prestampati per 
Printer ad aghi).
In seguito integrando nel tuo applicativo questo strumento:
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=198
Potrai aggiustare le posizioni dei controlli per altri modelli di stampanti.

 Ciao, Salvino
Sě, si č chiaro...solo che il titolo del post č molto preciso: "Stampare 
documento su carta prestampata".
Non siamo mica masochisti!
Ciao, Carlo 

 - Mostra testo citato -
Ciao E grazie a tutti per la risposta.(rispondo a Carlo ma e come se
rispondessi a tutti).
Allora mi e' parso di capire che comunque bisogna andare alla vecchia
e centrare i controlli dopo alcune prove.
Il cliente mi ha dato due possibilita':
1) Stampare su carta prestampata
2)Oppure inserire nella stampante il foglio bianco ed effettuare una
stampa completa.Premetto che il cliente ha sia stampanti laser che a
getto.
Secondo voi quale soluzione mi consigliereste???E poi una vostra
conferma il metodo line semplicemente disegna solo il bordo esterno
del report e basta.Vero??
Grazie ancora e buon lavoro con il nostro Access.
Dino

 ha scritto
Cut
Ciao E grazie a tutti per la risposta.(rispondo a Carlo ma e come se
rispondessi a tutti).
Allora mi e' parso di capire che comunque bisogna andare alla vecchia
e centrare i controlli dopo alcune prove.
Il cliente mi ha dato due possibilita':
1) Stampare su carta prestampata
2)Oppure inserire nella stampante il foglio bianco ed effettuare una
stampa completa.Premetto che il cliente ha sia stampanti laser che a
getto.
Secondo voi quale soluzione mi consigliereste???E poi una vostra
conferma il metodo line semplicemente disegna solo il bordo esterno
del report e basta.Vero??
Grazie ancora e buon lavoro con il nostro Access.
Dino
----------------------------------
Se te la cavi con i metodi Line, sicuramente la seconda...massimo grado di 
personalizzazione, possibilità di inserire loghi e quantaltro.
La via di mezzo è quella di inserire l'immagine scannerizzata del 
prestampato del cliente e posizionarvi i dovuti controlli.
La prima soluzione (stampare su prestampato) è, imho, quella che ti richiede 
meno lavoro (tutta la grafica è già pronta) ma ti richiede qualche stampa di 
prova prima di dare il lavoro finito.
Ciao, Carlo

 ha scritto

Grazie Carlo per la risposta.Se dovessi scegliere la seconda ho solo
un problema.Ma il metodo Line ti permette di personalizzare le
fincature o no?A
dir la verita' ho provato con l'esempio del nostro sito ma mi disegna
il bordo di tutto il report.Se io ad esempio volessi creare una
fincatura solo su due controlli
lo posso fare?Come??
Grazie ancora
Dino

 ha scritto
Grazie Carlo per la risposta.Se dovessi scegliere la seconda ho solo
un problema.Ma il metodo Line ti permette di personalizzare le
fincature o no?A
dir la verita' ho provato con l'esempio del nostro sito ma mi disegna
il bordo di tutto il report.Se io ad esempio volessi creare una
fincatura solo su due controlli
lo posso fare?Come??
Grazie ancora
Dino
-----------------
Questo spezzone di codice lo puoi mettere in qualsiasi sezione, qui è su 
Print della sezione corpo:
Private Sub Corpo_Print(Cancel As Integer, PrintCount As Integer)
         Me.ScaleMode = 1
         Me.ForeColor = 0
         Me.Line (0 * 1440, 0)-(0 * 1440, 14400)
         Me.Line (1 * 1440, 0)-(1 * 1440, 14400)
         Me.Line (1.9 * 1440, 0)-(1.9 * 1440, 14400)
         Me.Line (5.5 * 1440, 0)-(5.5 * 1440, 14400)
         '14400 è un numero arbitrario per aumentare
         'la lunghezza della linea fino al massimo della sezione
End Sub
Prova a cambiare i valori e così potrai posizionare la linea dove meglio 
credi.
Nell'esempio vi sono quattro linee.
Ciao, Carlo 

 ha scritto

Grazie Carlo per la risposta.Ho notato pero' che variando i valori
riesco a variare solo la posizione orizzontale delle linee.Se volessi
accorciare la linea in verticale come potrei fare.Ho provato ha
variare il num 1440 ma se lo vario da una parte  sola dell'espressione
la linea varia l'inclinazione,se invece lo vario in tutta
l'espressione  mi si sposta a sinistra o a destra.Ad esempio le linee
mi interessano solo nel corpo del report e non in intestazione e pie'
pagina.Attualmente invece ho la linea in tutto il report.Il codice che
mi hai scritto l'ho inserito nell'evento pagina,forse e' lì
l'errore???
Mi sa' pero' che questo e' il metodo piu' lungo.Cosa ne dici???.
Grazie ancora Dino

 - Mostra testo citato -
scusa mi e' venuta un'altra domanda.E' possibile disegnare con il
metodo line anche linee verticali???
Grazie ancora
Dino

 ha scritto
cut
scusa mi e' venuta un'altra domanda.E' possibile disegnare con il
metodo line anche linee verticali???
Grazie ancora
Dino
Certamente. L'esempio postato fa proprio questo.
Questo un secondo esempio su page (disegna su tutto il report):
Private Sub Report_Page()
            Me.ScaleMode = 1
              Me.ForeColor = 0
        'disegna una linea all'estremo sx
        Me.Line (0 * 1440, 0)-(0 * 1440, 14400)
              Me.Line (1 * 1440, 0)-(1 * 1440, 14400)
              Me.Line (1.9 * 1440, 0)-(1.9 * 1440, 14400)
              Me.Line (1.5 * 1440, 0)-(1.5 * 1440, 14400)
End Sub
Lo stesso codice ma su print del corpo (disegna le linee solo sul corpo):
Private Sub Corpo_Print(Cancel As Integer, PrintCount As Integer)
Me.ScaleMode = 1
              Me.ForeColor = 0
              Me.Line (0 * 1440, 0)-(0 * 1440, 14400)
              Me.Line (1 * 1440, 0)-(1 * 1440, 14400)
              Me.Line (1.9 * 1440, 0)-(1.9 * 1440, 14400)
              Me.Line (1.5 * 1440, 0)-(1.5 * 1440, 14400)
End Sub
Altro esempio con spiegazione per disegnare una linea orizzontale:
'Imposto la scala in millimetri
Me.ScaleMode = 6 'millimetri
'disegno una linea che parte da 0 (a sx) e si prolunga per 100 mm a dx
'e la posiziono a 10 millimetri a partire dall'alto sia a sx che a dx.
Me.Line (0, 10)-(100, 10)
Leggiti la guida sul "Metodo Line".
Qui ti riporto uno spezzone:
Il metodo Line consente di disegnare linee e rettangoli per un oggetto 
Report quando si verifica l'evento Stampa.
espressione.Line(flag, x1, y1, x2, y2, colore)
espressione   Obbligatorio. Espressione che restituisce uno degli oggetti 
indicati nell'elenco Si applica a.
flag  Elemento Integer obbligatorio.
x1  Elemento Single obbligatorio. Valore che indica la coordinata del punto 
iniziale della linea o del rettangolo. Le proprietà relative alle 
proporzioni (ScaleMode, ScaleLeft, ScaleTop, ScaleHeight e ScaleWidth) 
dell'oggetto Report specificato nell'argomento oggetto determinano l'unità 
di misura utilizzata. Se si omette tale argomento, la linea inizia dalla 
posizione indicata dalla proprietà CurrentX.
y1  Elemento Single obbligatorio. Valore che indica la coordinata del punto 
iniziale della linea o del rettangolo. Le proprietà relative alle 
proporzioni (ScaleMode, ScaleLeft, ScaleTop, ScaleHeight e ScaleWidth) 
dell'oggetto Report specificato nell'argomento oggetto determinano l'unità 
di misura utilizzata. Se si omette tale argomento, la linea inizia dalla 
posizione indicata dalla proprietà CurrentY.
x2  Elemento Single obbligatorio. Valore che indica la coordinata del punto 
finale per la linea da disegnare. Questo argomento è obbligatorio.
y2  Elemento Single obbligatorio. Valore che indica la coordinata del punto 
finale per la linea da disegnare. Questo argomento è obbligatorio.
colore  Elemento Long obbligatorio. Valore che indica il colore RGB (rosso, 
verde, blu) utilizzato per disegnare la linea. Se si omette questo 
argomento, viene utilizzato il valore della proprietà ForeColor. È inoltre 
possibile utilizzare la funzione RGB o QBColor per specificare il colore.
Ciao, Carlo 

 ha scritto

Grazie Carlo preciso e mirato come il solito.Provo e poi ti faccio
sapere.
Grazie ancora Dino