Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
Je dispose d'une datawindow sur laquelle je n'ai pas le droit de mettre une scrollbar (exigence de l'utilisateur). Il faut scroller avec des boutons extérieurs à la datawindow.
J'ai réussi à faire le scroll vertical grace à scrollnextrow scrollpriorrow scrollnextpage et scrollpriorpage. Mais je n'arrive pas à faire la même chose en horizontal. J'ai fait un setcolumn qui sélectionne la colonne mais ne scroll pas ...
Merci d'avance pour votre aide
Hors ligne
En imaginant que "groupe_id" est la colonne vers laquelle tu dois scroller...
string ls_result long ll_pos ls_result = dw_search.describe ("groupe_id.X") If IsNumber (ls_result) then ll_pos = long (ls_result) dw_search.object.datawindow.HorizontalScrollPosition = ll_pos dw_search.SetColumn ("groupe_id") dw_search.SetFocus () End if
[edit] balise code
Hors ligne
pick ouic a écrit:
setrow( N° de ligne) peut etre ?
un setrow ou setcolumn ne scroll pas, il ne fait que sélectionner !
Hors ligne
abdelta a écrit:
pick ouic a écrit:
setrow( N° de ligne) peut etre ?
un setrow ou setcolumn ne scroll pas, il ne fait que sélectionner !
aieeeeeeeeee
comment elle me casse l'autre hé
au pire des cas :
string ls_result long ll_pos ls_result = dw_search.describe ("groupe_id.Y") If IsNumber (ls_result) then ll_pos = long (ls_result) dw_search.Object.DataWindow.VerticalScrollPosition = ll_pos dw_search.SetColumn ("groupe_id") dw_search.SetFocus () End if
j'ai testé, et ca fonctionne bien
Hors ligne
finalement, à partir de vos suggestions et de tests j'ai codé comme ca (en considérant que li_colonne est le numéro de la colonne à afficher):
dw_liste.setcolumn( li_colonne )
dw_liste.scrolltorow( dw_liste.getrow( ) )
j'ai remarqué, en essayant de scroller en horizontal puis en vertical, que la bonne colonne apparaissait. J'en ai donc déduit qu'il suffisait de faire afficher la ligne courante après avoir sélectionner la colonne.
Merci pour vos conseils
On peut dire que le problème est résolu !
Hors ligne