3. 1 HTML Import expert

Jednou z možností, jak naplnit tabulku daty (nebo dokonce vytvořit tabulku novou a tu naplnit daty), je využít data z Internetu. Tam jsou zpravidla uložena ve formě tzv. HTML dokumentu. Pro načtení takovýchto dat do tabulky Paradoxu je určen expert nazvaný příznačně HTML Import. Dříve ale, než ho spustíme, je vhodné uložit HTML dokument do souboru na disk. My budeme předpokládat, že máme k dispozici soubor ZAKAZNIK.HTM - tento soubor je k dispozici na internetové adrese http://nb.vse.cz/~mikan/pdw9/ zakaznik.htm. Alespoň začátek tohoto dokumentu ukazuje následující obrázek.Obr. 3-1: Ukázka v tabulce HTML dokumentu uložených údajů

Máme k dispozici data - uložili jsme je z prohlížeče www stránek pomocí příkazu File, Save As... a zpravidla volba HTML dokumentu (případně Soubor, Uložit jako soubor... a opět volíme typ dokumentu HTML). Nezbývá, než spustit experta na import HTML dokumentů.

Experta můžeme spustit několika způsoby. Můžeme např. experta vybrat z okna Perfect Expert - jmenuje se HTML Import. Z dialogového okna s experty (zobrazeného pomocí příkazu z menu Tools, Experts... nebo z uvítací obrazovky po spuštění Paradoxu) můžeme volit HTML Import. Ať již volíme první nebo druhý způsob spuštění experta, zobrazí se první dialogové okno experta na import HTML dokumentů.

Obr. 3-2: První okno experta na import HTML dokumentů - volba souboru

Jak je z dialogového okna patrné, volit HTML dokument je možné pouze ze souborů dostupných přímo z počítače (nikoliv z Internetu zadáním URL) - k dispozici je i seznam disků (ve spodní části dialogového okna) pro nalezení požadovaného souboru.

Vybereme dokument a odklepneme tlačítko Next >. Po analýze zadaného dokumentu se zobrazí druhé dialogové okno se seznamem položek zvoleného HTML dokumentu. Pokud dokument obsahuje chyby - např. neukončené buňky nebo řádky, zobrazí se chybové hlášení.Obr. 3-3: Druhé okno experta na import HTML dokumentů - volba tabulky

HTML dokument může obsahovat více tabulek - v seznamu vlevo nahoře volíme, kterou z nich chceme importovat. Pomocí zaškrtávacího pole Use first row for column headings přikazujeme použít první řádek jako název položek. Po zaškrtnutí se okamžitě upraví vzhled tabulky ve spodní části dialogového okna.Obr. 3-4: Druhé okno experta na import HTML dokumentů - názvy položek

Po zaškrtnutí a odklepnutí tlačítka Next > postoupíme k dalšímu dialogovému oknu experta.

Obr. 3-5: Třetí okno experta na import HTML dokumentů

V tomto dialogovém okně volíme, jak budou definovány typy a velikosti položek. Zvolíme-li v přepínači možnost Define fields from scratch, budeme muset v dalším dialogovém okně určit typy položek sami.

Obr. 3-6: Volba typů položek importovaných dat

V levém seznamu Field name se zobrazuje seznam položek (z tabulky HTML dokumentu), v prostředním sloupci Sample data se zobrazují vzorová data - data z vybraného sloupce tabulky. V pravé části dialogového okna v sekci Field Options definujeme parametry vybrané položky. Postupně je to název (Name), typ položky (Type) a velikost (Size). Za zmínku stojí seznam podporovaných typů položek: Alpha, Number, Long Integer, $ (Money), Date, Time, Memo a Logical. Z toho vyplývá důsledek, že pomocí experta nenačteme do tabulek Paradoxu například formátované memo položky nebo obrázky.

