8. Příklad tvorby nápovědného souboru

8.1 Projektový soubor PROD_95.HPJ

[OPTIONS]

BMROOT = C:\FAR10\DBACC2\PRODEJ

COMPRESS = True

CONTENTS = o_uloze

COPYRIGHT = (c) Ing. Radim Farana, CSc. 1994

ERRORLOG = Chyby.TXT

REPORT = On

ROOT = C:\FAR10\DBACC2\PRODEJ

TITLE = Databaze prodeje KAKI

WARNING = 3

[FILES]

prod_95.RTF

[MAP]

hlavni_objekt 1

horke_klavesy 2

formular 3

menu 4

tlacitko 5

dvojcvak 6

list_box 7

combo_box 8

text_box 9

label 10

option_group 11

option_button 12

check_box 13

uctovani 14

volba_akce 15

volba_cisla 16

sestava 17

o_uloze 18

[CONFIG]

CreateButton("999","&About","About()")

BrowseButtons()

CreateButton("998","&Print","Print()")

 

8.2 Textový soubor s tématy PROD_95.RTF

Na následujících osmi stranách je uveden výpis textového souboru s jednotlivými tématy nápovědného souboru. Skloněným písmem jsou přitom naznačeny texty, které jsou ve skutečnosti psány skrytým písmem (hidden). Všechny odstavce s nadpisy témat jsou označeny jako vázané na další text (Keep With Next), takže je zakázáno jejich rolování.

 

# $ K Úloha evidence prodeje

Úloha evidence prodeje slučuje prodej pomocí bezhotovostních plateb s platbami hotovostními. Přitom umožňuje rozčlenit účetní operace podle jednotlivých akcí, jak to vyžadují platné zákony, zejména Zákon o daních z příjmů pro právnické osoby.

Základní formulářformular umožňuje zadat všechny informace o odběrateli a konkrétním prodeji včetně nastavení akcevolba_akce, ke které se tento prodej váže. Dále je možno vytisknout fakturu nebo účtenku při platbě v hotovosti.

Platby prostřednictvím faktur přicházejí na běžný účet. V úloze je možno je evidovatuctovani a získat tak možnost tisknout celkové přehledy příjmů za jednotlivé akce včetně sledování očekávaných plateb. Tím je řešena evidence odeslaných faktur a návaznost na evidenci pohledávek.

Platby v hotovosti, které jsou obvykle drobné je možno za zvolený časový úsek sumarizovat a zavést do hlavní účetní knihy (peněžní deník) vcelku. Tím se úloha chová jako účetní evidence samostatné pokladny.

Samozřejmostí je možnost rychlého nalezení požadované fakturyvolba_cisla.

 

Tato úloha slouží současně jako ukázka možností programu MS-Access. Všimněte si zejména použití menumenu u formulářůformular a sestavsestava, dále pak obsluhy horkých kláveshorke_klavesy (makro AutoKeys), automatické spuštění obsluhy po otevření úlohy (makro AutoExec), komunikaci s globálními proměnnými v programu (module Podpora), s jejichž pomocí jsou přebírány některé globální informace jako aktuální rok apod. A zejména spolupráce se souborem kontextové nápovědy (soubor prod_95.hlp). Na ten se ostatně právě díváte. Záhy zjistíte, že nápověda je přístupná jen u formulářů a sestav. U ostatních objektů ji nelze připojit.

# o_uloze

$ Informace o úloze

K úloha;hlavní informace;informace o úloze

 

# $ K + Účtování

Pro zavádění plateb došlých na běžný účet slouží formulářformular Účtování. Umožňuje zadávat jednotlivé platby. Pro snadnější orientaci je možno vyhledávat požadované fakturyvolba_cisla z nabídky existujících faktur. V tomto formuláři není dovoleno rušit faktury. Pokud je některá platba označena jako zaúčtovaná do hlavní účetní knihy (peněžní deník), pak ji již nelze editovat ani zrušit. Tím je zajištěna kontrola konzistence dat v úloze.

 

Bližší informace o_uloze po stisku tlačítka.

# uctovani

$ Účtování

K účtování;zavádění plateb

+ o_uloze:005

 

 

 

# $ K + Volba čísla faktury

Tento formulářformular slouží k volbě čísla faktury, se kterou chceme dále pracovat. Do uvedeného Combo Boxucombo_box je možno zadat ručně požadované číslo faktury (při bezhotovostních platbách je na výpise z běžného účtu uvedeno jako konstantní symbol platby). Případně je možno využít nabídky existujících faktur a z ní vybrat.

# volba_cisla

$ Volba čísla faktury

K číslo faktury;volba čísla

