Newsgroup: it.comp.lang.vo-clipper
Titolo: Stampare con VO 2.5


se ho capito bene, si tratterebbe di imporre una specie di "marchio
elettronico" indelebile alle stampe, immodificabile anche avendo
installato l'editor del report...
Per quanto ne so io non mi sembra una cosa possibile.
Io però non ho mai previsto, per il momento, di rendere modificabili
da parte dei miei clienti i report che distribuisco. 
Pertanto li proteggo con la password installabile dal Report Pro e li
rendo quindi complessivamente immodificabili.
Saluti

rendo quindi complessivamente immodificabili.
E' possibile mettere la password???
Non lo sapevo!
Ignazio GSS©
More than 90 HiRes images in my home page  
http://www.geocities.com/~puddu/
Oltre 200 Immagini di endoscopia digestiva
http://www.areamedica.com

rendo quindi complessivamente immodificabili.
Perfetto! Ho provato e funziona benissimo.


 Roberto Cordini
Io uso ReportPro senza mai aver visto come funziona Ca Ret quindi non posso fare
confronti. Ti posso solamente dire che ReportPro è uno di quei prodotto dalle
illimitate sfaccettature (come Excel per esempio) che sicuramente nessuno di noi
riuscirà mai ad utilizzare in toto. Con Report Pro puoi fare tutto quello che
vuoi, e bene.
Io ho preso una decisione: buttare via le stampanti ad aghi per Fatture, DDT,
Fatture ricevute fiscali etc. e sostituire con stampanti Laser. Ho preparato con
Repor Pro dei moduli da stampare su fogli A4 bianchi con prefincature annesse.
Risparmi di tipografia, non hai rumore, è più veloce. Per gestire le Fatture
Ricevute Fiscali. Si può far preparare dal tipografo
fogli bianchi prestampati con impresso il progressivo XAB.... ti prepara una
risma con fogli alternati bianchi/giallini e ti costano molto meno dei moduli
continui di carta chimica.
Ci sono stampanti laser che hanno più cassetti, in uno metti la risma con i
fogli alternati per le stampe "Fiscali", nell'altro fogli perfettamente bianchi
per i DDT e altre stampe.
Noi ci troviamo molto bene così





Io ho cominciato con CA RET e mi sembrava un programma potente e ben
fatto, ma non integrato con la sintassi di VO/Clipper. Mi sembra di
ricordare che utilizzasse funzioni e macrocomandi diversi da quelli di
CAVO (diversi per fare le setsse cose...). Sono però passato in
maniera definitiva a Report Pro solo quando ho a lungo tentato
inutilmente di installare, su una stazione di prova,i driver ODBC
necessari a CA RET per gestire anche i files DBF (per qusti ultimi
Report Pro non ha bisogno di niente in quanto sfrutta gli RDD di CA
VO).
Attualmente faccio un pesante uso di Report Pro ed uno degli aspetti
che apprezzo di più in questo programma, è la possibilità di definire
(tramite dll scritte con CAVO) nuove funzionalità, con le quali
risolvo molto bene alcuni miei problemi (faccio report nei quali mi
occorre aprire e chiudere anche 30-40 files diversi 3-4 volte ciascuno
nella medesima stampa).
Spero di esserti stato utile
Ciao, Marino
I

nella medesima stampa).
Visto che sei un esperto di Report Pro, sai se e' possibile aggiungere
delle scritte in un report senza che ci sia la variabile nel report
stesso? Mi spiego. Voglio che appaia una scritta in una stampa fatta
col report ma voglio che l'utente non la possa togliere neppure se
possiede l'editor del report. Mi sono spiegato? :-)


 con un altro software di report?
Credo di essere uno degli ultimi dinosauri che ancora usano CARet, e sono
vicino al capolinea.
Fino ad ora sono riuscito a fare tutto, in SQL anziché in "procedurale
clipper", nella query di CARet, ed avendo per lo più grosse procedure tutte
in rete, alcune volte mi sono "appoggiato" ad uno o più file temporanei
creati in locale (per raccogliere i risultati di elaborazioni complesse) e
su questi file agiva poi CARet.
I risultati ci sono, ma non sono contento.
Come mille altri di diranno, ReportPro è IL report editor di VO. Ci sto
arrivando anch'io, anche se da sempre sono per ridurre al minimo i prodotti
di terze parti. L'alternativa e scriversi le classi ed i metodi di stampa,
magari partendo da qualcosa di già esistente.
Comunque un investimento.
Ciao
Massimo

 con un altro software di report?
Ho lavorato con CA-RET versione 1.0 e mi sono trovato molto bene. Il CA-RET 
fornito con VO purtroppo accede ai DBF via ODBC, perciò in maniera differente 
dal Tuo applicativo - e bisogna installare ODBC su ogni macchina che vuole 
usare CA-RET.
Personalmente ho usato ReportPro, e non mi sono trovato bene. Ho lavorato 
parecchio con le classi di VO (printer) e recentemente ho acquistato una 
piccola DLL (250k) che gestisce l´output su stampante e anteprima. Attorno a 
questa DLL mi sono scritto delle classi che mi permettono un posizionamento al 
1/10 mm. Probabilmente in una delle prossime edizioni di SDT presenterò 
qualcosa su questo.
Saluti
Wolfgang
Merano

 ha scritto nel messaggio
