Come aprire o stampare un file pdf da programma Sage X3

Per aprire un file pdf da un programma adonix si può utilizzare la chiamata ETAT From AIMP3.
Per indicare che il pdf deve essere aperto a video basta indicare come destinazione di stampa una destinazione di tipo ANTEPRIMA.

Qui sotto un semplice esempio di programma che accetta come parametro il percorso di un file pdf e lo apre a video.
Attenzione: questo codice è stata testato per la versione 6.5.

Subprog APRIPDF(NOMEFILE)
 Value Char NOMEFILE()
# i due seguenti sono degli array 
# TBPAR contiene il nome del parametro di stampa 
# TBVAL contiene il relativo valore
Local Char TBPAR(15)(1..6), TBVAL(200)(1..6)
 
GSILENCE = 1              # variabile globale che mi inibisce tutti i messaggi a video
TBPAR(1) = "docjoin"      # primo e unico parametro del codice stampa "ADOC" (stampa in allegato)
TBVAL(1) = NOMEFILE       # valore del parametro

Call ETAT("ADOC","","",1,"",TBPAR,TBVAL) From AIMP3 

GSILENCE = 0              # ripristino il valore di GSILENCE
End

Per utilizzare questa programma basterà fare così:

#per percorsi locali
Call APRIPDF("c:\cartella\sub\miofile.pdf") from YSAGEDEV
#oppure per percorsi di rete
Call APRIPDF("\\server\cartella\sub\nomefile.pdf") from YSAGEDEV

Ma andiamo a vedere nel dettaglio la chiamata ETAT From AIMP3:

Call ETAT(CODICE,DESTINAZIONE,LINGUA,TRACCIA,MSG,TBPAR,TBVAL) From AIMP3 
  • CODICE è il codice di stampa che si trovano andando alla funzione GESARP
  • DESTINAZIONE è la destinazione di stampa (attenzione che ovviamente in base al tipo di destinazione le azioni svolte possono essere diverse)
  • LINGUA lingua con cui effettuare la stampa, se lasciata vuota viene usata la lingua di sessione
    Cosa va a modificare la lingua?

    1. il titolo della stampa (parametro X3TIT passato a Crystal Report)
    2. il parametro X3LAN passato a Crystal Report, su cui possono basarsi eventuali traduzioni
    3. la cartella in cui andare a cercare il report (il file .rpt), nel caso il codice di stampa sia indicato come multilinguaggio (le varie cartelle ITA, ENG ecc dentro la cartella REPORT)
  • TRACCIA indica se va scritto un file di log (1 scrive, 0 non lo scrive)
  • MSG conterrà un eventuale messaggio da scrivere nella traccia o da visualizzare interattivamente
  • TBPAR contiene l’elenco dei nomi dei parametri di stampa (quelli che si trovano in GESARP, per intenderci)
  • TBVAL contiene l’elenco dei valori dei parametri di stampa, nello stesso ordine di TBPAR

Risulta subito evidente come con questa chiamata si possa fare molto di più che semplicemente aprire un pdf!

Spero vi sia utile,
e se avete dubbi o segnalazioni usate pure i commenti.
Per avere la libreria YSAGEDEV man mano che viene arricchita, iscrivetevi!

2 risposte

  1. Abramo Zampieri ha detto:

    Ciao Francesco! Sono Abramo, Ex Formula!
    Nella v11 non sono riuscito a far funzionare questo sistema che descrivi però alla fine ne ho pensato un altro: faccio fare tutto alla gestione allegati:

    Local Mask AOBJTXT [M:AOX]
    Local Char YYY

    [M:AOX]NAM = ‘[TECNICO]/ufficio tecnico/DISTINTE/DISTINTE/PROVA.PDF’ #FILE + PATH dell’allegato
    [M:AOX]TYPDOC = ‘PDF’
    [M:AOX]NBLIG = 1
    nolign=1
    Affzo [M:AOX]
    Call CL_ICONE(YYY) From GOBJTXT

Lascia un commento

Scopri di più da SageDev

Abbonati ora per continuare a leggere e avere accesso all'archivio completo.

Continue reading