+ o_uloze:010

 

# $ K + Volba čísla akce

Tento formulářformular slouží k volbě čísla akce, se kterou chceme dále pracovat. Do uvedeného Combo Boxucombo_box je možno zadat ručně požadované číslo. Případně je možno využít nabídky existujících akcí a z ní vybrat.

# volba_akce

$ Volba čísla akce

K číslo akce;volba akce

+ o_uloze:015

 

# $ K + Horké klávesy

Při práci s formulářemformular nebo sestavousestava je možno použít horké klávesy.

Jsou to předdefinované kombinace kláves. Po stisknutí horké klávesystisk_klavesy je provedena příslušná činnost.

 

V úloze jsou použitelné následující horké klávesy :

CTRL+Shift+A - tisk seznamu akcí.

CTRL+Shift+C - tisk celkového přehledu prodeje zboží.

CTRL+Shift+D - tisk adresních štítků pro účastníky zvolené akce.

CTRL+Shift+E - konec práce s fakturami, přechod do hlavního okna databáze.

CTRL+Shift+I - tisk seznamu instalací programu SIPRO.

CTRL+Shift+N - přechod k formulářiformular pro účtováníuctovani.

CTRL+Shift+O - odúčtování nových (dosud nezaúčtovaných) účtenek prodeje příruček (akce č.3).

CTRL+Shift+P - tisk přehledu nových (dosud nezaúčtovaných) účtenek prodeje příruček (akce č.3).

CTRL+Shift+R - volba aktuálního roku, se kterým se pracuje, pro který se tisknou sestavy apod.

CTRL+Shift+U - konec práce, uzavření databáze i programu MS-Access.

CTRL+Shift+V - tisk vyúčtování pro zvolenou akci.

CTRL+Shift+Z - tisk seznamu nabízeného zboží.

 

Pokud je možno některou činnost menumenu nebo stisk tlačítkatlacitko vyvolat také horkou klávesou, je tato klávesa znázorněna podtržením příslušného písmene v názvu. Tato činnost menu se pak vyvolává stiskem klávesy Alt+podtrhnutého písmene. Postup je standardní jako ve všech aplikacích pod OS MS-Windows. Z toho vyplývá, že u každého menu (tedy u každého formuláře nebo sestavy) mohou tyto horké klávesy vyvolávat jinou činnost menu.

Poznámka : Horké klávesy jsou přístupné ve všech formuláříchformular nebo sestaváchsestava. Jejich pomocí jsou tedy vyvolatelné jen globální činnosti, které nejsou závislé na aktuálním otevřeném objektu.

 

Bližší informace o_uloze po stisku tlačítka.

# horke_klavesy

$ Horké klávesy

K klávesa horká;horká klávesa; Hot Keys;provedení činnosti

+ o_uloze:020

 

# $ K + Tisková sestava

Tisková sestava slouží k výstupu informací z úlohy na tiskárnu. Informace přehledně zpracovává, poskytuje také řadu informací o součtech položek apod.

U tiskové sestavy je možno nastavit parametry tiskárny, rozměry papíru apod., následně vytisknou sestavu na tiskárnu.

 

Bližší informace o_uloze po stisku tlačítka.

# sestava

$ Tisková sestava

K sestava;tisková sestava;Report

+ o_uloze:025

 

# $ K + Hlavní formulář

Hlavní formulář slouží ke vstupu hlavních údajů a současně k řízení úlohy. Obsahuje objekty pro vstup údajů, jako :

Text Boxtext_box,

List Boxlist_box,

Combo Boxcombo_box,

Option Groupoption_group,

kterými jsou vybaveny všechny formulářeformular. Informace o tom, k čemu jednotlivé objekty slouží, nese řada návěští Labellabel.

Obsahuje také prostředky pro řízení činnost s úlohou. Jsou to především různá tlačítkatlacitko, dále pak menumenu a případně také horké klávesyhorke_klavesy.

V některých úlohách hlavní formulář neumožňuje vkládání ani editaci údajů, ale slouží jen k řízení úlohy, např. :

 

{bmc hlavni.shg}

 

Bližší informace o_uloze po stisku tlačítka.

# hlavni_objekt

$ Hlavní formulář

K formulář hlavní;objekt hlavní;úloha;řízení úlohy

+ o_uloze:030

 

# $ K + Menu

Menu je seznam činností, které je možno v daném okamžiku provádět. Menu je umístěno na horním okraji obrazovky.

Všechny činnost jsou rozděleny do několika skupin uvedených na vodorovné liště menu. Volbou skupiny je rozvinuta svislá nabídka konkrétních činností. Zvolením některé z činností je tato činnost provedena a menu opuštěno.

 

