Mřížka, ach ta mřížka - Zjištění ControlSource aktivního sloupce

Někdy je potřeba zjistit ControlSource aktivního sloupce mřížky pro vytvoření filtru (má to třeba MS Access). Dnešní článek ukáže jak to zařídit.
Prochází se seznam Columns a testuje se vlastnost ColumnOrder každého sloupce s vlastností ActiveColumn mřížky. Pokud jsou hodnoty obou vlastností shodné, pak se jedná o aktivní sloupec. Pak se z vlastnosti ControlSource převezme její obsah a provede náhrada Thisform a Thisformset za obsah vlastností Thisform.Name a Thisformset.Name.
Pozor:
Zdrojový kód:
* loGrid je odkaz na objekt mřížky
* lcCS bude buď prázdné, nebo bude obsahovat obsah ControlSource
LOCAL lii,lcCS
lcCS=''
WITH loGrid
* Projdu všechny sloupce abych identifikoval ten správný (kvůli zdroji dat)
* Pak z něho vytáhnu potřebné informace a postavím filtr
FOR lii=1 TO .ColumnCount
    IF .Columns(lii).ColumnOrder#.ActiveColumn && Toto není aktivní sloupec
       LOOP && Pak jdi na další
    ENDIF
    * Našel jsem aktivní sloupec
    * Vezmu zdroj dat
    lcCS=STRTRAN(STRTRAN(NORMALIZE(.Columns(lii).ControlSource),;
                 NORMALIZE("Thisform"),Thisform.Name),;
                 NORMALIZE("Thisformset"),Thisformset.Name)
    EXIT && Ukonči smyčku
NEXT
ENDWITH