Conoscete un modo fare anteprime di stampa e stampare dati con vb6 senza utilizzare crystal report e datareport?
ciao
Conoscete un modo fare anteprime di stampa e stampare dati con vb6 senza utilizzare crystal report e datareport?
ciao
bhe spero di poterti aiutare...ma mi devi dire se devi visualizzare dati (come testo o altro) oppure immaggini (tif, jpg,gif, bmp o altro)
Cmq...se sono immagini basta che le ridimensioni a dimensione dello schermo x fare l'anteprima.
Poi per le modalità di stampa è altrettanto semplice:
1) Stampa normale...fai direttamente un printer.paintpicture
2) Stampa a Dimensioni della pagina:
-Prendi il lato + lungo del documento e lo imposti con l'altezza o la lunghezza del foglio (prendi queste infos sempre dall'oggetto printer), naturalmente altezza o larghezza in base all'orientamento del documento! Fatto questo ti fai una piccola proporzione -> NewWidth=int((OldWidth*NewHeigth)/OldHeigth) <- Se devi fare x l'altezza scambia i fattori :P
Fatto questo calcolo centra l'immagine:
X=int((Printer.ScaleWidth/2)-(DocWidth/2)) e lo stesso x la Y...dopo di che passa tutto a Printer.PaintPicture...cosi:
Printer.PaintPicture Immagine,X,Y,NewWidth,NewHeigth...e ta daaaa il gioco e fatto! Tieni conto che nell'oggetto printer non devi usare .Width ma .ScaleWidth e bada al fatto che tutti e due (immagine e printer) devono usare lo stesso tipo di misurazione...ovvero Pixel, Twips, Points e cosi via
Gli altri metodi di stampa...bho nn soCmq questi sono quelli principali...
Spero di essere stato d'aiuto!
VM su SSD da 5$! https://www.digitalocean.com/?refcode=f6925c7f0ddb
Ma, se devo stampare dei dati di un recordset?
ti spiego meglio io devo stampare un prospetto fattura, quindi è composto da una intestazione, da una fine pagina e soprattutto da un corpo (dettaglio) pagina che contiene un serie di dati del recordset, possono variare da 1 a 20-30 righe di record.
ciao
Vi ricordo che ora esiste un forum dedicato interamente a Visual Basic
http://forum.html.it/forum/forumdisp...?s=&forumid=56
![]()
bhe...mmm
il discorso e sempre lo stesso...devi trattare i dati come immagine...se non vuoi una struttura particolare puoi scrivere con una api il testo direttamente sull'HDC dell'oggetto (HDC deriva dall'HWND e l'HWND possiamo dire che è il numero della Finestra. L'HDC serve ad identificare un contesto grafico dove si puo disegnare)
Tu hai l'hwnd dell'oggetto...recuperi l'HDC con una chiamata api e dopo di che la tratti come immagine copy in una picture
o ancora meglio al printer.paintpicture passi direttamente l'hdc...ma ricordati del discorso delle dimensioni del foglio ;D cmq con un po di prove ci riusciraiDD
Public Declare Function GetWindowDC Lib "user32" Alias "GetWindowDC" (ByVal hwnd As Long) As Long
eccola qua...ti restituisce l'hdc passandogli l'hwnd che prendi dall'oggetto
VM su SSD da 5$! https://www.digitalocean.com/?refcode=f6925c7f0ddb
Giusto!!!Orig. inviato da sebamix
Vi ricordo che ora esiste un forum dedicato interamente a Visual Basic
sposto la discussione nel nuovo forum![]()
...Terrible warlords, good warlords, and an english song