Cette fonction permet de créer et de modifier les fenêtres du progiciel en définissant leur description dans une table.

Pour qu'un traitement puisse être exécuté en mode client-serveur comme en mode Web, il est impératif de regrouper les écrans d'un même affichage dans une fenêtre.  

Chaque fenêtre est constituée d'une liste d'écrans, de menus, de boutons bas d'écran, et de browsers. A chaque menu et bouton, est associée une action, ainsi qu'éventuellement des paramètres.

Pour un modèle objet, une fenêtre doit être créée avec un code Oxxxxxx est le code objet. cette norme est fortement conseillée mais cependant pas obligatoire. De plus, il est possible d'associer plusieurs fenêtres à un objet et ce, pour permettre les objets à variante. Ces fenêtres supplémentaires sont générées automatiquement en validation de transaction de saisie avec un code WOxxxyyyxxx est le code de l'objet et yyy le code de la transaction.

Il est possible de définir des fenêtre au format VT.

 

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

En-tête

Présentation

L'en-tête permet d'identifier la fenêtre.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Le code de la fenêtre doit être composé de 1 à 10 caractères (lettres ou chiffres mais commençant obligatoirement par une lettre). Il est recommandé de nommer une fenêtre liée à un objet Oxxxxxx est le code objet. Les mots réservés d'Adonix sont interdits.

  • Intitulé (champ ZDES)

Saisissez la description de la fiche concernée.

Cet intitulé long est utilisé en titre dans les écrans et les états.

Fermer

 

Onglet Ecrans

Présentation

 

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Caractéristiques

  • Fenêtre modèle (champ MDL)

Ce champ permet de définir des fenêtres qui ne seront jamais validées. De même, si une fenêtre, contient un écran modèle, elle ne sera pas validée.

  • Actif (champ ENAFLG)

 

Ce champ permet de désactiver la fenêtre. Si cette fenêtre faitpartie d'un ensemble de transactions lié au même OBJet, ellen'apparaîtra plus dans le bouton transaction de la gestion del'OBJet.

  • Fenêtre VT (champ FVT)

Ce flag indique que cette fenêtre est au format VT.

Bloc numéro 2

 

Ce code d'accès permet d'interdire l'accès à la fenêtre(transaction) pour certains utilisateurs.

Si la zone est renseignée, seuls les utilisateurs qui auront cecode d'accès dans leur profil accèder à cette fenêtre selon lesdroits accordés.

 

Il est possible de définir plusieurs fenêtres pour un mêmeOBJet. Dans ce cas, pour distinguer les fenêtres entre elles, ilfaut définir des transactions.

Dans la gestion d'OBJet, le bouton transaction permet devisualiser les intitulés des transactions accessibles. La variableGFLAG permet de définir une transaction avant de rentrer dans lagestion d'OBJet.

On peut définir des transactions sans qu'il y ait un OBJetdéfini. Dans ce cas, il faut gérer 'manuellement' les différentestransaction.

  • Transaction (champ TRN)

 

  • Intitulé transaction (champ LIBEL)

 

Ce champ est à renseigner pour une fenêtre de type consultation ou critères de consultation.

Bloc numéro 5

Un code activité permet :

  • de rendre optionnel un élément du dictionnaire si la valeur associée au code activité est nulle.
  • de signer les éléments spécifiques dès lors qu'ils sont marqués par un code commençant par X, Y ou Z.
  • de dimensionner un nombre de lignes maximum lorsque le code activité marque des éléments d'un tableau.

Ainsi, si le code activité est non actif, l'élément marqué ne sera pas utilisable, et le code associé (s'il y en a) ne sera pas généré ni activable.

  • Module (champ MODULE)

 

Indiquez le module par lequel est utilisé cette fenêtre. Si lafenêtre est utilisée par plusieurs modules, indiquez"superviseur".

  • Type fenêtre (champ WINTYP)

Ce champ indique au superviseur le contexte dans lequel la fenêtre est appelée :

  Objet : fenêtre appelée en gestion objet.

  Consultation : fenêtre principale appelée en consultation.

  Critères consultation : fenêtre de critères appelée en consultation.

  Divers : à indiquer pour tout autre contexte d'appel pour cette fenêtre.

  • Affichage (champ TYP)

Permet de préciser le type de la fenêtre :

  • Plein écran (inpbox)
  • Boîte de dialogue (fenêtre indépendante pas forcément pleine page, pouvant contenir bouton, menu, listes gauches)
  • Boîte message (fenêtre indépendante sans menu, sans listes gauches, sans tunnel)

Ecrans à ouvrir

Donnez le nom de l'écran qui est positionné au dessus du ou des onglets. Lorsqu'on n'a qu'un seul écran, il est à définir dans en tant qu'onglet. 

Tableau Onglets

