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

BASE et TABLE

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"

 

Elément de type « Liste »

Notion de Ruptures

Notions de Folios

Exemples d'objet IMPETAT

 

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)