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