Indiquez le nom des écrans de gestion dans l'ordre d'affichage des pages. Il faut au moins un écran dans une fenêtre.

Pour les fenêtres liées à l'objet mais issues des transactions (code transaction renseigné), ces informations sont issues de la transaction. Attention !  Il ne sert à rien de modifier les codes onglets puisque ces informations sont re-générées dès la validation de la transaction. 

  • Intitulés onglets (champ ZINTONG)

 

  • Rang (champ ROWMSK)

Le rang permet d'ordonner les onglets dans la fenêtre. Il est initialisé de 5 en 5. L'ajout d'un écran spécifique doit se faire à la fin du tableau; c'est le rang qui permettra de le placer à l'endroit voulu dans la fenêtre.

  • Visible (champ FLGMSK)

Si ce champ n'est pas coché, l'onglet et les champs de celui-ci sont invisibles. Cette fonction permet d'utiliser une même gestion d'objet soit pour une saisie complète (fenêtre avec tous les onglets) soit pour une visualisation rapide en masquant certains onglets.

Lorsqu'on positionne un onglet invisible, la classe [M] de l'écran est bien présente.

Lorsqu'on désactive un onglet par un code activité inactif, la classe [M] de l'écran est absente.  

Fermer

 

Onglet Boutons/menus

Présentation

On y trouve l'ensemble des boutons disponibles au bas de la fenêtre, ainsi que les menus apparaissant en haut de la fenêtre. Pour chaque bouton ou menu, on aura une action associée, ainsi qu'éventuellement un tableau de paramètres. 

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau Type

  • Type (champ TYPBOUT)

Menu local permettant de distinguer le bouton, du menu, ou de la ligne de menu. Le bouton se positionne automatiquement au bas de la fenêtre ; le menu est placé en haut de la fenêtre suite au Fichier / Edition / ...

  • Code (champ CODBOUT)

Il s'agit du code du bouton utilisable en programmation dans les actions AVANT_BOUT, EXEBOUT, etc.. De la même façon, on identifie les menus, pouvant être défini sur 2 niveaux, puis les lignes de menus. Le code du niveau inférieur reprend en premier(s) caractère(s) celui du niveau supérieur. Exemple, le menu A est découpé en menus AB et AC, eux-mêmes respectivement découpés en AB1 et AB2, puis AC3 et AC4.

Les caractères autorisés pour le spécifique sont toutes les lettres minuscules.

Les caractères autorisés pour le standard sont les lettres majuscules ainsi que les chiffres. Attention, il faut tenir compte de la restriction définie ci-dessous pour les fenêtres liées à un objet ou à une consultation. En effet, on ne peut pas utiliser les codes déjà utilisés pour les boutons du superviseur.

Les codes disponibles pour les boutons des fenêtres objet sont : BGOUVYZ0123456789

Les codes disponibles pour les boutons des fenêtres principales de consultations sont : ABHIJKMNOPQSTUVWXYZ12345678

  • Gestion (champ VALBOUT)

  • Non validant : les contrôles sur champ ne sont pas exécutés avantle déroulement du bouton ou du menu.
  • Validant: on précise alors que le bouton s'exécute si tous les contrôles sur champs sont valides.

  • Texte bouton (champ ZTXTBOUT)

Intitulé du bouton, du menu ou de la ligne dans le menu.

Il est possible de laisser ce texte vide pour définir une ligne séparatrice dans le menu.

Le code action fait référence au dictionnaire des actions, contenant à la fois le code traitement, et la liste des paramètres. Dans la gestion des fenêtres, la valeur pour ces paramètres est à renseigner dans le 2ème tableau, et ce, pour chaque action.

Lorsque le traitement déclenché par le bouton ou le menu, n'ouvre pas de fenêtre, et seulement dans ce cas, il est possible de référencer STD, SPE ou SPV dans le code action. Pour une fenêtre objet, par exemple, le sous-programme EXEBOUT ou STATUT du traitement SUBxxx, SPExxx ou SPVxxx s'exécutera alors ( xxx étant le code objet).

Un code activité permet :

  • de rendre optionnel un élément du dictionnaire si la valeur associée au code activité est nulle.
  • de signer les éléments spécifiques dès lors qu'ils sont marqués par un code commençant par X, Y ou Z.
  • de dimensionner un nombre de lignes maximum lorsque le code activité marque des éléments d'un tableau.

Ainsi, si le code activité est non actif, l'élément marqué ne sera pas utilisable, et le code associé (s'il y en a) ne sera pas généré ni activable.

Tableau Paramètres

 

  • Valeur (champ VALEUR)

Lorsque l'on est positionné sur une ligne du tableau des actions, les paramètres de cette action ( issus du dictionnaire des actions ) sont affichés afin de leur saisir une expression donnant la valeur du paramètre au moment de l'appel. Cette expression peut faire intervenir des constantes, des fonctions et des variables en ligne au moment de l'appel.

