Modèle d'objet EDITION

Le modèle EDITION sert à réaliser très simplement des éditions de type liste aussi bien à l'écran que sur imprimante. Le schéma logique et les méthodes standards de ce modèle sont prévues pour prendre en charge de façon semi-automatique les problèmes de saut de pages en fonction du périphérique d'impression choisi.

 Les fonctionnalités de pré-visualisation à l'écran, avec possibilités de zoom et de retour en arrière sont entièrement prise en charge par Oxygène++.

Liste des déclarations standards

Nom                                      Désignation

AIDE                                      Fichier d'aides
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

TRI 1 à TRI 7                         Définition des critères de tri
CLASSEMENT                    Classement sur un champ séquentiel indexé

ORDRE 1 à ORDRE 7        Ordre de tri pour chaque critère
ORDRE                                 Ordre de classement

Liste des déclarations spécialisées du modèle

Nom                                      Désignation

PERIPH                                 Déclaration du périphérique
MODES                                 Mode d'impression
PROFIL                                 Profil de l'édition

Liste des méthodes standards

Nom                                      Evénement correspondant

INIT                                         Initialisation

DEBUT_TRI                          Début du tri
SELECTION_TRI                 Acceptation d'un enregistrement pendant le tri

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

TABULATION                       Déclaration de tabulation

DEBUT_DOCUMENT         Début du document
FIN_PAGE                            Arrivée en bas de page
SAUT_PAGE                       Changement de page
DEBUT_PAGE                    Nouveau début de page
FIN_DOCUMENT                Fin du document

SELECTION                         Acceptation d'un enregistrement
POUR_TOUT                        Lecture d'un nouvel enregistrement de la table

DEBUT 1 à DEBUT 7          Début d'un critère de tri
FIN 1 à FIN 7                         Fin d'un critère de tri

Fonctionnement du modèle

Le modèle d'objet EDITION dérive du modèle PARCOURS, il hérite ainsi des automatismes de construction d'une table temporaire de tri (plan de tri)  et de parcours des enregistrements de la table.

A l'exécution, l'objet de type EDITION parcours séquentiellement la table principale déclarée en tenant compte des critères de TRI et de FILTRE définis. Les automatismes par défaut imprimeront une liste complète avec un en-tête, un bandeau (titre des colonnes), un corps et un pied. Ils gèrent également la numérotation des pages et les ruptures. Le programmeur peut bien évidemment intervenir par programmation pour compléter ou remplacer les méthodes standards.

 

Si la table est vide ou si aucune fiche ne correspond aux critères de sélection, un message prévient l'utilisateur et la sortie se fait en déclenchant les méthodes FIN, puis SORTIE.

Les déclarations standards du modèle

BASE et TABLE

Les déclarations BASE et TABLE sont obligatoire dans un objet dérivant du modèle édition.

TRI 1 à TRI 7, ORDRE 1 à ORDRE 7, CLASSEMENT et ORDRE :

Les déclarations relatives aux critères de tri sont prises en charge de manière classique. Pour plus d'informations consulter la documentation des déclarations.

Les déclarations spécialisées du modèle

PERIPH

La déclaration PERIPH permet de indiquer le type de périphérique sur lequel l'édition doit avoir lieu, ainsi que des options de pagination.

Syntaxe : PERIPH : périphérique [,largeur [,hauteur [,marge haute[,marge basse]]]]

 

Le périphérique peut être :

P : pour que le périphérique soit une imprimante demandée à l'utilisateur.

I : pour choisir d'éditer directement sur la dernière imprimante utilisée ou l'imprimante défini au niveau du système d'exploitation  

E : pour choisir une consultation directe à l'écran,        

? : pour avoir en plus du choix de l'imprimante, le choix « Ecran » (valeur par défaut).

 

Exemple de choix du périphérique :

 

Les paramètres suivants fournissent des informations relatives à la pagination :

largeur

Nombre caractères en largeur souhaité

hauteur

Nombre de lignes en hauteur

marge haute

Nombre de lignes à laisser libres en haut de page.

marge basse

Nombre de lignes à laisser libres en bas de page avant déclenchement de l'événement FIN_PAGE.

 

Explications:

Tous ces paramètres sont facultatifs, leur valeur par défaut est soit une valeur fixée par le modèle, soit déterminée en fonction des capacités de l'imprimante sélectionnée (et du driver d'imprimante installé).

La largeur est une information fondamentale, car c'est elle qui conditionne le choix de la police de caractères (de taille fixe) utilisée. Si la largeur est omise, le modèle tient alors compte des déclarations de colonnes faites dans TABULATION grâce notamment à l'instruction Editer.

La hauteur ne doit pas être fournies par le programmeur. En effet, si elle est omise, le système déduit la hauteur de façon automatique en fonction de nombreux paramètres tels que l'imprimante sélectionnée, le format de papier utilisé, l'orientation du papier, la police de caractères, et les préférences de l'utilisateur. Ainsi, l'édition s'adaptera automatiquement aux conditions réelles d'impression. Si la hauteur est précisée (cas notamment d'une impression conçue pour un papier pré-imprimé), le modèle respecte alors le choix du programmeur, il n'y a donc plus d'adaptation automatique suivant l'imprimante et le papier choisi.

La marge haute et basse doivent être exprimées en nombre de lignes, elles ont respectivement les valeurs par défaut 4 et 3.

Remarque importante :

La marge de 3 lignes est suffisante en standard, car par défaut le pied de page n'est constitué que d'un trait horizontal (TRAIT H) ; bien évidemment, le programmeur à très fréquemment besoin d'imprimer un pied de page de plusieurs lignes. Si tel est le cas, il doit augmenter la marge basse. Syntaxiquement, il est possible de définir la marge basse sans préciser les autres paramètres grâce à l'utilisation du mot clé Defaut.

Exemple : PERIPH : ”P”,Defaut, Defaut, Defaut,10

PROFIL

La déclaration PROFIL permet de définir un code qui sera utilisé pour mémoriser les derniers choix de l'utilisateur et de les rappeler lors de la prochaine impression.

Syntaxe : PROFIL : ”DOCUMENT ”

 

MODES

La déclaration MODES n'autorise que la valeur ”F” dans les objets de type EDITION (et IMPRESSION). Le mode ”F” modifie les mécanismes d'adaptation dynamique de mise en page.

Syntaxe : MODES : F

Explications : Le mode ”F” dit « Grille fixe » doit être utilisé chaque fois que l'impression doit positionner les informations de façon précise sur la page, et en particulier lors de l'utilisation d'un papier préimprimé.

Si vous indiquez cette déclaration, le système découpe virtuellement la page en respectant scrupuleusement les paramètres largeur et hauteur définis dans la déclaration PERIPH, ce qui élimine le centrage automatique qui est fait dans le mode normal.

- En mode « grille fixe », le choix «Qualité brouillon » est grisé dans la boîte de dialogue de choix de l'imprimante.

- L'utilisation du mode « grille fixe » respecte la hauteur définie dans la déclaration PERIPH et cela quelque soit la taille et l'orientation du papier utilisé. Ainsi, une facture de 66 lignes en portrait, aura également 66 lignes en paysage.

Les méthodes standards du modèle

SELECTION_TRI

La méthode SELECTION_TRI est déclenchée pour chaque enregistrement de la table principale.

Les méthodes spécialisées du modèle

TABULATION

La méthode TABULATION est spécialement conçue dans le but de définir les colonnes à imprimer. Cette méthode est exécutée très tôt, juste après la méthode INIT de construction de l'objet, et avant la construction éventuelle de la table temporaire de tri.

La définition des colonnes à imprimer s'effectue grâce aux instructions Editer, Separateurs, Colonnes, Designations, Styles, etc. Si les colonnes n'ont pas été définies, le modèle édite par défaut tous les champs de la table principale.

Le rejet de l'enregistrement en cours est possible grâce à l'instruction Rejeter. Si la condition de rejet peut être exprimée sous la forme d'un requête, il est dans ce cas plus performant de poser la requête directement dans la méthode DEBUT_TRI.

Si l'un des critères de tri utilise une variable, elle devra être impérativement affectée dans cette méthode.

DEBUT_DOCUMENT

La méthode DEBUT_DOCUMENT est déclenchée une seule fois, au moment de l'impression de l'en-tête de la première page. Elle effectue en standard l'impression du titre de l'objet centré dans un cadre simple. On peut redéfinir le titre utilisé par défaut en rappelant la méthode standard de la façon suivante :

AppliquerDefaut DEBUT_DOCUMENT (titre)

Action par défaut : Se positionne sur la marge haute (PageH), imprime le titre dans un cadre simple (TraitH, TraitB, Imprimer), et le numéro de page. Saute une ligne (Lignes) puis imprime les titres de colonnes (Bandeau).

FIN_PAGE

Méthode déclenchée dès que la page est pleine, c'est-à-dire lorsque la dernière ligne imprimée à atteint le bas de page (Bpage).

Action par défaut : Ferme le cadre (comme Trait H).

La méthode FIN_PAGE enchaîne sur les méthodes SAUT_PAGE et DEBUT_PAGE.

SAUT_PAGE

Méthode déclenchée au moment du changement de page entre FIN_PAGE et DEBUT_PAGE.

Action par défaut : Change de page (comme Page F).

DEBUT_PAGE

La méthode DEBUT_PAGE est déclenchée au moment de l'impression de l'en-tête d'une nouvelle page (non déclenché pour la première page). Elle effectue en standard l'impression du titre de l'objet centré dans un cadre simple. On peut redéfinir le titre utilisé par défaut en rappelant la méthode standard de la façon suivante :

AppliquerDefaut DEBUT_PAGE (”Mon titre”)

Action par défaut : Idem que DEBUT_DOCUMENT avec un bandeau moins haut.

FIN_DOCUMENT

Cette méthode est déclenchée après détection de la fin de table et donc sur la dernière page de l'édition. Notez que la méthode FIN_PAGE n'est pas déclenchée dans ce cas.

Action par défaut : ferme le cadre (comme Trait H).

SELECTION

La méthode SELECTION permet d'effectuer les sélections qui n'ont pu être posées dans la méthode DEBUT_TRI. Le rejet de l'enregistrement en cours est possible grâce à l'instruction Rejeter, dans ce cas, la méthode POUR_TOUT n'est pas déclenchée et le système passe à l'enregistrement suivant.

POUR_TOUT

Cette méthode est déclenchée pour chaque enregistrement de la table principale correspondant aux critères de sélection.

Action par défaut : impression de la ligne définie dans la méthode TABULATION (Instruction : Tabuler)

FIN 1 à FIN 7

Méthodes déclenchées lors de la détection d'une rupture de valeur d'un critère de tri. Ces méthodes sont spécialement conçues pour imprimer des sous-totaux. Notez qu'à ce niveau, la table principale est encore positionnée sur le dernier enregistrement imprimé.

Action par défaut : ferme le cadre (comme TraitH)

DEBUT 1 à DEBUT 7

Méthodes déclenchées lors de la détection d'une rupture de valeur d'un critère de tri. Exemple si le critère de tri est le champ VILLE (TRI 1 : ”VILLE”), la méthode DEBUT 1 s'imprime à chaque fois qu'on change de ville.

Rappel méthode par défaut : AppliquerDefaut DEBUTn (titre_rupture)

Action par défaut : Imprime un en-tête intermédiaire avec le libellé du champ associé au critère de tri, suivi de la valeur en cours.

ABANDON

Méthode déclenchée lorsque l'utilisateur ferme la fenêtre de pré-visualisation à l'écran. Dans le cas d'une impression directe vers l'imprimante, elle n'est pas déclenchée, on passe alors par les méthode normales FIN et SORTIE.

Schéma logique du modèle :

          Construction de l'objet

          INIT : Ouverture des tables

 

          TABULATION

 

          DEBUT_TRI

 

          TRI
          
SELECTION_TRI

                                  

          AVANT_DEBUT             

          DEBUT

          APRES_DEBUT 

           

          DEBUT_DOCUMENT     ou       DEBUT_PAGE

          DEBUT 1 à DEBUT 7

 

          AVANT_POUR_TOUT

          SELECTION         

          POUR_TOUT

          APRES_ POUR_TOUT

 

          FIN 1 à FIN 7

          SAUT_PAGE

          FIN_PAGE                         ou       FIN_DOCUMENT

 

          AVANT_FIN         

          FIN

          APRES_FIN         

           

          AVANT_SORTIE

          SORTIE      
          
APRES_SORTIE 

 

          Destruction de l'objet       

 

Exemple d'objet EDITION