STŘEDNÍ PRŮMYSLOVÁ ŠKOLA ELEKTROTECHNIKY A INFORMATIKY, OSTRAVA, PŘÍSPĚVKOVÁ ORGANIZACE DORG ORGANIZÉR. Dlouhodobá praktická maturitní práce

Podobné dokumenty
Popis funkcí exportovaných z knihovny nddbe.dll

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

PALSTAT s.r.o. systémy řízení jakosti PALSTAT CAQ verze Kontakty 08/ Obsah

Popis rozšířujících funkcí JScriptu

Reliance 3 design OBSAH

Manuál k programu KaraokeEditor

Postupy práce se šablonami IS MPP

Návod pro práci s aplikací

Průvodce instalací modulu Offline VetShop verze 3.4

Úvod. Program ZK EANPRINT. Základní vlastnosti programu. Co program vyžaduje. Určení programu. Jak program spustit. Uživatelská dokumentace programu

IPFW. Aplikace pro ovládání placeného připojení k Internetu. verze 1.1

Už ivatelska dokumentace

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

Připojení ke vzdálené aplikaci Target 2100

Budovy a místnosti. 1. Spuštění modulu Budovy a místnosti

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Obsah. při vyšetření pacienta. GDT souboru do programu COSMED Omnia GDT souboru z programu COSMED Omnia a zobrazení výsledků měření v programu MEDICUS

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Uživatelská příručka pro respondenty

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

APS Administrator.GS

Manuál pro mobilní aplikaci Patron-Pro. verze pro operační systém Symbian

1 Tabulky Příklad 3 Access 2010

CUZAK. Uživatelská příručka. Verze

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

Základní popis Toolboxu MPSV nástroje

Vzorce. Suma. Tvorba vzorce napsáním. Tvorba vzorců průvodcem

Přehledy pro Tabulky Hlavním smyslem této nové agendy je jednoduché řazení, filtrování a seskupování dle libovolných sloupců.

Program pro tvorbu technických výpočtů. VIKLAN - Výpočty. Uživatelská příručka. pro seznámení se základními možnostmi programu. Ing.

Nápověda aplikace Patron-Pro

Příručka pro aplikaci KSnapshot

Elektronické zpracování dotazníků AGEL. Verze

Svolávací systém Uživatelský manuál

45 Plánovací kalendář

Návod k práci s programem MMPI-2

Zpravodaj. Uživatelská příručka. Verze

Postup přechodu na podporované prostředí. Přechod aplikace BankKlient na nový operační systém formou reinstalace ze zálohy

Základní popis Toolboxu MPSV nástroje

UniLog-D. v1.01 návod k obsluze software. Strana 1

Migrace na aplikaci Outlook 2010

Zpracování ročních zpráv v IS FKVS Příručka pro koncové uživatele

Naším cílem je Vaše spokojenost...

Úvod...1 Instalace...1 Popis funkcí...2 Hlavní obrazovka...2 Menu...3 Práce s aplikací - příklad...5

CUZAK. Uživatelská příručka. Verze

Kanboard Documentation. The Kanboard Authors

DUM 06 téma: Tvorba makra pomocí VBA

Nový design ESO9. E S O 9 i n t e r n a t i o n a l a. s. U M l ý n a , P r a h a. Strana 1 z 9

Prohlížení a editace externích předmětů

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

!! UPOZORNĚNÍ!! Po nainstalování programu nezapomeňte instalovat Sestavy a Aktualizaci!! Pokyny k instalaci

Windows 8.1 (5. třída)

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Návod - katalog. ANTEE s.r.o. - tel.: , fax: , helpdesk: ,

Práce s programem MPVaK

Windows 10 (5. třída)

Studijní skupiny. 1. Spuštění modulu Studijní skupiny

Uživatelská příručka pro respondenty

APS mini.ed programová nadstavba pro základní vyhodnocení docházky. Příručka uživatele verze

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Průvodce aplikací FS Karta

Úvodní příručka. Získání nápovědy Kliknutím na otazník přejděte na obsah nápovědy.

3 Makra Příklad 4 Access Ve vytvořené databázi potřebuje sekretářka společnosti Naše zahrada zautomatizovat některé úkony pomocí maker.

INSTALAČNÍ POSTUP PRO APLIKACI ELIŠKA 4

Návod k ovládání aplikace

Návod pro použití Plug-in SMS Operátor

Administrace webu Postup při práci

aneb velice zjednodušené vysvětlení základních funkcí a možností systému Vypracoval: Tomáš Dluhoš tomas.d@centrum.cz

OBSAH. 1. Úvod Požadavky na SW vybavení... 3

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.

Formulář NÚV v programu PPP4

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN RESEARCH / DATA

Technologické postupy práce s aktovkou IS MPP

Instalace a nastavení PDFCreatoru

Nápověda k aplikaci EA Script Engine

BALISTICKÝ MĚŘICÍ SYSTÉM


z aplikace Access 2003

4.2. Odhlásit se Šifrování hesla Sepnutí výstupních relé Antipassback Zobrazení všech dat...

PROFI TDi s.r.o , Želetice 40 Návod k používání systému OTDI.CZ

Windows - základy. Hlavním vypínačem na základní jednotce. K datům uloženým do výchozí složky.

1. Podmínky chodu aplikace

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro administrátory. Verze 1.

Popis programu EnicomD

1 Uživatelská dokumentace

Software602 FormApps Server

Ignijet_2007 Externí monitor

Univerzální prohlížeč naměřených hodnot

Jak používat program P-touch Transfer Manager

2017 CARAT "New design"

ÚLOHA 6. Úloha 6: Stěžejní body tohoto příkladu:

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Hotline Helios Tel.: Pokročilé ovládání IS Helios Orange

Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky. PORTÁL KUDY KAM. Manuál pro editaci ŽS. Verze 1.

UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Návod - katalog. ANTEE s.r.o. - tel.: , fax: , helpdesk: ,

Univerzální rezervační systém. Uživatelská příručka

Stručný manuál pro webový editor. Ukládáni základních informací, tvorba menu

Úvod do systému

Úvodní příručka. Správa souborů Kliknutím na kartu Soubor můžete otevřít, uložit, vytisknout a spravovat své soubory Wordu.

Transkript:

STŘEDNÍ PRŮMYSLOVÁ ŠKOLA ELEKTROTECHNIKY A INFORMATIKY, OSTRAVA, PŘÍSPĚVKOVÁ ORGANIZACE DORG ORGANIZÉR Dlouhodobá praktická maturitní práce Jméno a příjmení: Pavel Dziadzio Rok obhajoby: 2007 Vedoucí práce: Mgr. Jarmila Halšková

2

Obsah 1.Zadání...2 2.Abstrakt...4 3.Prohlášení...5 4.Programová část...6 4.1.Základní popis programu...6 4.2.Struktura hlavního programu...6 4.3.Start programu...9 4.4.Práce s daty knihovna nddbe.dll...10 4.4.1.Datové soubory...11 4.4.2.Soubor hlavní databáze činností...11 4.4.3.Použití knihovny...12 4.4.4.Příklad použití knihovny...13 4.5.Víceuživatelské prostředí...14 4.6.GUI...14 4.6.1.Grafické komponenty...14 4.6.2.Popup menu...15 4.6.3.Změna vzhledu skinování...17 4.7.Dorg Deamon...17 4.8.Použité moduly...18 5.Uživatelská příručka...19 5.1.Popis prostředí...19 5.1.1.Okno programu...19 5.1.2.Hlavní menu...19 5.1.3.Levý panel...21 5.1.4.Pohledy...23 5.2.Akce...25 5.2.1.Editace činností...25 5.2.2.Editace úkolů...28 5.2.3.Editace kontaktu...29 5.2.4.Změna poznámky dne...30 5.2.5.Vyhledávání...30 5.2.6.Export...31 5.2.7.Zálohy...31 5.3.Nastavení...32 5.4.Dorg Deamon...33 5.4.1.Ovládání...34 6.Závěr...35 7.Použitá literatura...35 8.Přílohy...35 3

