IMPRIME
Description
Cette action est appelée juste avant l'impression du document par Crytal Report. Attention ! Cette action est obligatoire, si un traitement d'init est précisé dans le dictionnaire de l'état. Elle n'est pas appelée par l'instruction Gosub mais par l'instruction Call. Deux paramètres lui sont passés NBPAR (nombre de paramètres) et PARAMETRE ( tableau des paramètres). L'action doit donc s'écrire de la façon suivante :
Subprog IMPRIME(NBPAR,PARAMETRE)
Variable Integer NBPAR
Variable Char PARAMETRE()()
...
End
Modèle
Etat
Utilisation
Elle permet principalement de :
mettre à jour des tables X3 ( des flag d'impression, par exemple ).
constituer une table de travail afin que les données soient plus facilement exploitables par Crystal Report.
ne pas lancer l'impression en positionnant GOK = 0
A ce niveau, on peut exploiter les paramètres de l'état stockés dans le tableau PARAMETRE (1..NBPAR) ou NBPAR est le nombre de paramètres. Un paramètre est exprimé dans ce tableau sous la forme : nom paramètre = valeur paramètre. voir le détail des paramètres dans l'aide sur l'action EXEC.
Exemple
On analyse les paramètres saisis pour appliquer un filtre de sélection sur la table à éditer. Ceci est nécessaire pour qu'avant l'impression, on stocke les enregistrements dans une table de travail.
Subprog EXEC(NBPAR,PARAMETRE)
Variable Integer NBPAR
Variable Char PARAMETRE()()
[L]CRITERE = "1=1"
For I=1 To NBPAR
J=instr(1,[L]PARAMETRE(I),"=")
If J
[L]PARAM = left$([L]PARAMETRE(I),J-1)
[L]VALEUR = right$([L]PARAMETRE(I),J+1)
Case [L]PARAM
When
"sitedeb" : [L]CRITERE -= "& SALFCY>='"+[L]VALEUR+"'"
When
"sitefin" : [L]CRITERE -= "& SALFCY<='"+[L]VALEUR+"'"
Endcase
Endif
Next
Filter [F:SIV] Where evalue([L]CRITERE)
Gosub TRT_SIV: # stockage dans table de travail