Points d'entrée > Module Superviseur > Script standard AIMP3 

IMPRIME : Permet de modifier les paramètres d'impression

Historiquement, le point d’entrée IMPRIME avait été créé pour une des premières version X3. Il était appelé juste avant le choix de l’imprimante et permettait d'inhiber la saisie de l'imprimante si la variable GPE était différente de 0.
Dans les versions suivantes, ce point d'entrée a été conservé et peut servir à modifier les paramètres d'impression contenues dans les arguments TBPAR et TBVAL du sous-programme IMPRIME. Ces arguments correspondent aux paramètres saisis dans l'écran de la demande d'impression.

Contexte et mode de fonctionnement

Les tables suivantes sont en ligne :

Table

Contenu significatif

Intitulé Table

AREPORT [ARP]

Oui

Dictionnaire des Etats

Les paramètres sont stockés dans la variable PARAMETRE aux indices 1 à NBPAR. Chaque valeur est une chaîne de la forme "  paramètre=valeur " sans aucun autre séparateur. Les paramètres de l’état sont répartis en 4 classes :

  • Ceux qui commencent par un double underscore: ce sont les paramètres à destination d’X3, ils ne sont pas transmis à l’état (ou tout au moins pas tel quel)
  • Ceux qui commencent par un simple underscore: ce sont des paramètres à destination de Crystal Reports, ils ne sont pas transmis à l’état. Les valeurs de ces paramètres sont obligatoirement préfixés par chr$(1).
  • Ceux qui commencent par X3: ce sont des paramètres de contexte transmis à l’état et initialisés automatiquement par le superviseur.
  • Ceux qui sont décrits dans le dictionnaire des états: lorsque le dictionnaire comporte un paramètre se terminant par " deb " ou " str " un autre paramètre de même racine se terminant par " fin " ou " end " est automatiquement ajouté.

Le nom du serveur d’impression n’est pas un paramètre. Il est défini dans la variable locale SERVEUR(char(30)).


Liste des paramètres :

__REPORT                          Nom de l’état crystal reports

__DESTINATION                 1=prévisu, 2=imprimante, 3=messagerie, 4=fichier

__TYPDBA                           Type de base de données (menu local 23)

__DBSERVER                    Nom de l’ODBC

__DBDATABASE                     Nom de la base de données

__DBUSER                          Utilisateur BDD

__DBPASSWORD             Mot de passe

__WSTATION    (*140)              No du port pour le serveur d'impression

__CDUSER         (*140)            Code utilisateur

__APPLICATION                 Dossier ;machine ;service (de là où on lance l’impression)

__APPRPT                          Dossier ;machine ;service (de là où se trouve l’état)

__REQUETE                       No de requête

 

_PreVisuOptions                 Options de pré-visualisation (non opérationnel)

_PrinterName                       Nom de l’imprimante

_Orientation                          0=portrait, 1=paysage

_PrinterDriver (*)                  Nom du driver imprimante

_PrinterPort (*)                     Port imprimante

_PrinterDescription (*)        Caractéristiques de l’imprimante

_FormatExport                     Format du fichier d’export (menu local 91)

_FormatDelString                Délimiteur de chaîne si format CSV

_FormatDelRecord              Séparateur de champ si format CSV

_ExportFile                           Nom du fichier exporté

 

X3DOS                                 Dossier ;machine ;service;version;langue (*140 version + langue)

X3CLI                                    Raison sociale client

X3EDT                                  Copyright éditeur

X3ETA                                  Code de l’état

X3TIT                                    Nom de l’état

X3USR          (*130)             Code utilisateur

X3LAN         (*140)                Répertoire langue de l'état

X3FCY       (*Géode)            Site

X3DEP     (*Géode)              Déposant

X3OPE                                 Nom utilisateur

X3SIT1          (*120)             Sites autorisés

X3SIT2          (*120)             Sites interdits

X3PRF          (*130)             Profil fonction

X3FCT           (*130)             Fonction associée à l’état

X3SIT            (*130)             Liste des sites interdits

(*)                   Ces paramètres sont dépendants de l’imprimante et ne peuvent être décrits. Ils sont normalement récupérés par l’instruction selimp (faire un essai sur une imprimante donnée et noter les valeurs de ces paramètres).

(*120)Disponible en V110 et V120, ne le sera plus en V130

(*130)Disponible à partir de la V130

 

Tables ouvertes

Seule la table AREPORT contenant l’état en cours d’impression est significative.

 

Exemple d’utilisation

 

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

## Exemple d'utilisation des points d'entrée du traitement AIMP3

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

$ACTION

Case ACTION

When "IMPRIME" : Gosub IMPRIME

When "PARAM" : Gosub PARAM

Endcase

Return

$IMPRIME

If find([F:ARP]RPTCOD,"ETAT1","ETAT2","ETAT3") : # Liste des états à traiter

GPE = 1 : # saute la saisie de l'imprimante

Endif

Return

$PARAM

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

## Les paramètres sont contenus dans la variable PARAMETRE(1..NBPAR)

## mais les sous-programmes GETPARAM et SETPARAM du TrT ETAT

