Vai al contenuto

Wordmdl

Il documento contiene: * Configurazioni lato gestionale * Configurazioni lato macro xml2doc * Funzionamento di base * Formattazione Celle delle tabelle * Inclusione di Immagini * Inclusione di File * Inclusione di Simboli * Casi Particolari

Wordmdl - Configurazione

Parametri di Configurazione su wordmdl Lato Gestionale.

Gruppo Parametro Valori Descrizione
ARC-OTT PATH-APRI-FILE path (formato client) Percorso in cui verrà copiato il modello da generare, i file xml di dati e la macro di generazione
STAMPE PERIFERICA-STAMPA-FILE codice periferica tra i parametri in input di WORDMDL c'è il codice di periferica per il quale generare, se questa è una periferica di tipo "MAIL"; in tal caso devo simulare l'invio su questa periferica configurata per avere il file di stampa che permetta la trasformazione del documento in TIF/PDF
STAMPE PATH-STAMPA-FILE path (formato client) serve in due casi:
a) Se e' stato richiesta la stampa sulla periferica configurata per l'esportazione, prima di eseguirla cancello il file di output che mi aspetto, se esso esiste
b) se e' stato richiesto l'invio via MAIL trasformo il file generato in allegato e lancio il programma di invio posta
WORDMDL BACKGROUND-DEFAULT S/N Attiva o disattiva la modalità operativa di Word: in background (minimizzato) o non in background: su Word 2007/2010 è stato evidenziato che la generazione in barckground di documenti consecutivi creava problemi, quindi è consigliato usatre la modalità NON non in background
WORDMDL modo-creazione-pdf W/S Modalità di generazione del PDF per gli allegati EMAIL:
S=via Sview: word crea un file di stampa.pcl tramite la stampa verso una opportuna periferica che genera il file e poi viene lanciato Sview per la conversione
W=Word, fa tutto Word, modalità disponibilie solo per versioni uguali o superiori a Word2010 Questa modalità è comunicata a Word sul file di informazioni (xml2doc_info.txt) semplicemente indicando nel parametro "saveAs=" un file ".pdf"
WORDMDL debug S/N Attiva o no la creazione del logo di debug sulla macro scrivendo la riga debug= sul file di informazioni

Parametri di Configurazione su wordmdl Lato Macro XML2DOC.doc sono i valori possibli passati nel file xml2doc_info.txt.

Parametro Valore Default Descrizione Esempio
riga 1 fullpath (formato client)[;n] parametro obbligatorio
path in cui trovo i file .xml di dati
poi se è presente un “;” (opzionale) seguito da numeri interi viene indicato il numero di documenti, generati dal modello, che saranno stampati
c:\ecoge\tmp\test\origine_0001.xml;0001
riga 2 fullpath (formato client) parametro obbligatorio
path in cui trovo il documento "origine.doc" in cui generare
c:\ecoge\tmp\test\origine.doc
bkground= "N"/"S" "N"
PrintTo= Nome stampante presente sul sistema operativo client ""
exit= "S"/"N" "N" Indica se uscire o no da Word al termine dell'elaborazione
saveAs= Path (formato client) file su cui salvare il documento prodotto da Word, se il file ha estensione .PDF e la versione di Word è compatibile allora viene prodotto un pdf
copie= "numero" "1" numero di copie in formato stringa: "1", "2",...ecc. copie="009”
eliminaVuote= "S"/"N" "N" Elimino le righe vuote/pagine vuote a fine documento? [Usato per stampe FATA]
cartellaImmagini= path cartella (formato client) path di avvio del documento di macro E' il percorso della cartella dove vengono cercate le immagini da inserire nel documento indicate sul file di dati tramite i tag:
nel testo:
<IMAGE:fullpath_nomefile.ext>
in tabella:
"@image@=shortname_imagefile"
cartellaEFile= path cartella (formato client) path di avvio del documento di macro E' il percorso della cartella dove vengono cercati i file da inserire nel documento indicati sul file di dati tramite i tag:
nel testo:
a. <EMBEDDEDFILE:fullpath_nomefile.ext>
b. <EMBEDDEDASICON:fullpath_nomefile.ext>
in tabella:
a. "@embeddedfile@=shortname_file"
b. "@embeddedasicon@=shortname_file"
debug= "S"/"N" "N" modalità debug?
Se vale "S"nella cartella di elaborazione della macro viene creato un file di log avente nome:
ggmmaaaa_hhmmss_xml2doc_log.txt
dove ggmmaaaa\=data di sistema
dove hhmss\=ora di sistema