Fermer

 

Onglet Boutons prédéfinis

Présentation

On y trouve, l'ensemble des boutons banalisés. C'est une liste figée de boutons. Il s'agit, entre autre, d'indiquer si les boutons sont présents ou pas dans la fenêtre.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Tableau Boutons

  • Boutons (champ LIBSTD)

 

  • Code (champ CODE)

 

  • Gestion (champ VSTD)

 

  • O/N (champ BSTD)

Permet de rendre présent ou pas un bouton banalisé.

Le code action fait référence au dictionnaire des actions, contenant à la fois le code traitement, et la liste des paramètres. Dans la gestion des fenêtres, la valeur pour ces paramètres est à renseigner dans le 2ème tableau, et ce, pour chaque action.

Lorsque le traitement déclenché par le bouton ou le menu, n'ouvre pas de fenêtre, et seulement dans ce cas, il est possible de référencer STD, SPE ou SPV dans le code action. Pour une fenêtre objet, par exemple, le sous-programme EXEBOUT ou STATUT du traitement SUBxxx, SPExxx ou SPVxxx s'exécutera alors ( xxx étant le code objet).

Tableau Paramètres

 

  • Valeur (champ VALEUR)

Lorsque l'on est positionné sur une ligne du tableau des actions, les paramètres de cette action ( issus du dictionnaire des actions ) sont affichés afin de leur saisir une expression donnant la valeur du paramètre au moment de l'appel. Cette expression peut faire intervenir des constantes, des fonctions et des variables en ligne au moment de l'appel.

Fermer

 

Onglet Browser

Présentation

On y trouve des informations sur l'ensemble des browsers définis sur la fenêtre.

Fermer

 

Champs

Les champs suivants sont présents dans cet onglet :

Derniers lus

  • Affichage (champ DERLU)

Cette case permet d'activer/désactiver la liste de gauche Derniers lus.

  • En première position (champ FIRLIS)

 

Ce champs permet de placer en première position la liste degauche 'Derniers lus'.

Tableau Objets

 

Ce champ correspond à un OBJet.

Cet OBJet peut être un OBJet du type 'Browser', spécialementdédié à une liste de gauche.

  • Intitulé (champ ZINTLIS)

 

C'est l'intitulé qui apparaîtra dans le tiroir de la liste degauche.

  • Index (champ CLELIS)

Cette zone permet de définir un index de parcours du fichier principal pour l'affichage dans la liste de gauche et des fenêtres de sélection. Si la zone est vide, c'est le premier index de la table qui est utilisé.

  • Sens (champ ORDLIS)

Cette zone permet de définir un sens de parcours de la table principale pour l'affichage dans la liste de gauche et les fenêtres de sélection de l'objet.

  • Type liste (champ TRELIS)

  • simple
  • hiérarchisée : Lorsque la clé de parcours choisie pour la liste gauche est composée de plusieurs parties, la liste se fait alors en présentant d'abord uniquement la première partie de la clé. En double-cliquant sur l'une des valeurs de clés, on explore les sous-valeurs de clé, et ce sur le nombre de niveaux de sous-clés existant. Lorsque tous les niveaux de clés sont explorés, on peut sélectionner un enregistrement de la table.
  • picking simple : possibilité de sélectionner un ou plusieurs élements
  • picking : picking sur une liste hiérarchisée
  • Récursive : élément mère avec éléments fille eux éléments mère des éléments fille suivants

  • Browser (champ BROLIS)

Si cette zone est à oui, le double clic dans cette de liste de gauche permettra d'afficher l'enregistrement sélectionné, dans la partie droite de l'écran.

 

  • Préchargement (champ CHGLIS)

Cette zone permet de gérer le préchargement de la liste de gauche au démarrage.

  • Non : pas de préchargement
  • Partiel: préchargement suivant le nombre d'éléments prévus dans les paramètres (GNBGAUCHE)
  • Total : toute la table est préchargée.
  • Abr (champ ABRLIS)

Abréviation de la table exploitée par la liste gauche. On a la possibilité d'avoir 2 browsers s'appuyant sur une même table. Attention, il faut préciser dans ce browser ( dictionnaire objet / onglet sélection ) l'abréviation suivie du champ dans les expressions des éléments listés. Exemple : objet ORD.

  • Rang (champ ROWLIS)

Le rang permet d'ordonner les listes gauches dans la fenêtre. Il est initialisé de 5 en 5. L'ajout d'une liste gauche spécifique doit se faire à la fin du tableau; c'est le rang qui permettra de la placer à l'endroit voulu dans la fenêtre.

