Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Ca fesait depuis longtemps que je n'avais pas eu de probleme de programmation mais aujourd'hui je revient à la charge
Il était une fois une datawindow avec un style Datawindow Group. Un jour qu'elle executait gentillement ses traitements elle se posa cette question :
Voyons voir, comment pourrais je récuperer le groupe dans lequel se trouve l'enregistrement qui vient d'être sélectionné par le gentil utilisateur?
Mais à cette question elle ne trouva pas tout de suite de reponse. La datawindow tomba alors dans la déchéance la plus totale allant même jusqu'a manger des insectes.
Vous sentez vous capables de sauver cette pauvre petite datawindow?
Merci d'avance pour votre aide
Dernière modification par Nephtis (02-10-2007 08:16:24)
Hors ligne
Bon j'ai testé mais ca ne me donne pas vraiment ce que je recherche.
Pour faire plus shématique j'ai :
Groupe 1
Ligne 1
Ligne 2
Ligne 3
Groupe 2
Ligne 4
Groupe 3
Ligne 5
Ligne 6
[...]
Mon groupe est défini par un libelle et un identifiant. Ce que je ne sais pas encore faire c'est récupérer l'identifiant du groupe 1 si je suis sur les lignes 1,2 ou 3, récupérer l'identifiant du groupe 2 si je suis sur la ligne 4, etc ...
Bon je pense que finalement je vais reporter invisiblement la colonne qu'il me manque dans la ligne de détail
Dernière modification par Nephtis (05-09-2007 08:12:13)
Hors ligne
Vu que c'est dans la continuité de mon probleme, pour récupérer une liste de champs selectionnés dans ma datawindow c'est bien :
dwcontrol.object.monchamp.selected
Et si je veux savoir si il y a des champs selectionés, faut il que je récupère un tableau (par le code précédent) et que je teste sa taille où y a t'il une fonction qui effectue cela?
Merci pour vos reponses
Bon finalement résolu tout seul en mode debug
Dernière modification par Nephtis (06-09-2007 09:27:38)
Hors ligne
J'ai toujours des difficultés à retrouver cette satanée information. Dés que je clique sur un bandeau header_group je récupère tout le temps le numéro de ligne 0 dans l'argument row, de l'évenement clicked
Ca revient à ceci:
Groupe 1 --> row = 0
Ligne 1 --> row = 2
Ligne 2 --> row = 3
Ligne 3 --> row = 4
Groupe 2 --> row = 0
Ligne 4 --> row = 5
Groupe 3 --> row = 0
Ligne 5 --> row = 6
Ligne 6 --> row = 7
Dans mon probleme je ne vois pas trop comment je peut utiliser FindGroupChange
J'ai besoin de récupérer un information quand je clique à un endroit précis de ma ligne de Group. Cette information est facilement disponible dans les lignes de détail, j'avais donc pensé à récupérer la ligne du groupe et lui ajouter 1 pour tomber dans la ligne de détail mais je tombe toujours sur la ligne 1 vu que dans tous les cas un clic sur un bandeau groupe me rapporte la valeur 0
Dernière modification par Nephtis (01-10-2007 16:19:41)
Hors ligne
Bonjour,
Je ne suis pas certain d'avoir bien compris ton problème mais si tu utilises This.GetObjectAtPointer() dans l'événement clicked, tu récupère une chaîne de caractères composée du nom de l'objet suivi de ~t suivi de la ligne. ceci fonctionne même pour des objets de n'importe qu'elle bande de la datawindow.
Hors ligne
La solution de PAUTONNIER marchera tres bien.
Tu peux aussi utiliser la fonction GetBandAtPointer.
Que tu utilises cette fonction ou GetObjectAtPointer tu recupereras, au moment du clic, une chaine de caractère indiquant la position du pointeur. Vu que cette chaine est de la meme forme et qu'elle contient quelque part le numero de groupe, il te suffit de la parser pour recuperer ton info.
J'ai un code "pret à l'emploi" pour ca si je te le trouves..
essayes ca :
ls_string = dw_1.GetBandAtPointer() ls_check = Left(ls_string, Pos(ls_string, "~t") - 1) for i=1 to 2 ls_check = right(ls_check,len(ls_check) - len(right(ls_check,Pos(ls_check, "."))) ) next ll_level = long(ls_check)
Dernière modification par hellkinder (02-10-2007 07:34:23)
Hors ligne
Ok j'ai testé d'afficher la valeur de GetBandAtPointer() et il me retourne bien le numéro de la première ligne de la bande de détail
Merci ( +20 pépites )
Hors ligne
Merci
Hors ligne
Nephtis a écrit:
Merci ( +20 pépites )
20 pépites, t'es trop généreux là
Hors ligne
eRaSorZ a écrit:
Nephtis a écrit:
Merci ( +20 pépites )
20 pépites, t'es trop généreux là
Bah ça a été jour de paie y a pas longtemps
Hors ligne
eRaSorZ a écrit:
Nephtis a écrit:
Merci ( +20 pépites )
20 pépites, t'es trop généreux là
20 tiens valent mieux que 1000 tu l'auras
Hors ligne
Ah ben j'aurais bien aimé 1000 tiens
Hors ligne
Je pense que les 20 pépites n'ont pas été attribués à la bonne personne non ?
Hors ligne
allez, je vous rajoute 50 chacun...
Hors ligne
Alors ca c'est fou! :cool:
Hors ligne
PAUTONNIER a écrit:
Je pense que les 20 pépites n'ont pas été attribués à la bonne personne non ?
Je t'en ai donné 20 à toi et 20 à HellKinder
Hors ligne