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?- il titolo della stampa (parametro X3TIT passato a Crystal Report)
- il parametro X3LAN passato a Crystal Report, su cui possono basarsi eventuali traduzioni
- 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!
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
Ciao Abramo!
Grazie della segnalazione e della soluzione proposta!