Ve spodní části sekce Field Options jsou tři zaškrtávací pole. Pomocí prvního - Do not import field - zakážeme vybranou položku importovat (sloupec se přeskočí). Pomocí zaškrtnutí pole Primary key přikážeme definovat podle vybrané položky klíč (samozřejmě musí být splněna pravidla na vytváření klíče - vždy od první položky nepřetržitě). Konečně zaškrtnutím posledního pole Required přikazuje, aby obsah vybraného pole musel být vždy vyplněn.

Ukažme si ale také druhou možnost definice položek - z existující tabulky. V tom případě musíme v předcházejícím dialogovém okně (viz obr. 3-5) zvolit možnost Match to fields from existing table a do pole zapsat název tabulky nebo tabulku nalistovat pomocí tlačítka Browse... Po určení tabulky a přechodu do dalšího dialogového okna zjistíme, že dialogové okno je téměř stejné, pouze volíme jiné věci a přibylo jedno tlačítko.

Obr. 3-7: Volba typů položek importovaných dat - podle zadané tabulky

Změna je v poli Target - v rozbalovacím seznamu se nabízejí položky podle zadané tabulky. Typ, velikost a další atributy již nemůžeme upravovat (přebírají se ze zadané tabulky). V pravé horní části dialogového okna přibylo tlačítko Remove target - po jeho stisku zrušíme přiřazení položky k položce zadané tabulky.

Pokud jsme zadávali názvy a typy položek sami, zobrazí se po odklepnutí tlačítka Next > dialogové okno (viz na následující straně obr. 3-8), ve kterém můžeme zadat název nové tabulky (v poli Table name), můžeme určit adresář (v poli Table location) - tyto údaje můžeme nalistovat pomocí tlačítka Browse... Poslední možností je zobrazit novou tabulku - v tom případě musíme zaškrtnout pole View the new table. Po zadání všeho odklepneme tlačítko Finish a tabulka je vytvořena (pokud jsme samozřejmě neudělali nějakou chybu v definici tabulky).

Pokud jsme přebírali strukturu tabulky, zobrazí se jiné dialogové okno (viz obr. 3-9 na následující straně).



Obr. 3-8: Vlastní vytvoření tabulky a import dat - nová tabulka

Obr. 3-9: Dokončení importu pro tabulku s přebíranou strukturou

Protože jsme převzali strukturu z existující tabulky, můžeme do této tabulky data z HTML dokumentu přidat (volíme Append to ZAKAZNIK.DB), můžeme původní obsah tabulky smazat a data vložit (Empty and append to ZAKAZNIK.DB). Poslední třetí možností je vytvoření nové tabulky (Create a new table) - poté se zpřístupní pole pro zadání názvu a umístění. Vždy je k dispozici zaškrtávací pole, prostřednictvím kterého můžeme přikázat tabulku zobrazit (View the new table).

Upozorněme ještě jednou, že obrázky, formátované memo, OLE a podobné položky pomocí experta HTML Import nenačteme. Druhé upozornění se vztahuje k vlastnostem tabulek, do kterých přidáváme věty. Pokud je definován klíč nebo referenční integrita, nebudou vloženy takové věty, které by pravidla pro ně porušily.



3. 2 Text Import expert

