CreerContexteComposant

Rôle :

Création d'un nouveau contexte de composant.

Syntaxe :

CreerContexteComposant <code composant>,<code contexte>

Notes :

 

Cette instruction permet de définir une nouvelle session de communication avec le composant <code composant> en lui attribuant un nom temporaire <code contexte>. Ce mécanisme s'avère nécessaire lorsque l'objet utilisateur a plusieurs relations vers le même composant.

<Code Composant> est une expression de type chaîne qui indique le composant en relation.

<Code contexte> est une constante de type chaîne. Elle indique le nom temporaire que l'on attribue au composant. Tous les appels effectués ensuite par l'intermédiaire des instructions telles que AppliquerMethodeComposant, doivent être fait en précisant le code de contexte et non pas le code du composant.

 

Explications :

Les composants communiquent leurs données publiques par l'intermédiaire de leur structure d'interface ; les données publiques étant récupérées dans un contexte de travail de code "I_"+<CodeComposant>. Pour un composant CLIENT en relation avec un composant ADRESSE, on a une clé étrangère CLIENT.ADRESSE_IDENT et un contexte de travail sur les données d'interface de code I_ADRESSE.

 

Imaginons maintenant le cas d'un composant CLIENT qui nécessiterait la gestion d'une deuxième adresse (les deux adresses étant traitées par le même composant). La deuxième clé étrangère ne peut plus s'appeler CLIENT.ADRESSE_IDENT puisque ce champ est déjà utilisé par la première relation. On doit donc définir une nouvelle session de communication avec le composant ADRESSE et cette session ne doit en aucun cas interférer sur la première relation. Pour atteindre cet objectif, nous utilisons la notion de "contexte" de composant. Dans notre exemple, on déclarera un contexte ADRESSE2 et une clé étrangère CLIENT.ADRESSE2_IDENT. Une fois le contexte déclaré, les automatismes d'Oxygène++ se mettent en œuvre de façon classique, les données d'interface relatives à notre deuxième relation étant récupérées par l'intermédiaire d'un contexte de travail de code I_ADRESSE2.

Au niveau de la programmation, tout se passe comme si un composant ADRESSE2 était présent sur le disque de l'ordinateur.

 

 

 

- L'utilisation de la déclaration CreerContexteComposant doit impérativement être effectuée dans la méthode INIT de l'objet et avant l'appel à l'implémentation standard par AppliquerDefaut.

 

- Depuis la version 3.10.1 d'Oxygène++, la déclaration du contexte de travail I_ADRESSE2 n'est plus nécessaire, elle est effectuée de façon automatique lors de l'initialisation de l'objet (Méthode INIT).

 

Exemple : composant CLIENT en relation avec deux adresses

 

Composant CLIENT "Les clients"

Declaration

   BASE : "GESCOM"

   TABLE : "CLIENT"

   GLOBAL : "CLIENT"

FinDeclaration

 

Objet GESTION : GESTION "Gestion des clients"

   Methode INIT

            CreerContexteComposant "ADRESSE","ADRESSE2"

            AppliquerDefaut

   FinMethode

FinObjet

 

Il faut bien comprendre que nous ne déclarons ici que le contexte qui pose problème. Le contexte ADRESSE de notre première relation est déduit automatiquement des informations affichées dans l'écran.