Stampe

From SageDev KB
Jump to navigation Jump to search

Menu sulle stampe[edit]

Dal menu Parametrizzazioni → Destinazioni → Codici stampe (GESARX): associazione Codice interno - codice stampa

Dal menu Parametrizzazioni → Destinazioni → Destinazioni (GESAIM): sono presenti ANTEPRIMA, MAIL, XPDF, ZPLTEST

Dal menu Sviluppo → Dizionario programmi → Stampe (GESARP): è il dizionario delle stampe, dove si imposta l'associazione dei codici stampa con il report di Crystal Report presente nella cartella REPORT, l'eventuale programma, la destinazione di default, ecc. Esempio di codici stampa presenti: ADOC, ALISTE, Y_XSBONFACCG. Nella scheda Parametri si possono impostare i valori predefiniti, che sono poi eventualmente sovrascritti da quelli definiti in GESARV.

Dal menu Parametrizzazioni → Destinazioni → Valori di default (GESARV): per definire i valori di default di una coppia stampa/funzione;

sono i dati recuperati dalla chiamata Call IMPRIME(GYYWPPRT,"SAIWRKPLN") From ETAT

(Sorgenti AIMP1, AIMP3, IMPRIME)

Funzioni da programma[edit]

Per informazioni sulle varie azioni della stampa vai a Processo di stampa.

Descrizione chiamata IMPRIME from ETAT[edit]

Questa chiamata, dopo opportuno recupero di informazioni, chiama la IMPRIME From AIMP3

Call IMPRIME(CODICEINTERNO_DI_STAMPA, NOME_FUNZIONE_CHIAMANTE) From ETAT

  • un codice interno (definiti in GESARX) può rappresentare un report di Crystal Report, una consultazione o un export.
  • se il codice interno esiste
    • usa la stampa/consultazione/export ad esso associato
    • se ne trova più di una associata fa scegliere all'utente
    • se la stampa è una sola ed è indicata in GESARX come diretta va direttamente in stampa
  • se non trova il codice interno cerca tra le stampe (definite in GESARP)

Quindi al posto di un codice interno si può mettere direttamente un codice stampa (hanno fatto in modo da poter stampare direttamente un report).

I parametri di default vengono recuperati dalla coppia Funzione/Stampa configurata in GESARV

Esempio: Call IMPRIME(GYYWPPRT,"SAIWRKPLN") From ETAT


Esempio:

    # la stampa YSTAMPA_PDF deve essere impostata così:
    #   in GESARP YSTAMPA_PDF con destinazione (File)XPDF obbligatoria
    #   in GESARV devono essere configurati i valori di default GESSOH/YSTAMPA_PDF
    #   in GESARX YSTAMPA_PDF\YSTAMPA_PDF\diretta SI

     Call IMPRIME("YSTAMPA_PDF","GESSOH") From ETAT

    #GFILPATH=YFILE_OUTPUTPDF  -> l'impostazione della variabile standard GFILPATH viene fatta nel codice specifico della stampa

    #copio il pdf in una cartella a piacere

    Local Char     NUOVO_PATH(250)
    Local Integer  YSTAT
    Call COPIE(GFILPATH,NUOVO_PATH,YSTAT) From ORDSYS

Codice specifico stampa YSTAMPA_PDF

$ACTION
  Case ACTION
    When "FICHIER" : Gosub FICHIER
    When Default
  Endcase
Return

Subprog IMPRIME(NBPAR,PARAMETRE)
Value    Integer NBPAR
Variable Char    PARAMETRE()()
    Call IMPRIME(NBPAR,PARAMETRE) From SORGENTE_ORIGINALE_di_YSTAMPA
End

$FICHIER
     FICHIER = filpath(MIOPATH, [F:XXX]NUM + "_" + format$("D:YYYYMMDD",[F:XX]DAT) , "pdf")
     GFILPATH = FICHIER
Return

Descrizione chiamata ETAT From ETAT[edit]

Call ETAT("CODICE_STAMPA",GFONCTION,TBPAR,TBVAL) From ETAT

Descrizione chiamata ETAT From AIMP3[edit]

Questa chiamata, dopo opportuno recupero di informazioni, chiama la IMPRIME From AIMP3

Call ETAT("CODICE_STAMPA","DEST","ITA",1,"messaggio",TBPAR,TBVAL) From AIMP3

  • "Call ETAT()" lancia il crystal report con i parametri TBPAR e valori TBVAL
  1. ADOC è un codice di stampa (vedi menu Sviluppo → Dizionario programmi → Stampe, GESARP da F7)
  2. indica una destinazione, vedi al menu Parametrizzazione → Destinazioni → Destinazioni, GESAIM o da F7;
    se la destinazione indicata non è possibile (per accessi o permessi) viene scelta una predefinita
  3. il terzo parametro è la lingua (es. "ENG"), se omessa viene usata quella di sessione (GLANGUE)
  4. flag per visualizzazione messaggio di stampa (1 visualizza, 0 nessuna visualizzazione); GSILENCE deve essere lasciato a 0
  5. titolo messaggio di stampa
  6. TBPAR contiene i nomi dei parametri (quelli configurati in GESARP)
  7. TBVAL contiene i valori dei parametri ( TBPAR(1) deve contenere il nome del parametro, TBVAL(1) il suo valore)
    Esempio:
    TBPAR(1)="NUM" //nome parametro
    TBVAL(1)= "123456" //valore parametro
    TBPAR(2)="STOFCY" //nome parametro
    TBVAL(2)= "MYSITE" //valore parametro


