Entry Points > Modulo Supervisore > Script standard AIMP3 

IMPRIME

Storicamente, l'entry point IMPRIME era stato creato per una delle prime versioni X3. Veniva chiamato appena prima della scelta della stampante e permetteva di vietare l'inserimento della stampante se la variabile GPE era diversa da 0.
Nelle versionsi successive, questo entry point è stato conservato e può servire a modificare i parametri di stampa contenuti negli argomenti TBPAR e TBVAL del sotto-programma IMPRIME. Questi argomenti corrispondono ai parametri inseriti nella videata della richiesta di stampa.

Contesto e modalità di funzionamento

Le seguenti tabelle sono in linea :

Tabella

Contenuto significativo

Descrizione tabella

AREPORT [ARP]

Si

Dizionario delle stampe

I parametri sono memorizzati nella variabile PARAMETRE con gli indici da 1 a NBPAR. Ogni valore è una stringa con formato "parametro=valore" senza nessun altro separatore. I parametri della stampa sono ripartiti in 4 classi:

Quelli che iniziano con un doppio underscore. Sono i parametri destinati ad X3, non vengono trasmessi alla stampa (o perlomeno non tali e quali)

Quelli che iniziano con un underscore singolo. Sono dei parametri destinati a Crystal Reports, non vengono trasmessi alla stampa. I valori di questi parametri sono prefissati obbligatoriamente da chr$(1).

Quelli che iniziano con X3. Sono parametri di contesto trasmessi alla stampa ed inizializzati automaticamente dal supervisore.

Quelli descritti nel dizionario delle stampe. Quando il dizionario comporta un parametro che termina con "deb" o "str", viene automaticamente aggiunto un altro parametro con uguale radice che termina con "fin" o "end".

Il nome del server di stampa non è un parametro. E' definito nella variabile locale SERVEUR(char(30)).


Elenco dei parametri:

__REPORT                          Nome della stampa crystal reports

__DESTINATION                 0=anteprima, 1=stampante, 2=email, 3=file

__TYPDBA                           Tipo di database (menù locale 23)

__DBSERVER                    Nome dell’ODBC

__DBDATABASE                     Nome del database

__DBUSER                          Utente DB

__DBPASSWORD             Password

__WSTATION    (*140)              N° della porta per il server di stampa

__CDUSER         (*140)            Codice utente

__APPLICATION                 Dossier ;macchina ;servizio (da dove si lancia la stampa)

__APPRPT                          Dossier ;macchina ;servizio (dove si trova la stampa)

__REQUETE                       N° richiesta

 

_PreVisuOptions                 Opzioni di anteprima (non operative)

_PrinterName                       Nome della stampante

_Orientation                          0=verticale, 1=orizzontale

_PrinterDriver (*)                  Nome del driver stampante

_PrinterPort (*)                     Porta stampante

_PrinterDescription (*)        Caratteristiche della stampante

_FormatExport                     Formato del file di export (menù locale 91)

_FormatDelString                Delimitatore di stringa se formato CSV

_FormatDelRecord              Separatore di campo se formato CSV

_ExportFile                           Nome del file esportato

 

X3DOS                                 Dossier ;macchina ;servizio;versione;lingua (*140 versione + lingua)

X3CLI                                    Ragione sociale cliente

X3EDT                                  Copyright editore

X3ETA                                  Codice della stampa

X3TIT                                    Nome della stampa

X3USR          (*130)             Codice utente

X3LAN         (*140)                Directory lingua della stampa

X3FCY       (*Warehousing)            Sito

X3DEP     (*Warehousing)              Deposito

X3OPE                                 Nome utente

X3SIT1          (*120)             Siti autorizzati

X3SIT2          (*120)             Siti vietati

X3PRF          (*130)             Profilo funzione

X3FCT           (*130)             Funzione associata alla stampa

X3SIT            (*130)             Elenco dei siti vietati

(*)                   Questi parametri dipendono dalla stampante e non possono essre descritti. Di solito vengono recuperati mediante l'istuzione selimp (fare un tentativo su una determinata stampante e annotare i valori di questi parametri).

(*120)Disponiblie in V110 e V120, non lo sarà più in V130

(*130)Disponibile a partire dalla V130

 

Tabelle aperte 

Solo la tabella AREPORT contenente la stampa in corso di stampa è significativa.

 

Esempio di utilizzo

 

####################################################################

## Esempio di utilizzo dell'entry point del programma AIMP3

####################################################################

$ACTION

Case ACTION

When "IMPRIME" : Gosub IMPRIME

When "PARAM" : Gosub PARAM

