Visual FoxPro a grid

Další kapitolou dnešního HotLine je Grid. Je horší nebo lepší než BROWSE? Je takový, jaký je, a je to objekt a ten do objektového programování prostě patří. Ale co když neposlouchá? Nezbývá než ho umravnit. V odpovědi na další dotaz je popsán jeden malý trik.

Na formuláři mám Grid, ve kterém nastavím šířku sloupců a jiné formátování. Při prvním zobrazení je vše OK. Provedu PACK a zmizí tabulka, po přiřazení RecodSource zmizí formátování. Čím to ?
Je to způsobeno „nedokumentovanou vlastností“ Gridu. Před příkazem PACK (ale i před novým SQL dotazem) je nutné nastavit RecordSource na prázdnou hodnotu *). Například:

WITH Thisform
.LockScreen=.T. && Aby neblikala obrazovka
.Grid1.RecordSource=""
PACK
.Grid1.RecordSource="Tabulka" && Není nutné volat Refresh()
.LockScreen=.F.
ENDWITH

Při takovémto použití příkazu PACK se neztratí formátování Gridu a ani nebliknou data. **)

Jak vysvítím celý řádek v Gridu ?
Jak zvýrazním řádky se zápornou hodnotou?
Oba dotazy lze odbýt jednou odpovědí: použijte kolekci vlastností Dynamic (je jich celá škála DynamicBackColor,DynamicForeColor,DynamicFontSize a další). Příklad použití je v ukázkové aplikaci Solution ***), která se dodává spolu s Visual Foxpro 5.0, 6.0, nebo v Helpu u hesla DynamicBackColor.

Martin Růžička

* Pozn. přepis.: I pro mě to byla novinka, příjemná.
** Pozn. přepis.: Bohužel, ne vše. Podrobně je to popsáno v článku Grid - část první
*** Pozn. přepis.: Je velmi zajímavé, jak začátečníci (i čnice) zcela tuto aplikaci ignorují.
Vždyť je tam spousta věcí: ActiveX, OLE (přístup na Wordovský dokument,Excelovský Sheet,tvorba grafu), hrátky s gridem, zobrazení sledu událostí atd.