Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai besoin de modifier le format (ça je sais faire) et l'editmask dans une datawindow contenant plusieurs lignes, et l'editmask peut être différent en fonction de l'une des colonnes de la dw (un nombre de décimales du montant en fonction d'une devise saisie par l'utilisateur).
La modification de l'editmask n'est pas conditionnel (comme cela existe pour la modification du format par exemple), ce qui fait que si je modifie par script l'editmask d'une ligne, ce sont toutes les lignes de la dw qui sont modifiées.
Auriez-vous une solution ?
Merci d'avance,
Hors ligne
tu peux faire ca par exemple ?
faut maitre le code au niveau de l'onglet format de la colonne.
case( numero_condition when 1 then "#,###.000000" when 2 then "#,###.000000" else "#,###.00")
A+++
Hors ligne
pick ouic a écrit:
tu peux faire ca par exemple ?
faut maitre le code au niveau de l'onglet format de la colonne.
case( numero_condition when 1 then "#,###.000000" when 2 then "#,###.000000" else "#,###.00")
A+++
Bonjour Pick Ouic
Pour le format je n'ai pas de problème, mais ça ne solutionne pas le problème de l'editmask et de contraindre la saisie du nombre de décimales en fonction de la devise
ligne 1 - devise à 2 décimale => editmask avec 2 décimales sur la zone de saisie
ligne 2 - devise à 3 décimales => editmask avec 3 décimales sur la zone de saisie
Et malheureusement, l'editmask n'a pas d'expression possible, ce qui fait que si je change l'editmask par un modify, ça change la propriété sur toutes les lignes.
Une autre idée ?
Hors ligne
Peut-être en travaillant sur de multiples champs de saisie avec des editmask différents, que l'on superpose et masque en fonction de la devise saisie?
Hors ligne
foon a écrit:
Peut-être en travaillant sur de multiples champs de saisie avec des editmask différents, que l'on superpose et masque en fonction de la devise saisie?
Bonjour Foon,
Je crains que ce soit effectivement la seule solution, un peu bricolot, mais bon peut-etre qu'Appeon nous mettra un jour la possibilité de mettre une expression sur l'editmask
Merci
Hors ligne
Bonjour j'ai déjà rencontré une problématique similaire avec des dddw, le truc consiste à faire les modifications sur les évents itemfocuschanged, rowfocuschanged, retrieveend(cas spécifique du focus en ligne 1).
Ainsi à chaque fois que tu change de ligne, tu modifie ton editmask selon le contexte approprié.
Hors ligne
xlat a écrit:
Bonjour j'ai déjà rencontré une problématique similaire avec des dddw, le truc consiste à faire les modifications sur les évents itemfocuschanged, rowfocuschanged, retrieveend(cas spécifique du focus en ligne 1).
Ainsi à chaque fois que tu change de ligne, tu modifie ton editmask selon le contexte approprié.
Bonjour Xlat,
Effectivement en jouant avec RowFocusChanged, ça permet d'avoir le bon editmask sur la zone sur chacune des lignes lorsque le focus est sur la zone.
Par contre, ça modifie quand même le visuel des autres lignes tant que le row n'a pas le focus.
C'est sans la méthode d'avoir des champs supplémentaires par type de devise.
Hors ligne
Bonjour,
ce qui est magique avec PB c'est que les expressions qui permettent par exemple d'avoir un positionnement dynamique fonctionnent même quand on n'a pas le bouton pour définir l'expression mais par contre il faut passer par un edit source.
Je viens de tester rapidement et ça a l'air de fonctionner (attention il y a un <tab> avant le if du edit.mask
column(band=detail id=1 alignment="1" tabsequence=10 border="0" color="0" x="5" y="4" height="76" width="466" format="###,###.000~tif (nb_dec = 2,'###,###.00','###,###.000')" html.valueishtml="0" name=montant visible="1" editmask.mask="###,###.000 if (nb_dec = 2,'###,###.00','###,###.000')" editmask.focusrectangle=no font.face="Verdana" font.height="-10" font.weight="400" font.family="2" font.pitch="2" font.charset="0" background.mode="1" background.color="536870912" background.transparency="0" background.gradient.color="8421504" background.gradient.transparency="0" background.gradient.angle="0" background.brushmode="0" background.gradient.repetition.mode="0" background.gradient.repetition.count="0" background.gradient.repetition.length="100" background.gradient.focus="0" background.gradient.scale="100" background.gradient.spread="100" tooltip.backcolor="134217752" tooltip.delay.initial="0" tooltip.delay.visible="32000" tooltip.enabled="0" tooltip.hasclosebutton="0" tooltip.icon="0" tooltip.isbubble="0" tooltip.maxwidth="0" tooltip.textcolor="134217751" tooltip.transparency="0" transparency="0" )
J'ai utilisé il y a peu cette méthode pour avec une police de caractère dynamique sur un text control dans une datawindow.
Une fois modifié et enregistré dans l'edit source tu peux modifier ta datawindow en visuel sans perdre ton code.
Par contre si tu veux changer ton edit.mask il faudra systématiquement passer par l'edit source.
J'aurai aimé pensé à ça il y a quelques année.
Hors ligne