Powerbuilder pour les completement Geeks !

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

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 09-04-2019 15:58:26

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 609
Pépites: 2,087
Banque: 3,536,631,712,504

Modification de l'editmask dans une liste

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

 

#2 10-04-2019 08:27:04

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4627
Pépites: 897
Banque: 2,147,483,647
Site web

Re: Modification de l'editmask dans une liste

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+++


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 10-04-2019 08:51:57

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 609
Pépites: 2,087
Banque: 3,536,631,712,504

Re: Modification de l'editmask dans une liste

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

 

#4 10-04-2019 11:45:53

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2473
Pépites: 56
Banque: 9,223,372,036,854,776,000

Re: Modification de l'editmask dans une liste

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?


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#5 10-04-2019 12:22:25

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 609
Pépites: 2,087
Banque: 3,536,631,712,504

Re: Modification de l'editmask dans une liste

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

 

#6 10-04-2019 12:29:02

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 685
Pépites: 11,234
Banque: 100,221,387,868,884,300
Site web

Re: Modification de l'editmask dans une liste

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é.


https://lut.im/eJINqa9o/vAtyxD0h "Don't believe everything you read on the Internet"
    -- Abraham Lincoln

www.ngs.ma

Hors ligne

 

#7 10-04-2019 14:16:58

wazou1812  
Modératrice
Award: bf
Date d'inscription: 24-05-2006
Messages: 609
Pépites: 2,087
Banque: 3,536,631,712,504

Re: Modification de l'editmask dans une liste

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

 

#8 29-04-2019 10:11:06

_francois_  
Bienfaiteur du site
Lieu: TOULOUSE
Date d'inscription: 25-03-2010
Messages: 150
Pépites: 178,983,268,111
Banque: 9,223,372,036,854,776,000

Re: Modification de l'editmask dans une liste

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

 

Pied de page des forums

Propulsé par FluxBB 1.2.22