Newsgroup: it.comp.lang.vo-clipper
Titolo: Ole di Word

Da VO puoi pilotare Word attraverso le Ole.
Nessuno sa come fare il contrario?
Ovvero la mia applicazione, tramite Ole, avvia Word, scrivo la mia lettera, 
come posso intercettare la pressione dell'item di menů Salva o Salva con 
nome per mettere il doc in un campo Blob?
Grazie a tutti
Danilo Giuliani 

nome per mettere il doc in un campo Blob?
io faccio in questo modo:
- Dal programma creo un file .doc vuoto che faccio aprire da Word.
- Il programma resta in attesa sul file tendando di aprirlo in
esclusiva.
- Quando l'utente chiude il file Word, il programma legge l'ora del
file. Se č cambiata rispetto all'apertura lo salva, altrimenti lo
scarta.
Ciao
Antonello
___________________________________
Antonello Negrone
Biella - Italy
http://www.anc-software.it
S.P.E. client/server engine for Visual Objects,
it runs remote-objects on any TCP/IP connection.


si, anch'io faccio una cosa simile, ma mi sono incasinato (o forse č Word
che č un casino...)
una cosa che avevo lasciato in sospeso: il .doc che creo si chiama sempre
Documento1.doc
come faccio a dargli il nome che voglio io?
č possibile che ad oggi non si possa gestire un documento "semplice" in RTF
piů o meno standard?
con "semplice" intendo che contenga testo, BMP, tabelle e nullaltro.
si, lo so, il BMP nel RTF non č proprio standard... ma vorrei proprio fare a
meno di Word per documenti semplici.
ciao
MB


Non credo sia possibile (o meglio praticabile...).
Quando premi il tasto salva il documento viene salvato ma non
devinitivamente chiuso (nessuno ti impedisce di apportare altre modifiche e
salvare nuovamente).
Io faccio in un modo leggermente differente :
1) Eseguo un ChkSum del file originale.
2) Avvio word attraverso la shellexecute come di solito.
3) Avvio un thread che controlla che il file sia in stato Locked (NOT SHARED
perchč in uso da Word).
4) Appena lo stato diviene Unlocked vuol dire che word ha finito di lavorare
sul file.
5) eseguo un chksum sul file e lo confronto con il chksum precedente, se
variato lo registro nel blob.
Questa procedura č pratica perchč si puo applicare a tutti i tipi di files e
non solo a word....
Ciao !

 wrote in message 
news:fuid7216prasuk595...@4ax.com...


 MB
perchè non ti studi meglio il formato Rtf e vedrai quante tipi di stampe
potrai fare.
Io l'ho fatto e mi sono creato una libreria che mi permette di fare le
stampe dei report con tanto di tabelle, bitmap e codici a barre.
Questo sia con VO che con clipper. 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Questo sia con VO che con clipper.
si, ma sono troppo vechio per mettermi a studiare nel dettaglio le varie
versioni RTF, non nel senso che il cervello sta ormai perdendo colpi (anche
se mia figlia dice di si) ma nel senso che ormai mi occupo più di
organizzazione aziendale (e ben venga) che di programmazione di base.
ciò non toglie che la maggior parte del software che scrivono i miei
collaboratori debba poi essere "ripassata" dal sottoscrito pignolo e teorico
rompi palle.
resta comunque immutato il piacere della creatività, quando si scrive una
nuova funzione / metodo di libreria.
Certo, se mi trovassi i sorgenti in VO di una libreria come quella a cui
accenni tu, mi verrebbe la voglia di spenderci del tempo e di affrancarmi
(per un buon 80 per cento) dai fastidiosi report editor scritti da altri...
ciao
MB

 MB
Guarda che per realizzare un semplice report in formato RTF non serve
saperne
poi tanto. In effetti se utilizziamo la tecnica del carattere a spaziatura
fissa possiamo considerarlo come un file in formato testo di clipper.
Dobbiamo solo aggiungere l'header e poi chiuderlo.
Questo che segue ne è un esempio. Apri un file con estensione .Rtf ed 
all'interno copia quanto segue:
{\rtf1\ansi{\fonttbl
{\f0\fswiss Arial;}
{\f1\fswiss Helv;}
{\f2\froman Times New Roman;}
{\f3\froman Tms Rmn;}
{\f4\froman Roman;}
{\f5\fmodern Modern;}
{\f6\froman MS LineDraw;}
{\f7\froman AdvOCR-B;}
{\f8\froman Lucida Console;}
{\f9\froman Courier New;}}
\paperw11339 \paperh16441 \margl567 \margr284 \margt567 \margb567
\f9\fs22
TABELLE MILLESIMALI CONDOMINIO XY     \par
------------------------------------  \par
Tabella : 1 Spese Generali            \par
Tabella : 2 Consumi Energia Elettrica \par
Tabella : 3 Consumi Acqua             \par
Tabella : 0 Spese Individuali         \par
  \par
  \par
SCALA A \par
-------------------------|---------|---------|---------| \par
  Nome   Condomino       |  Tab 1  |  Tab 2  |  Tab 3  | \par
-------------------------|---------|---------|---------| \par
XXXXXX   ..........      | 250.000 | 166.670 | 250.000 | \par
BBBBBB   ..........      | 250.000 | 283.330 | 250.000 | \par
CCCCCC   ..........      | 250.000 | 266.670 | 250.000 | \par
DDDDDD   ..........      | 250.000 | 283.330 | 250.000 | \par
-------------------------|---------|---------|---------| \par
 }
