Modèle IMPETAT
Le modèle IMPETAT permet d'imprimer un état conçu avec le générateur d'états d'Oxygène. Le schéma prédéfini du modèle actionne les mécanismes d'impression et donne la main au programme aux moments opportuns, afin qu'il puisse effectuer des traitements complémentaires.
Le concepteur du logiciel a, en règle générale, peu de programmation à ajouter à ce modèle ; en effet, dans la plupart des cas, l'état est pratiquement autonome. Pour assimiler rapidement les possibilités offertes par le générateur d'états, nous vous conseillons vivement d'étudier les exemples d'états fournis en standard avec Oxygène (Exemples « Prise en Main » et « Facturation »).
Liste des déclarations standards
Nom Désignation
AIDE Fichier
d'aides
ETAT Etat
utilisé
BASE Base
de données à utiliser
TABLE Contexte
de table principale
TABLE_SECONDAIRE Contextes
de tables secondaires
LIBELLES Table
de libellés
REP_OBJ Répertoire
de recherche des objets
SOCIETE Code
de la société
VARIABLES Liste
des variables à utiliser
PARAMETRES Liste
des paramètres formels
SRC_MODELE Fichier
source contenant des modèles
PROFIL Profil
de l'impression
PERIPH Déclaration
du périphérique
MODES Mode
d'impression
Liste des méthodes standards
Nom Evénement correspondant
INIT Initialisation
DEBUT_TRI Initialisations
avant le tri des enregistrements
DEBUT Début
de l'objet
FIN Fin
normale de l'objet
ABANDON Abandon
par l'utilisateur
SORTIE Sortie
de l'objet
Liste des méthodes spécialisées
Nom Evénement correspondant
DEBUT_PAGE Début
d'impression d'une page physique
FIN_PAGE Fin
d'impression d'une page physique
SELECTION Sélection
des enregistrements de la table principale
DEBUT_FICHE Lecture
d'un nouvel enregistrement de la table principale
IMPRIME Impression d'un élément de l'état
DEBUT_FICHIER_PDF Evènement reçu lors du début d'un impression sur une imprimante PDF (voir SYSPDF)
FIN_FICHIER_PDF Méthode lancée à la fin d'une impression PDF
Liste des méthodes spécialisées de l'élément « Liste »
Nom Evénement correspondant
SELECTION Sélection des enregistrements de la table associée à la liste
<Liste>_PAGINATION Evénement de mise en page des listes
DEBUT_FICHE Lecture d'un nouvel enregistrement de la associée à la liste
<Ruptures> Ruptures d'informations sur tri
Fonctionnement du modèle
Comme les écrans, un état (conçu avec le générateur d'états d'Oxygène) est constitué d'éléments plus ou moins complexes identifiés par un code alphanumérique. Lors de l'impression, chaque élément déclenche des événements spécialisés adaptés à ses caractéristiques.
Les éléments de base constituants un état sont :
les zones,
les libellés,
les cadres,
les dessins (Bitmap).
L'état est également constitué d'éléments plus sophistiqués, capable de prendre en charge de manière automatique des problèmes tels que les sauts de page, les totalisations, l'impression de pages de garde, l'impression d'étiquettes.
Les éléments « complexes » sont les suivants :
- les folios,
- les régions,
- les listes,
- les sections.
A l'exception des folios et des régions (voir plus loin), tous les contrôles peuvent être associés à un code qui préfixera les événements qui leurs sont associés. Ainsi pour une liste de code LSTCLI on obtiendra des événements LSTCLI_SELECTION, LSTCLI_DEBUT_FICHE, LSTCLI_IMPRIME.
Les déclarations standards
Les déclarations BASE et TABLE sont optionnelles dans un objet dérivant de IMPETAT, car elle sont fournies par l'état lui-même. Dans tout les cas, si la base et la table principale sont définies par programme, elles doivent être conformes à celles définies dans l'état.
ETAT
Syntaxe : ETAT : code état
L'état sera cherché dans le global (ou les globaux), dans le répertoire courant, puis dans la déclaration REP_OBJ, avant d'être cherché dans [OXYPP].
CLASSEMENT, TRI et ORDRE
Les déclarations standards d'un critère de tri sont interdites dans un objet de type IMPETAT, car elles entreraient en conflit avec celles fournies directement dans l'état.
PERIPH et MODES
Les déclarations PERIPH et MODES voient leurs possibilités réduites et leurs valeurs par défaut modifiées.
- PERIPH vaut P ce qui limite l'impression aux imprimantes connectées à l'ordinateur. Le choix ECRAN n'est pas disponible.
- mettre D dans PERIPH pour imprimer directement sur l'Imprimante PDF.
- Les paramètres supplémentaires Hauteur, Largeur, Hpage et Bpage de la déclaration PERIPH sont inutiles, car le quadrillage ligne/colonne qu'ils définissent n'est pas utilisé par l'impression d'un état, sauf si le programmeur continue d'utiliser les anciennes instructions d'impressions (ce qui est fortement déconseillé, car contraire à la logique même d'un état).
- MODES vaut F ce qui élimine le choix de l'interligne et du mode brouillon dans les boîtes de dialogue de configuration, car elle ne sont pas opérationnelles dans le cas d'un état.
Les méthodes spécialisées du modèle
DEBUT_PAGE et FIN_PAGE
Evénements déclenchés respectivement, lorsque le modèle commence et termine une nouvelle page physique. On entend par page physique, une page réelle au niveau papier ; ainsi, dans le cas d'un étiquetage, le passage d'une étiquette à l'autre ne déclenche les événements DEBUT_PAGE et FIN_PAGE que sur la dernière étiquette de chaque page.
Ces méthodes n'ont aucune action par défaut ; le programmeur n'a cependant aucun code à taper, puisque les sauts de page sont traités par les automatismes de l'état. Il peut cependant redéfinir ces méthodes pour y placer des traitements spécifiques.
< CodeElement >_IMPRIME:
La méthode IMPRIME donne la main au programme pour chaque contrôle imprimé avant l'impression effective de celui-ci. La méthode est préfixée par le code de l'élément en cours d'impression.
SELECTION
La méthode SELECTION donne la main au programme pour chaque fiche lue lors du parcours de la table principale de l'état. Le programme peut ainsi indiquer à l'état que la fiche en cours ne doit pas être imprimée en utilisant l'instruction Rejeter.
La méthode SELECTION ne doit pas être utilisée pour effectuer des cumuls, car l'événement peut être déclenché bien avant l'impression réelle, et plus précisément pendant le tri des enregistrements. |
DEBUT_FICHE
La méthode DEBUT_FICHE donne la main au programme pour chaque fiche effectivement imprimée. Elle est particulièrement adaptée pour :
- effectuer des calculs complexes,
- lire des tables en liens,
- rendre visible ou cacher les éléments,
- mettre à jour des tables secondaires
Dans l'événement DEBUT_FICHE, il n'est plus possible de refuser l'impression de la fiche. |
Les variables utilisables dans l'édition
Les variables suivantes peuvent être utilisées dans les contrôles de l'état. Elles font toutes référence aux données ou instant en cours.
$PAGE : numéro de page
$COMPTEUR : compteur incrémentiel pour l'opération de type compteur
$EXEMPLAIRE : exemplaire
$DATE : date au format "jj/mm/aaaa"
$JOUR : libellé du jour de la semaine
$MOIS : libellé du mois
$ANNEE : année
$LDATE : "[numéro du jour] [libellé du mois] [année]"
$HEURE : "heures:minutes:secondes"
DEBUT_FICHIER_PDF
Evènement reçu lors du début d'une impression en PDF. Une impression PDF peut être lancée par 3 moyens :
- en sélectionnant l'imprimante "Imprimante PDF Memsof"
- avec le bouton "PDF" de l'écran de paramétrage avant impression
- quand le programmeur a mis D dans la déclaration PERIPH.
Quatre paramètres permettent de modifier des options par défaut.
Chaine Reference pNomFichier // nom du fichier à générer
Chaine Reference pRepertoire // répertoire du fichier
Chaine Reference pTitre // titre du document PDF
Entier Reference pUI // afficher oui ou non la fenêtre "Enregistrer sous".
FIN_FICHIER_PDF
Méthode lancée à la fin d'une impression PDF. Deux paramètres :
Chaine vFichierGenere // Donne le chemin complet du fichier qui a été généré.
Entier vOuvrir // Flag Vrai ou Faux pour l'ouverture du document PDF dans l'application associée. (Dépend du paramétrage PDF : Accueil > Paramétrage)