Esempio 1 c:\ecoge\tmp\origine0001.xml;3 c:\ecoge\tmp\origine.doc saveAs="c:\ecoge\tmp-test\adasdasd.doc" PrintTo="Kyocera FS-2000D KX" exit="S” copie="009” bkground=”S” eliminaVuote=”S” Nella prima riga (obbligatoria) si indica il file xml contenente i dati se è presente un “;” (opzionale) seguito da numeri interi viene indicato il numero di documenti, generati dal modello, che saranno stampati. La seconda riga (obbligatoria) indica il modello di word in formato .doc. La terza, la quarta, la quinta e la sesta riga riga possono contenere opzionalmente e senza ordine particolare i seguenti parametri: saveAs = “eventuale percorso dove salvare il file doc” PrintTo = “nome della stampante su cui indirizzare l’output” exit = “S” o “N” uscita e chiusura dell’applicazione Word dopo l’esecuzione della macro copie = “002” numero di copie (in questo caso due) bkground=”S “ (se non è presente si presume che l’applicazione sia visibile) eliminaVuote=”S “ (per togliere eventuali righe vuote nelle tabelle e pagine vuote alla fine del documento [per stampe FATA]) Esempio 2 c:\ecoge\tmp\origine0001.xml c:\ecoge\tmp\origine.doc In questo caso verrà elaborato un documento senza generare la stampa.

Manuale originale (in via di sistemazione)

Manuale originale (in via di sistemazione)

Documento per specifiche su “xmltodoc.doc”. Informazioni Generali Esportazione dal gestionale di dati destinati ad alimentare documenti di word (n.d.r. nel presente manuale verranno definiti modelli ma da un punto di vista formale sono a tutti gli effetti documenti .doc o .docx di word NON modelli .dot o .dotx) opportunamente trattati. Funzionamento di base Il flusso di processo è il seguente: * un programma gestionale prepara i dati da mandare alla produzione del documento * esempi standard: cogv92m, cogo25m; * esempio con file di dati multipli: cogz82m che a sua volta chiama cogzs9 * chiama wordmdl con operazione APRI-XML e passandogli i parametri:

Parametro Descrizione Esempio
wordmdl-ope APRI-XML
wordmdl-modello fullpath cartella modelli o fullpath file modello move ext-mod-dir to wordmdl-modello
wordmdl-modello-loc location del -modello passato C=client,S=Server(default=S) move "S" to wordmdl-modello-loc
wordmdl-info fullpath (formato server) del nome file di informazioni. Il file di informazioni in molti programmi in questa fase non è nominato come .xml di solito ma come .txt, si occuperà poi wordmdl di cambiare l'estensione come .xml ed aggiungere il numero di occurrence al nome. move w-nome-xmldoc to wordmdl-info
wordmdl-file-occ n° di occurence del file di informazioni (nel caso siano più di uno) move w-dc-file-occ to wordmdl-file-occ
wordmdl-attendi-esito richiede che wordmdl attenda l'esito della creazione del file di info move "S" to wordmdl-attendi-esito
    • chiama ripetutamente wordmdl.cob con operazione AGGIUNGI-XML per fargli creare il/i file di dati (es. origine_nnnn.xml) passandogli i tag ed i dati da inserire nel tag
Parametro Descrizione Esempio
wordmdl-ope AGGIUNGI-XML
wordmdl-tag nome del tag da valorizzare move "TOT-IVATO" to wordmdl-tag
wordmdl-tag-idx Indice del tag (attualmente non usato) move 0 to wordmdl-tag-idx
wordmdl-dato Valore dell'informazione da aggiungere al tag move u10-edit to wordmdl-dato
wordmdl-fl-tag Modalita' di gestione del tag:
" "= Default: il tag viene aperto e chiuso con la info all'interno
"A"= Eseguo solo l'apertura del tag
"D"= Accodo un pezzo di informazione alla info:
da usare se si sta scrivendo una riga di tabella, e si
vuole comporre la info direttamente con WORDMDL
In tal caso si dovra' richiamare "n" volte
AGGIUNGI-XML, cambiando opportunamente
FL-TAG in questo modo:
"A": Apro il tag e inizializzo la info
"D": Tante volte quante sono le colonne
"I": Chiudo la info con e scrivo la info
"C": Chiudo il tag
"I"= Scrivo solo la info
"C"= Eseguo solo la chiusura del tag
move " " to wordmdl-fl-tag