poi lancialo e ne vedrai il risultato.
Chiarisco che nel formato RTF teoricamente non ha alun effetto il
CRLF che invece per andare a capo utilizza il tag \par. In effetti
si potrebbe scrivere tutto il file su un'unica riga. Io abitualmente
li spezzo per poterli meglio leggere.
Nella stampa i tag  \f9\fs22 indica che il font utilizzato è il
9 (Courier New) e la dimensione del carattere è 11 (fs22).
Se poi devi fare il salto pagina devi inserire il tag \page\par.
Altri esempi:
\b grassetto \b0
\ul sottolineato \ulnone
\i italico \i0
Per la stampa orizzontale modifica la riga:
\paperw11339 \paperh16441 \margl567 \margr284 \margt567 \margb567\landscape
ciao.


 ha scritto nel messaggio
news:e56srn$biv$1...@balena.cs.interbusiness.it...


 ha scritto nel messaggio
news:e5bicc$g5$1...@news.newsland.it...


 >
Cerca di procedere per gradi se no tutto diventa più complicato.
Esempio la dimensione dei font sono indicati per altezza. 
f22 == 11
f20 == 10
f18 == 9
f16 == 8
etc.etc.
Ora non ricordo esattamente l'unità di misura ma comunque è utilizzato
così.
La Tabella font viene creata in automatico dal programma che crea
il documento. Nel caso in questione sono stati inseriti da me in
quanto ho ritenuto quelli più confacenti al mio caso.
Per la verità io uso abitualmente l'Arial per le tabelle e il
Courier New per quelli a spaziatura fissa. Gli altri sono solo 
di contorno e potrebbero essere eliminati.
Il formato pagina è dato dalle misure in twips
\paperw11339 \paperh16441\ margl567 \margr284 \margt567
paperw == paper Width  twips 11339
paperh == paper height twips 16441
margl  == margine left   - 567 twips
margr  == margine right  - 284 twips
margl  == margine top    - 567 twips
margb  == margine bottom - 567 twips
ovviamente quando andrai in stampa varranno anche le
impostazioni della stampante. 
La stampa del bmp viene trattata con la codifica in esadecimale e
quindi il discorso si complica. Però ho aggirato il problema
in questo modo:
una volta che hai creato il documento  aprilo con word
posizionati nel punto in qui vuoi inserire l'immagine
ed tramite i comandi di word inserisci l'immagine. A questo
punto word salverà il documento codificando l'immagine in esadecimale.
Con l'editor apri il file che troverai certamente molto cambiato
rispetto a quello da te creato, cerca il tag che contiene il nome 
dell'immagine inserita e poi risali fino al tag
\pard\plain
che troverai. Copia in un file separato i caratteri da quì fino a che
troverai il tag \par }
quando creerai il documento RTF basterà inserire la sequenza nel punto che
vorrai.
Attenzione però perchè l'inserimento dovrà essere il più possibile simile
al test
effettuato altrimento potresti avere errori in fase di apertura. 
Io non ho mai inserito linee o cerchi ma presumo che si possa utilizzare la
tecnica appena descritta.
Se invece di riferisci ai bordi delle tabelle allora il discorso è
un'altro.
Su questo però la cosa è un'attimino più complessa e necessita di molto più
tempo per spiegarla. Ad ogni buon conto se consulti il file di help fornito
con VO nella cartella MakeHelp troverai molti esempi.
Per aggiungere l'header ed il footer ci sono due tag da inserire
all'interno
del documento ma secondo me risulta più semplice aggiungerli nella fase di
creazione. 
Per quanto riguarda i colori vale lo stesso discorso dei font bisogna
aggiungere una tabella colori e poi a seconda delle esigenze si inserisce
nel documento.
Ma questo è ovviamente un'altro discorso. Hai fatto troppe domande e tutte
in fretta. Prova prima e poi domanda. 
Ciao. 


 ha scritto nel
messaggio news:447954a4$0$981$5fc...@news.tiscali.it...


>> Questa procedura è pratica perchè si puo applicare a tutti i tipi di


 ha scritto nel messaggio 
news:e5e875$9h3$1...@balena.cs.interbusiness.it...


Grazie Antonello, ma se il tuo utente lo salva con altro nome?
Nel mio caso l'utente sa' che NON DEVE fare "salva con nome" da Word.
Se vuole farsene una copia, c'è l'apposito "Salva con nome" nel mio
programma.


come faccio a dargli il nome che voglio io?
nel caso del mio programma il documento si chiama sempre con un nome
diverso. L'utente ignora il nome del file, perchè tutto deve passare
dai comandi del programma.


 Roberto
L'algoritmo non è scritto in VO ma in C.
Nelle mie applicazioni è sempre collegata una DLL scritta in C con molte
funzioni in cui la velocità diventa critica.
Se mi passi il tuo indirizzo email posso inviarti il sogente in C ( comunque
reperibile anche sulla rete ).
Ciao

 ha scritto nel messaggio
news:e5e875$9h3$1...@balena.cs.interbusiness.it...