Endcase

Return

$IMPRIME

If find([F:ARP]RPTCOD,"ETAT1","ETAT2","ETAT3") : # Elenco delle stampe da elaborare

GPE = 1 : # salta l'inserimento della stampante

Endif

Return

$PARAM

####################################################################

## I parametri sono contenuti nella variabile PARAMETRE(1..NBPAR)

## ma i sotto-programmi GETPARAM e SETPARAM del programma ETAT

## permettono di accedervi più facilmente

####################################################################

Local Char XPARAM(250)(1..10) , XPAR(50) , XVAL(50) , XETAT(20)

Local Integer XNB , XK , XI

####################################################################

## E' stata richiesta la stampa alla stampante?

####################################################################

Call GETPARAM("__DESTINATION",NBPAR,PARAMETRE,XVAL) From ETAT

If XVAL<>"1"

Return : # No, allora non si fa nulla

Endif

####################################################################

## Determinazione della stampante in funzione della stampa

####################################################################

Call GETPARAM("X3ETA",NBPAR,PARAMETRE,XETAT) From ETAT

Case XETAT

When "ETAT1" : XIMP = "stampante"

When "ETAT2" : XIMP = "laser_speciale"

When "ETAT3" : XIMP = "ad_aghi"

When Default : Return

Endcase

####################################################################

## Assegnazione del server di stampante

####################################################################

SERVEUR = "la_macchina_che_stampa"

####################################################################

## Recupero dei parametri di default della stampante

####################################################################

XNB = 0

XNB += 1 : XPARAM(XNB) = "_PrinterName=" + chr$(1) + XIMP : # Nome della stampante da assegnare

XNB += 1 : XPARAM(XNB) = "_Orientation=" + chr$(1) + "1" : # Modalità orizzontale

XNB += 1 : XPARAM(XNB) = "_NoVisible=" + chr$(1) + "1" : # Nessun inserimento

Selimp XPARAM = "" With XPARAM(1..XNB) : # Lettura dei parametri di default

XNB = stat1

For XI=1 To XNB

XK = instr(1,XPARAM(XI),"=")

If XK

XPAR = left$(XPARAM(XI),XK-1)

XVAL = right$(XPARAM(XI),XK+1)

# Se non si vogliono parametri di default

# è possibile comunque riassegnarli qui

# If XPAR="_PrinterPort" : XVAL = "porta" : Endif

Case XPAR

When "_PrinterName" , "_PrinterDriver" , "_PrinterPort"

& , "_PrinterDescription" , "_Orientation"

Call SETPARAM(XPAR,NBPAR,PARAMETRE,XVAL) From ETAT

Endcase

Endif

Next XI

Return

PARAM

L'entry point PARAM permette di modificare qualunque parametro della stampa

Contesto e modalità di funzionamento

Le seguenti tabelle sono in linea :

Tabella

Contenuto significativo

Descrizione tabella

AREPORT [ARP]

Si

Dizionario delle stampe

Questo entry point si trova subito dopo l'alimentazione delle variabili NBPAR e PARAMETRES ed appena prima l'azione EXEC.

Vedere descrizione delle variabili NBPAR e PARAMETRES nell'entry point IMPRIME.

REPORT

L'entry point REPORT permette di lanciare un programma a stampa avvenuta. Questo entry point viene eseguito subito dopo l'ordine di stampa inviato al client (o al server). Nel caso di una stampa/file, può servire per lanciare un programma sul file generato ...

Contesto e modalità di funzionamento

Le seguenti tabelle sono in linea :

Tabella

Contenuto significativo

Descrizione tabella

AREPORT [ARP]

Si

Dizionario delle stampe

Questo entry point viene eseguito subito dopo la stampa dopo l'istruzione "Report".

Il nome della stampa utilizzata è nella variabile [F:ARP]CRYCOD(R), dove R è l'indice corrente nel ciclo For R=0 to dim([F:ARP]CRYCOD)-1.

FILPAT: Gestione fine stampa

L'entry point FILPAT permette di recuperare la variabile GFILPATH prima che venga inizializzata subito dopo la chiamata del workflow di invio della stampa via mail o dell'elaborazione della stampa da parte della funzione di archiviazione.

Contesto e modalità di funzionamento

Le seguenti tabelle sono in linea :

Tabella

Contenuto significativo

Descrizione tabella

AREPORT [ARP]

Si

Dizionario delle stampe

Questo entry point viene eseguito appena prima l'invio del workflow (tipo di stampa 3 - messaggio) e della procedura di archiviazione (tipo di stampa 7 - Archiviazione).