Menu s rozvinutou skupinou činností :

 

 

Poznámka : V názvech některých činností jsou některá písmena podtržena. Jsou tak naznačeny horké klávesyhorke_klavesy, kterými je možno vyvolat stejnou činnost přímo při práci s aktuálním objektem.

# menu

$ Menu

K menu;nabídkové menu

+ hlavni_objekt:005

 

# $ K + Formulář slouží ke vstupu údajů a současně k řízení celé úlohy, je tedy základním objektem databáze. Obsahuje objekty pro vstup údajů, jako : Text Boxtext_box, List Boxlist_box, Combo Boxcombo_box, Option Groupoption_group,

nebo řízení úlohy. Sem patří především obslužná tlačítkatlacitko, připojené menumenu nebo horké klávesystisk_klavesy.

# formular

$ Formulář

K formulář

+ hlavni_objekt:010

 

# $ K + Tlačítko

Tlačítko je výkonný prvek formulářeformular. Slouží k vyvolání požadované činnosti. Název tlačítka nebo piktogram v tlačítku naznačuje o jakou činnost se jedná. Je přitom možné, aby jedno tlačítko vykonávalo více činností. Např. při stisku tlačítka bude vykonána jiná činnost než při dvojím kliknutídvojcvak (”dvojcvaku”) na tlačítku.

 

Tlačítko s popisem činnosti, kterou vykonává :

 

Tlačítko s piktogramem naznačujícím jakou činnost vykonává :

Poznámka : V názvech některých činností jsou některá písmena podtržena. Jsou tak naznačeny horké klávesyhorke_klavesy, kterými je možno vyvolat stejnou činnost přímo při práci s aktuálním objektem.

# tlacitko

$ Tlačítko

K tlačítko;provedení činnosti

+ formular:005

 

# $ K + Text Box

Objekty třídy Text box slouží pro ruční vkládání hodnot. Mohou být různého datového typu (textové, číselné, datumové apod.). Příklad :

 

Objekt třídy Text box nemusí sloužit pro vkládání hodnot konkrétní položky, ale také pro informační výpisy apod. Příklad :

# text_box

$ Text box

K Text box;zadání hodnoty

+ formular:010

 

# $ K + List Box

Objekt třídy List box slouží ke vstupu údajů s výběrem z nabízených možností. Objekt má vyhrazen prostor, na kterém zobrazuje jednotlivé možnosti. Pokud je není možno zobrazit současně všechny, je možno mezi nimi listovat pomocí rolovacího pásku na pravé straně objektu. Není možno zadat jinou hodnotu než tu, která je nabízena. Tím se tento objekt zásadně liší od objektu třídy Combo Boxcombo_box.

V objektu třídy Combo box není možno zadat prázdnou hodnotu (NULL), a to ani zrušením předchozí hodnoty. (Pokud je v objektu některá hodnota nastavena jako implicitní).

 

Příklad :

# list_box

$ List box

K List box;výběr z nabídky

+ formular:015

 

# $ K + Combo Box

Objekt třídy Combo box slouží ke vstupu údajů s možností vybrat si některou z nabízených možností. Nabídku přípustných možností rozvíjí tlačítko na pravé straně objektu. Pokud budeme zapisovat obsah objektu ručně, v nabídce bude prováděn přesun vždy na první hodnotu, která se svým začátkem shoduje s napsanou hodnotou. Při zadávání hodnot je možno zadat také hodnotu, která se v nabídce vůbec nevyskytuje. Obsluha tuto skutečnost zjistí a nabídne nám vložení nové hodnoty do nabídky. Pokud novou hodnotu do nabídky vložíme, bude od příštího otevření tohoto formulářeformular nabízena mezi ostatními.

V objektu třídy Combo box je možno zadat také prázdnou hodnotu (NULL), a to i zrušením předchozí hodnoty.

 

Příklad :

Poznámka : Pokud vložíme do objektu novou hodnotu a neuložíme ji do nabídky hodnot, může dojít ke ztrátě informací v některých sestavách, které jsou prováděny jen pro zvolené hodnoty příslušné položky. Námi vložená nabídka se nenachází v seznamu hodnot a proto ji nebude možno zvolit.

# combo_box

$ Combo box

K Combo box;výběr s nabídkou

+ formular:020

 

# $ K + Option Group

Objekt třídy Option Group slouží pro určení obsahu položky výběrem některé z nabízených možností.

Jednotlivé možnosti jsou přitom zastoupeny výběrovými tlačítky Option buttonoption_button nebo výběrovými boxy Check boxcheck_box. Volbu provedeme výběrem jednoho z tlačítek. Výběrem jiného tlačítka je předchozí volba zrušena. Lze tedy zvolit jen jednu z těchto možností.

 

