Automation - dříve OLE Automation

Pod tímto názvem se skrývá zajímavá technologie, která umožňuje ovládat jiné programy (v našem případě Excel). Mohlo by se zdát, že to není k ničemu, ale opak je pravdou.

Nedávno jsem řešil objednávkový program pro velkou stravovací firmu. Firma používala 15 let starý program vytvořený v dBasi pro DOS. Už to moc nefungovalo, občas to "spadlo", některé DB soubory byly poškozené, nebylo v čem to udělat, nebyl k dispozici zdroják a požadovali, aby to fungovalo co nejdřív (nejlépe včera). Co s tím? Udělal jsem to celé znovu v Excelu a trvalo to pár dnů. Jednotlivé listy představovaly obrazovky původního programu jak byli uživatelé zvyklí, listy přepínám myší i klávesnicí (jako dBase), vždy je zobrazen jen jeden list jako v DOSu. Využil jsem schopnosti Excelu, že umí pracovat se soubory DBF. Výsledkem tedy je, že v Excelu, který se chová jako program pro Windows (podle vzhledu nikdo nevěří, že je to Excel) zpracovávám databáze DBF. 

A proč o tom tolik píšu? Využil jsem několika přednodtí Excelu. Excel umí otevřít DBF soubor, jenže původní soubor (z kterého otvíráte databázi) přejmenuje na něco.DBF, při ukládání uloží jako soubor DBF jen aktuální list. Jinak to funguje celkem dobře. Jen ještě, když přidáte záznam při ukládání se neuloží (soubory DBF používají názvy oblastí, proto je v ukázce před uložením vždy přejmenovaná aktuální oblast). Tolik jsem zjistil o DBF souborech. 

Technologie Automation umožní, že uživatel vůbec neuvidí databázi, neboť v konečné aplikaci běží jako skrytá (vlastnost.Visible=False), při ladění (vlastnost.Visible=True) jsem si ji prohlížel, abych viděl jak makra s databází manipulují. Uvedený příklad je pouze ukázkový, aby nebyl čtenář zmaten rozsáhlostí kódu. Je uvedeno jen to podstatné, doporučuji si aplikaci spouštět v režimu ladění i neladění - vypinač Ladění. Kód je podrobně komentován. V ukázce se tlačítkem Otevřít DBF vytvoří nová instace Excelu (CreateObject) a v ní otevře databáze db.dbf (Open). Do našeho souboru Automation.xls se načtou data se kterými můžeme libovolně manipulovat (pohyb po záznamech, přidávat, mazat, měnit a filtrovat záznamy pomocí ovládacích prvků vpravo - současně se data mění a ukládají (SaveAs) ve skutečné databázi. Nakonec ukončíme práci s databází tlačítkem Zavření DB, tím se zavře databáze (Close), ukončí druhá instance Excelu (Quit), uvolní z paměti objektová proměnná (Nothing). Ve skutečné aplikaci se uživatel o otvírání a zavírání databáze nestará, tzn. kód tlačítek Otevřít DBF a Zavření DBF bude v příslušných událostech (třeba Open a BeforeClose) a řádně ošetřen.

 


Stažení souboru

Zpět na hlavní stránku