Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Procédure avec nom d'une rubrique en paramètre

4 réponses
Avatar
Dams
Bonjour =E0 tous,

je bute sur une proc=E9dure que je souhaite utiliser pour r=E9cup=E9rer
uniquement la valeur d'une rubrique dans un fichier HyperFile qui
concerne une liste d'articles. Il me faut donc passer en param=E8tre
l'ID de mon article (=E7a OK) mais aussi le nom du champ (ou rubrique).

Ci-dessous ma proc=E9dure qui en fonctionne pas =E0 cause du param=E8tre
champ que j'utilise pour passer le nom de la rubrique que je veux
r=E9cup=E9rer

Exemple : Info_Article(8, "CODE_ARTICLE") je souhaiterai que cette
proc=E9dure me retourne le code de mon article ayant pour ID 8

PROCEDURE Info_Article(ida est un entier, champ)

sdArticles est une Source de Donn=E9es
sRes est une cha=EEne =3D ""

HAlias(ARTICLES, sdArticles)
HChangeNom(sdArticles, "ARTICLES")

POUR TOUT sdArticles AVEC ID_ARTICLE =3D ida
sRes =3D sdArticles.champ
FIN

HAnnuleAlias(sdArticles)

RENVOYER sRes


D'avance merci

4 réponses

Avatar
tjfromparis
Les indirections ! (suis accros à ca moi ^^)

l'appel ne change pas par contre dans la procédure tu encadre ta
variable avec "{" et "}" (donc {champ} )
ca marche avec n'importe quoi ca : des noms de champs, de fenêtres,
etc...


appel de la procédure :
Info_Article(8, "CODE_ARTICLE") => pareil

PROCEDURE Info_Article(ida est un entier, champ)

sdArticles est une Source de Données
sRes est une chaîne = ""

HAlias(ARTICLES, sdArticles)
HChangeNom(sdArticles, {champ})

POUR TOUT sdArticles AVEC ID_ARTICLE = ida
sRes = {"sdArticles."+champ} => cette ligne sera peut etre à
revoir
FIN

HAnnuleAlias(sdArticles)

RENVOYER sRes
Avatar
Dams
Po Po Po !!!!

C'est top ça merci !
Avatar
TT
a écrit :
Les indirections ! (suis accros à ca moi ^^)

l'appel ne change pas par contre dans la procédure tu encadre ta
variable avec "{" et "}" (donc {champ} )
ca marche avec n'importe quoi ca : des noms de champs, de fenêtres,
etc...


appel de la procédure :
Info_Article(8, "CODE_ARTICLE") => pareil

PROCEDURE Info_Article(ida est un entier, champ)

sdArticles est une Source de Données
sRes est une chaîne = ""

HAlias(ARTICLES, sdArticles)
HChangeNom(sdArticles, {champ})

POUR TOUT sdArticles AVEC ID_ARTICLE = ida
sRes = {"sdArticles."+champ} => cette ligne sera peut etre à
revoir
FIN

HAnnuleAlias(sdArticles)

RENVOYER sRes


Pour améliorer les performances des indirections , il est conseillé de
qualifier le type d'élément utilisé pour que WD sache un peu où chercher:
{champ,indrubrique} dans ce cas ....
Avatar
Dams
Effectivement c'est ce que j'ai fait.

Voici ma procédure finale si ça peut aider :


PROCEDURE Info_Article(ida, champ)


sdArticles est une Source de Données
sRes est une chaîne = ""

SI ida > 0 ALORS

Sablier(Vrai)
HAlias(ARTICLES, sdArticles)
HChangeNom(sdArticles, "ARTICLES")

POUR TOUT sdArticles AVEC ID_ARTICLE = ida
sRes = {"sdArticles."+champ, indRubrique}
FIN

HAnnuleAlias(sdArticles)
Sablier(Faux)

FIN

RENVOYER sRes