Příklad :

Poznámka : Jednotlivým tlačítkům z nabídky jsou přiřazeny číselné hodnoty, které jsou v případě jejich volby uloženy do zdrojové položky.

# option_group

$ Option Group

K Option Group;výběr z nabídky

+ formular:025

 

# $ K + Option Button

Objekty třídy Option Button slouží k zadávání položek obsahujících logické hodnoty. Stisknutím tlačítka změní hodnotu na Yes (True) nebo No (False). Stav tlačítka indikuje nastavenou hodnotu :

plné tlačítko - Yes (True),

prázdné tlačítko - No (False).

Obdobný význam a použítí má objekt třídy Check Boxcheck_box.

 

Příklad:

Poznámka : Pokud objekt nemá zadánu implicitní hodnotu pak je na počátku nastavena hodnota NULL, která je indikována stejně jako hodnota No (False).

 

# option_button

$ Option Button

K Option Button;zadání logické hodnoty

+ formular:030

 

# $ K + Check box

Objekty třídy Check box slouží k zadávání položek obsahujících logické hodnoty. Stisknutím tlačítka změní hodnotu na Yes (True) nebo No (False). Stav tlačítka indikuje nastavenou hodnotu :

zaškrtnuté tlačítko - Yes (True),

prázdné tlačítko - No (False).

Obdobný význam a použítí má objekt třídy Option Buttonoption_button.

 

Příklad:

Poznámka : Pokud objekt nemá zadánu implicitní hodnotu pak je na počátku nastavena hodnota NULL, která je indikována stejně jako hodnota No (False).

# check_box

$ Check box

K Check box;zadání logické hodnoty

+ formular:035

 

# $ K + Návěští (Label)

Pomocí objektů třídy Label jsou tvořeny různé informační popisy a komentáře.

 

Příklad :

# label

$ Návěští

K Label;návěští;informační text

+ formular:040

 

# $ K Horké klávesy jsou předdefinované kombinace kláves. Po jejich stisku je provedena příslušná činnost. Mohou být jednoduché, např. klávesy F1, F2 ..., ale také složené, jako CTRL+Shift+A. Tyto složené klávesy musí být stisknuty současně. Nejjednodušeji jejich stisk provedeme tak, že stiskneme klávesy jako CTRL, Shift a při jejich stálém držení stiskneme klávesu příslušného písmene. Tak dojde k provedení požadované činnosti.

# stisk_klavesy

$ Stisk horké klávesy

K klávesa stisk;provedení činnosti

 

# $ K Jako dvojí kliknutí nebo též ”dvojcvak” označujeme manipulaci s myší, při níž umístíme ukazovátko myši na některý objekt. Pak dvakrát rychle stiskneme levé tlačítko myši, aniž bychom s ní pohnuli.

Tato manipulace s tlačítky myši je snad nejčastější.

# dvojcvak

$ Dvojí kliknutí

K dvojí kliknutí;kliknutí;dvojcvak;myš

 

 

8.3 Soubory s obrázky

Jak ste si jistě povšimli, jsou všechny obrázky zařazeny přímo do textu. Dvojím podtržením obrázku znázorňujícího tlačítko s textem "O úloze" je vytvořeno tlačítko, které způsobí přechod na určené téma:

 

Bližší informace o_uloze po stisku tlačítka.

 

Stejného výsledku bychom dosáhli, pokud bychom na tento obrázek umístili v editoru horkých ploch (SHED.EXE) horkou plochu přes celý obrázek a nastavili, že plocha nemá být viditelná. Připojení pak provedeme takto :

 

Bližší informace {bmc tlacitko.shg} po stisku tlačítka.

 

Jedinou výjimku tvoří obrázek znázorňující obslužný formulář. V tomto obrázku bylo vytvořeno několik horkých ploch. Ty byly vytvořeny v editoru horkých ploch (SHED.EXE). Výsledný obrázek s horkými plochami již nelze umístit přímo do textu, proto je připojen pomocí odkazu :

 

{bmc hlavni.shg}

 

Na obr. 6 je znázorněna tvorba jednotlivých horkých ploch v obrázku HLAVNI.SHG pomocí editoru horkých ploch (SHED.EXE).

Obr. 66. Tvorba horkých ploch v obrázku HLAVNI.SHG

8.4 Práce s nápovědným souborem

