Exemples d'utilisation des liens

Cas_de_deux_liens_SIMPLES

Cas_de_deux_liens_AVEC_CONTEXTES

Cas_lien_sous_chaine

Cas de deux liens SIMPLES

Cas composant :

 

On veut obtenir, dans une facture, le champ DESIG du commercial attaché au client de la facture. EFAC est la table principale du composant facture. CLI et REPR sont les composants client et représentant

A l'utilisation, on notera l'expression suivante : EFAC->CLI->REPR.DESIG

 

Dans le descripteur de données, on mentionnera les informations suivantes dans la zone LIEN :

Pour les tables EFAC et I_EFAC:             C:CLI              au niveau du champ CLI_IDENT

Pour les tables CLI et I_CLI            :           C:REPR         au niveau du champ REPR_IDENT

 

Le code qui sera exécuté implicitement lors de l'évaluation de l'expression sera : 

AppliquerMethodeComposantLecture"GCPCLI"."LECTURE"(GCPEFAC.CLI_IDENT)

AppliquerMethodeComposantLecture"GCPREPR"."LECTURE"(I_GCPCLI.REPR_IDENT)

 

Le résultat obtenu est lu dans: I_REPR.DESIG

 

 

Cas non composant :

 

On veut obtenir le champ DESIG du commercial du client de la facture. CLI , REPR et EFAC sont des tables. Le résultat que l'on cherche est le même que dans le cas d'un lien entre composants. La méthode diffère en raison des automatismes liés aux composants.

A l'utilisation on notera l'expression suivante :

EFAC->CLI->REPR.DESIG

Dans le descripteur de données

on mentionnera les informations suivantes dans la zone LIEN :

Pour la table EFAC :           R:CLI              au niveau du champ CLI_IDENT

Pour la table CLI       :           R:REPR         au niveau du champ REPR_IDENT

 

Le code qui sera exécuté implicitement lors de l'évaluation de l'expression sera : 

Lire     CLI.IDENT  ,EgalA , EFAC.CLI_IDENT

Lire     REPR.IDENT , EgalA , CLI.REPR_IDENT

 

Le résultat obtenu est lu dans: REPR.DESIG

 

/p>

 

Cas de deux liens AVEC CONTEXTES

Cas composant :

 

On veut obtenir le champ VILLE de l'adresse de facturation et le champ VILLE de l'adresse de livraison.

EFAC est la table principale du composant facture. ADR est le composant adresse.

ADRF et ADRL sont des contextes différents du même composant ADR, représentant les composants adresse_de_facturation et adresse_de_livraison.

 

A l'utilisation, on notera l'expression suivante :

EFAC->ADRF.VILLE
EFAC->ADRL.VILLE

 

Dans le descripteur de données, on mentionnera les informations suivantes dans la zone LIEN :

Pour la table EFAC :          

C:ADR=ADRF          au niveau du champ ADRF_IDENT

C:ADR=ADRL          au niveau du champ  ADRL_IDENT         

 

Le code qui sera exécuté implicitement lors de l'évaluation de l'expression sera : 

ConnecterComposant "ADR","ADRF"

ConnecterComposant "ADR","ADRL"

AppliquerMethodeComposantLecture "ADRF"."LECTURE" (EFAC.ADRF_IDENT)

AppliquerMethodeComposantLecture "ADRL"."LECTURE" (EFAC.ADRL_IDENT)

 

Le résultat obtenu est lu dans: I_ADRL.VILLE et dans I_ADRF.VILLE

 

/p>

 

Cas non composant

 

Le cas non composant s'exécute comme le cas composant mais avec les différences suivantes : Le lien C: est remplacé par R: et, à l'exécution, les résultats ne sont plus dans les structures d'interface.

 

A l'utilisation, on notera l'expression suivante :

EFAC->ADRF.VILLE
EFAC->ADRL.VILLE

 

Dans le Descripteur de Données, on mentionnera les informations suivantes dans la zone LIEN :

Pour la table EFAC :          

R:ADR=ADRF          au niveau du champ ADRF_IDENT

R:ADR=ADRL          au niveau du champ  ADRL_IDENT          :

 

Le code qui sera exécuté implicitement lors de l'évaluation de l'expression sera : 

Création d'un contexte de table ADRF pour ADR

Création d'un contexte de table ADRL pour ADR

 

Lire ADRF.IDENT,EgalA,EFAC.ADRF_IDENT

Lire ADRL.IDENT,EgalA,EFAC.ADRL_IDENT

 

Le résultat obtenu est lu dans: ADRL.VILLE et dans ADRF.VILLE

 

  

Cas d'un lien exprimé par une sous-chaîne

Cas composant :

Le cas présent exprime la liaison entre deux composants avec extraction d'une partie d'un champ.

On veut obtenir le champ PHT (prix total HT) de la facture à partir d'une ligne de facture. LFAC est la table des lignes de facture. EFAC est le composant facture (plus précisement, c'est l'interface entete du composant facture).

La table LFAC contient un champ NUMERO constitué pour partie de l'IDENT de l'entête  (8 premiers caractères) et pour autre partie du numéro de ligne.

Dans ce cas, pour obtenir l'entête de facture à partir de la ligne, il faut extraire les 8 premiers caractères du champ NUMERO.

 

A l'utilisation, on notera l'expression suivante :

LFAC->EFAC.PHT

Dans le Descripteur de Données, on mentionnera les informations suivantes dans la zone LIEN :

Pour la table LFAC : C:EFAC(1,8)          au niveau du champ NUMERO

 

Le code qui sera exécuté implicitement lors de l'évaluation de l'expression sera : 

AppliquerMethodeComposantLecture"EFAC"."LECTURE"(Extrait(LFAC.NUMERO,1,8))

 

Le résultat obtenu est lu dans: I_EFAC.PHT

 

Remarque : Dans le cas particulier d'un contexte, on aura la syntaxe étendue suivante :  C:EFAC(1,8)=EFACCTXT

 

 

Cas non composant :

Le cas non composant s'exécute comme dans le cas composant avec les différences suivantes : Le lien C: est remplacé par R: . Après l'exécution, le résultat n'est pas dans la structure d'interface.

A l'utilisation, on notera l'expression suivante :

LFAC->EFAC.PHT

Dans le Descripteur de Données, on mentionnera les informations suivantes dans la zone LIEN :

Pour la table EFAC :  R:EFAC(1,8) au niveau du champ NUMERO

 

Le code qui sera exécuté implicitement lors de l'évaluation de l'expression sera : 

Lire EFAC.IDENT, EgalA , Extrait(LFAC.NUMERO,1,8)

 

Le résultat obtenu est lu dans: EFAC.PHT