Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1














Bonjour, je ne retrouve pas ce tip...
Dans une DW, si j'ai par exemple une colonne col_1 qui a comme tag tag_1 et que je souhaite récupérer le tag dans une expression je peut faire :
describe( 'col_1.tag' )
Mais comment le faire sans référencer le nom de la colonne ? Cette expression ne passe pas :
describe( 'this.tag' )
Hors ligne
erasorz a écrit:
Bonjour, je ne retrouve pas ce tip...
Dans une DW, si j'ai par exemple une colonne col_1 qui a comme tag tag_1 et que je souhaite récupérer le tag dans une expression je peut faire :Code: pb
describe( 'col_1.tag' )Mais comment le faire sans référencer le nom de la colonne ? Cette expression ne passe pas :
Code: pb
describe( 'this.tag' )
Bien sur que cela ne peut pas fonctionner puisque "this" est le pointeur sur une instance d'une classe donc rien à voir avec la syntaxe d'un objet datawindow dynamiquemùent interperété par la DW machine qui pour prendre une analogie fonctionne comme un navigateur qui interpréte la syntaxe HTML.
Maintenant tout dépend le contexte d'utilisation pour récupérer le tag. Si c'est par exemple dans les routines événementielles clicked() ou itemchanged() tu peux utiliser dwo.name
Donc précises le contexte.
Dernière modification par Dadone (21-06-2011 11:18:43)
Hors ligne
je ne connais pas de possibilité pour faire un "this" en DWExpression, par contre tu peux utiliser l'id de la colonne plutôt que le nom, mais c'est pas ce que tu cherches.
describe('#1.tag')
Hors ligne














Dadone a écrit:
Bien sur que cela ne peut pas fonctionner puisque "this" est le pointeur sur une instance d'une classe donc rien à voir avec la syntaxe d'un objet datawindow dynamiquemùent interperété par la DW machine qui pour prendre une analogie fonctionne comme un navigateur qui interpréte la syntaxe HTML.
Maintenant tout dépend le contexte d'utilisation pour récupérer le tag. Si c'est par exemple dans les routines événementielles clicked() ou itemchanged() tu peux utiliser dwo.name
Donc précises le contexte.
Ok bien sûr. J'avais mis 'this' mais ça aurait pu être un autre mot clé qui permettait cela...
Il s'agit d'un contexte purement expression conditionnelle dans les propriétés des DW. (pour factoriser du code)
Hors ligne
erasorz a écrit:
Dadone a écrit:
Bien sur que cela ne peut pas fonctionner puisque "this" est le pointeur sur une instance d'une classe donc rien à voir avec la syntaxe d'un objet datawindow dynamiquemùent interperété par la DW machine qui pour prendre une analogie fonctionne comme un navigateur qui interpréte la syntaxe HTML.
Maintenant tout dépend le contexte d'utilisation pour récupérer le tag. Si c'est par exemple dans les routines événementielles clicked() ou itemchanged() tu peux utiliser dwo.name
Donc précises le contexte.Ok bien sûr. J'avais mis 'this' mais ça aurait pu être un autre mot clé qui permettait cela...
Il s'agit d'un contexte purement expression conditionnelle dans les propriétés des DW. (pour factoriser du code)
Désolé, je ne comprends toujours pas ce que tu veux faire exactement.
Hors ligne
Dadone a écrit:
erasorz a écrit:
Dadone a écrit:
Bien sur que cela ne peut pas fonctionner puisque "this" est le pointeur sur une instance d'une classe donc rien à voir avec la syntaxe d'un objet datawindow dynamiquemùent interperété par la DW machine qui pour prendre une analogie fonctionne comme un navigateur qui interpréte la syntaxe HTML.
Maintenant tout dépend le contexte d'utilisation pour récupérer le tag. Si c'est par exemple dans les routines événementielles clicked() ou itemchanged() tu peux utiliser dwo.name
Donc précises le contexte.Ok bien sûr. J'avais mis 'this' mais ça aurait pu être un autre mot clé qui permettait cela...
Il s'agit d'un contexte purement expression conditionnelle dans les propriétés des DW. (pour factoriser du code)Désolé, je ne comprends toujours pas ce que tu veux faire exactement.
l’équivalent de
<span onclick="javascript:alert( this.innerHMTML )"> ... </span>
Hors ligne














