Manuale originale (in via di sistemazione)

Navigation:  WordMDL >

Manuale originale (in via di sistemazione)

Previous pageReturn to chapter overviewNext page

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 <fr> 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 <fr> 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

 

<COD-CLI>

WIL123123

</COD-CLI>

<RAGSOC-CLI>

Prova Ragione Sociale

</RAGSOC-CLI>

<CLI-IND>

Indirizzo del cliente

</CLI-IND>

 

<CAPLOCAPROV-CLI>

Roma

</CAPLOCAPROV-CLI>

<PREV-NUM>

1234111

</PREV-NUM>

<ALTRO-DATO>

 

</ALTRO-DATO>

<PREV-DATA>

12-12-2009

</PREV-DATA>

<LOD-COMMESSA>

COMM12121212

</LOD-COMMESSA>

<TAB-DET>

@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<ac> servizi a distanza organizzato dal fornitore che, per tale contratto, impiega esclusivamente una<ac> o più tecniche di comunicazione<ac> a distanza fino alla conclusione del contratto, compresa la conclusione del contratto stesso<FR>

XXXXX merce numero<ac> uno;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90<FR>

XXXXX merce numero<ac> due;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90<FR>

XXXXX merce numero tre;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90<FR>

XXXXX merce numero quattro;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90<FR>

</TAB-DET>

 

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” <TAB_DET>

Nell’esempio si può vedere che il contenuto della tabella è definito in righe che terminano obbligatoriamente con <FR> o <fr>.

Ogni riga racchiude il contenuto dei “campi” ed il contenuto del campo è separto dal delimitatore “;”.

Se il campo contiene il tag <ac> 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:

 

 

<LOGO:c:\path\nomefilelogo.doc>

                                                                                        Spett.le                          (<COD-CLI>)

                                                           <RAGSOC-CLI>

                                                                                            <CLI-IND>

                                                                                            <CAPLOCAPROV-CLI>

 

PREVENTIVO N. <PREV-NUM> DEL <PREV-DATA>

 

Rifer. <LOD-COMMESSA>

                 

<ALTRO-DATO>


 

CODICE E DESCRIZIONE MERCE

 

QU.TA'

IMP.UNIT.

TOTALE

SCONTO

IMP.NETTO

 

<TAB-DET>

 

 

 

 

 

 

 

Restiamo a Vs. disposizione per informazioni e chiarimenti in merito e cogliamo l'occasione per porgerVi i migliori saluti.

 

                                                                                                                                                         WILOCS

 

<IMAGE:c:\path\nomefileimmagine.jpg>

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.

TOTALE

SCONTO

IMP.NETTO

 

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

 

 

Restiamo a Vs. disposizione per informazioni e chiarimenti in merito e cogliamo l'occasione per porgerVi i migliori saluti.

 

                                                                                                                                                         WILOCS

 

Note: come si nota dall’esempio è possibile includere, nelle posizioni che si ritengono più opportune, file immagini o loghi per personalizzare il modello:

il tag <LOGO:fullpath_file.doc> inserisce un FILE all'interno del documento, quindi DEVE ESSERE un file .doc

il tag <IMAGE:fullpath_file.jpg/tif/bmp/png> inserisce un'IMMAGINE

semplicemente aggiungendo il tag <IMAGE:path+nomefile> es: <IMAGE:c:\pippologhi\logotesta.jpg> o <IMAGE:\\server\loghi\logotesta.jpg> (è 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<ac> uno;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90<FR>

#font1:XXXXX merce numero<ac> due;12;123,89;14.567.890,00;1.345.678,99;1.456.456.300,90<FR>

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

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

 

 

 

 

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

 

 

Il Tag <LOGO:...>

 

Usando la sintassi:Usando la

 

<LOGO:fullpath_nomefile.doc>

 

La macro includerà il documento di Word indicato dal fullpath (deve essere in formato client).

Per questo motivo il tag generalmente è inserito sulla pagina di sfodo del modello trattato.

 

 

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
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:

3.se nel file di informazioni è presente il campo cartellaEFile=filepath allora verrà usato filepath

4.se non è presente il campo campo cartellaEFile= allora verrà usato
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".