Vedi anche Stampa di un pdf

Esempio:

Local Char PAR_ETI(100)(1..30)
Local Char PAR_NAM(100)(1..30)    

Local Integer I,SHOWMSG
SHOWMSG = 1  #1 per mostrare messaggio, 0 per non mostrarlo
For I=1 To 30
  PAR_NAM(I)= "par"+num$(I)  #i parametri sono stati chiamati (in GESARP) "par1", "par2", "par3"...
Next

#preparo parametri per la stampa e stampo            
PAR_ETI(1) = "DESTINAZIONE"            
PAR_ETI(2) = "SageDev Srl"               
PAR_ETI(3) = "Via Torri dekl Benaco"
PAR_ETI(4) = "A"  
PAR_ETI(5) = "B"
PAR_ETI(6) = "C"
PAR_ETI(7) = "D"

Call ETAT("YEADD","","",SHOWMSG,"",PAR_NAM(1..9),PAR_ETI(1..9)) From AIMP3

Descrizione chiamata IMPRIME from AIMP3[edit]

Subprog IMPRIME(ETAT,LANGUE,NBRPAR,PARCOD,TYP,PARTYP,PARLIB
&              ,DEBFIN,VALEUR1,VALEUR2,DIFFERE
&              ,DESTINATION,SERVEUR1,IMPRIMANTE,PRTPOR,PRTDRV
&              ,PRTDES,NBRCPY,ASSCPY,PAGDEB,PAGFIN,FICHIER,FMTFIC
&              ,NBSEG,VALSEG,DIFDAT,DIFTIM,DIFSRVC,FORPAP
&              ,TBPAR,TBVAL,PARMES,NBPLAG,PARPLAG,BORPLAG,VALPLAG1,VALPLAG2,RETOUR,ER)
Value    Char    ETAT
Value    Char    LANGUE
Value    Integer NBRPAR
Value    Char    PARCOD()(0..)
Value    Integer TYP(0..)
Value    Char    PARTYP()(0..)
Value    Integer PARLIB(0..)

Value    Integer DEBFIN(0..)
Value    Char    VALEUR1()(0..)
Value    Char    VALEUR2()(0..)
Value    Integer DIFFERE

Value    Integer DESTINATION
Value    Char    SERVEUR1
Value    Char    IMPRIMANTE
Value    Char    PRTPOR
Value    Char    PRTDRV

Value    Char    PRTDES()(0..)
Value    Integer NBRCPY
Value    Integer ASSCPY
Value    Integer PAGDEB
Value    Integer PAGFIN
Value    Char    FICHIER
Value    Integer FMTFIC

Value    Integer NBSEG
Value    Char    VALSEG()(0..)
Value    Date    DIFDAT
Value    Char    DIFTIM
Value    Char    DIFSRVC
Value    Integer FORPAP

Variable Char    TBPAR()(1..)
Variable Char    TBVAL()(1..)
Variable Char    PARMES()(1..)
Value    Integer NBPLAG
Value    Char    PARPLAG()(0..)
Value    Integer BORPLAG(0..)
Value    Char    VALPLAG1()(0..)
Value    Char    VALPLAG2()(0..)
Variable Char    RETOUR
Variable Integer ER

Stampa di un pdf[edit]

Il codice di stampa ADOC è un codice apposito per 'stampare' (aprire) dei file allegati.

Il parametro docjoin è un parametro speciale, gestito a programma: serve per indicare degli allegati da stampare; viene tradotto poiu per Crystal Report con un parametro del tipo "__DOCUMENT= \\path\dir\file".

Local integer NBPAR_MAX: NBPAR_MAX =10
Local char TBPAR(20)(1..NBPAR_MAX)
Local char TBVAL(250)(1..NBPAR_MAX)

YFILE = "\\srvint1\IntranetPDF\dis\8D_01.pdf" #Il percorso del file deve essere in formato \\server\... e accessibile all'utente di sage

TBPAR(1) = "docjoin"
TBVAL(1) = YFILE

#GSILENCE = 1 #serve per non far comparire il popup del messaggio di stampa
#mettere 0 per non avere il messaggio; 1 per visualizzarlo
Call ETAT("ADOC","","",0,"",TBPAR,TBVAL) From AIMP3
#GSILENCE = 0