Import z textových souborů si budeme demonstrovat na vstupu údajů do tabulky zájezdů. Předpokládejme, že textový soubor s požadovaným obsahem je uložen v souboru ZAJ.TXT (opět je k dispozici na internetové adrese http://nb.vse.cz/~mikan/pdw9/zaj.txt). Textový soubor vypadá následovně.

Obr. 3-10: Vzhled části textového souboru s daty do tabulky ZAJEZDY

Jak je z obrázku patrné, jednotlivé položky jsou odděleny středníky a znakové údaje jsou v uvozovkách (tzv. Delimited Fields).

Experta na import textových souborů spustíme z okna Perfect Expert, případně z dialogového okna expertů, které se zobrazí příkazem Tools, Experts... Expert se jmenuje Text Import. Můžeme využít i spuštění z okna projektů Paradoxu. Po spuštění experta se zobrazí jeho první dialogové okno.

Obr. 3-11: První dialogové okno experta na import textových souborů

Paradox zjistil, že jsme ještě neprováděli žádný import a nabízí nám jedinou možnost pokračování - vytvořit nové nastavení importu - Create new import settings. Pokud bychom již nastavení měli uloženo, mohli bychom nastavení použít nebo modifikovat. Po odklepnutí tlačítka Next > se zobrazí další dialogové okno experta.

Obr. 3-12: Volba textového souboru

V seznamu v levé části dialogového okna volíme textový soubor - pokud je v pracovním adresáři, měl by mít příponu txt. Soubor můžeme nalistovat - k tomu je určeno tlačítko Browse... - v tomto případě může mít příponu libovolnou.

V pravé části dialogového okna musíme rozhodnout, v jakém kódování je soubor vytvořen - k dispozici je Windows (někdy uváděné jako ANSI) a DOS (někdy uváděné jako OEM).

Máme-li vše zvoleno, pokračujeme dále.

Vzhled tohoto dialogového okna (viz obr. 3-13 na následujíc straně) závisí na názvu textového souboru. Pokud je textový soubor pojmenován jako některá tabulka, nabízí se import přímo do této tabulky. Pokud je název jiný, nabízí se import do nové tabulky - je zvolena možnost Create a New Table. Poklepáním na existující tabulku se přemístíme do dalšího dialogového okna, což nechceme. Proto tabulku ZAJEZDY vybereme až po odklepnutí tlačítka Browse... Dialogové okno se upraví (viz obr. 3-14 na následující straně).

Zpřístupnily se dvě další možnosti práce. Data z textového souboru můžeme přidat ke zvolené tabulce (Append to Existing Table), nebo můžeme existující tabulku přepsat (Overwrite Existing Table). My zvolíme přidání.

V dalším dialogovém okně (viz obr. 3-15 na následující straně) určujeme, od které řádky se budou data importovat - prvních několik řádek totiž může obsahovat záhlaví a různé popisy pro import nevhodné. Pokud určíme některou z následujících řádek, nevhodné řádky se při importu přeskočí.



Obr. 3-13: Cíl importu textového souboru - nová tabulka

Obr. 3-14: Cíl importu textového souboru - existující tabulka
Obr. 3-15: Volba první importované řádky
Po určení první řádky s daty se zobrazí další dialogové okno (viz obr. 3-16 na následující straně). V něm určujeme, jak jsou data v textovém souboru vložena.

V úvahu přicházejí buď data o pevné délce řádky (nestejná délka v rámci položek je vyrovnána doplněnými mezerami - Fixed Length), nebo data oddělená oddělovači (Delimited) - nejčastěji středníkem, čárkou nebo tabulátorem. Naše vzorová data jsou druhého typu.

V následujícím dialogovém okně (viz obr. 3-17 na následující straně) již specifikujeme způsob oddělení jednotlivých položek.

Zadáváme dva znaky. Jako první je to znak, ve kterém jsou jednotlivé položky uzavřeny - zpravidla se jedná o uvozovky. Tento znak zadáváme do pole Delimiter. Dále ještě musíme určit, zda jsou uzavřeny všechny položky (vpravo přepínač All Fields), nebo zda se jedná pouze o textové položky (Text Fields Only). V našem případě jsou do uvozovek uzavřeny pouze texty.



Obr. 3-16: Volba typu dat

Obr. 3-17: Volba oddělovačů
Druhý typ oddělovače představuje znak, kterým jsou odděleny jednotlivé položky - je nazván Separator. Vlevo dole to může být buď tabulátor (Tab), nebo jiný znak, který musíme zadat (Other). V našem případě zadáme do pole Other středník.

V dalším dialogovém okně již jen rekapitulujeme (a případně i upravujeme) strukturu tabulky. Opět se vzorovou větou.

Obr. 3-18: Názvy a typy položek cílové tabulky

Strukturu tabulky můžeme upravovat po stisku funkční klávesy F9, do té doby je struktura cílové tabulky určena pouze pro prohlížení.

V dialogovém okně jsou dvě tlačítka. Tlačítkem Reset odstraníme veškeré naše změny a vrátíme se k původnímu stavu struktury tabulky. Po odklepnutí tlačítka Borrow můžeme převzít strukturu jiné tabulky (vybíráme ji ze standardního souborového dialogového okna).

Po odklepnutí tlačítka Next > se zobrazí již poslední dialogové okno experta.



Obr. 3-19: Poslední dialogové okno experta

V první části v zaškrtávacích polích určujeme, zda se má nastavení importu uchovat (i když v poli Save these import settings nezaškrtneme, protože se jedná o první nastavení, uchová se jako standardní s názvem Most recent text import run).

Pomocí druhého zaškrtávacího pole Generate a script that can perform this import můžeme přikázat vytvořit skript, pomocí kterého se příště import provede.

Ať již zaškrtneme první nebo druhé zaškrtávací pole, zpřístupní se pole, do kterého můžeme zapsat název nastavení nebo skriptu.

Ve spodní části dialogového okna můžeme přikázat zobrazit tabulku s importovanými hodnotami (Display the tabel when finished), nebo zobrazení nepožadovat (Do not display the table).

Vše je nastaveno, tlačítkem Finish import spustíme.

Protože jsme přikázali vytvořit skript, informuje nás expert o jeho vytvoření.

Obr. 3-20: Informace o vytvoření skriptu

Expert ukončil svou práci, můžeme se podívat, jak jsou data vložena.



Tohoto experta projdeme ale ještě jednou - ukázali jsme si totiž, jak vložit data, která jsou oddělena do jednotlivých položek. Druhým typem dat je soubor s pevnou délkou položek (a tedy nakonec i řádek). K tomu jsme si připravili druhý soubor ZAJ2.TXT. Jeho obsah je následující.

Obr. 3-21: Obsah textového souboru s pevnou délkou řádek

Jak je z obrázku patrné, položky vždy začínají na stejné pozici a řádky jsou stejně dlouhé.

Spustíme znovu experta na import textu a hned na prvním dialogovém okně (viz obr. 3-22 na následující straně) vidíme změnu - přestože jsme nepřikázali uložit nastavení předcházejícího importu, uložilo se automaticky (pro připomenutí - požádali jsme pouze o vytvoření skriptu). My ho ale nevyužijeme a vytvoříme nové nastavení.

Ve druhém dialogovém okně vybereme druhý textový soubor a rozhodneme o kódování Windows (viz obr. 3-12). V dalším dialogovém okně přikážeme data přidat do tabulky ZAJEZDY (viz obr. 3-13 a 3-14). Pokračujeme dialogovým oknem, ve kterém potvrdíme, že importovat se má již od první řádky (ekvivalent obrázku 3-15).

Drobná změna je v dalším kroku. Musíme totiž zvolit pevnou délku řádek - Fixed Length (viz obr. 3-23 na následující stránce).

Obr. 3-22: Spuštění experta na import textu

Obr. 3-23: Volba typu dat - pevná délka řádek
Zcela nové je následující dialogové okno. V něm musíme rozhodnout, kde začínají jednotlivé položky. Expert se nám v tom snaží pomoci a v horní sekci jsou znaky Ť naznačeny začátky položek (expert doplní značky vždy na začátek každého slova v první řádce).

Obr. 3-24: Rozčlenění řádek do položek

Začátek položky doplníme poklepáním na původní značce -. Pokud bychom umístili začátek položky na špatné místo, vybereme symbol Ť a opětovným poklepáním ho zrušíme. Odklepnutím tlačítka Reset se vrátíme k původnímu stavu - veškeré naše úpravy budou odstraněny. Všechny značky začátku položek zrušíme odklepnutím tlačítka Clear. Protože řádek může být širší než dialogové okno, jsou k dispozici dvě tlačítka pro pohyb po šířce řádky (vpravo a vlevo vždy se dvěma nerovnostními znaménky).

Po odklepnutí tlačítka Next > se zobrazí varování experta - potenciálně krátká pátá položka (expert porovnává námi určené začátky položek s definicí struktury tabulky ZAJEZDY tak, jak jsme určili, že do této tabulky požadujeme vstoupit s údaji).



Obr. 3-25: Varování experta

Následuje rekapitulace názvů, typů a velikostí položek. Sice dialogové okno známe, ale zobrazíme si ho ještě jednou.

Obr. 3-26: Názvy, typy a velikosti položek

A v posledním dialogovém okně můžeme přikázat uložit nastavení, skript, případně zobrazit cílovou tabulku (viz obr. 3-19). Po odklepnutí tlačítka Finish jsou věty vloženy.

Poznámka na závěr. Nastavení importu jsou ukládána do tabulky s názvem IMPSPECS.DB - smazáním této tabulky budeme muset vždy nastavení importu provést od nuly.



3. 3 Souhrn nejdůležitějších poznatků

Chceme-li pracovat s tabulkou, musíme ji otevřít v okně. K tomu můžeme volit z menu File, Open, Table... a v dialogovém okně si vybrat požadovanou tabulku.

Obr. 3-27: Otevření tabulky pomocí výběru v dialogovém okně

Tabulka se zobrazí v okně a je možné ji pouze prohlížet.

Pro editaci dat musíme z menu volit příkaz View, Edit data, stisknout funkční klávesu F9 nebo odklepnout na panelu vlastností ikonu s tabulkou, na kterou ukazuje tužka (viz obrázek vlevo).

Při změnách obsahu položek je nutné na měněném místě poklepat a tím se přepnout do režimu Field View (práce v položce). Ekvivalentem je i stisk funkční klávesy F2. Pro memo položky volíme z menu View, Memo View, případně používáme kombinaci kláves Shift+F2.

Je-li pro položku definována vlastnost číselník, pro jeho aplikaci s nápovědou volíme z menu Record, Reference, Lookup help, ekvivalentem je kombinace kláves Ctrl+mezerník. Zobrazí se v novém okně tabulka, ze které můžeme volit požadovanou větu.

Obr. 3-28: Demonstrace použití číselníku - vyplňování s nápovědou

Druhou obdobnou vlastností je referenční integrita. I pro její použití můžeme volit z menu příkaz Record, Reference, Move help (do češtiny přeloženo ne příliš logicky jako přesun nápovědy), případně i kombinaci Ctrl+Shif+mezerník. Opět se zobrazí tabulka v okně.

Obr. 3-29: Demonstrace použití referenční integrity - přesun nápovědy

Celý obsah položky můžeme vyhledat a nahradit jiným obsahem. K tomu z menu volíme Record, Locate, Replace... Zkrácenou klávesovou kombinací je Ctrl+Shift+Z. Volíme prohledávanou položku (pole Field), zadáváme hledanou hodnotu (Value) a zadáváme i novou hodnotu (Replace with).

Obr. 3-30: Dialogové okno pro vyhledávání a náhradu obsahu položky

Chceme-li omezit zobrazování vět, použijeme filtr. K tomu volíme z menu Format, Filter...

Obr. 3-31: Komplexní dialogové okno pro zadání filtru

Požadovaný obsah zapisujeme do odpovídajících polí v dialogovém okně (např. Aš do položky Mesto).

Pro jednotlivé části tabulky můžeme měnit vlastnosti zobrazení - pro mřížku, záhlaví i datové položky. Vlastnosti měníme v dialogovém okně s jednotlivými kartami. Nejrychlejší cesta jak toto okno vyvolat je prozkoumání požadované části tabulky a buď se přímo zobrazí dialogové okno nebo volíme z místní nabídky příkaz Properties.

Obr. 3-32: Dialogové okno s vlastnostmi pro záhlaví - karta General

Po změně vlastností tabulky je nutné tyto vlastnosti při ukončení práce s tabulkou uložit. K tomu volíme z menu Format, Properties, Save. Vytvoří se soubor s názvem stejným jako má tabulka a s příponou TV.