Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
bonjour !
bon j'ai un petit soucis.
en gros dans une datawindow, j'ai une colonne qui doit passer en mode Dropdowndatawindow, uniquement quand une autre colonne a une valeur particulière.
concrètement, j'ai une colonne qui s'appelle "valeur" qui est en mode "edit" simple, mais quand dans la colonne "label" il y a la valeur "data type", bah la colonne valeur doit passer en mode DDDW.
du coup j'ai fait un truc comme ça, là , dans l'evenement click de la DW :
string ls_label string ls_erreur integer li_retour datawindowchild ldwc_current il_row = row //messagebox( 'il_row', string(il_row)) if dwo.name = "valeur" then ls_label = this.getitemstring(row, "label") if right(ls_label, 9) = "data type" then ls_erreur = this.Modify("valeur.DDDW.Name='d_dddw_data_type'") li_retour = this.GetChild( "valeur", ldwc_current ) ldwc_current.settransobject(SQLCA) ldwc_current.retrieve() //messagebox(ls_label, "salut, c'est cool !") else ls_erreur = this.Modify("valeur.DDDW.Name=''") end if end if
et ben ça marche pas
(genre le getchild me ramène -1)
une idée, peut-être ?
correction quote -> code par seki
Dernière modification par ben147 (15-04-2014 11:53:16)
Hors ligne
aaaah pardon .... le getchild me ramenait -1, parce que je me suis gourré dans le nom de ma dropdown
bon par contre, je sais toujours pas quoi mettre dans le Elese pour que ça revienne en mode Edit simple .....
Hors ligne
Pour changer d'Edit Style via le code il suffit de modifier une des propriétés de l'edit Style voulu.
Ex tu veux passer une colonne en EditStyle DDDW tu fait par exemple
this.Modify("valeur.DDDW.Name='d_dddw_data_type'")
donc si tu veux remettre un Edit Style "Edit simple" tu peux faire un truc du genre :
this.Modify("valeur.EDIT.Limit=0")
Hors ligne
alors pour le passage en mode dropdown, c'est ce que j'avais fait, et ça ça marche.
pour le passage en mode edit, ce que tu proposes, ça n'a pas l'air de fonctionner .... en gros, la dropdown apparait même sur les lignes ou elle ne devrait pas apparaitre, là
Edit :
en gros ça fait :
1 - je selectionne la colonne sur une ligne ou ça doit etre en edit simple : ça marche
2 - je passe sur une ligne ou la colonne doit m'afficher la dropdown : ça marche
3- je repasse sur une ligne qui doit etre en edit simple : ça marche pas, la drop down apparait.
mon code c'est ça, là :
string ls_label string ls_erreur integer li_retour datawindowchild ldwc_current il_row = row //messagebox( 'il_row', string(il_row)) if dwo.name = "valeur" then ls_label = this.getitemstring(row, "label") if right(ls_label, 9) = "data type" then ls_erreur = this.Modify("valeur.DDDW.Name='d_dddw_datatype'") ls_erreur = this.Modify("valeur.DDDW.displaycolumn=a_ritd_des") ls_erreur = this.Modify("valeur.DDDW.datacolumn=a_ritd_nam") ls_erreur = this.Modify("valeur.DDDW.dddw.allowedit=no") li_retour = this.GetChild( "valeur", ldwc_current ) ldwc_current.settransobject(SQLCA) ldwc_current.retrieve() // dddw.displaycolumn=a_rirc_nam dddw.datacolumn=c_rirc_repconid dddw.percentwidth=0 dddw.lines=0 dddw.limit=0 dddw.allowedit=no //messagebox(ls_label, "salut, c'est cool !") else //ls_erreur = this.Modify("valeur.DDDW.Name=''") //ls_erreur = this.Modify("valeur.DDDW.dddw.allowedit=yes") this.Modify("valeur.EDIT.Limit=0") end if end if
remplacement de la balise quote -> code par seki
Dernière modification par ben147 (14-04-2014 15:43:47)
Hors ligne
ah pardon pour la balise.
oui sinon en fait j'avais fait une erreur de syntaxe, j'ai réglé le probleme.
dans le else, j'ai mis ça :
ls_erreur = this.Modify("valeur.DDDW.Name=''") ls_erreur = this.Modify("valeur.DDDW.allowedit=yes")
et ça marche.
résolu, donc
correction de la balise code par seki
Hors ligne
ben147 a écrit:
ah pardon pour la balise.
ce qu'il fallait comprendre, c'est que après "code" dans la balise pour insérer du code il faut rajouter "=pb" (tout en minuscules) avec ses petits doigts pour que ça colorie en mode "PowerBuilder"...
Hors ligne
Pages: 1