Salut à tous,
J'ai un problème avec un DBCtrlGrid.
Celui-ci affiche le résultat d'une requête (ADO) qui est réactualisée toute les 3 secondes par un REQUERY, de manière a refléter en temps quasi-réél les modifs faites sur les autres postes.
Le problème se pose si la liste contient plus d'enregistrements que le DBCtrlGrid n'a de lignes.
Exemple : le DBCtrlGrid affiche 9 lignes, et la requête envoie 25 records.
au début la première ligne sélectionnée correspond au premier records de la requête.
Si je fais PAGE DOWN, le DBCtrlGrid affiche les 9 records suivants, et c'est toujours la première ligne qui est sélectionnée. Normal.
Mais lorsque le REQUERY se lance, je dois faire en sorte que l'écran reste positionné sur le record sélectionné, sinon la liste se remet sur le tout premier record.
Quelle que soit la solution que j'utilise pour revenir à l'enregistrement en cours de sélection avant le REQUERY (bookmark, recno, panelindex), le DBCtrlGrid affiche l'enregistement sélectionné au milieu de l'écran, ce qui est perturbant : avant le requery, la ligne sélectionnée est la première de la grille, après le requery cette ligne "se déplace" au milieu de l'écran alors que l'utilisateur a encore les yeux rivés sur la première ligne.
L'enregistrement sélectionné est toujours le bon, mais sa position d'affichage ne cesse de changer.
De plus, le bookmark reste la solution la plus sécurisante, car des enregistrements peuvent avoir été supprimés sur d'autres postes entre deux REQUERY.
Y a t'il un moyen de mémoriser ou de repositionner la grille de telle manière que l'enregistrement sélectionné ne change pas de place après un rafraichissement de la requête ??
Merci d'avance.
Partager