Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

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.
  • Index
  •  » Powerscripts
  •  » Forcer l'évènement Clicked! de s'exécuter sur une DW

#1 15-06-2011 10:19:01

dydo  
Membre Geek
Date d'inscription: 25-04-2011
Messages: 21
Pépites: 98
Banque: 0

Forcer l'évènement Clicked! de s'exécuter sur une DW

Bonjour à tous,

j'ai une datawindow sur laquelle je veux selectionner une ligne et lancer l'event clicked!.

mon code est le suivant :

Code: pb

 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 10:22:15)

Hors ligne

 

#2 15-06-2011 10:22:53

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1120
Pépites: 4,296,080,217
Banque: 9,223,372,036,854,775,808
Site web

Re: Forcer l'évènement Clicked! de s'exécuter sur une DW

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 10:24:50)


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#3 15-06-2011 10:34:32

dydo  
Membre Geek
Date d'inscription: 25-04-2011
Messages: 21
Pépites: 98
Banque: 0

Re: Forcer l'évènement Clicked! de s'exécuter sur une DW

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 10:46:20)

Hors ligne

 

#4 15-06-2011 11:06:08

Dadone  
Membre Power Geek
Lieu: Avon (Seine et Marne)
Date d'inscription: 19-02-2007
Messages: 252
Pépites: 985
Banque: 0
Site web

Re: Forcer l'évènement Clicked! de s'exécuter sur une DW

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 :

Code: pb

dwobject lso
event clicked(1,1,1,lso)

Dernière modification par Dadone (15-06-2011 11:08:27)

Hors ligne

 

#5 15-06-2011 11:30:06

dydo  
Membre Geek
Date d'inscription: 25-04-2011
Messages: 21
Pépites: 98
Banque: 0

Re: Forcer l'évènement Clicked! de s'exécuter sur une DW

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

 

#6 15-06-2011 12:32:52

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

Re: Forcer l'évènement Clicked! de s'exécuter sur une DW

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.

Code: pb

dwobject ldwo
dw_detail.event clicked( 0 /*xpos*/, 0 /*ypos*/, li_int /*row*/, ldwo /*dwo*/)
event clicked( 0 /*xpos*/, 0 /*ypos*/, li_int /*row*/, ldwo /*dwo*/)

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

www.ngs.ma

Hors ligne

 
  • Index
  •  » Powerscripts
  •  » Forcer l'évènement Clicked! de s'exécuter sur une DW

Pied de page des forums

Propulsé par FluxBB 1.2.22