Après windows pour les nuls, voici PB pour les bons (ou presque).

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

Hors ligne

 

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

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
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 08: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 08: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 08:46:20)

Hors ligne

 

#4 15-06-2011 09: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 09:08:27)

Hors ligne

 

#5 15-06-2011 09: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 10:32:52

xlat  
0xc0000005
Award: bf
Lieu: Tanger (طنج)
Date d'inscription: 04-12-2010
Messages: 720
Pépites: 11,343
Banque: 100,221,387,868,884,300
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*/)
//selon le contexte, c'est différent de 
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