2. Abstrakt Program Dorg (Dodo's Organizer) je jednoduchý elektronický organizér, úkolovník a adresář s přehledným grafickým uživatelským prostředím, které navíc umožňuje změnu vzhledu - použití skinů. Umožňuje zaznamenávat různé činnosti včetně jejich popisu, místa konání, času začátku a konce. Dále zaznamenává krátké úkoly pro celý den a také obsahuje seznam kontaktů. U každé osoby umožňuje uvést základní informace - jméno, přezdívku, email, adresu, zaměstnání, telefonní čísla a datum narození. Program také obsahuje hledání, takže můžete snadno najít požadovanou zaznamenanou činnost nebo kdy má někdo svátek. Doplňkovou funkcí je pak možnost exportu do HTML souboru a také možnost zálohování dat. Součástí aplikace je i tzv. démon. To je program, který stále běží v pozadí od spuštění systému a upozorňuje na zadané činnosti v určitém (zadaném) předstihu před začátkem úkolu. 4

3. Prohlášení Prohlašuji, že předložená práce je mým původním dílem, které jsem vypracoval samostatně. Veškerou literaturu a další zdroje, z nichž jsem při zpracování čerpal, v práci řádně cituji a jsou uvedeny v seznamu použité literatury. Souhlasím s prezenčním zpřístupněním své práce ve Školním informačním centru Střední průmyslové školy, Ostrava, příspěvková organizace. 5

4. Programová část 4.1. Základní popis programu Program byl napsán ve vývojovém prostředí Microsoft Visual Studio.NET 2003 v programovacím jazyku C++. Hlavní program (soubor dorg.exe) využívá knihovnu MFC, proto je celý jeho kód psán podle zásad objektově orientovaného programovaní. Ostatní součásti aplikace využívají standardní funkce WinAPI. Uživatelské rozhraní hlavního programu je tvořeno pomocí HTML, kaskádových stylů a JScriptu. Pro zobrazení je využíváno jádro aplikace Internet Explorer (dále jen IE), zpřístupněné třídou CHtmlDlgDef. Ta je odvozena od třídy CDHtmlDialog MFC knihovny a vytváří přes celou klientskou oblast okna objekt prohlížeče. Aby měly všechny komponenty uživatelského rozhraní jednotný vzhled a nemusel se do každého místa vkládat dlouhý kód této komponenty, je využito HTML komponent. Jedná se o rozšíření základního HTML jazyka o další objekty tagy, které jsou definovány ve speciálních skriptech - souborech s příponou htc. Využití HTML pro uživatelské rozhraní umožnilo relativně rychlý vývoj a snadné doplňování a editaci jednotlivých oken a dialogů. Rovněž je možné takto velice snadno vytvořit velmi pěkný a efektní vzhled. Další výhodou tohoto řešení je použití kaskádových stylů pro nastavení vlastností grafických prvků. Toto posloužilo jako základ pro podporu kompletní změny vzhledu programu pomocí skinů, kdy stačí nahradit CSS soubor za jiný. Grafické prostředí komunikuje se samotným jádrem programu, které vykovává většinu činností, prostřednictvím jednoduchého příkazového interpretu. Pro zjednodušení práce je ještě pro každý příkaz v JScriptu vytvořena funkce, která zpracuje vstupní parametry, odešle příkaz jádru a vrátí případné výstupní hodnoty. 4.2. Struktura hlavního programu Již při návrhu aplikace byl kladen důraz na rozdělení do jednotlivých samostatných funkčních bloků, což jednak zpřehlední celý program, protože každá část se stará o svou práci, a jednak umožní efektivněji pokračovat v dalším vývoji. Lze totiž upravovat jednotlivé bloky zvlášť, nezávisle na ostatních nebo je zcela nahradit, případně využít i v jiné aplikaci. Příkladem je práce s databází jednotlivými datovými soubory. Podpora práce s nimi je implementována v dynamické knihovně nddbe.dll, která obsahuje veškeré funkce pro práci s daty. Samotný program pak pracuje s daty prostřednictvím těchto funkcí a o skutečné fyzické uspořádání dat v souborech se již nestará. Toto řešení bylo zvoleno jednak z výše uvedeného důvodu, tak z důvodu potřeby používat stejné funkce pro práci s daty ve dvou samostatných programech hlavní program a Deamon. Je velmi nepraktické, aby byl stejný kód pro práci s daty v obou exe souborech. Základní struktura programu Dorg se skládá z několika bloků, jak naznačuje obrázek. 6

GUI HTML dokument GUI prostředí Grafické komponenty Příkazové rozhraní Skin Objekt prohlížeče Jádro IE Komunikace Komunikace Správa oken Příkazový interpret EXE Jádro Data I/O Data Obr 1: Bloková struktura hlavního programu Na tomto schématu je možné znázornit většinu činností, proto se na něj budu i z následujícího textu často odkazovat. Nyní si vysvětlíme jednotlivé bloky schématu. Data Tento blok představuje veškerá data, s nimiž program pracuje. Ta jsou uložena v několika fyzických souborech s různou strukturou. Jednotlivé soubory obsahují informace stejného typu např. kalendář, databáze činností, seznam kontaktů a poznámky dne. Fyzická struktura datových souborů je popsána v Příloze č. 1 - Struktura datových souborů. Data I/O Jedná se o základní vstupně-výstupní práce s daty, jako je čtení, přidávání a úprava dat. Celý blok pak představuje dynamickou knihovnu nddbe.dll, která exportuje právě tyto 7

základní funkce pro práci s daty. Dynamická knihovna je spustitelný program podobně jako exe soubor, ale může obsahovat více vstupních bodů funkcí (na rozdíl od exe programu, který má pouze jeden vstupní bod funkci main). Tyto vstupní body jsou vlastně navenek zpřístupněné funkce obsažené v dynamické knihovně. Výhodou je, že si knihovnu může libovolný program načíst a použít její funkce. Z toho plyne značná úspora kódu, protože jinak by stejný kód musel být v každém programu. V projektu Dorg bylo toto řešení použito z toho důvodu, že celá aplikace se skládá ze dvou samostatných programů hlavní program a deamon. Oba používají stejná data a stejné funkce pro práci s daty. Popis funkcí exportovaných z nddbe.dll viz Příloha č. 2. Blok EXE Je samotný spustitelný soubor hlavního programu. Ten se skládá z několika dílčích bloků, které jsou však těsněji provázané. Jejich činnost spolu úzce souvisí, proto je není možné zcela rozdělit. Celý blok EXE má na starosti především vytvoření hlavního okna programu a správu dalších dialogů, vytvoření objektu prohlížeče, dále načtení všech součástí, nastavení a dat a vytvoření příkazového interpretu. Jádro výkonná část programu, provádí příkazy, které rozpoznává příkazový interpret, pracuje s daty prostřednictvím Data I/O, apod. Příkazový interpret jeho funkce spočívá v rozpoznávání textových příkazů obdržených od GUI, kontroluje vstupní parametry příkazu a vrací případné výsledky zpět GUI. Pokud je příkaz rozpoznám a je v pořádku, zavolá příslušnou rutinu jádra. Správa oken stará se o vytváření, ukončování a úpravy oken a dialogů. Při vytváření nového okna nejprve musí vytvořit celou strukturu bloků, která se nachází nad tímto blokem. Zaručuje tak, že program může mít teoreticky neomezený počet dynamicky vytvářených oken, které ale mají společné jádro a příkazový interpret programu. Komunikace pomocná vrstva, která se stará o komunikaci mezi příkazovým interpretem a objektem prohlížeče, resp. samotnou HTML stránkou. Objekt prohlížeče je nová instance prohlížeče IE, která se stará o vykreslování GUI a také o komunikaci s příkazovým interpretem. Příkazové rozhraní Další pouze pomocná a přizpůsobovací vrstva, která má na starosti předávání a přijímání příkazů. Jedná se o souhrn několika funkcí JScriptu, které zastřešují jednoduché textové příkazy tak, aby bylo jejich použití v HTML dokumentu snadné a průhledné. Znamená to, že standardní funkce JScriptu rozšiřuje o další, potřebné při práci s GUI. Jedná se například o funkci SetWindowText(), která reprezentuje příkaz SWT sloužící k nastavení titulku okna. Přehled rozšiřujících funkcí JScriptu viz Příloha č. 3. 8

Grafické komponenty Je to soubor většiny standardních komponent používaných v grafických aplikacích, jako jsou tlačítka, checkboxy, menu, radiobuttony, apod. Vlastní komponenty byly vytvořeny z důvodu umožnění snadné změny vzhledu pomocí skinu a také snadného použití v HTML dokumentu vytvářejícím GUI. HTML dokument Jedná se o klasický HTML dokument, který však používá komponenty z namespace NMSCOM. Každý dialog musí mít svou HTML stránku, která definuje rozmístění jednotlivých ovládacích prvků a pomocí JScriptu jim přiřazuje určité vlastnosti a reakce na dané události. Díky tomu lze pouhou editací textovým editorem snadno kdykoliv pozměnit rozmístění komponent nebo nějakou přidat či odebrat bez jakéhokoliv zásahu do exe souboru. GUI prostředí Je to pouze logický blok, který má představovat souhrn všech rozšiřujících prvků standardního HTML a JScriptu vytvářených jinými částmi programu. Je to tedy jakési virtuální prostředí pro sestavování grafického uživatelského prostředí (GUI). GUI (Graphic User Interface) Představuje uživatelské grafické prostředí v takové podobě, v jaké je vidí uživatel ovládající program. Skin Blok zastupuje aktuálně použitý soubor skinu. Jádro IE Tento blok nepatří do samotného Dorg, ale reprezentuje několik systémových knihoven obsahující jádro prohlížeče IE. Ve schématu je zakreslen pouze pro úplnost a názornou ukázku, ve kterém místě programu je využit. 4.3. Start programu Po startu programu musí před vykreslením grafického uživatelského prostředí dojít k některým důležitým činnostem. Proto popisu těchto činností věnuji samostatnou kapitolu. Jako první proběhnou kontroly: zda neběží jiná instance programu z důvodu možných kolizí při zápisu nových dat by nebylo vhodné povolit možnost spustit Dorg vícekrát. Proto se jako první věc kontroluje, zda již Dorg není spuštěn. Pokud ano, obnoví se výchozí stav zobrazení okna (nastaví se na hodnotu SW_RESTORE) a druhá instance se ukončí. Pozn. Obnovení je důležité v případech, kdy je okno první instance programu minimalizované. Je vhodné, aby se obnovilo a přeneslo do popředí. verze prohlížeče IE provede se kontrola verze systémové knihovny shdocvw.dll. 9

Ta obsahuje jádro IE, a proto verze této knihovny odpovídá verzi aktuálně nainstalovaného IE. Dorg vyžaduje verzi minimálně 5.5 nebo vyšší, ve starších verzích by nebylo možné správně vykreslit všechny grafické komponenty. operačního systému Dorg je určen pro operační systém MS Windows 2000/XP a novější. Dalším krokem spouštěcího procesu je vytvoření nové instance třídy CCmnde, která představuje jádro programu. V této chvíli je zobrazen startovní dialog. Dále následuje inicializace jádra: přečtení parametrů Pokud byly při spuštění zadány nějaké parametry. Například parametr -d pro režim ladění. vytvoření odkládacího adresáře Je vytvořen v systémovém adresáři Data aplikací (Application Data) aktuálně přihlášeného uživatele. přečtení nastavení programu z registru Je inicializována třída CConfig a vytvořen konfigurační skript v odkládacím adresáři. kopírování potřebných souborů do odkládacího adresáře Pracuje se pak s těmito soubory místo původních umístěných zpravidla v Program Files. inicializace knihovny nddbe.dll načtení databáze Pokud zatím žádné soubory databáze neexistují, jsou nejprve vytvořeny prázdné. načtení skinu Spočívá v rozbalení souboru skinu do odkládacího adresáře. Nyní je vytvořen příkazový interpret a správa oken, takže je možné spustit hlavní okno programu. To je tvořeno novou instancí třídy CMainWnd, která je odvozena od třídy CHtmlDlgDef. Teprve nyní může být vykresleno GUI. Nejprve je načtena HTML stránka hlavního okna dorg.htm, kterou začne IE vykreslovat. Po dokončení je ještě nastaven aktuální den a zobrazeny veškeré informace příslušné pro tento den. Nakonec dojde ke skrytí startovního dialogu a Dorg je připraven k použití. 4.4. Práce s daty knihovna nddbe.dll Jak už bylo uvedeno výše, pro nízkoúrovňovou práci s daty slouží dynamická knihovna nddbe.dll, která obsahuje základní I/O funkce. Umožňuje tedy otevřít nebo vytvořit nový datový soubor, číst, zapisovat, upravovat a odstraňovat záznamy ze souboru. Pracuje s více typy datových souborů pro různá data. Výhodou je použití stejné funkce pro různé typy souborů. (Výjimku tvoří datový soubor hlavní databáze organizéru, který má vlastní alternativy všech funkcí). 10

4.4.1. Datové soubory Každý datový soubor používaný aplikací Dorg obsahuje hlavičku. Ta obsahuje některé údaje o souboru, ale především určuje typ datového souboru. Typ je pak rozhodující pro další zpracování souboru. Typy použitých datových souborů: Kalendář obsahuje jména a státní svátky pro každý den v roce. Jsou to všechny soubory v adresáři calendars. Poznámky dne obsahuje uživatelem definované poznámky ke dnům v roce. Soubor daynote.dat. Kontakty obsahuje informace o kontaktech. Soubor contacts.dat. Hlavní databáze obsahuje zadané činnosti. Soubor main.db.dat. Záznamy jsou v souborech ukládány jako pole struktur nesoucí jednotlivé informace. 4.4.2. Soubor hlavní databáze činností Způsob práce s tímto souborem se liší od ostatních. Je to způsobeno tím, že záznam u činnosti obsahuje položku Popis činnosti, která může být v některých případech velmi dlouhá a v jiných třeba i prázdná. Je tedy velmi těžké najít kompromis pro statické nastavení maximální délky této položky. V případě nastavení malé délky, např. 255 znaků, hrozí nebezpečí, že uživatel bude chtít zadat delší text. A v případě nastavení mnohem většího rozsahu, zase dojde k situaci, kdy nebude využit celý rozsah, a tudíž velikost datového souboru pro uložení se bude neúměrně zvětšovat. Proto byl zvolen postup s proměnnou délkou textu Popisu činnosti. Do struktury záznamu v souboru přibyla číselná položka uchovávající délku textu popisu. Dále následuje text popisu a za ním kontrolní byte nastavený na hodnotu makra EOORGITEM. Kontrolní byte je důležitý pro ověření správné hodnoty délky textu popisu. V případě, že by na místě kontrolního bytu byla jiná hodnota, je soubor poškozen. pole pointerů na záznamy... 4... 11... 8 1 záznam databáze - kontrolní byte - délka popisu - prostor pro text popisu Obr 2: Znázornění způsobu práce se záznamy hlavní databáze Tímto postupem však znemožníme jednoduché sekvenční čtení celých záznamů, protože má každý záznam jinou velikost. Pokud chceme najít začátky jednotlivých záznamů v databázi, nezbývá než projít celý soubor a vypočítat je. Tuto činnost má na starosti 11

funkce NDBOrgHashData obsažená v knihovně. Funkce vytvoří pomocné pole pointerů na začátky záznamů v souboru. Práce se záznamy je pak snadná, jednoduše použijeme uložený pointer. Tuto funkci je nutné zavolat po každé změně záznamů v databázi, aby se aktualizovalo pole pointerů. 4.4.3. Použití knihovny Všechny funkce exportované z knihovny začínají písmeny NDB. Tento způsob pojmenovávání funkcí je poměrně obvyklý, protože tak lze snadno poznat, ze kterého modulu funkce je. Aby knihovna mohla obsluhovat zároveň větší počet otevřených souborů, je nutné je nějakým způsobem jednoznačně identifikovat. K tomu slouží nový datový typ nazvaný LPODBS. Každá funkce z knihovny má jako první parametr právě proměnnou tohoto typu. Popis funkcí exportovaných z nddbe.dll viz Příloha č. 2. Otevření souboru K otevření existujícího souboru slouží funkce NDBOpenFile. Jako parametr je nutné uvést název souboru (resp. celou cestu) a dále režim otevření. Soubor je možné otevřít v režimu pro čtení (NDB_RWMREAD), režim pro zápis (NDB_RWMWRITE) a režim otevření, kdy je načtena pouze hlavička souboru (NDB_RWMOPEN). Další funkcí je NDBCreateFile, která slouží k vytvoření prázdného souboru (NDB_CRMCREATE) nebo změny hlavičky souboru (NDB_CRMCHANGEHEAD), případně odstranění všech záznamů v databázi (NDB_CRMCLEAR). Příklad otevření a zavření souboru: LPODBS lpopenfile; if (NDBOpenFile("soubor.dat, lpopenfile, NDB_RWMWRITE)!= NDB_SUCCESS) { }... // pokud funkce vrátí nenulovou hodnotu, nastala chyba NDBCloseFile(lpOpenFile); // zavřeme soubor Zavření souboru Při otevírání souboru je vytvořeno několik objektů, které je po skončení práce nutné uvolnit. To má na starosti funkce NDBCloseFile. Procházení záznamů Práce se záznamy probíhá sekvenčně po celých záznamech. Funkce pro práci se záznamy pracují s aktuálním záznamem. Informace o aktuální pozici je uchovávána automaticky ve vnitřní struktuře otevřeného souboru. Pro zjištění aktuální pozice slouží funkce NDBGetCurrentPos a pro přímé nastavení pozice funkce NDBSetCurrentPos. Častější využití však najdou funkce pro postupné procházení jednotlivými záznamy. Jsou to funkce NDBMoveNext a NDBMovePrevious, dále funkce NDBMoveFirst a 12

NDBMoveLast. Práce se záznamy Pro každý typ souboru je deklarována struktura obsahující položky záznamu databáze. Funkce pro práci se záznamy využívají právě těchto struktur. Proto již není možné mít univerzální funkce pro všechny typy souborů, ale je nutné vytvořit alternativy. Pozn. Bylo by možné použít jiný způsob, například pomocí univerzálního pointeru na strukturu, ale zvolené řešení je mnohem bezpečnější a průhlednější. Také by bylo možné vytvořit tzv. přetížené funkce, ale zde nastává problém při exportování z knihovny. Pro kompatibilitu knihovny i s jinými programovacími jazyky jsou exportovány pouze názvy funkcí (bez datových typů parametrů), takže by došlo k situaci, že bude exportováno několik funkcí se stejným jménem. Uložení souboru K uložení souboru slouží jediná funkce NDBSaveFile. Má pouze jednu volbu, zda po uložení chceme zavřít otevřený soubor nebo ho ponechat otevřený. Hlavní databáze organizéru Protože má hlavní databáze specifickou strukturu (viz výše), byly pro práci s tímto typem souboru vytvořeny speciální funkce. Ty začínají písmeny NDBOrg. Význam jednotlivých funkcí je velmi podobný funkcím pro ostatní typy souborů. 4.4.4. Příklad použití knihovny Pro názornou ukázku použití knihovny poslouží část kódu Dorg Deamona, která má na starosti získání patřičného jména z kalendáře. Důležité kroky jsou popsány v komentářích. LPODBS lpodbscal; DBITEM dbit; SYSTEMTIME stime; // otevřený soubor kalendáře // záznam v kalendáři // obsahuje aktuální systémový čas GetLocalTime(&stime); if (NDBOpenFile(g_szCalendarPath, lpodbscal, NDB_RWMREAD) == NDB_SUCCESS) { NDBMoveFirst(lpodbsCal); // přesun na první záznam // cyklus prochází jednotlivé záznamy for (int i = 0; i < NDBGetCountEntries(lpodbsCal); i++) { // přečtení aktuálního záznamu if (NDBGetEntry(lpodbsCal, &dbit) == NDB_SUCCESS) { // otestuje, zda právě přečtený záznam je pro aktuální den if ((dbit.dday == stime.wday) && (dbit.dmonth == stime.wmonth)) break; // předčasné ukončení cyklu 13

} NDBMoveNext(lpodbsCal); // posun na další záznam } } else { // chyba při otevírání... } NDBCloseFile(lpodbsCal); // zavřeme soubor // nyní proměnná dbit obsahuje informace o aktuálním dni 4.5. Víceuživatelské prostředí Dorg byl navržen jako víceuživatelský. To znamená, že je pro každého uživatele vytvořeno vlastní nastavení a vlastní datové soubory, takže si každý zaznamenává svá data a ukládá své nastavení. Myslí se tím uživatelé v rámci jedné pracovní stanice. Veškeré datové soubory jsou ukládány v adresáři vytvořeném v systémové adresáři Data aplikací právě přihlášeného uživatele. Takto je vyřešeno jednak samotné izolování dat jednotlivých uživatelů, tak i alespoň částečné zabezpečení dat, protože běžní uživatele (kteří nemají administrátorská práva) se k souborům jiného uživatele nedostanou. Standardní cesta k adresáři s datovými soubory: C:\Documents and Settings\Uživatel\Data Aplikací\Dorg-engine\dorg\data Nastavení programu se ukládá do systémového registru do větve HKEY_CURRENT_USER, která je unikátní pro každého uživatele. Tak je opět zaručeno, že má každý uživatel svoje nastavení. Celá cesta ke klíči s nastavením je: HKEY_CURRENT_USER\Software\Dodos\Dorg 4.6. GUI 4.6.1. Grafické komponenty Vytváření vlastních komponent umožňuje prohlížeč IE vytvořením speciálních HTC skriptů (HTML Components) a následným propojením se standardním HTML elementem pomocí vlastnosti behavior kaskádových stylů. Druhou možnosti použití je vytvoření tzv. prostoru jmen namespace a v něm definovat jednotlivé komponenty. Grafické komponenty programu Dorg jsou sdruženy v namespace nazvaném NMSCOM. Do HTML kódu se pak například tlačítko vloží takto: <NMSCOM:BUTTON value= Tlačítko /> K takto vytvořenému tlačítku je možné připojit některé obecné atributy známé z HTML, jako je třeba id, title, apod. Velmi užitečný je atribut id, kterým jednoznačně pojmenujeme právě vytvořenou komponentu. Podle uvedeného názvu pak můžeme 14

s komponentou pracovat ve skriptech jako s objektem. HTC skripty navíc dovolují kromě vytváření nových vlastností (atributů) komponent také vytvářet metody těchto objektů (použitelné ve skriptech). Máme tak k dispozici poměrně výkonný nástroj pro tvorbu vlastního rozšíření JScriptu. Soubory grafických komponent jsou uloženy v adresáři components. Ten obsahuje kromě HTC skriptů pro jednotlivé komponenty také soubor cmpengine.css s definicí namespace NMSCOM a souborem cmpengine.js, který obsahuje pomocné funkce pro komponenty. 4.6.2. Popup menu Jedna z nejnáročnějších komponent je asi právě Popup menu. V programu bylo zapotřebí využít nabídek jak pro hlavní menu, tak i případných kontextových nabídek. Dalším požadavkem byla možnost snadné změny vzhledu, tak jako u ostatních komponent, a především snadný přístup pomocí JScriptu. Bohužel pomocí klasických postupů používaných v HTML (např. pozicování) nelze věrohodně napodobit chování nabídky už z toho důvodu, že objekty nemůžou přesáhnout okno prohlížeče. Řešení spočívá ve využití poměrně nového a málo známého objektu popup prohlížeče IE. Tento objekt je implementován až ve verzi 5.5 prohlížeče (z toho mj. pramení požadavek na verzi IE). Popup objekt Objekt se chová přesně tak, jak se očekává od nabídky. Jedná se vlastně o novou jednodušší instanci prohlížeče zobrazenou v plovoucím okně kdekoliv na ploše. Nový popup objekt lze vytvořit metodou createpopup(). Takto vytvořený objekt má pouze dvě metody show() a hide(). První jmenované je nutné předat parametry, které určují pozici a rozměr popup okna. Jediný přístup k popup objektu je pomocí vlastnosti document, jenž má stejné použití jako standardní vlastnost window.document. Máme tak vlastně pomocí skriptu přístup k HTML dokumentu popup objektu. Tímto způsobem lze do dokumentu popup objektu zasahovat (např. použít metodu write() pro zapsání HTML kódu) nebo rovnou načíst určenou HTML stránku. Komponenta PUMenu Mezi další vlastnosti, které by nabídka měla mít, určitě patří zvýraznění při zastavení myši nad položkou nabídky a také možnost ovládat menu pomocí klávesnice (šipka nahoru/dolů, mezerník nebo Enter pro výběr). Pro zajištění těchto funkcí je však nutné dostat vcelku velké množství JScript kódu přímo do dokumentu popup objektu. Protože objekt popup nemá vlastnost location jako běžné okno prohlížeče, nelze přímo nastavit zobrazovaný HTML dokument. Lze to však poměrně snadno obejít pomocí předdefinované hodnoty Obr 3: Komponenta PUMenu #default#download vlastnosti behaviour. HTML objekt mající tuto vlastnost získává schopnost jakéhosi skrytého stažení (načtení) jiného dokumentu. Započetí stahování se provede metodou startdownload. Po načtení je zavolána určená funkce, které je jako parametr předán obsah načteného dokumentu. Tento dokument je vlastně celá HTML stránka, sloužící jako základ pro vytvoření nabídky. 15

Nyní již stačí doplnit jednotlivé položky nabídky. To se ovšem provede až při požadavku zobrazení nabídky. Další problém se objevil při vytváření podnabídek. Samotný postup zobrazení je totožný, ale způsob komunikace s hlavním (rodičovským) dokumentem je odlišný. Jelikož jsou všechny nabídky i podnabídky deklarovány v hlavním dokumentu, musí existovat nějaký způsob, jakým předat rodičovskému dokumentu zprávu o vybrání některé položky z menu. K tomu poslouží vlastnost parent HTML dokumentu popup objektu, která zpřístupňuje rodičovský dokument. Tento postup ovšem není možný u podnabídek, protože jejich rodičovským dokumentem je dokument nadřazené nabídky. Proto byla vytvořena ještě jedna nevizuální komponenta s názvem VParent, která vlastně simuluje (má stejné metody a vlastnosti) samotnou komponentu PUMenu z hlavního dokumentu. Pro každou podnabídku je tak v nabídce vytvořen objekt tohoto typu, který má jedinou funkci, a to předat všechna volání metod o úroveň výš. Pokud tedy v poslední podnabídce celého stromu nabídek uživatel vybere některou položku, zpráva o této události postupně probublá všemi komponentami VParent až do hlavního dokumentu ke skutečné komponentě PUMenu. Jednalo se samozřejmě pouze o nástin řešení této komponenty, ve skutečnosti je nutné řešit mnohem více dílčích problémů, ale výše uvedené jsou ty stěžejní. Použití komponenty PUMenu Nejprve je nutné vytvořit nový objekt typu PUMenu. <NMSCOM:PUMenu id="pmenu" oncommand="processcommand()" /> Atribut id jednoznačně identifikuje nově vytvořenou nabídku. Událost oncommand je volána po výběru položky menu. Dále je zapotřebí do nabídky přidat jednotlivé položky. PMenu.IsertItem("it1", "První", "img1.gif", 0, 0); // obyčejná položka PMenu.IsertItem("", "", "", PPM_SEPARATOR, 0); // vodorovná čára PMenu.IsertItem("it2", "Druhá", "img2.gif", PPM_DISABLED, 0); // zakázané Takto jsme vytvořili nabídku se 2 položkami rozdělenými čárou. Druhá položka bude zakázaná. Nakonec vytvoříme funkci pro odchycení událostí nabídky. function ProcessCommand() { switch (event.ppmcommand) { case "it1": break; case "it2": // vybrána položka První // vybrána položka Druhá 16

break; } } Funkce je volána při výběru libovolné položky nabídky. Rozlišení, o kterou položku šlo se provede testováním hodnoty nové vlastnosti ppmcommand objektu event. 4.6.3. Změna vzhledu skinování Při vývoji grafických komponent byl kladen důraz na maximální možnosti přizpůsobení jejich vzhledu. Ve stručnosti šlo o to, že samotný kód komponenty opravdu pouze určuje polohu, rozměry a pozici textu. Všechny ostatní vzhledové vlastnosti jsou nastaveny pomocí externího souboru kaskádových stylů. A právě toto dalo základ možnosti použít skinování programů. Do tohoto externího stylesheetu se přesunuly rovněž veškeré styly ostatních prvků okna, textů v oknech, atd. a podpora kompletní změny vzhledu byla hotova. Samotný soubor vzhledu (soubor DSKN) je obyčejný ZIP archív, který obsahuje především onen důležitý stylesheet a dále potřebné obrázky a ikony. 4.7. Dorg Deamon Již od prvotního návrhu bylo v plánu zařídit, aby program upozorňoval na zadané činnosti. Aby bylo možné hlídat začátky činnosti, je nutné mít program stále spuštěný. To by ale znamenalo nutnost pokaždé spouštět program, který je navíc poměrně náročný a zbytečně by tak zabíral systémové zdroje. Proto byl pro tyto účely vytvořen samostatný jednoduchý program, který se spouští po přihlášení uživatele a běží stále na pozadí. Z toho důvodu je vhodné zajistit minimální paměťové nároky programu, takže zde nebylo použito žádných rozšiřujících knihoven (jako je MFC) a Deamon je psán v čistém WinAPI. Spuštění Automatické spuštění programu Dorg Deamon je zajištěno záznamem v systémovém registru. Klíč HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run obsahuje odkazy na programy, které budou po přihlášení uživatele do Windows automaticky spuštěny. V tomto případě se jedná o globální nastavení všem uživatelům systému. Jakmile je Deamon spuštěn, vytvoří ikonu v system-tray oblasti (tzv. oznamovací oblast na hlavním panelu vedle hodin) a zobrazí hlášení s pozdravem, datem a informací o svátku. Upozorňování Ihned po spuštění je rovněž načtena databáze činností a v závislosti na aktuálním čase se zkontroluje, zda není třeba upozornit na některou činnost. Pokud ano, objeví se hlášení podobné tomu úvodnímu, ale s informacemi o činnosti. Druhý rozdíl je, že upozornění se samo neztratí, ale čeká, než ho uživatel potvrdí. Tuto kontrolu má na starosti funkce časovače (timeru), který je nastaven na interval 60000 ms (1 sekundu). 17