esempi di gestione della tabella sono presenti in cogv92m riportati in questa sezione qui sotto
wordmdl-attendi-esito richiede che wordmdl attenda l'esito della creazione del file di info move "S" to wordmdl-attendi-esito
    • chiama wordmdl per chiudere il file xml con operazione CHIUDI-XML o per lanciare l'esecuzione tramite la ESEGUI della macro (che implica la chiusura dell'xml)
Parametro Descrizione Esempio
wordmdl-ope CHIUDI-XML
wordmdl-tag
wordmdl-tag-idx move 0 to wordmdl-tag-idx
wordmdl-dato move u10-edit to wordmdl-dato
wordmdl-fl-tag Modalita' di gestione del tag:
" "= Default: il tag viene aperto e chiuso con la info all'interno
"A"= Eseguo solo l'apertura del tag
"D"= Accodo un pezzo di informazione alla info:
da usare se si sta scrivendo una riga di tabella, e si
vuole comporre la info direttamente con WORDMDL
In tal caso si dovra' richiamare "n" volte
AGGIUNGI-XML, cambiando opportunamente
FL-TAG in questo modo:
"A": Apro il tag e inizializzo la info
"D": Tante volte quante sono le colonne
"I": Chiudo la info con e scrivo la info
"C": Chiudo il tag
"I"= Scrivo solo la info
"C"= Eseguo solo la chiusura del tag
move " " to wordmdl-fl-tag

esempi di gestione della tabella sono presenti in cogv92m riportati in questa sezione qui sotto
wordmdl-attendi-esito richiede che wordmdl attenda l'esito della creazione del file di info move "S" to wordmdl-attendi-esito

