Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1







Bonjour,
Ma question est assez simple aujourd'hui mais j'avoue ne pas avoir trouvé la reponse sur le forum.
Quand on a une DropDownDataWindow, comment afficher automatiquement une valeur à l'initialisation? Faut t'il obligatoirement passer par du code?
Merci pour vos reponses
Dernière modification par Nephtis (06-12-2007 11:04:05)
Hors ligne











Bonjour,
Tu peux utiliser "initial value" au niveau de la datawindow au niveau de laquelle tu as placé ta dropdown
Hors ligne







Je suis dans ma datawindow sur le column object qui représente ma DropDownDataWindow.
Je fait un clic droit puis Properties ...
Je parcours l'ensemble des onglets mais je ne trouve pas pas d'option permettant d'alimenter l'initial value
J'oubliais : PB 6.5
Dernière modification par Nephtis (11-10-2007 14:05:45)
Hors ligne










il faut aller dans
menu rows->Column specifications
Hors ligne







JCZ a écrit:
il faut aller dans
menu rows->Column specifications
Et est ce que peut coder quelque chose qui correpondrait à :
initial_value = 1ère valeur de ma dropdowndatawindow?
Parce que d'après ce que j'ai pu comprendre, lors de l'initialisation de la datawindow, la première ligne est selectionnée même si on ne le vois pas.
C'est en testant une des fonctionnalité de ma fenetre que je me suis aperçu de ce comportement : quand j'enregistre la "commande", j'insere en base de donnée la première valeur de la dropdowndatawindow même si elle ne comporte pas d'initial value (j'espère que je ne vous embrouille pas plus en détaillant )
Dernière modification par Nephtis (11-10-2007 14:28:39)
Hors ligne










dans le retrieveend tu peux parcourir les lignes de la Dw et faire un setItem
Hors ligne







JCZ a écrit:
dans le retrieveend tu peux parcourir les lignes de la Dw et faire un setItem
Donc si je comprends bien il faut le coder (je cherchais si il n'y avais pas une option directement lors de la conception).
Bon SetRow et ScrollToRow me voici!!!
Hors ligne







Je n'arrive pas a utiliser les SetRow et ScrollToRow, est ce qu'il y a une absurditée dans mon code
//******************************************** MISE EN PAGE POUR LA DDDW *********** Integer li_rtncode DataWindowChild ldw_child Integer li_row li_rtncode = this.dw_mas.GetChild('cde_enleveur', ldw_child) // Message d'erreur si il n'existe pas de datawindowchild IF li_rtncode = -1 THEN MessageBox("Error", "Not a DataWindowChild") return END IF ldw_child.SetRow(1) ldw_child.ScrollToRow(1) //**********************************************************************************
Hors ligne










faut faire un
dw_mas.SetItem(ll_row,'cde_enleveur', valeur )
après avoir recuperé la valeur ... et cela pour l'ensemble des lignes de la DW
Hors ligne







JCZ a écrit:
faut faire un
Code: pb
dw_mas.SetItem(ll_row,'cde_enleveur', valeur )après avoir recuperé la valeur ... et cela pour l'ensemble des lignes de la DW
Je ne comprends pas pourquoi les SetItem. Ma DropDataWindow est bien alimentée (y a au moins une 20aine de valeurs dedans)
Hors ligne








A mettre dans le retrieveend de la datawindow dw_mas :
//******************************************** MISE EN PAGE POUR LA DDDW *********** Integer li_rtncode DataWindowChild ldw_child Integer li_row Long ll_find li_rtncode = this.dw_mas.GetChild('cde_enleveur', ldw_child) // Message d'erreur si il n'existe pas de datawindowchild IF li_rtncode = -1 THEN MessageBox("Error", "Not a DataWindowChild") return END IF // Si tu veux recuperer une valeur de la dropdowndatawindow dont tu ne connais pas le row ll_find = ldw_child.Find ( "lib_enleveur = Dupont", 1, ldw_child.rowcount()) if ll_find > 0 then ldw_child.setrow(ll_find) elseif ldw_child.rowcount()>0 then // si tu veux mettre le premier row ldw_child.setrow(1) else MessageBox("Error", "Empty DataWindowChild") end if
Dernière modification par hellkinder (11-10-2007 15:11:56)
Hors ligne










Nephtis a écrit:
Je ne comprends pas pourquoi les SetItem. Ma DropDataWindow est bien alimentée (y a au moins une 20aine de valeurs dedans)
La DDDW fait une correspondance avec les données de la DW
Donc pas de données --> pas de correspondance ...
Hors ligne







En fait le probleme doit venir d'autre part car le GetChild compile et crée pas d'erreur lors de l'execution mais j'ai testé un
GetItemString(1,"lib_enleveur")
et ça me remonte l'erreur
La référence ligne/colonne est incorrecte
Bref doit y avoir un passage que je loupe car la colonne qui contient la dddw s'apelle bien "cde_enleveur" et il existe une colonne "lib_enleveur" dans ma dddw
Hors ligne








tu peux testé ce que je t'ai envoyé? on en saura davantage...
Est ce que le retrieve de la dropdown a été fait etc....
Dernière modification par hellkinder (11-10-2007 15:11:33)
Hors ligne







Je testerais un peu plus tard parce que c'est que du fignolage ...
Hors ligne








entendu..Tiens nous au courrant.
See you
Hors ligne







Je fais remonter ce sujet pour finalement le cloturer
/**********************************************************************/ // //// Declaration des variables locales // /**********************************************************************/ DataWindowChild ldw_child Integer li_cdret String ls_nom /**********************************************************************/ // // /**********************************************************************/ dw_gestionnaire.Insertrow(1) li_cdret = dw_gestionnaire.getChild("nom", ldw_child) IF li_cdret = -1 THEN MessageBox("Error", "Not a DataWindowChild") return END IF ldw_child.SetTransObject(SQLCA) ldw_child.Retrieve() If ldw_child.rowcount()>0 then ldw_child.SetRow(1) ls_nom = ldw_child.GetItemString(1,"nom") Else MessageBox("Error", "Empty DataWindowChild") End if // Pour l'affichage de la valeur par defaut dw_gestionnaire.SetItem(1,'nom',ls_nom)
Donc merci à hellkinder et jcz pour m'avoir aider a résoudre mon problème.
Pépites en cours de transaction
Hors ligne










Hors ligne
Pages: 1