## permettent d'y accéder plus facilement

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

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

Local Integer XNB , XK , XI

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

## Est-ce que l'impression a été demandée à l'imprimante ?

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

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

If XVAL<>"1"

Return : # Non, alors on ne fait rien

Endif

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

## Détermination de l'imprimante en fonction de l'état

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

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

Case XETAT

When "ETAT1" : XIMP = "mon_imprimante"

When "ETAT2" : XIMP = "laser_spéciale"

When "ETAT3" : XIMP = "matricielle_à_pédale"

When Default : Return

Endcase

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

## Affectation du serveur d'imprimante

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

SERVEUR = "la_machine_qui_imprime"

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

## Récupération des paramètres par défaut de l'imprimante

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

XNB = 0

XNB += 1 : XPARAM(XNB) = "_PrinterName=" + chr$(1) + XIMP : # Nom de l'imprimante a affecter

XNB += 1 : XPARAM(XNB) = "_Orientation=" + chr$(1) + "1" : # Mode paysage

XNB += 1 : XPARAM(XNB) = "_NoVisible=" + chr$(1) + "1" : # Pas de saisie

Selimp XPARAM = "" With XPARAM(1..XNB) : # Lecture des paramètres par défaut

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)

# Si on ne veut pas des paramètres par défaut

# on peut également les réaffecter ici

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

Case XPAR

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

& , "_PrinterDescription" , "_Orientation"

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

Endcase

Endif

Next XI

Return

PARAM : Modifie un paramètre de l'état

Le point d’entrée PARAM permet de modifier n’importe quel paramètre de l’état

Contexte et mode de fonctionnement

Les tables suivantes sont en ligne :

Table

Contenu significatif

Intitulé Table

AREPORT [ARP]

Oui

Dictionnaire des Etats

Ce point d'entrée est situé juste après l'affectation des variables NBPAR et PARAMETRES et juste avant l'action EXEC.

Voir description des variables NBPAR et PARAMETRES dans le point d'entrée IMPRIME.

REPORT : Après l'impression de l'état

Le point d’entrée REPORT permet de lancer un traitement après l'impression de l’état. Ce point d'entrée est exécuté juste après l'ordre d'impression envoyé au client (ou au serveur). Dans le cas d'une impression/fichier, il peut servir à lancer un traitement sur le fichier généré ...

Contexte et mode de fonctionnement

Les tables suivantes sont en ligne :

Table

Contenu significatif

Intitulé Table

AREPORT [ARP]

Oui

Dictionnaire des Etats

Ce point d'entrée est exécuté juste après l'impression exactement après l'ordre "Report".

Le nom de l'état utilisé est dans la variable [F:ARP]CRYCOD(R), R étant l'indice courant dans la boucle For R=0 to dim([F:ARP]CRYCOD)-1.

FILPAT : Gestion des fins d'impression

Le point d’entrée FILPAT permet de récupérer la variable GFILPATH avant qu'elle soit initialisée juste après l'appel du workflow d'envoi de l'état par mail ou du traitement de l'état par la fonction d'archivage.

Contexte et mode de fonctionnement

Les tables suivantes sont en ligne :

Table

Contenu significatif

Intitulé Table

AREPORT [ARP]

Oui

Dictionnaire des Etats

Ce point d'entrée est exécuté juste avant l'envoi du workflow (type d'impression 3 - message) et de la procédure d'archivage (type d'impression 7 - Archivage).

RPTFIL : Fichiers sur plusieurs serveurs

Le point d’entrée RPTFIL permet de gérer l'archivage des fichiers en architecture multi-tiers. C'est un complément du point d'entrée ARCFIL.

Contexte et mode de fonctionnement

Les tables suivantes sont en ligne :

Table

Contenu significatif

Intitulé Table

AREPORT [ARP]

Oui

Dictionnaire des Etats

Ce point d'entrée est situé dans la boucle de transferts des fichiers sur le serveur X3.
Le nom du fichier récupéré est dans la variable CHAINE et EXT contient l'extension du fichier.
La variable GPE positionnée à 1 permet de désactiver la copie standard du fichier d'impression depuis le serveur.

Exemple de code:

$ACTION

Case ACTION

    When "RPTFIL" : Gosub RPTFIL

    When "FILPAT" : Gosub FILPAT

    When Default

Endcase

Return

 

$RPTFIL

 #  Get the report file on the server

  If adxmac(0) <> "" & adxmac(0) <> adxmac(-1)

    rptfile STAT With CHAINE, adxmac(-1)+"@"+"C:\TEMP\"+CHAINE+"."+EXT Using SERVEUR
    Local Shortint G_APE_EXEC : G_APE_EXEC = 1
    GPE=1 : # To avoid executing the STD

  Endif

Return

 

$FILPAT

# Put the proper file path

If dim(G_APE_EXEC)>0 & G_APE_EXEC=1

  Local Char WARCV1DIR(250)

  Call PARAML("","ARCV1DIR",WARCV1DIR) From ADOVAL

  GFILPATH = adxmac(-1)+"@"+filpath(WARCV1DIR,JOBID,EXT,"",adxmac(-1),"")

Endif

Return