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.
Les tables suivantes sont en ligne :
Table |
Contenu significatif |
Intitulé Table |
---|---|---|
AREPORT [ARP] |
Oui |
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 0=prévisu, 1=imprimante, 2=messagerie, 3=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
Seule la table AREPORT contenant l’état en cours d’impression est significative.
####################################################################
## 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
Le point d’entrée PARAM permet de modifier n’importe quel paramètre de l’état
Les tables suivantes sont en ligne :
Table |
Contenu significatif |
Intitulé Table |
---|---|---|
AREPORT [ARP] |
Oui |
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.
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é ...
Les tables suivantes sont en ligne :
Table |
Contenu significatif |
Intitulé Table |
---|---|---|
AREPORT [ARP] |
Oui |
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.
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.
Les tables suivantes sont en ligne :
Table |
Contenu significatif |
Intitulé Table |
---|---|---|
AREPORT [ARP] |
Oui |
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).