Esempio AGGIUNGI-XML per tabella. *--------------------------------------------------------------- * Ora ogni riga del file di transito diventa una riga di tabella * NB: per ora do' per scontato che la riga di capitolato abbia un * formato fisso *--------------------------------------------------------------- initialize util-wordmdl move "Aggiungi-XML" to wordmdl-ope move "TAB-CAPITOLATO" to wordmdl-tag move 0 to wordmdl-tag-idx move w-xml-info to wordmdl-dato move w-xml-dato-size to wordmdl-dato-size move w-dc-file-occ to wordmdl-file-occ move "A" to wordmdl-fl-tag call "WORDMDL" using stringhe util-wordmdl *--------------------------------------------------------------- * Voce *--------------------------------------------------------------- initialize util-wordmdl move "Aggiungi-XML" to wordmdl-ope move "TAB-CAPITOLATO" to wordmdl-tag move 0 to wordmdl-tag-idx move "D" to wordmdl-fl-tag if t-det-voce <> a-voce move t-det-voce to wordmdl-dato move t-det-voce to a-voce end-if call "WORDMDL" using stringhe util-wordmdl *--------------------------------------------------------------- * Descrizione *--------------------------------------------------------------- initialize util-wordmdl move "Aggiungi-XML" to wordmdl-ope move "TAB-CAPITOLATO" to wordmdl-tag move 0 to wordmdl-tag-idx move "D" to wordmdl-fl-tag move t-det-des to wordmdl-dato move "S" to wordmdl-converti-crlf call "WORDMDL" using stringhe util-wordmdl *--------------------------------------------------------------- * UM *--------------------------------------------------------------- initialize util-wordmdl move "Aggiungi-XML" to wordmdl-ope move "TAB-CAPITOLATO" to wordmdl-tag move 0 to wordmdl-tag-idx move "D" to wordmdl-fl-tag move t-det-um to wordmdl-dato call "WORDMDL" using stringhe util-wordmdl *--------------------------------------------------------------- * Quantita' *--------------------------------------------------------------- initialize util-wordmdl move "Aggiungi-XML" to wordmdl-ope move "TAB-CAPITOLATO" to wordmdl-tag move 0 to wordmdl-tag-idx move "D" to wordmdl-fl-tag move t-det-qta to zeta7v3 move zeta7v3 to wordmdl-dato move 11 to wordmdl-dato-size call "WORDMDL" using stringhe util-wordmdl *--------------------------------------------------------------- * Prezzo *--------------------------------------------------------------- initialize util-wordmdl move "Aggiungi-XML" to wordmdl-ope move "TAB-CAPITOLATO" to wordmdl-tag move 0 to wordmdl-tag-idx move "D" to wordmdl-fl-tag if t-det-pre = 0 move " " to wordmdl-dato else initialize util-u10 move "Edita" to u10-ope perform z-u10-t-det-pre move u10-edit to wordmdl-dato end-if move 11 to wordmdl-dato-size call "WORDMDL" using stringhe util-wordmdl *--------------------------------------------------------------- * Importo voce *--------------------------------------------------------------- initialize util-wordmdl move "Aggiungi-XML" to wordmdl-ope move "TAB-CAPITOLATO" to wordmdl-tag move 0 to wordmdl-tag-idx move "D" to wordmdl-fl-tag initialize util-u10 move "Edita" to u10-ope perform z-u10-t-det-imp move u10-edit to wordmdl-dato move 11 to wordmdl-dato-size call "WORDMDL" using stringhe util-wordmdl add t-det-imp to a-tot-raggr initialize util-wordmdl move "Aggiungi-XML" to wordmdl-ope move "TAB-CAPITOLATO" to wordmdl-tag move 0 to wordmdl-tag-idx move "I" to wordmdl-fl-tag call "WORDMDL" using stringhe util-wordmdl initialize util-wordmdl move "Aggiungi-XML" to wordmdl-ope move "TAB-CAPITOLATO" to wordmdl-tag move 0 to wordmdl-tag-idx move "C" to wordmdl-fl-tag call "WORDMDL" using stringhe util-wordmdl

  • terminata la preparazione dei dati il programma gestionale E’ possibile dal gestionale esportare dati che possono essere accolti in modelli di word. La procedura appoggia sui seguenti file:
  • file di testo contenente le informazioni;
  • file con estensione xml in cui sono contenuti i dati;
  • modello di word (formato .doc);
  • file di word contente la macro vba (xmltodoc.doc). il nome del file di testo contenente le informazioni comprende il nome del file word con la macro + “_info” secondo le convenzioni da noi adottate: “xmltodoc_info.txt”. alcuni esempi validi di contenuto del file: I file xml contenenti i dati “devono” avere la seguente forma: Esempio 3 WIL123123 Prova Ragione Sociale Indirizzo del cliente Roma 1234111 12-12-2009 COMM12121212 @fondi;a) contratto a distanza: il contratto avente per oggetto beni o servizi stipulato tra un fornitore e un consumatore nell'ambito di un sistema di vendita o di prestazione di servizi a distanza organizzato dal fornitore che, per tale contratto, impiega esclusivamente una o più tecniche di comunicazione a distanza fino alla conclusione del contratto, compresa la conclusione del contratto stesso XXXXX merce numero uno;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90 XXXXX merce numero due;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90 XXXXX merce numero tre;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90 XXXXX merce numero quattro;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90 Il contenuto racchiuso fra i tag <_> </_> è quello che sarà copiato nel documento modello. Se il contenuto è nullo occorre indicare una riga vuota fra il tag di apertura e quello di chiusura. Nel caso ci fosse una tabella da popolare il tag deve iniziare con <TAB vedi “esempio 4” Nell’esempio si può vedere che il contenuto della tabella è definito in righe che terminano obbligatoriamente con o . Ogni riga racchiude il contenuto dei “campi” ed il contenuto del campo è separto dal delimitatore “;”. Se il campo contiene il tag verrà aggiunto un ritorno a capo all’interno del medesimo. Esiste l’eccezione della riga che contiene un solo valore significativo e che inizia con @fondi. Questa linea viene integrata nella tabella in un sola cella (fusione delle celle). Il documento modello dovrà contenere i tag presenti nell’archivio XML come nell’esempio 5:

Spett.le ()

PREVENTIVO N. DEL Rifer.
CODICE E DESCRIZIONE MERCE
QU.TA' IMP.UNIT.

Restiamo a Vs. disposizione per informazioni e chiarimenti in merito e cogliamo l'occasione per porgerVi i migliori saluti. WILOCS Fine esempio 5 La macro contenuta in “xmltodoc.doc” farà da smistatrice dei dati dall’archivio xml al modello word. In pratica si otterrà alla fine un documento come il seguente esempio 6: WILOCS LOGO TEST SRL Spett.le (WIL123123) Prova Ragione Sociale Indirizzo del cliente Roma

