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







Bonjour,
Me revoilà en galère avec mes datawindows.
Je dois faire apparaître un joli point vert lorsque la quantité saisie dans une datawindow a atteint la qté affichée dans une autre. Jusque là je m'en sors.
Mais il faut afficher ce point que sur la ligne active de la datawindow qui affiche (pas sur toutes les lignes de celle-ci)
pour le moment j'ai codé çà dans la datawindow qui sert à saisir :
ll_total_affecte = this.getitemnumber( 1, "compute_affecte") ll_total_prevu = parent.uo_tab.dw_unite.getitemnumber( parent.uo_tab.dw_unite.getrow(), "qte_totale" ) if ll_total_affecte >= ll_total_prevu then parent.uo_tab.dw_unite.modify( "ov_pastille.visible = true" ) else parent.uo_tab.dw_unite.modify( "ov_pastille.visible = false" ) end if
mais ca fait apparaitre ou disparaitre tous les points de toutes les lignes !
Dernière modification par abdelta (20-11-2007 16:26:43)
Hors ligne








bonjour,
il te faut une condition dans ton modify
Hors ligne














Bonjour,
Une possibilité est de mettre un compute invisible (p.ex compute_pastille_visible) en plus dans la DW et de coder le Visible de ov_pastille = compute_pastille_visible
Ensuite par script, tu modifies le compute_pastille_visible uniquement pour la ligne souhaitée :
ll_total_affecte = this.getitemnumber( 1, "compute_affecte") ll_ligne = parent.uo_tab.dw_unite.getrow() ll_total_prevu = parent.uo_tab.dw_unite.getitemnumber( ll_ligne, "qte_totale" ) if ll_total_affecte >= ll_total_prevu then parent.uo_tab.dw_unite.setitemnumber( ll_ligne, "compute_pastille_visible" , 1 ) else parent.uo_tab.dw_unite.setitemnumber( ll_ligne, "compute_pastille_visible" , 0 ) end if
Hors ligne






ErAsORz, j'ai fait ce que tu m'as conseillé et j'ai ajouté une condition dans le champ Visible de mon "point" :
if( compute_pastille_visible = 1 ,1,0)
j'ai laissé affichée la valeur du champ compute pour vérifier que ca fonctionne, et j'ai toujours 0.
Est-ce que je dois mettre une expression spéciale dans mon champ compute ?
Est-ce qu'un setitem modifie bien un compute ?
Hors ligne














abdelta a écrit:
Est-ce qu'un setitem modifie bien un compute ?
-> utilise plutot une colonne fictive
Hors ligne






ErAsORz a écrit:
-> utilise plutot une colonne fictive
j'ai déjà essayé, mais ca plante à l'éxécution au moment du retrieve, j'ai un message du genre "Select Error : ORA-01007 : variable not in select list"
... à moins que je m'y soit mal prise ...
Dernière modification par abdelta (20-11-2007 10:44:00)
Hors ligne














dans ton select rajoute :
select ............. , 0 as pastille_visible
from .....
where ....
il sera à zéro par défaut, de type numérique, ensuite le setitem devrait fonctionner.
Hors ligne






il n'y a vraiment pas d'autre solution ?
cette datawindow ne sert pas que dans la fenêtre aux pastilles, et ca va faire beaucoup de choses à modifier partout ailleurs ... !
Hors ligne














le compute avec une notation pointée au lieu d'un setitem ?
Hors ligne






bon, finalement, après concertation avec mes collègues, on a rajouté une colonne.
merci pour ErAsORz
Hors ligne














à toi l'honneur du [RESOLU]
Hors ligne
Pages: 1
