Newsgroup: it.comp.lang.vo-clipper
Titolo: Anteprima di stampa

In rete si trovano un sacco di esempi di come creare una propria classe
per eseguire le stampe. Mi sono chiesto perchè nessun esempio comprende
anche il codice per avere una sorta di anteprima di stampa.
La motivazione è perchè è difficile da progettare?
Quale potrebbe essere un buon punto di partenza?
1) una datawindow;
2) un controllo RTF in una datawindow;
3) un file esterno in formato RTF;
4) altro.
Qualcuno ha trovato del materiale?
Ciao e buon lavoro
Biagio Notario 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 La motivazione č perchč č difficile da progettare?


4) altro.
Secondo me, l'approccio migliore (ma non credo sia il più semplice)
per scrivere un report editor, è di utilizzare una DataWindow,
posizionandoci dinamicamente i vari controlli FixedText, linee
ecc.ecc. con relativi stili e scritte.
Basta poi richiamare <finestra>:Show() per visualizzare "l'anteprima"
oppure <finestra>:Print() per stamparla.
Il complicato penso sia il calcolo delle dimensioni del foglio e il
posizionamento degli elementi, nonchè i salti pagina.
===============================================
Antonello Negrone - Biella - Italy
anto...@anc-software.it
www.anc-software.it

 
 
Farò delle prove non appena trovo 2 o 3 ore di tempo libero.
Forse posizionare i vari controlli non è difficile. I salti pagina
sicuramente si.


Cosa vi hanno fatto di male i generatori di report?
Io con report pro mi trovo benissimo e non ho il tempo materiale nemmeno per
pensare ad un altro sistema.
Fino a qualche anno fa stampavo da codice creandomi i report ed utilizzavo
dei file di testo per l'anteprima ma ora mi trovo mille volte meglio.
Saluti.
                                            Francesco Leo

 ha scritto nel messaggio
news:V9Fu8.18056$b62.5...@news1.tin.it...


 anche il codice per avere una sorta di anteprima di stampa.
Niente polemica, solo informazione: con le Fivewin basta aggiungere la
clausola PREVIEW per avere l'anteprima di stampa. :-)
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

 wrote in message
news:V9Fu8.18056$b62.5...@news1.tin.it...

Di male niente. ReportPro è sicuramente il prodotto meglio integrato
con VO.
Il problema nasce solo quando non si usano i DBF o non si ha un ODBC
specifico per un determinato database.
Era solo una riflessione.
Saluti a tutti


clausola PREVIEW per avere l'anteprima di stampa. :-)
Le FW hanno un report editor?


Cosa vi hanno fatto di male i generatori di report?
Io uso Report Pro e mi trovo benissimo.
Nel caso, pero', che le stampe siano particolari e, soprattutto, non
pilotate da un DBF (o altro), lo studio di un'alternativa
puo' risultare molto utile.


 Le FW hanno un report editor?
Se intendi di tipo visuale, no, solo come prodotti di terze parti. Però
c'è una classe TReport che è veramente potente e il suo avanzato
automatismo non fa affatto rimpiangere i report editor visuali. Io
conosco solo quelli del Visual Basic (Crystal Report e Data Report) e
non li trovo affatto comodi.


 ha scritto nel messaggio
news:cb55f3d2d26752387c2...@mygate.mailgate.org...


contabilità.
Per Excel (e Word) ci sono anche dei visualizzatori M$ gratuiti.


 
Si potrebbe creare anche un file RTF che forse è più generico e quindi
meno vincolante per la scelta del visualizzatore.


 ha scritto nel messaggio
news:5cf4bd03101c7f60f1e...@mygate.mailgate.org...


formattate.
Avevo provato anch'io l'esportazione in formato RTF da ReportPro.
Ho lasciato perdere perchè i files erano enormi, e il visualizzatore
di Word ci metteva un'eternità a visualizzarli.
Utilizzando Crystal Report (versione in bundle con VB5, che fa'
abbastanza schifo) invece si ottengono dei files veramente notevoli,
piccoli e fedeli alla stampa originaria.
Per risolvere il "problema" bisognerebbe avere il codice sorgente del
modulo di esportazione di RP. Non ho mai guardato se c'è. C'è?


 ===============================================
Se parliamo di alternativa dovremmo a questo punto abbandonare 
il ReportPro o qualsiasi strumento visuale.
1) La stampa viene generata su file RTF (da qualche parte avevo anche
trovato delle classi)
2) Lancio da VO un qualsiasi visualizzatore di RTF e se voglio a questo
punto mando il tutto alla stampante.
La mia domanda iniziale è quindi molto pertinente. 
Perchè in realtà una buona Classe dovrebbe essere divisa in due
sezioni:
1) Un motore di stampa che può leggere da qualsiasi database (che 
manda le informazioni al punto 2)
2) Un generatore di documento (txt, doc, rtf, pdf, htlm, ecc.) che
lancia anche il visualizzatore per avere l'anteprima
Che casino


 Che casino