PREVENTIVO N. 1234111 DEL 12-12-2009 Rifer. COMM12121212
CODICE E DESCRIZIONE MERCE
QU.TA' IMP.UNIT.
a) contratto a distanza: il contratto avente per oggetto beni o servizi stipulato tra un fornitore e un consumatore nell'ambito di un sistema di vendita o di prestazione di servizi a distanza organizzato dal fornitore che, per tale contratto, impiega esclusivamente una o più tecniche di comunicazione a distanza fino alla conclusione del contratto, compresa la conclusione del contratto stesso
XXXXX merce numero uno
XXXXX merce numero due
XXXXX merce numero tre
XXXXX merce numero quattro

Restiamo a Vs. disposizione per informazioni e chiarimenti in merito e cogliamo l'occasione per porgerVi i migliori saluti. WILOCS Note: come si evince dall’esempio è possibile includere, nelle posizioni che si ritengono più opportune, file immagini o loghi per personalizzare il modello semplicemente aggiungendo il tag es: o (è ovvio che le posizioni dei file devono essere raggiungibili!) __ Formattazione delle celle delle tabelle Se all’inizio del modello nel modello sono presenti i seguenti termini : #Font1

Font2

Font3

#Font4 #Font5 La macro processerà tutte quelle celle il cui contenuto iniziale (prefisso) è eguale a #Font1: , #Font2: , #Font3: ecc. in tal modo le celle saranno formattate secondo lo stile dei vari font. Esempio di contenuto tabella con font:

font1:XXXXX merce numero uno;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90

font1:XXXXX merce numero due;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90

font1:XXXXX merce numero tre;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90

font1:XXXXX merce numero quattro; #font2:12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90

Aggiunto il 7 ottobre 2011 * nel file check.txt prodotto alla fine della esecuzione della macro è stata aggiunta una seconda riga in cui viene indicato il numero di pagine del documento generato dalla macro Inclusione immagini Usando la sintassi:Usando la <IMAGE:fullpath_nomefile.ext> La macro includerà il file immagine indicato (deve essere in formato client). NB: è conveniente introdurre il comando all'interno di una casella di testo, in questo modo l'immagine dovrebbe risultare ridimensionata all'interno della casella di testo stessa (sperimentato con un file *.PNG). Usando la per inserire immagini all'interno di una tabella occorre utilizzare nel file di dati la sintassi: @image@=nomeimmagine dove nomeimmagine\= shortname dell'immagine il percorso ove recuperare l'immagine viene risolto in questo modo: 1. se nel file di informazioni è presente il campo cartellaImmagini=imagepath allora verrà usato imagepath 2. se non è presente il campo campo cartellaImmagini= allora verrà usato 3. imagepath=_path di avvio dell'applicazione\=path di dove viene lanciato xml2doc.doc Inclusione di file Usando la sintassi:Usando la <EMBEDDEDFILE:fullpath_nomefile.ext> La macro includerà il file indicato (deve essere in formato client). Tenere conto del fatto che un file viene incluso nella pagina corrente, se eccede la pagina il contenuto viene troncato. Per avere il contenuto completo se il file eccede la pagina di lunghezza, occorre embeddare come icona (il file compare come icona, è apribile clickandoci sopra, ma come icona viene stampato) <EMBEDDEDASICON:fullpath_nomefile.ext> La macro includerà il file come icona indicato (deve essere in formato client). per inserire file all'interno di una tabella occorre utilizzare nel file di dati le sintassi corrispondenti ai comportamenti sopra descritti: @embeddedfile@=nomefile @embeddedasicon@=nomefile dove _nomefile\= shortname del file il percorso ove recuperare il file viene risolto in questo modo: 1. se nel file di informazioni è presente il campo cartellaEFile=filepath allora verrà usato filepath 2. se non è presente il campo campo cartellaEFile= allora verrà usato 3. filepath=_path di avvio dell'applicazione\=path di dove viene lanciato xml2doc.doc Inclusione simboli Usando nel testo la sintassi:Usando la @symbol=[fontname,]asciicharcode@ La macro sostituirà al posto dell' _asciicharcode il singolo carattere corrispondente usando: - se è presente il fontname allora verà usato quel font per riprodurre il carattere, - se non è presente di default viene usato il font "Wingdings".


Estratto da documentazione interna ClickUp