Jakmile jsou všechny soubory potřebné pro vytvoření nápovědného souboru hotovy, spustíme nápovědný překladač (HC31.EXE) a provedeme překlad souboru. Získáme soubor s názvem PROD_95.HLP, který můžeme otevřít pomocí obslužného programu WINHELP.EXE. V otevřeném okně bude zobrazeno hlavní téma (Contents), jak vidíme na obr. 7.

 

Obr.77. Otevřený nápovědný soubor

Při práci s nápovědným souborem můžeme využívat všechny vytvořené skokové texty, horké plochy apod. Kromě toho je přístupné standardní menu. Zde je nejzajímavější činnost Bookmark, pomocí ní si můžeme aktuální téma označit a pak se k němu rychle vrátit. Zbývající činnosti s nápovědným souborem jsou zpřístupněny pomocí tlačítek. Část tlačítek je standardních a část jsme při tvorbě nápovědného souboru přidali a připojili k nim nápovědná makra. Rozeberme si nyní krátce činnost jednotlivých tlačítek :

 

Tlačítko Contents

Toto tlačítko provádí standardní činnost. Zobrazí hlavní téma nápovědného souboru, tedy téma, které je zapsáno v klauzuli CONTENTS sekce [OPTIONS] projektového souboru.

Tlačítko Search

Tlačítko Search otevře okno pro vyhledání požadovaného tématu. Okno má dvě části, jak vidíme na obr. 8. V horní části najdeme požadované klíčové slovo (ve zdrojovém souboru PROD.RTF jsou klíčová slova pro jednotlivá témata uvedena za poznámkou "K"). Po výběru klíčového slova se v dolní části objeví seznam témat u kterých je toto klíčové slovo uvedeno. To znamená, že stejné klíčové slovo může být použito u více témat. Po výběru tématu je proveden přechod na zvolené téma.

Obr. 88. Okno pro vyhledání požadovaného tématu v nápovědném souboru

Tlačítko Back

Pokud byl proveden alespoň jeden přechod na jiné téma (pomocí skokového textu, vyhledání tématu apod.), je po stisku tlačítka Back proveden přechod na předchozí téma. Postupným mačkáním tlačítka Back se můžeme vrátit i o několik témat zpět. Pořadí prohlédnutých témat je možno zobrazit pomocí tlačítka History.

 

Tlačítko History

Toto tlačítko otevře okno obsahující seznam témat v pořadí, jak jsme do nich při práci s nápovědným souborem vstupovali, viz obr. 9. Volbou požadovaného tématu se k němu vrátíme.

Obr. 99. Seznam prohlédnutých témat

Tlačítko About

Tlačítko About bylo přidáno do úlohy pomocí nápovědného makra :

CreateButton ("999", "&About","About ()")

v sekci [CONFIG] projektového souboru. Je k němu připojeno makro, které otevře okno s informacemi o stavu systému, autorovi (pokud byl zapsán v klauzuli COPYRIGHT sekce [OPTIONS] projektového souboru), jak vidíme na obr. 10. V definici tlačítka si všimněte zápisu &About. Způsobí, že písmeno A ze slova About bude podtrženo. Současně je možno vyvolat stisk tohoto tlačítka kombinací kláves Alt+A. Jedná se o standardní službu Windows, která byla takto aktivována.

 

Obr. 1010. Okno zobrazené činností About

Tlačítka << >> (Browse Buttons)

Tlačítka << >> byla připojena v projektovém souboru pomocí makra BrowseButtons (). Jejich zobrazení umožňuje využít nastavené prohlížecí sekvence (ve zdrojovém souboru PROD_95.RTF jsou prohlížecí sekvence pro jednotlivá témata uvedena za poznámkou "+"). Pokud je zobrazeno hlavní téma (Contents) jsou obě tlačítka zneplatněna, nebo toto téma není zapojeno do žádné prohlížecí sekvence. Pokud se přesuneme např. na téma Účtování, které je první v sekvenci, bude možno se pomocí tlačítka >> posouvat na další témata, v pořadí :

Volba čísla faktury, Volba čísla akce, Horké klávesy, Tisková sestava, Hlavní formulář,

čímž sekvence končí.

Tlačítko Print

Toto tlačítko bylo rovněž připojeno v sekci [CONFIG] projektového souboru a bylo mu přiřazeno vyvolání nápovědného makra Print () :

CreateButton("998","&Print","Print()")

Po stisku tlačítka Print dojde k okamžitému vytištění aktuálního tématu na implicitní tiskárnu. Stejnou činnost lze vyvolat z menu činností File a následně Print Topic. Pokud potřebujeme změnit nastavení tiskárny, je třeba z menu File zvolit činnost Print Setup ... . Během tisku je zobrazeno informační hlášení, které vidíme na obr. 1111.