Si. Mi sono rotto la testa ma ne é valsa la pena. A produrre il file, anche
di vari MB, è un attimo. A visualizzare il file è abbastanza veloce ( quasi
come con il CLIPPER). A stampare dovrebbe essere paragonabile ad altri
sistemi.
In più con il file in formato ASCII è poi possibile trasformarlo in PDF in
DOC (word) ecc, facilmente.
Ciao,
    Fabrizio Malaguti


DOC (word) ecc, facilmente.
Interessante il tuo approccio. Pero' non ho capito cosa ottieni in
fase di stampa.
Ottieni una stampa tipo DOS?


 Ottieni una stampa tipo DOS?
Si il file prodotto è di tipo DOS. La stampa vera e propria é di tipo Window
Ciao,
    Fabrizio Malaguti



Ma questo non ti consente di avere un report graficamente complesso, o no?
Tipo riquadri, caratteri differenti come font ed attributi, etc....

Si il file prodotto è di tipo DOS. La stampa vera e propria é di tipo Window
Cioè generi un file ASCII che inviato alla stampante produce un output
grafico?
Ma il file grafico allora deve contenere istruzioni che pilotano il
driver di stampa selezionato. Giusto?


Quello che faccio io da tempo è questo:
1) dovevo stampare dei registri fiscali su modulo continuo usando
una stampante ad aghi
2) mi sono costruito una classe che gestisce i codici di escape, 
stampavo tutto su file di testo e poi indirizzavo il file di testo
alla stampante (vecchia tecnica clipper)
3) per ottenete una specie di anteprima uso wordpad e 
visualizzo il file che chiaramente è sporco (caratteri esc),
funziona bene perchè mi serve solo per essere sicuro di quello 
che stampo
Run("WRITE "+WorkDir()+"dati\"+"Anteprima.doc")
4) Chiaramente se stampo direttamente da wordpad ottengo una stampa
windows, ma a me interessa una stampa dos (per la velocità)
Mi sembra di capire che tu fai lo stesso, ma avere una vera "anteprima"
con i caratteri grafici è un'altra cosa o sbaglio?
Questo argomento mi appassiona :-)


> Run("WRITE "+WorkDir()+"dati\"+"Anteprima.doc")
 Se l'utente non ha installato il write come fai cosě??
Perchč non usi meglio il WinExec?


Write č disponibile su tutte le versioni di Windows in quanto viene
reindirizzato su WordPad.


 
Esatto. Con "write" si ottiene wordpad che per essere gratuito non č
male.
Volendo, potrei togliere i caratteri di escape e quindi la stampa 
risulterebbe accettabile (se si stampa su laser o getto d'inchiostro). 
Tecnica sconsigliata in caso di report su stampanti ad aghi (tempi 
troppo lunghi).
Inoltre non č bello che l'utente possa modificare il report, in questo
caso forse č piů indovinato il visualizzatore di word (mai provato).


 driver di stampa selezionato. Giusto?
Si.
Ciao,
    Fabrizio Malaguti



vero. Quando stampo rileggo il file e uso la classe Printer di VO dove
intercetto eventuali codici ASCII particolari e li tramuto in sintassi VO.
Ciao,
    Fabrizio Malaguti
P.S.
le mie stampe sono molto semplici se però devo fare qualcosa di complicato
passo a Report Pro o PDF.



Per cose semplici io ho sviluppato un sistema di visualizzazione e stampa molto
efficiente che utilizza la classe RichEdit di VO. In pratica si crea una stampa
utilizzando la sintassi RTF per i grassetti, il cambio del font, le linee etc. e
si memorizza in una variabile di tipo carattere. Per visualizzare la stampa, è
sufficiente inviare la variabile con il testo RTF alla classe RichEdit
appositamante predisposta in una maschera per l'anteprima. La stessa classe
RichEdit fornisce il metodo Print() per la stampa vera e propria.
I difetti di questo metodo risiedono nei limiti dimensionali della variabile
carattere (128 Kbyte), comunque sufficienti in molti casi (per inciso, io
l'adopero per la visualizzazione in un programma di cartografia numerica, delle
informazioni memorizzate in archivi collegati, gestiti con VO)
Altro punto debole risiede nella conoscenza della sintassi RTF, le mie esigenze
sono state abbastanza limitate (grassetti, font, linee, colori e poco altro) e
per quelle ho sviluppato un set di comandi ma la documentazione completa del
formato RTF si può trovare in giro per la rete.
Ciao, Marino