Animace informačního hlášení Celá aplikace je tvořena tak, aby měla poměrně příjemné grafické prostředí, takže i Deamon se dočkal menšího oživení v podobě animace informačního hlášení, které nejprve vyjede jakoby zespodu obrazovky a po potvrzení zase opět zajede dolů. Tento efekt je ještě doplněn o průhlednost. Animace zobrazení hlášení je vcelku jednoduchá. Má ji na starosti timer s dostatečně krátkým časovým intervalem a při každém zavolání funkce se okno hlášení posune o několik pixelů a změní se nastavení průhlednosti. Průhlednost celého okna lze nastavit funkcí WinAPI SetLayeredWindowAttributes. Míra průhlednosti je dána celočíselnou hodnotou v rozsahu 0-255, přičemž 0 znamená plnou průhlednost (neviditelnost) a 255 znamená žádnou průhlednost. 4.8. Použité moduly Během tvorby programu Dorg bylo použito některých rozšiřujících modulů, které nejsou běžnou součástí vývojového prostředí MS Visual Studio. Tyto moduly a knihovny výrazně zrychlují a zjednodušují vývoj programu. Zlib knihovna Zlib je velmi známá a populární knihovna pro podporu komprimace souborů. Je určena pro řadu operačních systémů. Obsahuje základní funkce pro kompresi a dekompresi přímo v operační paměti počítače a dále podporuje formát gzip. Domovskou stránku Zlib knihovny naleznete na adrese http://www.zlib.net/. Zlib knihovna však nepodporuje standardní kompresní formát ZIP, který na rozdíl od formátu gzip může obsahovat více archivovaných souborů. Proto Dorg využívá ještě jedno z rozšíření Zlib knihovny minizip (http://www.winimage.com/zlibdll/minizip.html). CDate třída Třída CDate se nachází v modulu dttm a slouží pro uchovávání data a času s přesností na milisekundy. Rozhraní tříd nabízí poměrně značné množství metod pokrývající většinu obvyklých činností prováděných s datem a časem a navíc umí vypočíst ze zadaného data den v týdnu, dále dokáže určit rozdíl dvou dat ve dnech resp. minutách. Navíc přetěžuje porovnávací operátory pro snadné porovnání dvou dat. Modul parsecl Tento modul slouží pouze jednomu účelu, a sice k separování parametrů příkazové řádky. V aplikacích psaných pro grafické prostředí MS Windows již totiž není tato činnost provedena automaticky, ale funkci WinMain je předán celý příkaz spouštějící program. A tento text je třeba rozdělit na jednotlivé prametry. Pozn. Poslední dva uvedené moduly pocházejí z mé vlastní činnosti, ale nebyly vyvinuty speciálně pro Dorg, proto je zde uvádím. 18