news:3ab244ff...@news.iunet.it...

Hai già affrontato la possibilità di effettuare stampe che "Liberino" il
programma che le lancia in modo da permettere all'operatore di "Prepararne"
altre...????
Es. tabulato da 200 pagine che attualmente impegna molto il PC che la lancia
(Elaborazione e stampa) sarebbe molto gradita la possibilità di svincolare
il programma dal dover sovrintendere anche alla stampa, permettendo così
altre operazioni che attualmente sono fatte "Dopo" la stampata....
accetto suggerimenti e consigli....
Ciao, Mario Donato Summa

"Mario D. Summa" wrote:

Io ho fatto un motore di stampa che gira non necessariamente sul PC da cui
proviene la richiesta di stampa.
Tale motore permette di stampare sfruttando ReportPro anche da stazioni con
486+Clipper5.2.
Tale motore di stampa se fatto girare su altro PC permette all'utente di
richiedere una stampa che viene elaborata
da un'altra stazione. In questo modo l'utente che manda in stampa una una
fattura da 40 pagine può fare altre
cose mentre l'elaborazione reale viene effettuata da un'altro PC in rete.
Per approfondimenti....


Non mi sono mai posto questo problema, l'esigenza effettivamente si
presenta spesso. L'idea del server di stampa sviluppata da Marco
Boschi  mi sembra ottima e sarei curioso di conoscerne i dettagli :-).
Ciao!

 Per approfondimenti....
Sentiamo un po' ?  Dacci ulteriori notizie.

Vignoli Marino wrote:

Formato di stampa
viene creato con report pro il quale produce un file (es: FA.RPT)
Applicazione Clipper:
1) creazione documento
2) con un tasto funzionale si attiva la procedura di stampa
3) tale procedura scrive in una tabella (MANRP.DBF) un record in cui ci sono
scritte le seguenti informazioni
utente = "001"
report="FA"                                      // il formato in questione
"Fattura"
seek_exp="FT.0001.01"                   // l'espressione Seek
while_exp="fa->docum"                    // l'espressione whiòe
print_id="LaserFatture"                     // dova deve essere stampato?
copies=2                                           // quante copie vuoi?
Applicazione VO (motore di stampa)
sfruttando il timer di windows ogni secondo (variabile) vado a vedere sulla
tabella MANRP.DBF se ci sono nuovi record
se ci sono:
1) leggo tutti i valori dei campi
2) predispongo il tutto affinchè possa essere effettuata una stampa di un formati
di report pro con istruzioni del tipo
oReport := RpReport{SELF, sReport}
oReport:PrinterDevice:SetprinterByName(sPrintId)
oReport:PrinterDevice:Copies(sCopie)
oReport:SeekExpression := mSeekExp
oReport:SeekExpression := mWhileExp
oReport:Print(sReport)
Si possono attivare uno o più motori che leggono da uno o più log files MANRP0,
MANRP1.
Il motore di stampa lo si tiene in background in una stazione poco strategica
(poco usata) o in una macchia dedicata.
Non mangia CPU quando non fa niente, è ovvio che quando stampa deve utilizzarne.
Funziona benissimo in quanto semplice.
Alla fine della stampa ti arriva la notifica (Novell p Microsoft) che la stampa è
arrivata.
FINE


Idea semplice e geniale! Complimenti. Alla prima occasione (un po' di
tempo a disposizione), provo a copiarti.... :-)
Saluti

 FINE
Ecco una parte in cui sono del tutto a digiuno..... Come si fa a creare un
programma che opera in background??
Il resto sarebbe anche abbastanza digeribile.... da comporre....
Mi puoi illuminare al riguardo ????
Ciao,
Mario Summa

Sfrutto la funzione SetTimer
Nel metodo Postinit di una Dialog Window metto la seguente riga di codice
SetTimer(SELF:handle(),1,1000,NULL)  // Premi Shift F1 sopra il comando
SetTimer e ti appare il Win32 SDK Reference
// 1000 sono millisecondi cioè 1 secondo.
In questo modo attivo il timer.
Poi creo il metodo Dispatch sempre per la stessa Dialog Window
e metto il comando
IF oEvent:Message == WM_TIMER .AND. oEvent:wparam ==1
     // sospendo momentaneamente il timer
     KillTImer(self:handle(),1)
       // scrivo qui tutte le mie belle istruzioni
       // ci sono nuovi records da elaborare?
       // riattivo il timer
      SetTimer(SELF:handle(),1,milli,NULL)
ENDIF
In questo modo quando il programma è in esecuzione utilizza pochissima CPU. Lo
puoi tenere iconizzato.
Utilizzerà le risorse della macchina ovviamente a fronte di richieste.