Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
j'ai une datawindow sur laquelle je veux selectionner une ligne et lancer l'event clicked!.
mon code est le suivant :
dw_detail li_int = dw_detail.find("nom_table = 'op.structure'", 1, dw_detail.rowcount()) dw_detail.scrolltorow(li_int) dw_detail.selectrow(li_int, true) dw_detail.triggerevent(Clicked!)
malgré que la ligne est sélectionnée, la variable "row"(passée en paramètre ) de l'évènement clicked est mise à null.
est ce que je peux remplacer le click de la souris par une action exécutée dans le code pour que la variable "row" soit différente de NULL.
Merci d'avance ;)
Dernière modification par dydo (15-06-2011 08:22:15)
Hors ligne
dydo a écrit:
Code: pb
dw_detail li_int = dw_detail.find("nom_table = 'op.structure'", 1, dw_detail.rowcount())
tu devrais vérifier que li_int est un n° de ligne valide (>0) avant de continuer.
Le find() ne trouve peut-être rien.
Et attention de ne pas confondre SelectRow() et SetRow(). Les 2 sont souvent nécessaires.
Dernière modification par seki (15-06-2011 08:24:50)
Hors ligne
Oui, le Find retourne une valeur qui correspond à la numéro de la ligne retrouvée (<> NULL)
j'ai tester aussi le setrow(), mais mon problème persiste toujours.
quand j'appelle l'évènement Clicked! et malgré que la ligne en question est sélectionnée, j'aurai le paramètre row de l'évent clicked! = NULL ==> comme si aucune ligne n'est séléctionnée
Dernière modification par dydo (15-06-2011 08:46:20)
Hors ligne
Attantion ne pas confondre l'appel à la routine événementielle via triggerevent(clicked!) ce qui doit être considéré comme un message et donc aucun argument est fournit à la routine avec l'appel de la routine clicked() qui elle contient des paramètres.
D'un coté on a un message (qui est dynamique) de l'autre coté un vrai appel de routine (appel statique avec passage de paramètres).
Dans ton cas, il faut appeler statiquement la routine avec les bons paramètres :
dwobject lso
event clicked(1,1,1,lso)
Dernière modification par Dadone (15-06-2011 09:08:27)
Hors ligne
Dadone a écrit:
Code: pb
dwobject lso event clicked(1,1,1,lso)
Oui !! ça parait plus logique
en faite j'ai déja essayer ça, mais j'aurais une erreur de compilation :
"Bad Number of arguments for function clicked"
Hors ligne
alors vérifie bien que l'event clicked est bien appelé sur ta datawindow, sinon il se peut que dans ton contexte clicked() corresponde à celui d'un bouton ou il n'y a pas d'argument.
dwobject ldwo dw_detail.event clicked( 0 /*xpos*/, 0 /*ypos*/, li_int /*row*/, ldwo /*dwo*/) //selon le contexte, c'est différent de event clicked( 0 /*xpos*/, 0 /*ypos*/, li_int /*row*/, ldwo /*dwo*/)
Hors ligne