5. Uživatelská příručka 5.1. Popis prostředí Ovládání programu je tvořeno tak, aby bylo maximálně jednoduché a intuitivní. U většiny tlačítek a ovládacích prvků jsou kontextové popisy (zobrazí se po najetí myší nad prvek). 5.1.1. Okno programu Celé okno programu se skládá z několika částí: Hlavní menu Panel nástrojů - obsahuje vybraná tlačítka z Hlavního menu pro zrychlení práce Levý panel Hlavní okno - obsah se mění podle zvoleného pohledu Obr 4: Pohled na celé okno programu 5.1.2. Hlavní menu Menu Soubor Exportovat Export aktuálního pohledu do HTML souboru. Zálohovat data Vytvoří zálohu všech zadaných dat - činností, úkolů, kontaktů. 19

Importovat zálohu Načtení zálohy databází. Před importem se program zeptá, zda chcete nejprve zálohovat současnou databázi. Konec Ukončí program. Menu Pohled Vybráním položky tohoto menu vyberete požadovaný pohled. Shrnutí dne Organizér: seznam Organizér: den Organizér: týden Kontakty Menu Navigace Přejít na předchozí den Posune aktuální datum o den zpět. Nastaví toto datum na kalendáři a v panelu Info, dále načte veškeré údaje pro tento den. Přejít na následující den Posune aktuální datum o den vpřed. Nastaví toto datum na kalendáři a v panelu Info, dále načte veškeré údaje pro tento den. Přejít na dnešní den Nastaví aktuální datum. Nastaví toto datum na kalendáři a v panelu Info, dále načte veškeré údaje pro tento den. Menu Činnosti Nová činnost Vytvoření nové činnosti. Upravit činnost Změna vybrané činnosti. Smazat činnost Odstranění vybrané činnosti. Lze také použít klávesu Delete. Nový kontakt Přidání kontaktu. Upravit kontakt Změna údajů o kontaktu. Smazat kontakt Odstranění vybraného kontaktu. Lze také použít klávesu Delete. 20

