Le modèle d'objet ACCES

Le modèle ACCES complète les fonctionnalités du modèle SCRITERE (dont il hérite) par les automatismes composants et par un certain nombre de méthodes normalisées.

Rappels :

  • Les automatismes composants sont pris en charge par le système dès lors que les conventions de la programmation composant sont respectées. Pour de plus amples informations consultez le paragraphe intitulé "Les conventions à respecter".
  • Les méthodes normalisées ont pour objectif de rendre l'interface utilisateur homogène quel que soit le logiciel utilisé. Dans le cas du modèle ACCES les méthodes standards postulent que le composant fournit un objet GESTION permettant de consulter, modifier et créer les données du composants. L 'appel aux services de l'objet GESTION est donc implicite dans les objets dérivant de ce modèle.

Liste des déclarations standards

  BASE   Base de données
 

TABLE

 

Table principale

  ECRAN   Ecran
 

MENU

  Menu déroulant et barre d'outils. Par défaut, acces.key

Liste des paramètres

  Chaine Valeur pident Identifiant sur lequel se positionner au démarrage

Liste des variables héritées et contexte de table

  Chaine   CodeListe Code de la liste (par défaut "LST")
  Chaine   CodeClassement Critère de classement de la liste
  Contexte   LISTEINDEX Contexte sur les champs indexés de la table

Liste des méthodes héritées de SCRITERE

  REMPLIT_CLASSEMENT   Met en mémoire la liste des champs indexés
 

ANALYSE_ECRAN

  Analyse les extensions de l'écran
  AJOUTE_CRITERE   Ajout par programme d'un critère
 

ANALYSE_SAISIE

  Analyse de l'action de l'utilisateur
 

ACTIVE_REQUETE

  Positionne les filtres sur la table principale
 

COMPARE_REQUETE

  Compare les critères pour optimiser
 

POSITIONNE_REQUETE

  Positionne la liste avant réaffichage
 

ACTIVE_REQUETE_DEFINITIVE

  Transmet les filtres vers un autre objet

Liste des méthodes spécialisées

  GERER   Appel à l'objet GESTION du composant
 

MODIFIER

  Appel à l'objet GESTION en mode modification
  CREER   Appel à l'objet GESTION en mode création
 

<CodeListe>_CHOIX

  Double-clic dans la liste

Fonctionnement du modèle

ACCES dérive du modèle SCRITERE qui est conçu pour faciliter la recherche d'informations. L'interface utilisateur est en général constituée d'un bandeau contenant les différents critères de recherche et d'une liste affichant les enregistrements de la table principale. Les points forts du modèle sont les suivants :

  • L'ergonomie du modèle est particulièrement intuitive pour l'utilisateur
  • La programmation est très simple et bénéficie des automatismes composants
  • Les critères de filtre sont déduits directement de l'écran
  • La simple modification de l'écran permet d'ajouter de nouveaux critères de recherche

Les déclarations standards du modèle

BASE et TABLE :

Ces déclarations sont indispensables, elles définissent la table principale sur laquelle seront posés les filtres déduits de l'écran. Notez cependant que nous préconisons dans le cas d'une programmation composant de déclarer la base au niveau des déclarations globales du composant.

 

ECRAN et MENU :

L'écran doit contenir un contrôle de type "liste" affichant les informations de la table principale. Le code de la liste (LST par défaut) peut être redéfini par l'intermédiaire de la variable héritée CodeListe. Afin de minimiser la programmation, le nom de l'écran et celui du menu déroulant ont été normalisés. Le modèle utilise par défaut l'écran ACCES.ECR et le menu ACCES.KEY.

 

Principe Les écrans, menu déroulants, menus contextuels et bitmaps sont en général regroupés dans un fichier de ressources appelé GLOBAL. Ce fichier est déclaré par l'intermédiaire de la déclaration GLOBAL du langage. Il est cependant inutile d'effectuer la déclaration dans chaque objet. Une déclaration unique au niveau des déclarations globales du composant est suffisante.
La déclaration REP_OBJ permet de définir les répertoires de recherche des ressources du composant. Contrairement à la déclaration GLOBAL, cette déclaration doit être effectuée dans chaque objet. En pratique, elle n'est utile que pendant les phases de développement et de "relookage" du produit.

Les méthodes et variables héritées de SCRITERE

Les méthodes et variables héritées du modèle SCRITERE ne sont pas redéfinies par le modèle ACCES. Pour plus d'informations consultez la documentation du modèle SCRITERE.

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

Le modèle ACCES considère que le composant met à disposition un objet GESTION qui dérive d'un des modèles de gestion préconisé par la programmation de composants et qui attend en paramètre l'identifiant de la fiche souhaitée et le mode opératoire. Les méthodes décrites ci-dessous permettent à l'utilisateur de "naviguer" de l'écran d'accès vers l'écran de gestion en cliquant sur des boutons de l'écran.

 

Méthode GERER

La méthode GERER crée une instance de l'objet GESTION du composant en lui passant en paramètre l'identifiant de la fiche en cours. Aucun mode opératoire n'étant précisé, c'est celui défini par défaut (dans l'objet appelé) qui sera utilisé.

 

Méthode MODIFIER

Elle crée une instance de l'objet GESTION en lui passant en paramètre l'identifiant de la fiche en cours et le mode opératoire. Le mode vaut "mM" par défaut ; il indique à l'objet GESTION que l'on souhaite arriver directement en mode modification.

 

Méthode CREER

Elle crée une instance de l'objet GESTION en lui passant en paramètre l'identifiant de la fiche en cours et le mode opératoire. Le mode vaut ici "cC" ; il permet la création successive de plusieurs enregistrements.

 

Méthode <CodeListe>_CHOIX

Lorsque l'utilisateur effectue un double-clic dans une liste (ou tape Entrée dans la norme clavier standard), Oxygène++ déclenche la méthode générique CTRL_CHOIX qui elle-même fait appel à la méthode <CodeListe>_CHOIX (<CodeListe> symbolisant ici le code du contrôle de type "Liste" défini dans l'écran). Dans le cas du modèle ACCES, ce mécanisme a été redéfini de façon à ce que le double-clic provoque l'appel à la méthode MODIFIER. L'événement <CodeListe>_CHOIX n'est donc plus déclenché dans ce modèle.