|
|
|
|
|
- Quand utiliser l'indirection ?
- Désigner l'objet en cours
- Indirection sur une structure
- Utiliser l'indirection sur les chemins dans un document XML
- Limitations
- Indirections en Java
Opérateurs d'indirection En anglais : Indirection operators
Les opérateurs { et } permettent d'accéder à un champ, une variable, un membre d'une classe ou une rubrique d'un fichier de données en construisant dynamiquement le nom du champ, de la variable, du membre de la classe ou de la rubrique. L'intérêt des opérateurs { et } est multiple : - Passer en paramètre un nom de champ, de variable, de membre d'une classe ou de rubrique.
- Construire le nom d'un champ, de la variable, d'un membre d'une classe ou d'une rubrique par programme.
{"NOM"} = NomCli
{"NOM"} = {"CL.NOMCLI"}
{"FENCLI.NOM"} = NomCli
{"FENCLI"+".NOM"} = NomCli
{"Nom",indChamp} = NomCli
nNomFic est une chaîne = "Client"
{nNomFic + ".Nom"} = "Durand"
HAjoute({nNomFic})
NomChamp est une chaîne
NomChamp = "SAI_SAISIE1"
Rend_Invisible(NomChamp)
PROCÉDURE Rend_Invisible(NChamp)
{NChamp}..Etat = Invisible
NomAlias est une chaîne
NomAlias = FenPrécédente()
{NomAlias+".NOM"} = NomCli
Abrev est une chaîne
NomRub est une chaîne
{Abrev+"."+NomRub} = NomCli
{Abrev+"."+NomRub} = {NomChamp}
Maclasse est une Classe
Membre1 est une chaîne
Membre2 est une chaîne
PROCÉDURE GLOBALE AfficheMembre(Numéro)
Valeur est une chaîne = {"::Membre"+Numéro}
Info(Valeur)
c est un cWord
var est une Description de Variable
Def est un Définition
Def = RécupèreDéfinition(c)
var = Def..Variable[2]
Trace(var..Nom)
Trace("Version de Word: ",{c, var})
Syntaxe <Expression> : Chaîne de caractères Expression permettant d'identifier le champ, la variable ou la rubrique à manipuler. L'élément est tout d'abord recherché :- parmi les variables,
- selon le nombre de points dans le nom :
- 0 point : recherche parmi les champs, puis les rubriques HFSQL.
- 1 point : recherche parmi les rubriques HFSQL, les champs, puis les paramètres de requête.
- supérieur à 1 point : recherche parmi les champs.
- parmi les éléments spéciaux conservés par compatibilité (par exemple _Ongletx, ...).
Si cette expression correspond à une chaîne vide (""), une erreur du WLangage est générée. <Expression> : Chaîne de caractères Expression permettant d'identifier le membre de la classe.Si le membre est : - global, utilisez la syntaxe suivante : {" :: NomDuMembre"}
- n'est pas global, utilisez la syntaxe suivante : {" : NomDuMembre"}
Si cette expression correspond à une chaîne vide (""), une erreur du WLangage est générée. <Classe> : Chaîne de caractères Instance de la classe <Membre> : Chaîne de caractères ou variable de type Description de variable Correspond :
Indirection en spécifiant le type de l'élément (optimise la vitesse d'exécution) Masquer les détails
{ <Expression>, <Type> }
<Expression> : Chaîne de caractères Expression permettant d'identifier le champ, la variable ou la rubrique à manipuler. Si cette expression correspond à une chaîne vide (""), une erreur du WLangage est générée. <Type> : Constante Constante permettant de préciser le type de l'élément recherché : | | indChamp | Élément recherché parmi les champs et les groupes. | indConnexion | Élément recherché parmi les connexions. | indEtat | Élément recherché parmi les états. | indFenêtre | Élément recherché parmi les fenêtres. | indFichier | Élément recherché parmi les fichiers de données. | indGPW | Élément recherché parmi les éléments du groupware utilisateur (permet de récupérer l'état initial des champs). | indLiaison | Élément recherché parmi les liaisons. | indParamètreRequête | Élément recherché parmi les paramètres des requêtes. | indRubrique | Élément recherché parmi les rubriques. | indVariable | Élément recherché parmi les variables. | indPage | Élément recherché parmi les pages. |
Remarques Quand utiliser l'indirection ? L'indirection peut être utilisée par exemple : - Pour accéder à la valeur d'un élément (champ, variable, rubrique, ...) :
{s_NomChamp} = 10
ValeurChamp = {s_NomChamp}
- Pour utiliser une propriété :
{s_NomChamp}..Hauteur = 10
- Pour manipuler une colonne d'un champ Table par programmation :
{s_NomColonne, indChamp}[Numéro_Ligne] = 10
- Pour manipuler une colonne d'une table :
{s_NomTable + "." +s_NomColonne, indChamp}[Numéro_Ligne] = 10
Liste des exemples associés :
|
Exemples unitaires (WINDEV) : Les indirections
[ + ] Manipulation des indirections à l'aide des opérateurs { et }. Les opérateurs { et } permettent d'accéder à un champ ou une rubrique de fichier en construisant dynamiquement le nom du champ ou le nom de la rubrique. Ce programme réalisé avec WINDEV met en œuvre le mécanisme d'indirection sur les champs des fenêtres pour gérer le "Undo-Redo" et le "couper-copier-coller" de manière générique.
|
|
Exemples unitaires (WEBDEV) : Les indirections
[ + ] Utilisation des indirections sur une variable. Il est à noter que les indirections sont possibles sur les champs, les rubriques, les liaisons, etc. Le principe est identique à celui présenté dans cet exemple.
|
|
Exemples unitaires (WINDEV Mobile) : Les indirections
[ + ] Utilisation des opérateurs d'indirection { et }. Les opérateurs { et } permettent d'accéder à un champ ou une rubrique de fichier en construisant dynamiquement le nom du champ ou le nom de la rubrique. Cet exemple met en œuvre le mécanisme d'indirection sur les champs des fenêtres pour gérer le "Undo-Redo" et le "couper-copier-coller" de manière générique.
|
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|