Hledání Všechny položky Hledání bude probíhat ve všech záznamech. Svátky a poznámky Hledány budou pouze svátky, významné dny a poznámky dnů. Činnosti Hledány budou pouze činnosti. Úkoly Hledány budou pouze úkoly. Kontakty Hledány budou pouze kontakty. Upravit poznámku dne... Změna poznámky aktuálního dne. Menu Nastavení Předvolby Zobrazení dialogu pro nastavení programu. Menu Nápověda Nápověda Otevře nápovědu. Webové stránky Přejde na domovské stránky programu (http://dodoweb.wz.cz/dorg), kde můžete nalézt aktuální informace, nové verze programu a další věci, které souvisí s programem Dorg. O programu Zobrazí základní informace o programu - verze, datum sestavení, licenční ujednání, atd... 5.1.3. Levý panel Levý panel je úzký sloupec u levého okraje okna, který obsahuje několik jednoúčelových panelů - nástrojů. Jednotlivé panely plní různé funkce. Každý panel je možné kliknutím na jeho titulek sbalit tak, aby zbytečně nezabíral místo ostatním panelům. Opětovným kliknutím na titulek se panel rozbalí. Celý Levý panel je možné vypnout v Nastavení. Panel Info Tento panel zobrazuje informace o aktuálně nastaveném dni. Viz obrázek. Obr 5: Panel Info 21

Panel má především informativní charakter. Výjimkou je pouze možnost nastavit Poznámku dne po kliknutí na text. Poznámka dne je krátký text, který je připojen k určitému dni nezávisle na roce. Je vhodné například pro poznamenání něčích narozenin, výročí, apod... Panel Kalendář Kalendář slouží k rychlému nalezení požadovaného dne. Změna data na panelu Kalendář má za následek změnu aktuálního data programu. (Datum zobrazené v panelu Info). Obr 6: Panel Kalendář Výběr dne se provede kliknutím na požadovaný den. Tlačítka se šipkou v horní části slouží k posouvání měsíce. Měsíc je také možné zvolit z menu zobrazeného po kliknutí na název měsíce. Rok lze změnit pomoci malých tlačítek vedle roku. Kliknutím na spodní část kalendáře s textem Dnes:..., kalendář přejde na dnešní den. Panel Úkoly Tento panel slouží k zobrazení a editaci jednoduchých úkolů pro celý den. Obsahuje několik ovládacích prvků - seznam úkolů, textové pole pro přidání nového úkolu a tlačítka Přidat a Odstranit. Obr 7: Panel Úkoly 22

5.1.4. Pohledy Dorg pracuje v několika módech zobrazení. Tato zobrazení lze jednoduše přepnout z menu Pohled nebo z Panelu nástrojů. Shrnutí dne Toto je přehledný a stručný výpis všech informací o aktuálním dnu. Má pouze informační charakter - nelze zde provádět žádné úpravy. Zobrazí informace o dni (svátek, významný den, poznámka), dále seznam činností v tento den a jejich stručný popis (čas začátku a konce, název) a seznam úkolů pro tento den. Organizér: Seznam Jednoduché zobrazení činností pro aktuální den pomocí seznamu, resp. tabulky s několika základními informacemi o každé činnosti. Činnosti jsou řazeny podle času začátku. Obr 8: Ukázka pohledu Seznam Pro označení činnosti na ni klikněte jednou levým tlačítkem myši. Poté se zpřístupní položky pro úpravu a smazání činnosti z menu Činnosti. Po dvojkliku na činnost se objeví dialog Úprava činnosti, kde si můžete přečíst všechny informace o činnosti, případně je změnit. Pokud je některá činnost vybraná, můžete ji jednoduše smazat stiskem klávesy Delete (v závislosti na nastavení programu se ještě objeví dotaz, zda chcete položku opravdu smazat). Organizér: Den Nejpřehlednější zobrazení rozvržení jednotlivých činností během. Jedná se vlastně o jakýsi graf, který má na svislé ose časové hodnoty - hodiny během dne. Tato osa je rozdělena do 15-minutových intervalů. Jednotlivé činnosti během dne jsou reprezentovány různě velikými bloky. Velikost bloku závisí na délce trvání činnosti. Pro označení činnosti na ni klikněte jednou levým tlačítkem myši. Poté se zpřístupní položky pro úpravu a smazání činnosti z menu Činnosti. Po dvojkliku na činnost se objeví dialog Úprava činnosti, kde si můžete přečíst všechny informace o činnosti, případně je změnit. Pokud je některá činnost vybraná, můžete ji jednoduše smazat stiskem klávesy Delete (v závislosti na nastavení programu se ještě objeví dotaz, zda chcete položku opravdu smazat). Pokud poklepete na prázdné místo v tabulce, objeví se dialog pro zadání nové činnosti. 23

Obr 9: Ukázka pohledu Den Organizér: Týden Nejpřehlednější zobrazení rozvržení jednotlivých činností během celého týdne. Jedná se vlastně o jakýsi graf, který má na svislé ose časové hodnoty - hodiny během dne, a na vodorovné ose je rozdělen do 7 sloupců odpovídajícím dnům v týdnu. Jednotlivé činnosti během dne jsou reprezentovány různě velikými bloky. Velikost bloku závisí na délce trvání činnosti. 24

Obr 10: Ukázka pohledu Týden Viz pohled Organizér: Den Kontakty Toto zobrazení slouží k práci s kontakty. Zobrazuje seznam kontaktů podobný zobrazení Organizér: Seznam, pouze má jiné sloupce. Kontakty jsou seřazeny podle prvního sloupce - jména. Pro označení kontaktu na něj klikněte jednou levým tlačítkem myši. Poté se zpřístupní položky pro úpravu a smazání kontaktu z menu Činnosti. Po dvojkliku na kontakt se objeví dialog Úprava kontaktu, kde si můžete přečíst všechny údaje o kontaktu, případně je změnit. Pokud je některý kontakt vybraný, můžete jej jednoduše smazat stiskem klávesy Delete (v závislosti na nastavení programu se ještě objeví dotaz, zda chcete položku opravdu smazat). 5.2. Akce 5.2.1. Editace činností Vytvoření nové činnosti Z hlavního menu vyberte Činnosti a následně Nová činnost (nebo použijte příslušné tlačítko z panelu nástrojů). Objeví se dialogové okno s možností vyplnit všechny údaje o činnosti. V případě zobrazení Organizér: Den nebo Organizér: Týden lze novou činnost vytvořit dvojklikem do volného místa rozvržení dne. 25

Obr 11: Dialog Upravit činnost Musíte vyplnit název činnosti, dále čas začátku a konce. Ostatní položky jsou nepovinné. Jako místo konání můžete například uvést adresu, název firmy, apod. Činnost může teoreticky trvat libovolně dlouho, proto je zapotřebí nastavit datum zvlášť pro začátek i konec. Datum začátku činnosti je automaticky odvozeno od aktuálního dne v Hlavním okně programu, stejně tak čas začátku je automaticky nastaven. Pokud datum nevyhovuje, je možné jej změnit kliknutím na šipku napravo od data. Zobrazí se kalendář podobný jako v Levém panelu, pomocí něhož můžete vybrat požadované datum. Rovněž čas začátku a konce činnosti můžete nastavit. Buď vybráním z rozbalovacího seznamu zobrazeného po kliknutí na šipku v pravé části, nebo v případě že žádný čas nevyhovuje (v seznamu jsou odstupňovány po 15 minutách) je možné čas zapsat ručně. Napravo od těchto zadávacích prvků se ihned po provedené změně objeví spočítaná doba trvání úkolu. Zaškrtávací pole Upozornit na událost, zatrhněte v případě, že chcete být na činnost upozorněni v určitém časovém předstihu. Po povolení této volby se zpřístupní pole pro zadání hodnoty a jednotky. Jako hodnota se nastavuje počet časových jednotek (zvolených v seznamu vedle) odpovídající předstihu, ve kterém má být činnost připomenuta. Upozornění na činnosti má na starost Dorg Deamon. Pole Popis slouží k přidání libovolných poznámek k činnosti. Jeho délka je prakticky neomezená, takže může obsahovat i delší texty. Dále je sem automaticky vkládán případný seznam účastníků. 26

Přidání účastníků Ke každé činnosti lze do popisu přidat seznam účastníků. Ty je možné vybrat ze seznamu kontaktů, který se zobrazí po kliknutí na tlačítko Vložit účastníky... Objeví se dialogové okno: Obr 12: Dialog Přidat účastníky V seznamu stačí označit všechny kontakty, které chceme přidat. Formát uvedení údajů o účastnících lze nastavit. Buď je uváděno jméno nebo přezdívka kontaktů a případně za jménem / přezdívkou bude v kulatých závorkách emailové adresa. Jednotlivá jména jsou oddělena čárkou. Po kliknutí na tlačítko Přidat se na konec textu v poli Popis činnosti přidá blok s informacemi o účastnících. Úprava existující činnosti Musíte mít aktivní některé ze zobrazení pro organizér. Kliknutím označte činnost, kterou chcete upravovat. Poté z hlavního menu vyberte Činnosti a následně Upravit činnost. Objeví se stejné dialogové okno jako v případě vytváření nové činnosti. Další informace viz Vytvoření nové činnosti. Smazání existující činnosti Musíte mít aktivní některé ze zobrazení pro organizér. Kliknutím označte činnost, kterou chcete smazat. Poté z hlavního menu vyberte Činnosti a následně Smazat činnost nebo stiskněte klávesu Delete. Podle aktuálního nastavení programu se objeví dotaz, zda chcete činnost opravdu smazat, potvrďte tlačítkem OK. 27

5.2.2. Editace úkolů Veškerá práce s úkoly se provádí pomocí panelu Úkoly v Levém panelu. Vytvoření nového úkolu Pro přidání nového úkolu stačí zadat do pole nad tlačítky text úkolu - viz obrázek. Úkol uložíte stiskem tlačítka Přidat nebo klávesy Enter. Úprava textu úkolu Obr 13: Zápis textu nového úkolu Editace úkolu se provede tak, že požadovaný úkol vyberete ze seznamu a poklepete na něj. Místo seznamu úkolů se teď objeví zadávací pole s původním textem úkolu. Obr 14: Úprava textu úkolu Nyní můžete upravit text. Po dokončení úpravy uložíte stiskem klávesy Enter. Pokud žádné úpravy provést nechcete nebo je nechcete uložit, stiskněte klávesu Esc. Smazání úkolu Úkol lze smazat jednoduše jeho označením a stisknutím tlačítka Odstranit nebo klávesy Delete. V závislosti na aktuálním nastavení programu se objeví dotaz, zda opravdu chcete úkol smazat. 28

5.2.3. Editace kontaktu Vytvoření nového kontaktu Z hlavního menu vyberte Činnosti a následně Nový kontakt (nebo použijte příslušné tlačítko z panelu nástrojů). Objeví se dialogové okno s možností vyplnit všechny údaje o kontaktu. Povinné je pouze jméno. Obr 15: Dialog Nový kontakt Všechny údaje (kromě data narození) jsou brány jako textové řetězce s omezenou délkou. Po vyplnění údajů uložte nový kontakt tlačítkem OK. Úprava existujícího kontaktu Musíte mít aktivní zobrazení Kontakty. Kliknutím označte kontakt (řádek), který chcete upravovat. Poté z hlavního menu vyberte Činnosti a následně Upravit kontakt. Objeví se stejné dialogové okno jako v případě vytváření nového kontaktu s možností vyplnit všechny údaje o kontaktu. Další informace viz Vytvoření nového kontaktu. Smazání existujícího kontaktu Musíte mít aktivní zobrazení Kontakty. Kliknutím označte kontakt (řádek), který chcete smazat. Poté z hlavního menu vyberte Činnosti a následně Smazat kontakt (nebo stiskněte klávesu Delete). Podle aktuálního nastavení programu se objeví dotaz, zda chcete kontakt opravdu smazat, potvrďte tlačítkem OK. 29

5.2.4. Změna poznámky dne Poznámka dne je krátký text, který uživatel může přiřadit k určitému datu kalendáře. Lze si tak například poznamenat nějaké výročí nebo narozeniny, apod. Tato informace se zobrazí v panelu Info v Levém panelu. Nastavit nebo změnit text poznámky lze dvěma způsoby: Z hlavního menu vyberte Činnosti a následně Upravit poznámku dne... Přímo z panelu Info, kliknutím na text poznámky resp. svátku. V obou případech se zobrazí shodný dialog pro zadání textu poznámky. Obr 16: Změna poznámky dne 5.2.5. Vyhledávání Program umožňuje kontextové vyhledávání ve všech údajích se kterými pracuje. To znamená, že je možné hledat jak činnosti, tak kontakty, úkoly, ale i jména (kdy má někdo svátek). Vyhledávání je přístupné z hlavního menu Činnosti a následně položka Hledání pod sebou skrývá submenu s typy vyhledávání. Rovněž lze použít příslušné tlačítko na panelu nástrojů. Všechny položky Hledat se bude ve všech možných záznamech - činnosti, úkoly, kontakty, kalendář. Výsledek hledání se zobrazí podobně jako pohled Shrnutí dne. Svátky a poznámky Vyhledávání v zavedeném kalendáři a poznámkách dne. Toto vyhledávání je výhodné když potřebujete zjistit, kdy má kdo svátek. Výsledek hledání se zobrazí podobně jako pohled Shrnutí dne. Činnosti Vyhledávání ve všech činnostech. Hledání probíhá v názvech a popisech činností. Výsledek hledání se zobrazí podobně jako pohled Organizér: Seznam. Úkoly Vyhledávání ve všech úkolech. Výsledek hledání se zobrazí podobně jako pohled 30

Organizér: Seznam. Kontakty Vyhledávání ve všech kontaktech. Hledání probíhá ve všech položkách. Výsledek hledání se zobrazí podobně jako pohled Kontakty. 5.2.6. Export Pomocí programu Dorg také můžete snadno exportovat data jako HTML stránku. Díky úzkému provázání grafického prostředí s HTML jazykem vypadá výsledná HTML stránka velice podobně jako zobrazení v hlavním okně programu. Export do HTML je užitečný pokud například chcete někomu sdělit své aktivity během dne (-ů). Stačí použit funkci export a výslednou HTML stránku třeba poslat mailem nebo vytisknout. Adresát navíc vůbec nepotřebuje žádné speciální programy ani samotný Dorg, aby si mohl činnosti prohlédnout - stačí mu standardní internetový prohlížeč. Funkce Export je přístupná z hlavního menu Soubor. Po zvolení položky Export se zobrazí klasické dialogové okno pro uložení souboru. Stačí zde pouze vybrat umístění a napsat jméno souboru. Výsledná HTML stránka bude vytvořena podle aktuálně nastaveného pohledu v hlavním okně. Proto se před samotným exportem ujistěte, že máte nastavené správné datum a požadovaný Pohled. 5.2.7. Zálohy Program podporuje práci se zálohami. Tyto zálohy obsahují záložní kopie všech uživatelských dat - to znamená všechny činnosti, úkoly, kontakty a poznámky dnů. Navíc soubory zálohy (soubory typu DBKP) jsou komprimovány, takže výsledná velikost těchto souborů je vcelku malá. Zálohy je vhodné vytvářet pravidelně pro případ havárie systému, aby se předešlo ztrátě dat. Další možnost použití záloh je pro snadný přenos celé databáze mezi více počítači resp. mezi více instalacemi programu Dorg. Pokud například Dorg používáte doma i v práci, můžete si tak pokaždé při skončení práce vytvořit zálohu a opět ji doma importovat. Máte tak s sebou stále aktuální databázi. Vytvoření zálohy Vytvoření zálohy je velice jednoduché z menu Soubor vybereme položku Zálohovat data. Objeví se standardní dialog pro uložení souboru. Import zálohy Funkce Import zálohy slouží k načtení (importování) souboru zálohy (soubory typu DBKP). POZOR: Načtením zálohy budou nenávratně ztracena všechna současná data - dojde k jejich přepsání daty ze zálohy. Pokud chcete importovat (načíst) zálohu, pak z hlavního menu Soubor zvolte položku Import zálohy. Program se před samotným importem dotáže, jestli nejprve chcete vytvořit zálohu aktuálních dat. (To je vhodné provést, pro případ chyby při importu nebo pokud se 31

budete chtít vrátit k předchozím datům. Pokud zvolíte Ano, postup je stejný jako při Vytváření zálohy.) Nyní se objeví klasický dialog pro výběr souboru zálohy, který chcete importovat. Po výběru se provede samotný import a nyní můžete pracovat s daty obnovenými ze zálohy. 5.3. Nastavení Dialog Předvolby (Nastavení programu) zobrazíte vybráním položky Předvolby z hlavního menu Nastavení. Obr 17: Dialog Předvolby Část Obecné Dotázat se před smazáním činnosti Před smazáním činnosti bude zobrazen potvrzovací dialog. Dotázat se před smazáním kontaktu Před smazáním kontaktu bude zobrazen potvrzovací dialog. Dotázat se před smazáním úkolu Před smazáním úkolu bude zobrazen potvrzovací dialog. Výchozí kalendář Rozbalovací seznam nabízí výběr všech použitelných kalendářů. Tento kalendář bude standardně načten po spuštění programu. Výchozí nabídka je czech.dat - český kalendář, dogcat.dat - psí a kočičí kalendář, slovak.dat - slovenský kalendář. Po vybrání kalendáře 32

z nabídky se pod seznamem zobrazí název zvoleného kalendáře. Pozn: Kalendář obsahuje jména, státní svátky a významné dny. Část Zobrazení Zobrazit panel nástrojů V hlavním okně aplikace zobrazovat panel nástrojů. Zobrazit levý panel V hlavním okně aplikace zobrazovat levý panel. Preload grafiky Povolení této volby by mělo odstranit případné problémy s vykreslováním některých grafických prvků programu, avšak program se celkově o něco zpomalí. Pokud je tedy vše vykreslováno správně, je zbytečné tuto volbu zapínat. Při ojedinělých chybách pomůže použití klávesové zkratky pro znovunačtení okna - klávesa F5. Zobrazit jako první Tato volba určuje, který z možných pohledů programu bude nastaven při spuštění. Standardně je nastaven pohled Den. Použitý skin Ze seznamu můžete vybrat, který skin (vzhled programu) chcete používat. Pro změnu skinu je nutné restartovat program. Standardně jsou k dispozici 2: default - výchozí, modrý skin a win_skin - jednotlivé prvky budou mít vzhled převzatý z nastavení Windows. Část Dorg Deamon Spouštět po startu Windows Deamon bude automaticky spuštěn po startu (resp. přihlášení) Windows. (Změna této položky vyžaduje administrátorská práva.) Povolit upozorňování Tato volba musí být zapnuta, pokud chcete, aby Deamon připomínal zadané činnosti. V opačném případě Deamon zobrazí pouze úvodní hlášení. 5.4. Dorg Deamon Dorg Deamon je malý prográmek, který je součástí aplikace Dorg. Běží stále na pozadí a hlídá zadané činnosti. Pokud je potřeba, upozorní uživatele na začátek činnosti. Rovněž po přihlášení do operačního systému zobrazí informační hlášení s pozdravem a informacemi o aktuálním dnu - Datum, svátek, příp významné dny a poznámky ke dni. Zda je Deamon spuštěný poznáte podle jeho ikonky oblast na hlavní liště vedle hodin. v system tray oblasti - oznamovací 33

Obr 18: Informační hlášení Obr 19: Upozornění na činnost 5.4.1. Ovládání Ikona v oznamovací oblasti Kliknutím levým tlačítkem na ikonu se znovu zobrazí Informační hlášení o aktuálním dnu. Kliknutím pravým tlačítkem na ikonu se zobrazí menu. Vyskakovací okno s informací Kliknutím levým tlačítkem na plochu okna se v případě informačního hlášení toto okno zmrazí - neschová se automaticky. V případě připomínky nemá žádnou funkci. Kliknutím pravým tlačítkem na plochu okna, toto okno zavřete. Kontextové menu Vyvolané kliknutím pravým tlačítkem na ikonu Deamona. Spustit Dorg Spustí program Dorg. Zobrazit Info Zobrazí informační hlášení o aktuálním dnu. Povolit upomínky Tato položka musí být zapnuta, pokud chcete, aby Deamon připomínal začátky činností. O programu Zobrazí základní informace o Deamonovi. Konec a nespouštět Ukončí Deamona a zakáže automatické spouštění po startu Windows. Konec Pouze ukončí Deamona. 34