Dadone a écrit:
erasorz a écrit:
Il s'agit d'un contexte purement expression conditionnelle dans les propriétés des DW. (pour factoriser du code)
Désolé, je ne comprends toujours pas ce que tu veux faire exactement.
Je souhaite utiliser le tag pour indexer des contrôles identiques (colonnes) dans une DW. Ainsi j'aurai une expression de propriété de forme fonction(tag) qui sera la même pour chaque controle au lieu d'avoir fonction1(), fonction2()...
NB : je peux aussi m'en tirer différemment en récupérant le nom de colonne, ce qui est peut-être possible (?) (autrement qu'un : describe( 'this.name' ) )
Hors ligne
est-ce qu'il est envisageable de construire tes dwexpressions au moment de l'execution (ex: dans un constructor ) ?
si oui, tu peux boucler sur tes colonnes et récupérer le nom via
ls_name = describe("#"+string(ll_col_id)+".name")
Hors ligne














erasorz a écrit:
Il s'agit d'un contexte purement expression conditionnelle dans les propriétés des DW. (pour factoriser du code)
c'est vrai que c'est pas super clair
je reprécise : tout doit se faire dans le DWO (pas de script, sinon je préfère maintenir dans le DWO)
Hors ligne
alors dans ce cas, je crais qu'il n'y ait d'autre solution que de "hardcoder" le nom de ton dwo dans les expressions des propriétés en question, jusqu'à la 12.5, il n'y a pas d'équivalent à 'this' sur les dwexpression
en 12.5, ils ont quand même ajouter des bidouilles qui permettrait de choper le dwo courrant (vu sur des computes pour y faire du ownerdraw)
Hors ligne
erasorz a écrit:
Je souhaite utiliser le tag pour indexer
--> cela veut dire quoi "indexer" dans ce contexte, on peut traduire par "factoriser" ?
erasorz a écrit:
des contrôles identiques (colonnes)
on peut traduire par "des traitements identiques sur les colonnes d'un objet datawindow" comme un tri par exemple ? --> donne un exemple.
Je commence juste à appréhender la problématique mais pas assez pour savoir si il y a une réponse ou non...
Tu veux créer quoi ? --> un computed field qui donne un expression dont le tag d'une colonne est un argument ?
Associer une expression à une colonne ?
Y a t'il un événement d'éclencheur pour la traduction de l'expression que tu veux coder ?
Dernière modification par Dadone (21-06-2011 12:56:32)
Hors ligne














C'est purement statique, pour schématiser : dans le DWO en plus des autres données, j'ai n colonnes similaires (colonne1,colonne2,...).
Je souhaite positionner ces colonnes via une expression unique pour toute : propriété X = fonction( i ) où i est le n° de la colonne.
Avec cet exemple de fonction : X = a*i + b
pour le moment je suis obligé de faire :
Colonne 1 : X = a + b
Colonne 2 : X = a*2 + b
etc
C'est pourquoi, pour connaître i dans l'expression de X, j'avais pensé à : soit extraire i du nom de la colonne, soit le mettre en tag et récupèrer le tag.
But : En cas de modification de la fonction, je n'en ai qu'une à maintenir.
Hors ligne
Ah c'est beaucoup plus clair !
Il fallait commencer par cette description !
Dernière modification par Dadone (21-06-2011 16:25:06)
Hors ligne
A priori, la fonction peut être unique mais pas la syntaxe de l'argument qu'on lui passe (je comprend mieux maintenant le "this").
En effet la syntaxe de l'argument est conditionné au nom de la colonne qui ne peut pas être remplacé par un terme générique.
X = fonction (integer(describe("nom_col.id"))) pour la propriété X d'une colonne donnée (nommée "nom_col") ou Id est le n° de la colonne.
Hors ligne
Pages: 1