%%(display:none)
{{{
WikiUp
}}}
/%
[{TableOfContents }]\\
!!! OBIETTIVO\\

Tramite questa /COPY è possibile semplificare la scrittura dei file PDF che vengono prodotti tramite la £G53. In sostanza, viene scissa la definizione della struttura del PDF (Righe, Intestazioni, Riquadri ecc.) che viene delegata a degli script, dalla valorizzazione dei quali viene riempita la struttura stessa. Il programma deve perciò occuparsi solo di quest'ultima parte e dell'utilizzo

!!! PREREQUISITI\\

D/COPY QILEGEN,£H53D
C/COPY QILEGEN,£H53

!!! NOTE AGGIUNTIVE\\

Gli script di definizione si trovano nel file SCP_G53. Per una loro maggiore comprensione si rimanda alla scheda di test raggiungibile dal programma di TST tramite  l'apposito tasto.

Per effettuare dei test sulla funzioine è inoltre possibile attivare dall'elemento B£H53G della tabella PGM la stampa LOG per vedere in stampa il risultato dell'output della B£H53G.

!!! PARAMETRI\\

!! FUNZIONI/METODI\\

* INZ      Inizializzazione\\
** XML: Prepara inizio XML (CDATA)\\
** SCP: Apre lo SCRIPT indicato\\
*** $H53_STRIN: Nam="NOMESCRIPT"\\
** PDF: Prepara inizio XML ed apre script indicato (INZ.XML + INZ.SCP)\\
** INV: Formato .INV: rispetto al metodo precedente l'immagine azienda non viene ricercata  nelle directory di loocup, ma sull'AS in '/SMEDOC/IMG/AZ/CodiceAzienda.jpg\\
** AOP: Apertura documento XML in formato Medusa\\
* NEW      Creazione\\
** PAG: Inizializza una nuova pagina (Header, etc.)\\
*** $H53_STRIN: Nam="NOMEPAGINA"\\
** RIG: scrive una nuova riga\\
*** $H53_STRIN: Nam="NOMERIGA" Txt="VALORI|DA|INSERIRE|NELLE|COLONNE"\\
** BDY: Crea un salto pagina\\
** MOD: Crea un Modello (solo AOP)\\
* CLO      Chiusura: completa la scrittura del file .INV\\
** PAG: Chiude una pagina (Footer, etc.)\\
** XML: Prepara Setup e chiude XML\\
** PDF: Chiude pagina, prepara Setup e chiude XML (CLO.PAG + CLO.XML)\\
* SER      Funzioni di servizio (restituzione di un XML)\\
**  MEM     Visualizzazione completa\\
**  SCP     Script\\
* ASS      Funzioni di assegnazione\\
**  VAR     Variabili: permettere di assegnare il valore di una variabile indicata nello script\\
*** $H53_STRIN: Nam="NOMEVAR" Txt="VALOREVAR"\\
**  STY     Stili: permette di assegnare/sovrascrivere la configurazione di uno stile indicato nello script\\
*** $H53_STRIN: Nam="NOMESTILE"\\
* AOP Estensione AOP\\
** INV: Invio file a Medusa\\

!! PARAMETRI DI INPUT\\

* Numero pagina: Numero della prima pagina del pdf __campo £H53NPA __\\
* Lunghezza Record : Lunghezza del record della riga del PDF __campo £H53RL __\\
* Presenza footer : Presenza del footer nella stampa del PDF  __campo £H53NF__\\
* Stringa di input: Stringa di input del PDF __campo £H53_STRIN __\\

!! PARAMETRI DI OUTPUT\\

* Stringa di output: __Campo £H53_STROU__\\

!! ESEMPIO DI CHIAMATA\\

- Inizializzazione
%%quote
|     C                   CLEAR                   £H53_DS
|     C                   EVAL      £H53_FUN='INZ'
|     C                   EVAL      £H53_MET='PDF'
|     C                   EVAL      £H53_AMB=XG18AM
|     C                   EVAL      £H53_STRIN='Nam="NomeScriptSCP_G53"'
|     C                   EXSR      H53_EMI
|     C                   EXSR      £H53
|2    C                   IF        £H53_STROU<>' '
|      * [...] Istruzioni per scrivere £H53_STROU nell'IFS (es. tramite G80)
|2E   C                   ENDIF
|
|- Scrittura delle variabili di intestazione
|F(02)
|     C                   EVAL      £H53_FUN='ASS'
|     C                   EVAL      £H53_MET='VAR'
|     C                   EVAL      £H53_STRIN='Nam="Nomevariabile" '
|     C                             +'Txt="ValoreVariabile"'
|     C                   EXSR      £H53
/%
----
- Scrittura di una nuova riga
%%quote
|     C                   EVAL      £H53_FUN='NEW'
|     C                   EVAL      £H53_MET='RIG'
|     C                   EVAL      £H53_STRIN='Nam="NomeStile" '
|     C                             +'Txt="TestoRiga"'
|     C                   EXSR      £H53
|2    C                   IF        £H53_STROU<>' '
|      * [...] Istruzioni per scrivere £H53_STROU nell'IFS (es. tramite G80)
|     C                   ENDIF
/%
----
- Test Salto Pagina (solo se voglio modificare la pagina, altrimenti la nuova pagina  viene scritta automaticamente
%%quote
|     C                   IF        £H53_MES='OVF'
|     C                   ENDIF
/%
----
- Chiusura
%%quote
|     C                   EVAL      £H53_FUN='CLO'
|     C                   EVAL      £H53_MET='   '
|     C                   EXSR      £H53
|2    C                   IF        £H53_STROU<>' '
|      * [...] Istruzioni per scrivere £H53_STROU nell'IFS (es. tramite G80)
|     C                   ENDIF
/%
----