Un code activité permet :

  • de rendre optionnel un élément du dictionnaire si la valeur associée au code activité est nulle.
  • de signer les éléments spécifiques dès lors qu'ils sont marqués par un code commençant par X, Y ou Z.
  • de dimensionner un nombre de lignes maximum lorsque le code activité marque des éléments d'un tableau.

Ainsi, si le code activité est non actif, l'élément marqué ne sera pas utilisable, et le code associé (s'il y en a) ne sera pas généré ni activable.

  • Flêches (champ FLELIS)

Positionné à oui par défaut. Dans ce cas, les flèches apparaissent dans l'entête de liste gauche et permettent la pagination. On a la possibilité d'interdire la pagination, par exemple, pour des paginations complexes non développées ou demandant trop de ressources système.

  • Expression de lien (champ EXPLIS)

Expression nécessessaire pour les listes récursives afin de faire le lien entre l'enregistrement mère et fille.

Fermer

 

Etats

Par défaut, les états suivants sont associés à la fonction :

 AWINDOW : Dictionnaire des fenêtres

Mais ceci peut être modifié par paramétrage.

Boutons spécifiques

La validation permet de générer le traitement automatique lié à la fenêtre ( WGxxxx, ou xxxx est le code fenêtre )

Les champs suivants sont présents dans la fenêtre ouverte par ce bouton :

Bloc numéro 1

  • champ OBJET

 

  • champ CLES

 

Bloc numéro 2

  • Depuis le dossier (champ DOSORG)

Ce champ permet de définir le dossier à partir duquel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

  • Tous dossiers (champ TOUDOS)

Cette option permet de copier la fiche vers tous les dossiers définis dans le dictionnaire (table ADOSSIER de la solution courante).

  • Vers le dossier (champ DOSDES)

Ce champ permet de définir le dossier dans lequel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

Fermer

Ce bouton permet de recopier la définition de la fenêtre vers un autre dossier. Attention, il faudra valider la fenêtre dans le dossier de destination.

Ce bouton permet de visualiser le résultat. L'écran doit avoir été validé.

Ce bouton permet de visualiser le résultat en mode Web. L'écran doit avoir été validé.

Barre de menu

Validation / Validation globale

Cette validation globale exécute la validation de l'ensemble de écrans associés à cette fenêtre courante, la validation de l'objet s'il est renseigné, la validation de la fenêtre et des objets browsers qui lui sont associés.

Messages d'erreur

Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :

Masque référencé dans les onglets

L'écran qu'on tente de saisir en entête est déjà présent dans la liste des onglets.

Ce n'est pas un écran d'entête

L'écran référencé dans l'entête n'est pas de type entête.

Ecran modèle \ Les écrans modèles ne peuvent être définis que sur des fenêtres modèles

Un écran modèle ne peut pas être exécuté, donc ne peut se rattaché qu'à une fenêtre modèle.

Masque référencé en entête

L'écran qu'on tente de saisir dans un onglet est déjà présent en entête.

Zone obligatoire

Si la fenêtre est de type objet, le code objet est obligatoire.
Si la fenêtre est de type consultation ou critères de consultation, le code consultation est obligatoire.

«  caractère interdit

Pour des raisons techniques, le caractère ' » ' est interdit dans les intitulés : intitulés de la transaction.

Code déjà saisi en ligne nn

Les codes bouton, et lignes de menu doivent être uniques pour la fenêtre.

Menu inexistant

Le code d'une ligne de menu est constitué d'un caractère pour identifier un menu et de son propre caractère d'identification. Le caractère d'identification du menu n'est pas connu.

Code incorrect

Les codes autorisés pour les boutons et lignes de menu sont les lettres majuscules et minuscules ainsi que les chiffres. Les caractères suivant sont également autorisés pour les lignes de menu :
 " , ' , < , >.

Code réservé

Pour les boutons des fenêtres objets et consultation, ne pas prendre les codes réservés aux boutons du superviseur. Les codes réservés pour une fenêtre objet sont les suivants : ACDEFHJKLMRTW09@+=<>
Les codes réservés pour une fenêtre consultation sont les suivants : CDEFGLR09<>=+ -

Liste de gauche impossible avec cet objet

Il n'est pas possible d'insérer la liste gauche définie sur un objet de type tableau. 

Le nombre de zones de sélection est nul

On tente de rattaché un browser qui n'a aucune zone de définie pour la liste de gauche.

Champs de sélection incompatibles avec l'index

Sur une liste hiérarchisée ( simple ou picking ), le nombre d'éléments déclarés pour la liste de gauche doit être supérieur ou égal au nombre d'éléments de l'index utilisé.

Il doit y avoir un écran d'entête

Lorsque plusieurs onglets sont définis, on doit renseigner un écran d'entête.

Il doit y avoir un onglet

On doit renseigner au moins un onglet, lorsque un écran d'entête est défini pour cette fenêtre.

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre