DBCtrlGrids : en Synchroniser 2 (ou plus)
Bonjour,
sur une forme j'ai deux DbCtrlGrids liées a 2 Datasets différents .
Pour les besoins de mon exemple , je vais utiliser les tables Suivantes
la première Grille est liée a MAITRE
la seconde a une Query
Code:
1 2 3
| SELECT COALESCE(D.SAISON,M.SAISON) AS SAISONREP,
COALESCE(PRIX,M.PRIX_BASE) AS PRIXREP
FROM MAITRE M LEFT JOIN DETAIL D ON M.SAISON=D.SAISON AND D.REPRESENTANT=:Representant |
ce qui fait que : a tout enregistrement de la dbctrlgrid1 correspond un enregistrement de dbctrlgrid2 . Les deux grilles sont disposées horizontalement, et le panneau actif est mis en couleur (selectedcolor:=clActiveCaption);
Voilà , la situation est posée
pour synchroniser les tables , je passe par les events afterScroll et me positionne donc sur le Champ SAISON via un locate (rassurez-vous , il y a au maximum 12 'SAISONS')
mon problème : les deux grilles , malgré une taille de panneau identiques ne sont pas toujours Synchrones .
Quelques fois je me retrouve avec un décalage (bien visible hélas) entre les deux grilles (ce sont les bons enregistrements) , le locate ayant tendance a positionner le panneau de l'enregistrement en colonne 1 .
Comment faire pour que les panneaux concordent ?
j'ai essayé :
- DBCtrlGrid2.Panel:=DBCtrlGrid1.Panel // ne fonctionne pas panel seul les panels visibles sont numérotés
- de dériver un DBCtrlGrid en Stringgrid // échec lamentable leftcol et col ne bougent pas
Je patauge lamentablement , sur les scrollby et il y a certainement des pistes que j'ai encore ignorées