Copyright: Software602 s.r.o. (Jan S.) - WinBase602


Titulní stránka helpu

Vítejte ve WinBase602. Je možno si vybrat nápovědu k těmto programům:

 - WinBase602 - vývojové prostředí (lokální server)

 - WinBase602 Runtime - provozní systém

 - Správce WinBase602 - prostředí pro správce databáze

 - síťoví klienti WinBase602 přihlašující se na vzdálený server

 - Server WinBase602 - samostatně spustitelný server

 - WinBase602 Záloha - načtení zálohy a rekonstrukce databáze

 - Instalace WinBase602 - program pro nestandardní instalaci

 - WinBase602 Doručovatel - program pro automatický příjem dat z pošty

 - program Berle - program pro záchranu dat z poškozené databáze


Novinky verze 4.32
Některé novinky ve verzi 4.32

Principy ovládání

•	bublinová nápověda pro tlačítka na liště

•	některá tlačítka na liště jsou dvoustavová

•	dialogy pro výběr souboru a výběr fontu jsou pětadevadesátkové

•	prvotní instalace pomocí InstallShieldu - pětadevadesátkový vzhled

•	dodatečná instalace a úpravy se provádí samostatným programem

•	provozní systém (runtime) má nyní své vlastní okno obsahující menu a řídicí panel s aplikacemi - jednodušší import, spouštění i mazání aplikací - provozní systém

Pohledy

•	editační maska pro zadávání údajů pevného formátu (např. PSČ apod.)

•	složka Formátovaný text

•	složka Posuvník

•	složka Krokovač

•	složka Indikátor postupu

•	možnost nastavení reakce složek pohledu na standardní klávesy - např. Home a End apod.

•	parametry složek se již dále nebudou nastavovat pomocí dialogových oken, nýbrž pouze pomocí panelu

•	nová akce Setřídit podle atributu

Síťování

•	komunikace pomocí protokolu TCP/IP, naopak zatím nelze použít IPX/SPX

•	přímé telefonní spojení klienta se serverem

•	spojení klienta se serverem pomocí světové sítě Internet

•	na jednom počítači lze registrovat více různých serverů

•	na příkazové řádce klienta je nyní preferován zápis &jméno_registrovaného_serveru

•	automatické přihlášení se do WinBase602 pod stejným jménem, pod nimž je uživatel přihlášen do sítě, již není podmíněno pouze přihlášením do sítě Novell Netware

Programování

•	Select_directory- nová funkce pro výběr adresáře

•	QBE_state - zjištění, není-li v pohledu položen QBE dotaz

•	Quarter - zjištění čísla čtvrtletí z data


Novinky verze 4.0
Některé novinky ve verzi 4.0

Principy ovládání

•	zjednodušená práce s aplikacemi pomocí řídicího panelu

•	grafický návrh schématu aplikace

•	zjednodušené relační připojování záznamů, včetně vazeb M:N - viz kapitola Vytváření aplikací v Manuálu uživatele

•	vyhledávání řetězce v textových definicích objektů

•	export vybraných komponent aplikace.

Tabulky

•	automatické přidělování jedinečných hodnot atributu typu Integer

•	možnost nepovolit uložit atribut s prázdnou hodnotou

Pohledy

•	okno se seznamem vlastností při návrhu

•	vylepšené a rozšířené zadávání posloupností akcí

•	vylepšené preview

•	automaticky generované speciální pohledy

•	víceřádková editační složka

•	dvoustavová tlačítka

Editor

•	možnost odsazování celého bloku najednou

•	překlad a běh hlavního programu z editovaného includu


Rejstřík
 Rejstřík témat, pojmů a termínů WinBase602

 Charakteristika	Hlavní novinky verze 4.0	Hlavní novinky verze 4.32

 Tabulky

Co jsou to tabulky?

 - definování

 - indexy k tabulkám

 - referenční integrita

 - stav záznamu

Typy databázových atributů

 - multiatributy

 - sledovací atributy

 - typ OLE

Import dat do WinBase602

Export dat z WinBase602

Kódování souborů

Hromadné operace s daty

 Pohledy

Co jsou to pohledy?

 - ovládání

 - složky

 - návrh

 - vytváření nových

Jmenovky

Grafy

Sestavy

 Menu

Co je to menu?

 - návrh

 - ovládání návrháře

 Dotazy

Co jsou to dotazy?

 - návrh dotazu

 - syntaxe textového zápisu

 Programy

Co jsou to programy?

Programovací jazyk WinBase

Debugger

Encyklopedie funkcí a procedur

Číselník chyb a varování

 Aplikace

Co je to aplikace?

-  schéma aplikace

 - definiční soubor aplikace

 - export aplikace

 - import aplikace

Jména objektů ve WinBase602

 Uživatelé a práva

Práva k objektům a datům

Uživatelé a jejich hesla

Zámky a zamykání

Architektura

Architektura Klient - Server

Server WinBase602

Klienti WinBase602

Příkazy jazyka SQL

Obecné

Řídicí panel aplikace

Hlavní menu WinBase602

Přehled tlačítek na liště

Editor textů ve WinBase602

Konec práce s WinBase602


Jak používat nápovědu?
Jak používat systém nápověd?

WinBase602 je vybavena systémem nápověd, který Vám dovolí průběžně získat informace o prostředí, ve kterém se zrovna nacházíte, a o akcích, které můžete provádět.

Vyvolání nápovědy

Menu Nápověda

Volbou položky Lokální nápověda získáte informace o tom, jaké akce se dají provádět v tom prostředí, v němž právě jste.

Položka Rejstřík otevře rejstřík základních pojmů vývojového prostředí WinBase602.

Tlačítko na liště

Stiskem tohoto tlačítka se otevře stránka nápovědy příslušná k právě nastavenému prostředí.

Klávesa F1

Stiskem klávesy F1 v některých speciálních situacích (např. během návrhu objektů) získáte informace o režimu, v němž pracujete, resp. o poli, v němž je kurzor.

Klávesa Ctrl F1

Stiskem kombinace kláves Ctrl a F1 během editace textu v editoru vyvoláte nápovědu k objektu, na jehož identifikátoru se právě nachází kurzor. Takto lze získat popisy standardních procedur, funkcí, konstant a typů WinBase602 a vysvětlení ke klíčovým slovům jazyka. Stejnou nápovědu získáte, pokud v editoru na jméně objektu stisknete pravé tlačítko myši.

Tlačítko Nápověda

V dialogových oknech se nachází tlačítko Nápověda, jehož stisknutím se přenesete přímo na příslušnou stránku v systému nápověd.

Ovládání nápovědy

V nápovědě se dá listovat pomocí kláves s šipkami nahoru a dolů a táhla na levém okraji okna.

Během prohlížení nápovědy můžete přecházet mezi informačními stránkami tak, že ukážete na zelený nápis jako tento a stisknete levé tlačítko na myši.

Tlačítkem Obsah (Contents) se přenesete na úvodní stranu systému nápověd.

Tlačítkem Hledání (Search) můžete vyvolat hledání tématu v nápovědě podle zadaného slova nebo fráze. Seznam obsahuje přes 600 frází.

Tlačítkem Zpět (Back) se můžete vždy vrátit k předchozí stránce nápovědy.

Tlačítkem Historie (History) vyvoláte seznam minulých stránek nápovědy, kterými jste zatím prošli. Na kteroukoli z nich se můžete vrátit.

Tlačítkem Slovník vyvoláte slovníček pojmů WinBase602.

Nápovědu opustíte dvojím stiskem myši na ikoně jejího systémového menu (nebo pomocí položky Zavřít (Close) v tomto menu), položkou Konec (Exit) v menu Soubor (File) nebo stiskem kláves Alt F4.


Pokusná stránka helpu

Nová stránka systému nápověd.

...

...

Zpět na původní stránku se dostanete tlačítkem Back (Zpět) v horní části okna.


Řídicí panel všech aplikací

Řídicí panel se všemi aplikacemi je okno, které se automaticky otevírá po spuštění vývojového prostředí WinBase602. Seznam ve střední části obsahuje výčet aplikací, které jsou v databázi dostupné. Vybráním jedné aplikace a jejím otevřením (dvojitým kliknutím nebo tlačítkem Modifikovat) se řídicí panel naplní komponentami dané aplikace.

Řídicí panel obsahuje na pravé straně tlačítka, umožňující provádět operace s aplikací jako celkem. Jedná se o tyto akce:

Spustit - aplikace se otevře a spustí se startovní objekt aplikace.

Vytvořit - vytvoří se nová prázdná aplikace.

Modifikovat - otevře se aplikace a naplní řídicí panel jejími komponentami.

Importovat - umožní importovat aplikaci do databáze.

Zrušit - zruší nevratně celou aplikaci včetně jejích komponent.

Řídicí panel všech aplikací není možné zavřít. Současně s panelem se otevře v minimalizované podobě okno s nákresem schématu aplikace .


Řídicí panel vybrané aplikace

Řídicí panel s vybranou aplikací je základní dialogové okno, z něhož se ovládá vývojové prostředí WinBase602. Skládá se ze tří částí:

  1) v levé části jsou grafická tlačítka s názvy jednotlivých objektů WinBase602: tabulky, pohledy, menu, dotazy a programy;

  2) ve středním seznamu se vypisují objekty aplikace té kategorie, která je vybrána tlačítkem v levé části; objekty mají před názvem grafické označení specifikující blíže objekt

- [image] tabulka	- [image] menu

- [image] připojená ODBC tabulka	- [image] dotaz

- [image] připojený objekt z WinBase602	- [image] program

- [image] obecný pohled	- [image] include

- [image] standardní pohled	- [image] sql operace

- [image] graf	- [image] startovní objekt

- [image] štítky

  3) tlačítka na pravé straně slouží k nejběžnějším akcím s označeným objektem. Tlačítko označené Další funkce slouží jako přepínač mezi základní a rozšířenou nabídkou funkcí.

Roztáhnete-li okno panelu na výšku, odkryjí se dva označovací čtverce, sloužící k stanovení, má-li se označený objekt exportovat - viz Export vybraných komponent aplikace.

Pro podrobnější popis funkcí tlačítek pro jednotlivé kategorie objektů viz

- Tabulky	- Pohledy

- Menu	- Dotazy

- Programy


Připojení objektu
Připojení objektu k aplikaci

Tlačítko Připojit umožňuje vytvoření tzv. spojovacího objektu, tedy objektu, který je odkazem na objekt z jiné aplikace. Pomocí spojovacího objektu pak budete moci pracovat s tímto objektem,  jako by byl součástí právě otevřené aplikace.

Všechny změny, které provedete s takto vytvořeným  spojovacím objektem, se provedou s původním objektem, na nějž spojovací objekt odkazuje. Platí to jak o změnách v definici objektu, tak i o změnách dat v tabulce. Výjimkou je pouze zrušení a přejmenování spojovacího objektu -- tehdy se ovlivňuje spojovací objekt sám a nikoli objekt, na nějž odkazuje.

 Po stisku tlačítka Připojit se otevře dialogové okno obsahující dva seznamy: seznam aplikací a seznam objektů zvolené kategorie ve vybrané aplikaci. Poté, co ze seznamů vyberete aplikaci a objekt a zadáte jméno pro spojovací objekt, bude spojovací objekt vytvořen. Spojovací objekt je trvalou součástí aplikace - přenese se i při exportu a importu aplikace.

Aplikace je schopna pracovat pouze s těmi objekty, které jsou jejími komponentami nebo které byly ní připojeny. Proto připojíte-li pohled, musíte připojit také tabulku nebo dotaz, kam pohled směřuje. Připojíte-li dotaz, musíte připojit všechny tabulky, z nichž vybírá data.


Připojení tabulky
Připojení tabulky k aplikaci

Tlačítko Připojit umožňuje podle přepínače v horní části vytvoření

a) tzv. spojovacího objektu, tedy objektu, který je odkazem na tabulku WinBase602 z jiné aplikace téže databáze - přepínač je v poloze Tabulky z ostatních aplikací ve WinBase602.

b) napojení na tabulku z cizího zdroje dat - přepínač je v poloze Tabulky zpřístupněné přes ODBC.


Připojení tabulky WinBase602
Připojení tabulky WinBase602 k aplikaci

Tzv. spojovací objekt je objekt, který je odkazem na tabulku WinBase602 z jiné aplikace téže databáze. Pomocí spojovacího objektu pak budete moci pracovat s touto tabulkou,  jako by byla součástí právě otevřené aplikace. Připojená tabulka je na řídicím panelu aplikace označena symbolem šipky.

Všechny změny, které provedete s takto vytvořeným  spojovacím objektem, se provedou s původní tabulkou, na níž spojovací objekt odkazuje. Platí to jak o změnách v definici, tak i o změnách dat v tabulce. Výjimkou je pouze zrušení a přejmenování spojovacího objektu -- tehdy se ovlivňuje spojovací objekt sám a nikoli tabulka, na níž odkazuje.

V dialogovém okně jsou dva seznamy: seznam aplikací a seznam tabulek ve vybrané aplikaci. Poté, co ze seznamů vyberete aplikaci a tabulku a zadáte jméno pro spojovací objekt, bude spojovací objekt vytvořen. Spojovací objekt je trvalou součástí aplikace - přenese se i při exportu a importu aplikace.

Aplikace je schopna pracovat pouze s těmi objekty, které jsou jejími komponentami nebo které byly ní připojeny. Připojíte-li tabulku, musíte připojit všechny tabulky, do nichž z ní vedou ukazatele (to ovšem pouze v případě, že s těmito ukazateli budete pracovat, např. jsou-li použity v pohledu).


Připojení tabulky ODBC
Připojení tabulky ODBC k aplikaci

V levém seznamu se objeví nabídka ODBC zdrojů dat, na něž je tato aplikace napojena. Označte v levém seznamu požadovaný zdroj dat a v pravém seznamu se objeví jeho tabulky. Pod seznamy se mohou aktivovat až dvě comba umožňující vyhledání správné tabulky ve zdroji dat. Nedaří-li se připojení tabulek nebo se žádné neobjevují, zkontrolujte nastavení parametrů příslušného ODBC driveru ve Windows.

Zvolenou tabulku označte v pravém seznamu a stiskem tlačítka Připojit ji připojte do aplikace. Připojená tabulka se objeví na řídicím panelu aplikace se symbolem zeměkoule. Stane se trvalou součástí aplikace. Spojení na tuto tabulku se přenese i při exportu a importu aplikace.

Přes ODBC lze připojit i tabulky z WinBase602, pak ale budou pro práci s nimi platit všechna omezení plynoucí z ODBC - např. nebude možno pracovat s multiatributy.


Vývojové prostředí WinBase602

Právě pracujete s programem WB602, který tvoří jádro WinBase602. Umožňuje pracovat s daty uloženými v databázi nebo vytvářet vlastní databázové aplikace.

Na tomto místě můžete získat informace o následujících tématech:

Základní charakteristika a vlastnosti WinBase602

Řídicí panel aplikace

Co umožňují položky hlavního menu

Databázové aplikace

Import dat

Export dat

Uživatelé a jejich práva

Ukončení práce s WinBase602


Základní vlastnosti WinBase602
Základní charakteristika a vlastnosti WinBase602

  WinBase602 je integrovaný relační databázový systém pro prostředí MS Windows. Pracuje na všech běžných typech sítí - databázový server může být oddělen od databázových klientů.

Vývojové prostředí umožňuje:

 1) definovat databázové tabulky pro uložení dat včetně referenční integrity;

 2) interaktivním způsobem navrhovat pohledy a tím popisovat tvar oken, jejichž prostřednictvím budete s obsahem databáze pracovat, a tvar sestav, které budete generovat;

 3) definovat dotazy a tím vyhledávat záznamy splňující určité podmínky a uspořádávat je;

 4) vytvářet vlastní uživatelská menu;

 5) vyvíjet aplikační programy ve vnitřním programovacím jazyce s využitím komfortního debuggeru (totéž je možné v externích jazycích (C nebo Pascal) s využitím knihoven WinBase602);

 6) přidělovat jednotlivým uživatelům nebo jejich skupinám  přesně vymezený rozsah práv;

Hlavní rysy programu:

 1) Ve WinBase602 lze kombinovat relační a síťový model dat. Záznamy z různých tabulek lze propojovat buď na základě vztahů mezi hodnotami jejich atributů nebo pomocí explicitních ukazatelů viz Přivazování záznamů;

 2) WinBase602 umožňuje využívat elektronické pošty k přenosu dat;

 3) WinBase602 hlídá integritu dat, vnitřní i vnější;

 4) WinBase602 umožňuje práci s multiatributy, tedy s atributy, které mají více než jednu hodnotu a počet jejich hodnot se dynamicky mění bez předem dané horní meze;

 5) WinBase602 umí automaticky sledovat změny atributů a zaznamenávat si autora a čas změny a minulé hodnoty atributu;

 6) WinBase602 podporuje OLE2 technologii (je OLE2 serverem i kontejnerem);

 7) výběr a třídění záznamů se provádí jednoduše pomocí QBE;

 8) WinBase602 umožňuje vést journal změn a využívat ho při obnově obsahu databáze ze záložní kopie;

 9) WinBase602 pracuje v transakčním režimu;

 10) WinBase602 pracuje jako ODBC klient i server


Hlavní menu WinBase602

Většina základních operací s aplikací jako celkem se provádí pomocí tlačítek na řídicím panelu všech aplikací, operace s komponentami aplikace (jednotlivými objekty) na řídicím panelu aplikace. Některé akce se však musí volat přes položky hlavního menu.

Položky hlavního menu umožňují:

Aplikace ( viz Menu "Aplikace")

Otevření nebo spuštění aplikace, export aplikace, odhlášení, ukončení programu apod.

Práva ( viz Menu "Práva")

Správa uživatelů a jejich hesel, přidělování práv k objektům.

Nástroje ( viz Menu "Nástroje")

Nastavení parametrů WinBase602, exporty a importy jednotlivých objektů, informace o databázi apod.

Okna - standardní menu Windows aplikace

Nápověda - položky pro práci s nápovědou - viz Jak používat nápovědu . Obsahuje též položku Stav databáze.

Není-li dosud otevřena žádná aplikace, hlavní menu je v redukovaném tvaru.


Stav databáze

Položka   Stav databáze  otevírá informační okno obsahující údaje o okamžitém stavu databázového serveru:

Verze serveru - číslo verze databázového jádra (může se lišit od čísla verze celého produktu);

Jméno serveru - jméno serveru, na nějž jste přihlášeni; jste-li přihlášeni na vzdálený server, je před jménem serveru hvězdička;

Připojeno uživatelů - počet uživatelů právě komunikujících s databázovým jádrem;

Počet volných clusterů - počet volných alokačních jednotek v diskovém oddílu (pouze pokud je databáze instalována do diskového oddílu);

Velikost clusteru - velikost alokační jednotky pro hrubou alokaci diskové paměti, při alokaci místa pro objekty proměnné velikosti a multiatributy se používá jednotka 32 krát menší;

Lokální volná paměť - množství paměti, kterou si WinBase602 rezervuje pro soukromé drobné použití (při paměťové náročných operacích jako je třídění se používá jiná paměť);

Volných bajtů na disku - množství volného místa na disku, na němž jsou data WinBase602 (pouze je-li WinBase602 instalována do souboru).

Uživatelské jméno - jméno, pod nímž jste přihlášeni do WinBase602, anonymní uživatel má prázdné jméno.

Pokud   Počet volných clusterů  nebo údaj Volných bajtů na disku  je malý (méně než cca 100 clusterů resp. cca 100000 bajtů) je riskantní dále pracovat - vyčerpání veškeré paměti může způsobit vážné chyby v práci WinBase602.


Menu "Aplikace"

Menu má tyto položky:

Spustit - spuštění vybrané aplikace (aplikačního programu nebo menu);

Otevřít jinou aplikaci- otevření řídicího panelu se všemi aplikacemi. Otevřená aplikace se automaticky uzavře;

Exportovat - vytvoření definičního souboru aplikace a příslušných vyexportovaných souborů na disku (disketě); viz export aplikace;

Startovní objekt - označení menu nebo programu, který má převzít řízení při zavolání aplikace příkazem Spustit;

ODBC zdroje dat - otevření dialogu pro přidání resp. zrušení napojení na zdroj dat z jiného databázového prostředí

Odhlásit se - právě přihlášený uživatel se odhlásí a objeví se okno pro přihlášení uživatele nového. Otevřená aplikace se automaticky uzavře;

Konec - ukončení práce s WinBase602.

Pokud ještě není otevřena žádná aplikace, má menu pouze tyto položky:

Odhlásit se - právě přihlášený uživatel se odhlásí a objeví se okno pro přihlášení uživatele nového. Otevřená aplikace se automaticky uzavře;

Konec - ukončení práce s WinBase602.


Menu "Práva"

Pomocí tohoto menu se řídí správa uživatelů a přidělování práv.

Menu obsahuje tyto položky:

Přístup k objektu - nastavení práva číst, měnit objekt nebo poskytovat práva dalším;

Manipulace s daty - pro data v tabulkách se nastavují rozšířená práva: právo číst, měnit údaje, vkládat a rušit záznamy;

Uživatelé - společný dialog pro správu uživatelů a jejich hesel - viz Správa uživatelů


Uživatelé

Uživatelé

Přidat -  otevře se okno, v němž zadáte nové uživatelské jméno a poté v dalším okně jemu odpovídající heslo. Protože se během psaní hesla jeho znaky neobjevují na obrazovce, je nutno heslo zadat pro jistotu dvakrát. Pokud na druhý pokus nezadáte stejné heslo, dostanete další dva pokusy. Nově přidaný uživatel má pouze ta práva, která platí pro skupinu EVERYBODY;

Heslo -  vyberete některého z uživatelů systému a zadáte jeho nové heslo. Text hesla je nutno napsat dvakrát -- oba zápisy musí být totožné. Každý může změnit svoje vlastní, správce libovolné;

Přejmenovat  -  zadání nového jméno pro uživatele. Toto jméno se musí lišit od jmen všech ostatních uživatelů. Změnou jména se nic nemění na právech uživatele.

Zrušit  - každý může zrušit sám sebe, správce kohokoliv (kromě sebe). Zrušením a novým vytvořením pod stejným jménem se práva nezachovají.

Skupiny

Přidat - vytvořit novou skupinu uživatelů. Práva přidělená skupině získávají všichni její členové. Výhoda je v tom, že nového uživatele, aby získal odpovídající množinu práv, stačí zařadit do již vytvořené skupiny s danými právy a není nutno uživateli práva přidělovat jednotlivě.

Zrušit - zrušení skupiny uživatelů. Skupinu může zrušit pouze ten, kdo ji vytvořil nebo DB_ADMIN.

V dolní části okna je označovací čtverec Je uživatel členem skupiny? Chcete-li uživatele zařadit do konkrétní skupiny, vyberete uživatele v levém seznamu a skupinu v pravém seznamu a označíte čtverec. Uživatel, který patří do skupiny, získává práva náležející této skupině.

Některá nastavení jsou implicitní. Každý uživatel patří do skupiny EVERYBODY , uživatel DB_ADMIN patří do každé skupiny. Tato nastavení nelze změnit, označovací čtverec je proto neaktivní.


Menu "Nástroje"

Menu Nástroje sdružuje řádu akcí, z nichž většina se při běžné práci s WinBase602 provádí pouze občas. Jsou v něm položky:

Import dat do tabulky- načtení dat ve formátu vnitřním nebo  jiných do již vytvořené tabulky WinBase602; viz Import dat do WinBase;

Import návrhu tabulky (pohledu, menu, dotazu, programu) - načtení definice objektu toho typu, který je vybrán na řídicím panelu aplikace;

Export dat z tabulky (z dotazu) - export dat z WinBase602 na disk (disketu) pro použití v jiné instalaci WinBase602 nebo v jiných databázových produktech; viz Export dat z WinBase602;

Export návrhu tabulky (pohledu, menu, dotazu, programu)  - definice objektu, označeného na  řídicím panelu aplikace se vyexportuje v textové podobě z prostředí databáze na disk(etu);

Parametry - nastavení globálních parametrů WinBase602 - viz Parametry WinBase602;

Připravit include - vytvoří definiční soubor v jazyce Turbo Pascal nebo C obsahující popisy objektů z WinBase602, na něž odkazuje Váš aplikační program;

Přesměrování - možnost použít jiný zdroj dat pro pohled označený na  řídicím panelu aplikace;

Uvolnit zrušené - záznamy zrušené v pohledu nebo aplikačním programem se označí jako uvolněné. Nevratná operace.

Obrázky - export obrázků do aplikace - viz Obrázky v aplikaci

Vyhledat - nalezne v otevřené aplikaci všechny objekty, které ve své textové definici obsahují zadaný řetězec.


ODBC zdroj dat

V aplikaci ve WinBase602 lze otevřít přístup na cizí zdroje dat pomocí nového příkazu ODBC zdroje dat v menu Aplikace. Tento příkaz otevírá dialogové okno, v jehož horní části je seznam zdrojů dat již připojených do aplikace.

Tlačítkem Přidat zdroj dat přidáte do aplikace další zdroj dat. Po jeho stisknutí se otevře nabídka všech instalovaných zdrojů dat. Vyberete zdroj dat a projdete konverzací, během níž zadáte parametry vyžadované zdrojem dat, např. uživatelském jméno, heslo, adresář z datovými soubory nebo jméno databázového schématu.

Tlačítkem Odstranit zdroj dat vyřadíte zdroj dat, označený v seznamu, z aplikace ve WinBase602. Nelze odstranit zdroj dat, z něhož jsou do aplikace připojené tabulky - nejprve je nutno zrušit spojení na tyto tabulky.

Tlačítko Vlastnosti zdroje otevře okno se seznamem vlastností označeného ovladače - např. lze-li tabulky v cizím zdroji modifikovat, editovat apod. Pro vývojáře je podstatná informace o ODBC kurzorech a funkci SQLSetPos - nejsou-li podporovány, není možno pracovat s daty tohoto zdroje programově.

Tlačítkem Aktivní zdroj označíte vybraný zdroj dat jako aktivní. Aktivní zdroj dat je v seznamu označen hvězdičkou. Budete-li vytvářet novou tabulku, vytvoří se vždy v aktivním zdroji dat. Opětovným stiskem tlačítka zrušíte aktivní stav zdroje dat.

Zaškrtnutím čtverce Používat tabulky aktivního zdroje dat dosáhnete toho, že se v aktivním zdroji dat vytvoří duplikáty všech tabulek z otevřené aplikace (pokud tam již nejsou) a veškerá práce s tabulkami se přesune na ně. Zrušením zaškrtnutí se vrátíte k původním tabulkám ve WinBase602.

Pokud chcete provést SQL příkaz ve vybraném zdroji dat, pak text příkazu zadejte do editačního okna a stiskněte tlačítko Provést příkaz. Pokud provedení příkazu vyvolá chybu nebo zprávu, bude promítnuta v okně na obrazovce. Po úspěšném provedení se na informační řádek vypíše zpráva Provedeno.

Po úspěšném napojení se na konkrétní zdroj dat můžete připojovat jeho databázové tabulky. K tomu slouží tlačítko Připojit na řídicím panelu - viz Připojování tabulek.


Přidání nového ODBC zdroje dat

Dialog slouží k přidání nového zdroje dat do otevřené aplikace. V seznamu vidíte zdroje dat registrované ve Windows. Jeden zdroj označte a stiskněte tlačítko Připojit. U většiny zdrojů budete muset projít přes jeden či více dotazovacích dialogů, v nichž vyplníte některé specifické údaje pro daný zdroj. U většiny zdrojů také zadáte vstupní uživatelské jméno a heslo. Některé zdroje však vyžadují nastavení přímo z Control Panelu Windows.

Abyste jméno a heslo nemuseli opakovat při každém další napojování se, můžete zaškrtnout čtverec Ponechat otevřený přístup do zdroje dat. Údaje se v rámci aplikace uchovají a při dalším napojení budou automaticky použity.


Obrázky v aplikaci

Každá aplikace může obsahovat obrázky různých formátů (z důvodu rychlosti načítání však doporučujeme formát BMP), které lze použít na tyto účely:

  1) jako pozadí pohledu;

  2) jako statický obrázek v pohledu (na rozdíl od zobrazení atributu typu obrázek);

  3) jako obrázek na tlačítko v pohledu;

  4) jako obrázek na tlačítko uživatelského toolbaru (pracovní lišty).

Dialogové okno pro práci s obrázky se vyvolá ze dvou míst programu:

  1) z hlavního menu Nástroje \ Obrázky;

  2) z menu návrháře pohledů Návrh \ Obrázky.

Tlačítkem Přidat můžete do aplikace vložit nový obrázek (uložený v souboru na disku), tlačítkem Smazat vymažete z databáze objekt označený v seznamu na levé straně. Tlačítko Ukázat zobrazí obrázek v pomocném okně.


Parametry WinBase602

Okno Parametry slouží pro nastavení globálních provozních parametrů WinBase602.

V okně vidíte seznam nastavitelných parametrů. Dvojitým kliknutím na položce seznamu nebo vybráním položky a stiskem tlačítka Nastavit se přenesete do dalšího okna, v němž zvolíte některou nabízenou konkrétní hodnotu parametru nebo zapíšete hodnoty vlastní.

Parametr Editor: Font na obrazovce nastaví font, v němž se budou zobrazovat textové informace v editoru. Volba fontu probíhá způsobem standardním pro všechny programy pod Windows.

Nabídka fontů obsahuje pouze neproporcionální fonty.

Parametr Editor: Font na tiskárně otevře dialogové okno, v němž můžete zvolit font, který se použije při tisku textu z vnitřního textového editoru.

Nabídka fontů obsahuje fonty použitelné pro nastavenou tiskárnu.

Při nastavování parametru Editor: Ovládání a chování můžete stanovit tři údaje:

•	čtverec Turbo-styl ovládání zaškrtnete tehdy, jste-li zvyklí pracovat s Turbo-editory nebo editory typu WordStar či Text602. Vyhovuje-li Vám více Windows styl editorů (Notepad, Write, WinText602), ponechte čtverec nezaškrtnutý;

•	čtverec Přehazovat slova na konci řádky se uplatní pouze při editaci atributu typu Text. Způsobí automatický přechod na nový řádek při dosažení pravého konce okna, přičemž slovo, které by přesahovalo, se již ocitne na novém řádku;

•	čtverec Zarovnávat pravý okraj textu se uplatní pouze při editaci atributu typu Text. Při zaškrtnutí se budou mezi slova textu doplňovat mezery tak, aby text byl zarovnán k pravému okraji okna.

Parametr Pohledy: Implicitní font otevře dialogové okno, v němž můžete zvolit font, který se použije ve všech pohledech, které nemají stanovený font vlastní - jsou to zejména ty pohledy, které WinBase602 automaticky vytvoří, otevřete-li přímo tabulku nebo dotaz.

Parametr Pohledy: Implicitní zobrazení umožní nastavit pro většinu typů atributu zobrazení, které se použije, není-li v definici pohledu stanoveno zobrazení vlastní - jsou to zejména ty pohledy, které WinBase602 automaticky vytvoří, otevřete-li přímo tabulku nebo dotaz.

Parametr Pohledy: Rám editačních složek a comb v sestavě povolí uplatnění nového rysu - tisk rámečků okolo editačních složek pohledu (editační pole, combo, subpohled ). Aby byla zachována kompatibilita se starší verzí, je zde možnost rámečky u těchto složek netisknout.

Parametr Pohledy: Rastr při návrhu nastaví rastr pro návrhář pohledu. Rastr určuje počet pixelů obrazovky, v jehož násobcích se složky posunují a mění velikost.

Parametr Tiskárna: Volba otevře dialogové okno, které umožňuje zvolit, na kterou tiskárnu mají směřovat veškeré tištěné výstupy z WinBase602.

Parametr Tiskárna: Okraje přednastaví levý, pravý, horní a dolní okraj o který se zmenší plocha papíru při tisku. Všechny tyto údaje lze znovu předefinovat před vlastním tiskem.

Parametr Ikona importované aplikace slouží ke stanovení, jestli a kde se má vytvořit při importu aplikace do WinBase602 její ikona; popis viz Ikona aplikace

Dalších šest parametrů nastavuje barvy písma a pozadí významných řádků při ladění programu. Jedná se o tyto řádky:

- řádek, na němž je umístěn bod zastavení (breakpoint)

- řádek, na němž stojí laděný program (aktuální pozice programu)

- řádek, na němž je bod zastavení a zároveň na něm stojí program.

Parametr Monitor: Velikost obrazu nastaví velikost monitoru pro přesné zobrazení preview; popis viz Rozměry monitoru.

Parametr WinMail602: Pracovní adresář pro export slouží k určení adresáře, v němž se před odesláním záznamů poštou dočasně vytvoří soubor se záznamy a případné další pomocné soubory. Po odeslání do poštovní fronty se soubory smažou.


Nastavení adresáře pro export do pošty
Určení adresáře pro export do pošty

Dialogové okno slouží k určení pracovního adresáře, v němž se před odesláním záznamů poštou dočasně vytvoří soubor se záznamy a případné další pomocné soubory. Po odeslání do poštovní fronty se soubory smažou.


Nastavení implicitního nastavení
Nastavení implicitního zobrazení

Parametr Pohledy: Implicitní zobrazení umožní nastavit pro většinu typů atributu zobrazení, které se použije, není-li v definici pohledu stanoveno zobrazení vlastní - jsou to zejména ty standardní pohledy, které WinBase602 automaticky vytvoří, otevřete-li přímo tabulku nebo dotaz.


Nastavení ikony importované aplikace
Ikona importované aplikace

Parametr Ikona importované aplikace slouží ke stanovení, jestli a kde se má vytvořit při importu aplikace do WinBase602 její ikona:

- Vytvořit dle APL souboru - ikona se vytvoří tam, kde jí to předepisuje APL soubor vzniklý při exportu aplikace;

- Nevytvářet - ikona se nevytvoří nikde;

- Vytvořit ve skupině jménem: - zadejte jméno skupiny v Správci programů, do níž se mají ikony vytvářet.


Nastavení rozměrů monitoru
Rozměry monitoru

Pro přesné zobrazení velikosti stránek sestavy při preview musí program znát fyzické rozměry monitoru. Změřte pravítkem velikost obrazovky (bez černého okraje) a nalezené hodnoty v milimetrech zapište do okna, které se objeví po vybrání položky Monitor: Velikost obrazu ze seznamu parametrů.

Implicitní hodnota je 250 x 200 mm (přibližně 14" monitor).


Databázová aplikace

Databázovou aplikací nazýváme logický celek sestávající z dat a  definic

tabulek	pohledů

menu	dotazů

programu

řešící určitý úkol z oblasti zpracování dat.

Jádrem samostatné aplikace je buď program vytvořený ve vnitřním programovacím jazyce WinBase602 (nebo v jazyce externím) nebo v jednodušších případech uživatelem definované menu.

Vytvořenou aplikaci je možno šířit s provozním systémem (Runtime modulem) i na jiné počítače.

Aplikaci je nutno vytvořit ve vývojovém prostředí nebo (aplikaci vytvořenou jinde) importovat do databáze.


Program

Jádrem samostatné aplikace může být program vytvořený ve vnitřním programovacím jazyce WinBase602 nebo v jazyce externím.

Vnitřní programovací jazyk je velmi podobný jazyku Pascal a je obohacen o konstrukce usnadňující manipulaci s obsahem databáze. Obsahuje také řadu standardních procedur a funkcí pro práci s pohledy, tištění sestav, otevírání dotazů, zobrazení menu atd. Pro snadnější ladění je zabudován komfortní debugger programů.

Aplikační program ve vnitřním jazyce může být ve zkompilovaném tvaru exportován z WinBase602 a poté spouštěna samostatným programem WBR602.EXE (run-time systém).  Ve tvaru vhodném pro šíření jsou všechny složky aplikace sepsány v textovém definičním souboru aplikace souboru s příponou APL  a pomocí tohoto souboru mohou být hromadně importovány do databáze uživatele.

Základní operace s programem je možno provádět prostřednictvím řídicího panelu aplikace.


Export aplikace

Export aplikace jako celku, tj. přenesení všech složek otevřené aplikace z prostředí WinBase602 na disk (disketu) se provádí položkou Aplikace/Exportovat. Položka otevírá submenu, které nabízí dvě varianty exportu: bez dat obsažených v tabulkách aplikace a včetně dat ze všech její tabulek.

Chcete-li exportovat pouze některé komponenty aplikace, musíte před exportem označit ty objekty, které se exportovat nemají - viz Export vybraných komponent aplikace.

Po vybrání varianty exportu musíte zadat cestu a jméno pro definiční soubor exportované aplikace. Tomuto souboru je zvykem dávat příponu APL.

Komponenty aplikace se exportují do stejného adresáře, v němž vznikne definiční soubor aplikace. Každá komponenta bude ve zvláštním souboru. Exportují-li se i data z tabulek, proběhne jejich export ve vnitřním tvaru WinBase602. Pokud ve stejném adresáři již existuje stejně pojmenovaný soubor, přepíše se.

Export definic objektů je velmi rychlý, export dat z rozsáhlých tabulek může chvíli trvat. Definice objektů jsou exportovány v podobě editovatelného textového souboru, soubor exportovaných dat editovat nelze.

Při exportu vznikne ve stejném adresáři také soubor s příponou APX, obsahující informace o druzích jednotlivých objektů (grafická označení na řídicím panelu), o připojených objektech a ODBC zdrojích dat. Tento soubor není v editovatelné podobě, nicméně akceptuje změny případně provedené v APL souboru.


Import aplikace

Import aplikace jako celku, tj. přenesení všech složek aplikace ze souborů do WinBase602  se provádí tlačítkem Importovat z řídicího panelu všech aplikací.

 Aplikace, kterou chcete importovat, musí být na disku nebo na disketě a musí být popsána svým definičním souborem (tento soubor má příponu APL) a případně i souborem APX, obsahujícím hlavně informace i připojených objektech.

Po vybrání položky Importovat vyberete v dialogovém okně definiční soubor importované aplikace a stisknete tlačítko Vybráno. Je-li v databázi již aplikace téhož jména, WinBase602 vás na to upozorní. Budete mít na výběr tři možnosti:

 1) zrušit import

 2) přejmenovat importovanou aplikaci

 3) nahradit komponenty existující aplikace komponentami importovanými

Součástí importu může být i vytvoření ikony aplikace ve Správci programů Windows . Požadavek na vytvoření ikony a jméno skupiny, v níž ikona vznikne, je součástí definičního souboru aplikace. Tento požadavek lze ovlivnit nastavením globálních parametrů WinBase602.

Pokud import aplikace zahrnuje také import jejích dat, může trvat i delší dobu. Po dobu importu jste informováni ve zvláštním okně o importovaném objektu a na informační řádce o počtu přenesených záznamů tabulek.

Po importu je aplikace otevřena. Je-li před importem otevřená nějaká jiná aplikace, uzavře se spolu se všemi svými otevřenými pohledy.

Byl-li před exportem aplikace zatržen v dialogu pro ODBC zdroje dat čtverec Používat tabulky aktivního zdroje dat, budete před vlastním importem dotázáni, chcete-li tabulky aplikace importovat do WinBase602 nebo je vytvořit ve zmíněném zdroji dat - viz Výběr zdroje dat.


Výběr zdroje dat při importu aplikace

Byl-li před exportem aplikace zatržen v dialogu pro ODBC zdroje dat čtverec Používat tabulky aktivního zdroje dat, jste před importem dotázáni, chcete-li tabulky aplikace importovat do WinBase602 běžným způsobem nebo je vytvořit ve zdroji dat, který označíte v seznamu v levé části. Implicitně je vybrán ten zdroj, který jste použili v původní aplikaci. Vyberete-li cizí zdroj dat, tabulky se neobjeví v řídicím panelu.


Definiční soubor aplikace

Hotová databázová aplikace určená k využití na jiných počítačích se zpravidla skládá z řady definic objektů, které je nutno před spuštěním aplikace importovat. Popis importu se řídí definičním souborem aplikace, který vzniká při exportu aplikace.

Definiční soubor má podobu textového souboru, takže jej lze editovat jakýmkoli editorem, který do textu nevkládá formátovací informace (např. editorem NOTEPAD ve Windows).

Každá řádka definičního souboru obsahuje zápis v některém z těchto tvarů:

APPLICATION   jméno aplikace

TABLE     jméno objektu (tabulky)

VIEW      jméno objektu  (pohledu)

CURSOR    jméno objektu (kursoru)

PROGRAM   jméno objektu (programu)

MENU      jméno objektu (menu)

DATA      jméno tabulky

ASCII     jméno tabulky

PICTURE      jméno objektu (pevného obrázku)

ICON      jméno ikony:jméno_skupiny  parametr_pro_WBR602

Řádka začínající APPLICATION smí být uvedena pouze jako první. Zadává jméno importované aplikace. Pokud není uvedena, uživatel bude požádán o zadání jména.

Řádky začínající TABLE, VIEW, CURSOR, MENU ,PROGRAM  a PICTURE importují objekt uvedený v druhém sloupci. Řádky začínající DATA nebo ASCII importují data ve vnitřním tvaru resp. V ASCII tvaru se záhlavím do již existující tabulky uvedené v druhém sloupci (tabulka může být importována na některé z předchozích řádek). Všechny tyto příkazy očekávají, že pro každý importovaný objekt najdou soubor,

- který je umístěn ve stejném adresáři, jako definiční soubor aplikace;

- se jménem tvořeným prvními osmi znaky jména objektu bez diakritiky;

- s příponou dle kategorie objektu: TDF pro tabulku, VWD pro pohled, CRS pro kursor, PGM pro program, MNU pro menu, resp. TDT pro data ve vnitřním tvaru, TXT pro data v ASCII tvaru se záhlavím. CSV formát se zde nevyužívá.

Řádka ICON vytváří ikonu zadaného jména v zadané skupině. Pokud dvojtečka a jméno skupiny chybí, ikona se umístí do skupiny Aplikace602. Tato ikona pak spouští program WBR602.EXE a na jeho příkazové řádce mu předává uvedený parametr (jméno souboru EXX).

Začíná-li řádka s MENU nebo PROGRAM hvězdičkou (*), je objekt na tomto řádku označen jako startovní objekt.

Začíná-li řádka plusem (+), je objekt na tomto řádku objektem spojovacím a jeho popis se nalézá v souboru APX.

V definičním souboru je též možno definovat práva k jednotlivým objektům - popis viz příslušné manuály.


Hromadné operace s daty

WinBase602 umožňuje tyto hromadné operace:

Modifikací dat budeme rozumět operaci, při níž se na jistém počtu záznamů jedné tabulky nebo dotazu provedou zadané operace, které mění hodnoty atributů těchto záznamů. Přitom se s atributy každého vybraného záznamu provedou stejné operace.

Přenosem dat budeme rozumět operaci, při níž se hodnoty atributů a hodnoty vypočtené z atributů z jisté množiny záznamů přidají do určené tabulky nebo novou tabulku vytvoří. Pro každý záznam z přenášené množiny se vezmou tytéž atributy resp. spočtou tytéž výrazy a vyrobí se z nich jeden záznam v cílové tabulce.

Rušením  záznamů rozumíme takovou operaci, při níž se v tabulce nebo dotazu zruší množina záznamů.

Hromadné operace se vykonají provedením SQL příkazů UPDATE, INSERT či DELETE.

Hromadná operace s daty se popíše ve speciálním návrháři.


Návrhář hromadných operací s daty

 Návrhář hromadných operací

Operace s daty se popisuje ve speciálním návrháři, který se otevírá při vytvoření nové operace nebo, pokud byla operace uložena jako program, při modifikaci tohoto programu. Vysvětlení hromadných operací - viz Hromadné operace.

Okno návrháře operací se skládá ze tří částí. V horní části musíte určit, odkud se budou brát data a případně kam se mají přenést. Ve střední části můžete vstupní data ještě omezit dodatečnou podmínkou. Ve spodní části popisujete způsob modifikace či přenosu dat.

Pro všechny hromadné operace je návrhář tentýž. Nemá-li některé pole v návrháři pro konkrétní druh operace význam (např. cílová tabulka při mazání záznamů), pole je neaktivní - nelze do něj zapisovat a jeho popis je šedivý.

Přepínače Výchozí tabulka a Výchozí dotaz slouží k určení zdroje dat. Combo pod přepínači se naplní odpovídajícími objekty a uživatel jeden vybere.

Přepínač Cílová tabulka zpřístupňuje combo, v němž je seznam tabulek aplikace. Složky jsou aktivní pouze při přenosu dat.

Přepínač Vytvořit tabulku se použije pouze při přenosu dat, kdy cílová tabulka ještě neexistuje.

Pole Výběrová podmínka slouží k zápisu dodatečné podmínky pro specifikaci záznamů, kterých se operace má týkat.

Do subpohledu Popis operace zapíšete dvojice hodnot, které popisují přenos či modifikaci dat.

Při přenosu dat se uplatní příkaz Naplnit levý (pravý) sloupec atributy z vybraných tabulek či dotazů. Mají-li obě tabulky stejnou nebo podobnou strukturu, můžete použít příkaz Naplnit sloupce dvojicemi, který oba sloupce naplní atributy z tabulek či dotazů. Automaticky přitom vytvoří na jednom řádku dvojice atributů stejného jména.

Příkaz Smazat sloupce vyčistí oba sloupce od všech atributů či výrazů.

Pro zjednodušení zadávání podmínek přenosu je k dispozici nabídkový panel.

Po zadání popisu operace lze její syntaxi prověřit pomocí položky menu Test syntaxe. Pokud je v zadání chyba, kurzor se přemístí na chybnou řádku. Položka Provést operaci spustí přenos resp. aktualizaci, položka Zrušit akci ruší zadání operace.

Pracovní lišta obsahuje tato tlačítka:

zleva Vystřihnout, Zkopírovat, Vlepit, Uložit jako program, Ukončit, Test syntaxe, Zobrazení SQL příkazu, Provedení operace.

Pokud potřebujete, aby se operace účastnily pouze vybrané záznamy, pak musíte napřed vytvořit dotaz, který právě tyto záznamy obsahuje, a tento dotaz pak použít v operaci, nebo omezit zdroj dodatečně v návrháři.


Nabídkový panel u hromadné operace

Pro snadnější zadání popisu hromadné operace je na obrazovce nabídkový panel se seznamem jmen atributů, který umožňuje snadno vybrat jméno atributu nebo přístup k atributu a vložit jej do popisu operace.

Přepínač v horní části panelu umožňuje volit, které atributy mají být nabízeny. Pokud zvolíte Zdroj dat, pak na panelu budou atributy z tabulky nebo dotazu, odkud se data přenášejí. Pokud zvolíte Cílová tabulka, budou Vám nabídnuty atributy z tabulky, kam se data přenášejí. Při aktualizaci dat je tento přepínač neaktivní.

Pod přepínačem je seznam jmen. V tomto seznamu jsou vždy obsažena buď jména atributů z určité tabulky nebo aliasy (jména) tabulek, které se podílejí na dotazu.

Ze seznamu lze vybírat jména a připojovat je k obsahu editačního pole nad seznamem. Jméno vyberete buď tak, že na něm dvakrát stisknete levé tlačítko myši, anebo jméno označíte a stisknete tlačítko Připojit.

Obsah editačního pole pak můžete přenést do popisu hromadné operace tak, že na tom poli, kam jej chcete přenést, stisknete pravé tlačítko myši. Přenos samotných názvů atributů je rychlejší pomocí Drag & Drop - uchopíte myší název z nabídkového panelu a upustíte ho na příslušném místě formuláře přenosu.

Při sestavování přístupu k atributu lze na nabídkovém panelu použít dalších operací. Kromě výběru a připojení jména atributu můžete:

- Připojit znak # za atribut proměnné velikosti nebo multiatribut. Tím získáte údaj označující délku atributu nebo počet složek multiatributu.

- Připojit index za multiatribut. Tím získáte přístup k jedné určité složce multiatributu. Před připojením indexu vyplníte jeho hodnotu do pole vlevo od tlačítka.

- Vrátit se o krok zpět a odpojit naposled připojenou část pomocí tlačítka Krok zpět .

Pracujete-li s dotazem, pak v prvním kroku vyberete z nabídnutého seznamu alias tabulky, a v dalším jméno atributu z této tabulky.

Pokud vyberete atribut typu ukazatel, nabídnou se Vám atributy z té tabulky, kam ukazatel směřuje. Díky tomu můžete vytvářet poměrně dlouhé přístupové cesty k atributům. Pamatujte však, že čím větší počet ukazatelů použijete, tím větší je riziko, že některý z nich nebude ukazovat na žádný záznam a přiřazení nebude možno provést.

Vlastní provedení hromadné operace - viz Hromadné operace s daty.


Uživatelé a jejich práva

Každý uživatel WinBase602 má přidělené uživatelské jméno a heslo. Při spouštění WinBase602 musí tyto údaje zadat.

Existují dva standardní uživatelé:

  1) správce databáze se jménem DB_ADMIN  (po instalaci WinBase602 má heslo FREE),

  2) anonymní uživatel - jméno i heslo jsou prázdné řetězce, heslo je možné změnit.

Dále existuje standardní skupina EVERYBODY - práva přidělená této skupině získává automaticky každý uživatel.

Každý uživatel má ke každému objektu a k datům ve WinBase602 určitou množinu práv, která určují, co smí provádět a co nesmí. Viz práva.

Uživatelé se vytvářejí, přejmenovávají, ruší a mění se jim hesla pomocí položek v menu Práva - viz Menu "Práva".


Práva k objektům a datům
Práva uživatelů ve WinBase602

Každý uživatel má ke každému objektu a k datům ve WinBase602 určitou množinu práv, která určují, co smí provádět a co nesmí. Ten, kdo vytvoří objekt, má k němu vždy všechna práva. Správce databáze má všechna práva ke všem objektům a nelze mu je odebrat.

 Systém odmítne provést akci, k níž uživatel nemá oprávnění. Tato ochrana se vztahuje na všechny způsoby přístupu k databázi - tedy jak prostřednictvím standardního ovládacího programu, tak i z aplikačních programů vytvořených uživatelem.

Systém řízení databáze umožňuje, aby uživateli byla určitá práva poskytnuta nebo odebrána. Navíc lze stanovit, zda uživatel smí svá práva používat pouze pro sebe, nebo zda je smí poskytovat (a odebírat) i dalším uživatelům.

K nově vytvořenému objektu má veškerá práva pouze ten uživatel, který jej vytvořil, a databázový administrátor. Ostatní uživatelé mají právo tento objekt číst a použít (tj. spustit program, otevřít pohled, dotaz, menu, číst obsah tabulky). Toto právo je uživatelům přiděleno prostřednictvím práv skupiny EVERYBODY - pokud chcete všem uživatelům odebrat právo používat objekt, který jste vytvořili, stačí, když toto právo odeberete skupině EVERYBODY.

Je-li nějaké právo přiděleno skupině EVERYBODY, automaticky jej získávají všichni uživatelé.

Tvůrce a administrátor smí svá práva (všechna nebo část) poskytnout jiným uživatelům.

Je nutné rozlišit přidělování práv k jednotlivým objektům od práv k datům v tabulkách.

Práva se nastavují pomocí menu Práva/Přístup k objektu a Manipulace s daty - viz Menu "Práva".


Práva k objektům
Práva k objektům v databázi

Mezi objekty se počítají definice tabulek, návrhy pohledů, definice menu a dotazů, texty programů. K nim lze přidělovat tato práva:

 1) právo použít objekt (tj. např. otevřít pohled nebo dotaz, spustit program);

 2) právo změnit objekt (tj. např. redefinovat tabulku, změnit návrh pohledu nebo program);

 3) právo poskytnout svá práva dalším uživatelům.

V dialogovém okně nastavujete práva pro každou dvojici OBJEKT - UŽIVATEL zvlášť. V seznamech vyberete daná jména, zatrhnete příslušné označovací čtverce a stisknete tlačítko Nastavit práva. Nastavení práv není nijak signalizováno. Okno opustíte tlačítkem Zavřít.

Jsou-li některé označovací čtverce neaktivní (světle šedé), znamená to, že s příslušnými právy nelze manipulovat. Možné příčiny jsou dvě:

 1) pokoušíte se odebrat právo správci databáze;

 2) pokoušíte se odebrat některému uživateli právo, které je přiděleno skupině EVERYBODY, tedy všem uživatelům databáze. Takové právo musíte napřed odebrat skupině EVERYBODY a až pak jej můžete přidělovat nebo odebírat jednotlivým uživatelům.

Chcete-li nastavit práva na obsah tabulky, viz práva k datům.


Práva k datům
Práva k datům v databázových tabulkách

K datům v určité tabulce lze přidělovat tato práva:

 1) právo číst hodnoty všech nebo některých atributů;

 2) právo měnit hodnoty všech nebo některých atributů;

 3) právo vkládat nové záznamy;

 4) právo rušit záznamy;

 5) právo poskytovat svá práva dalším uživatelům.

Kromě těchto obecných práv vztahujících se k veškerým datům z určité tabulky lze poskytnout práva i selektivně k určitým atributům tabulky. Tato práva se  skládají}, proto uživatel, který má všeobecné právo číst a přepisovat data v tabulce, již nepotřebuje žádná tato selektivní práva. Selektivní přidělování práv má určité omezení. Nezávisle lze poskytnout práva nejvýše k prvním 15 atributům. K ostatním atributům lze přidělit právo buď všem najednou, nebo žádnému.

Po vybrání položky Manipulace s daty se otevře okno se seznamem tabulek a seznamem uživatelů. Označte v seznamech tabulku a uživatele, jejichž vzájemná práva chcete

ovlivnit nebo vidět a stiskněte tlačítko  Definovat práva.

 Na obrazovce se otevře další okno, které v označovacích čtvercích zachycuje současný stav práv vybraného uživatele k vybrané tabulce. Zaškrtnutý čtverec znamená, že uživatel má příslušné právo. V horní části okna jsou globální práva k záznamům resp. ke všem atributům, ve spodní části selektivní práva k atributům.

Jsou-li některé označovací čtverce neaktivní (světle šedé), znamená to, že s příslušnými právy nelze manipulovat (nejčastěji proto, že tato práva má přidělena skupina EVERYBODY. Chcete-li je měnit, odeberte je nejprve skupině EVERYBODY).

Změňte stav označovacích čtverců tak, aby odpovídaly právům, které chcete uživateli poskytnout a stiskněte tlačítko Nastavit práva. Tím se nová práva zaznamenají a okno se zavře. Pokud byste místo toho stiskli tlačítko Zrušit akci, pak se okno zavře také, ale stav práv se nezmění.

 Poté můžete zvolit jiného uživatele, jinou tabulku, nebo ukončit nastavování práv stiskem tlačítka Zavřít.


Přihlášení se uživatele

Každý, kdo chce pracovat s WinBase602, se musí předem přihlásit.

Smyslem přihlášení se je sdělit WinBase602 jméno uživatele a heslo. Na základě toho uživatel získá práva určitým způsobem pracovat s obsahem databáze.

Do horního pole vyplňte své uživatelské jméno, do spodního svoje  heslo. Během psaní hesla se místo každého znaku objeví na obrazovce hvězdička. Nakonec stiskněte tlačítko Login.

Pokud Vám dosud nebylo přiděleno jméno ani heslo, pak ponechte obě pole prázdná a pouze stiskněte Login. Budete mít tolik práv, kolik pro tento případ určil správce databáze.

Mezi jednotlivými poli a tlačítky se přechází stiskem klávesy TAB. Tlačítko v okně můžete stisknout buď tak, že na něm stisknete tlačítko myši, nebo tak, že jej vyberete klávesou TAB (docílíte toho, že okolo nápisu na tlačítku je rámeček) a pak stisknete mezerník.


Ukončení práce s WinBase602

Chcete-li ukončit práci s vývojovým prostředím WinBase602 neboli s programem WB602, pak můžete postupovat kteroukoli z těchto cest:

- z menu Aplikace vyberte položku Konec;

- stiskněte kombinaci kláves ALT F4;

- stiskněte dvakrát tlačítko myši na značce systémového menu hlavního okna;

- ze systémového menu hlavního okna vyberte položku Zavřít.

Pokud byla WinBase602 spuštěna v síti jako klient, tento postup způsobí pouze ukončení práce klienta, zatímco databázový server pracuje dále.

Pokud běží program ve WinBase602, je nutné nejdříve tento program ukončit způsobem, který určil autor.

Nedoporučujeme zavírat WinBase602 vypnutím počítače!


Jména objektů ve WinBase602

Objektem se ve WinBase602 rozumí tabulka, pohled, program, dotaz, menu  - to jsou tzv. kategorie objektů. Každý objekt má svoje jméno. Pro jména objektů platí tato pravidla:

1) Jméno začíná písmenem a obsahuje pouze písmena, číslice a znaky '_' (podtržítka) . Písmena mohou mít diakritiku. Mezi velkými a malými písmeny se nerozlišuje.

2) Jméno smí mít nejvýše 10 znaků.

3) Žádné dva objekty ze stejné kategorie v jedné aplikaci nesmí mít stejná jména. Mimo to nedoporučujeme dávat stejná jména tabulkám a dotazům - mohlo by to znemožnit jejich použití v programu.

Doporučujeme, aby se jména objektů lišila v prvních osmi znacích. Při exportu se z jmen objektů tvoří jména souborů - v případě stejných jmen by druhý vyexportovaný objekt přepsal první.

Stejný tvar mají jména uživatelů a skupin WinBase602, jména obrázků a aplikací.


Stav záznamu v tabulce

Každá databázová tabulka se skládá ze záznamů. Každý záznam je v jednom ze tří stavů:

Platný záznam - záznam, se kterým lze normálním způsobem pracovat.

Zrušený záznam - záznam, který byt dříve platným záznamem a poté byl zrušen. Zrušený záznam za normálních okolností není vidět a nepracuje se s ním, může být ale obnoven a převeden mezi platné záznamy bez ztráty informace, která je v něm obsažena.

Uvolněný záznam - záznam, který byl zrušen a poté uvolněn, díky čemuž nelze z něj zpětně vytvořit platný záznam. Místo, které zabírá uvolněný záznam, bude využito, jakmile se do tabulky vkládá nový záznam - uvolněný záznam se jim přepíše. Pokud se nějaké uvolněné záznamy ocitnou na konci tabulky, tabulka se automaticky zkrátí a tyto záznamy přestanou existovat.

Počty záznamů jednotlivých druhů v určité tabulce můžete zjistit takto:

1) v řídicím panelu zvolíte Tabulky;

2) zvýrazníte příslušnou tabulku;

3) stisknete tlačítko Statistika


Volba souboru

Se soubory, ukládanými na disk pod správu operačního systému, se ve WinBase602 pracuje zejména při importech a exportech všeho druhu. Importovat resp. exportovat lze např. definice objektů, data v různých formátech, texty a jejich části, kompletní aplikace.

Kdykoli je třeba zadat soubor, objeví se na obrazovce standardní (W95) okno pro výběr souboru. Umožňuje jak vybrat existující soubor, tak zadat jméno a umístění pro nový soubor.

Nejprve vyberte správnou složku (adresář) pomocí comba Kde hledat resp. Uložit do na liště nebo klikáním na složky v seznamu pod ním. Když dospějete ke správné složce, při ukládání zadejte jméno souboru do pole Název souboru, při načítání vyberte některý z nabízených souborů v seznamu. Výběr je usnadněn tím, že v poli Typ souboru je vždy přednastaven typ (přípona) souboru.

Při většině operací se souborem je možné provést překódování obsahu - viz Kódování souborů s diakritikou


Kódování souborů s diakritikou

Při většině operací se souborem je možné provést překódování obsahu. Překódování zařídíte tak, že v nabídce označíte kód, v němž je čtený soubor nebo má být vytvářený soubor. Ve WinBase602 a v Windows 3.1 se vnitřně používá kód označený Windows EECS (cp 1250). Zvolíte-li tuto položku, překódování se neprovádí.

Překódování je možné z (do) těchto znakových sad:

KEYBCS2 - kód Kamenických;

KOI8-CS

Latin2 - použitý v Text602;

MS DOS 5.0 cp 852 - standardní Latin2 (od předchozího se liší pouze v několika grafických symbolech);

Windows ANSI - znaková sada používaná ve Windows 3.0;

Windows EECS cp 1250 - standardní znaková sada pro Windows 3.1 East Europe.


Řídicí panel - PROGRAMY

Program ve vnitřním programovacím jazyce je posloupnost příkazů jazyka WinBase602. Základní operace, které je možno s programy provádět, lze vyvolat pomocí tlačítek v pravé části řídicího panelu.

Spustit program -  program, označený ve středním seznamu okna, se spustí.

Vytvořit - vytvoření nového zdrojového programu nebo hromadné operace s daty; po vybrání typu programu  se otevře buď textový editor, v němž program budete psát, nebo návrhář hromadných operací.

Modifikovat - přenesete do prostředí editoru. Tam budete mít možnost upravovat a doplňovat označený program.

Nastavit projekt - uvedení databáze do takového stavu, kdy pohledy mohou využívat proměnné, funkce a procedury označeného programu. Je-li v aplikaci pouze jeden program, projekt se nastavuje automaticky při otevření aplikace.

Zrušit - zrušení označeného programu.

Přejmenovat - je Vám umožněno změnit jméno označeného programu.

Duplikovat - vytvoření přesné kopie označeného programu.

Připojit - možnost připojení programu z jiné aplikace; viz Připojení objektu.

Základní funkce / Další funkce - přepínač základní a rozšířené nabídky funkcí.


 Vytvoření nového programu

Při vytváření nového programu je nutno vybrat druh programu:

- Program ve vnitřním jazyce

- Příkaz SQL pro modifikaci dat

- Příkaz SQL pro přenos dat

- Příkaz SQL pro rušení záznamů

Vyberete-li položku Program ve vnitřním jazyce, dostanete se do prostředí textového editoru a můžete psát program. Ostatní položky Vás přenesou do specializovaného návrháře akčních SQL příkazů pro hromadné operace. Zadání hromadných operací s daty lze uložit jako program a později opakovaně spouštět.


 Přehled tlačítek na pracovní liště

 - otevření jiné aplikace

 - spuštění aplikace nebo spuštění programu

 - vystřihnutí textu nebo objektu do clipboardu

 - zkopírování textu nebo objektu do clipboardu

 - vlepení textu nebo objektu z clipboardu

 - položení dotazu QBE

 - žádost o setřídění záznamů

 - potvrzení dotazu QBE nebo žádosti o setřídění

 - zrušení dotazu nebo setřídění

 - smazání aktuálního záznamu

 - smazání všech záznamů

 - odvázání zrušených záznamů

 - vytištění pohledu

 - zpřístupnění hodnot multiatributu

 - zamykání a aktualizace záznamů v pohledu

 - otevře exportní dialog, vč. odeslání dat elektronickou poštou

 - uložení definice nebo textu do databáze

 - test definice menu, dotazů

 - uzavření návrháře pohledů nebo dotazů nebo ukončení preview

 - otevření pohledu z prostředí jeho návrháře

 - zapnutí/vypnutí pomocné mřížky v návrháři pohledů

 - přidání sloupce v návrháři standardního pohledu;

 - přidat položku v návrháři menu

 - upravovat parametry položky v návrháři menu

 - zrušit položku v návrháři menu

 - otevřít standardní pohled do odpovědi na definovaný dotaz

 - vypsat definici dotazu v SSQL

 - přidat tabulku do návrhu dotazu

 - odebrat tabulku z návrhu dotazu

 - dodefinovat skupiny v návrhu dotazu

 - definovat podmínku na skupiny v návrhu dotazu

 - najít řetězec v textu nebo objekt ve schématu aplikace

 - nahradit řetězec v textu jiným řetězcem

 - najít další výskyt řetězce

 - zformátovat odstavec podle šířky okna

 - spustit hlavní program z includu

 - přeložit program nebo definici objektu

 - přeložit hlavní program z includu

 - uložit definici objektu

 - spustit program pod debuggerem

 - spustit hlavní program pod debuggerem z includu

 - vykonat krok programu

 - vykonat krok programu, příp. skok do vnořené procedury

 - vyskočit z procedury

 - běh po kurzor

 - umístit / odstranit breakpoint (bod zastavení)

 - vyhodnotit či změnit hodnotu výrazu

 - přidat výraz do okna se sledovači

 - zobrazit pohledy v tabulkách schématu

 - zobrazit atributy v tabulkách schématu

 - zobrazit dotazy ve schématu

 - otevřít okno pro správu relace ve schématu aplikace


 Vyhledání objektu obsahujícího řetězec

V aplikacích skládajících se z mnoha desítek komponent lze velice snadno zapomenout, ve kterém pohledu se zobrazuje daný atribut nebo procedura, která tabulka obsahuje daný atribut apod. Ke snadnému vyhledání řetězce ve všech textových definicích objektů otevřené aplikace slouží příkaz Vyhledat z menu Nástroje.

Okno obsahuje tyto ovládací prvky: editační pole Hledaný řetězec, do něhož zapíšete text, který se má vyhledat. Na velikosti písmen nezáleží, pokud nezatrhnete čtverec Rozlišovat velikost písmen. Přepínač Pouze celá slova slouží ke zpřísnění výběru - řetězec se nenajde, pokud je součástí delšího slova.

Stiskem tlačítka OK se zahájí vyhledávání mezi základními typy objektů (tabulky, pohledy, menu, dotazy, programy). Všechny objekty, které hledaný řetězec obsahují, se vypíší do seznamu v pravé části. Dvojitým kliknutím na jméno objektu nebo vybráním objektu a stiskem tlačítka Editovat se na pozadí otevře editor textů s definicí vybraného objektu. Kliknete-li myší na záhlaví okna editoru, kurzor se nastaví na nalezený řetězec.

Mezi objekty k aplikaci pouze připojenými se nevyhledává.


 Schéma aplikace

Nákres schématu obsahuje symboly všech tabulek a dotazů v aplikaci. Každá tabulka či dotaz tvoří jedno okénko typu seznam, které lze  volně přesouvat v rámci okna. Nadpis seznamu tvoří jméno tabulky nebo dotazu. Obsahem seznamu jsou buď pohledy, které vedou do příslušného zdroje dat, anebo jména atributů. Mezi atributy tabulek mohou vést spojovací čáry naznačující relační propojení těchto tabulek.

V rozsáhlém nákresu se můžete pohybovat pomocí posuvníků u pravého a spodního okraje okna nákresu.

V nákresu jsou dotazy od tabulek vizuálně odlišeny nadpisem okna. Tabulky mají nadpis na bílem pozadí, zatímco dotazy na pozadí šedém. Jméno dotazu začíná malým písmenem, jména tabulky písmenem velkým.

Zobrazení seznamů s dotazy lze případně vypnout. Použijte k tomu tlačítko na liště [image].

Seznamy symbolizující tabulky nebo dotazy mohou obsahovat informace dvojího druhu. Obsahem mohou být:

  1) všechny atributy tabulky (resp. dotazu);

  2) všechny pohledy, které vedou do příslušné tabulky (resp. dotazu); pohledy jsou znázorněny svými značkami použitými na řídicím panelu. Pohledy pouze do proměnných se v nákresu neobjeví.

Přepínání mezi zobrazením pohledů a zobrazením atributů se provádí pomocí dvojice tlačítek na pracovní liště okna [image] [image].

Viz Práce se schématem


Prace se schématem
 Práce se schématem

Nákres schématu aplikace lze využít k více účelům:

  1) k orientaci v rozsáhlé aplikaci (pohled se hledá snáze mezi pohledy do téže tabulky než v seznamu všech pohledů);

  2) k provádění veškerých operací s tabulkami, dotazy a pohledy (v tomto účelu se nákres schématu překrývá s řídicím panelem aplikace a s příkazy hlavního menu). Příkazy pro práci s objekty jsou obsaženy v popup menu, které se objeví po stisku PRAVEHO tlačítka myši na seznamu. Funkce těchto příkazů je popsána je shodná s příkazy na řídicím panelu vybrané aplikace.

  3) k vyhledávání objektů: v nákresu schématu lze jednoduše vyhledávat tabulky, dotazy nebo pohledy podle jména. Po stisku tlačítka [image] na liště se otevře dialogové okno s nabídkou druhu a jména objektu.

  4) definování relačních vztahů mezi tabulkami.


 Definování relačních vztahů

Definování relačních vztahů mezi tabulkami je nejdůležitější funkcí nákresu schématu. V aplikacích se sice lze obejít i bez takto vytvořených relací, je nutné se ovšem pak vzdát relačních pohledů.

V rámci definice relace mezi dvěma tabulkami je možno stanovit:

  1) vlastní relační vztah na rovnost dvou atributů;

  2) referenční integritu sledující tento relační vztah;

  3) doplnit chybějící indexy nutné pro referenční integritu.

Vytvoření relačního vztahu je velice jednoduché. V nákresu zapnete zobrazení atributů, uchopíte myší atribut tvořící relační klíč v první tabulce a upustíte ho nad odpovídajícím atributem druhé tabulky. WinBase602 za Vás provádí kontrolu typů atributů a teprve při shodě a vhodnosti typů povolí vytvoření relace.

Po úspěšném provedení předchozího kroku se objeví vstupní okno pro jméno relace. Zadejte nejvýše desetiznakové jméno, různé od všech ostatních relací v této aplikaci. Po zadání jména se vztah objeví v grafické podobě v nákresu. Existují-li v tabulkách indexy k atributům, kterých se propojení týká, budou v nákresu vyznačeny. Znak 1 symbolizuje unikátní (jedinečný) index, znak hvězdička (*) index neunikátní. Je-li definována referenční integrita, je směr od podřízené k nadřízené tabulce určen šipkou.

Symbol každé relace se zvýrazní kliknutím myši na kosočtverec se jménem relace. Pro zvýrazněnou relaci lze tlačítkem na liště otevřít dialogové okno.


 Správa relace

Dialog Správa relace umožňuje

  1) zrušení označené relace (tlačítkem Zrušit relaci);

  2) vytvořit indexy na relační klíče v obou tabulkách, aby bylo možno

  3) definovat referenční integritu;

Aby bylo možno integritu definovat, musí existovat vhodné indexy - v tabulce nadřízené jedinečný index, v tabulce podřízené jakýkoli index. Chybí-li některý index, tlačítky Vytvořit unikátní nebo Vytvořit neunikátní je možno indexy v příslušných tabulkách dobudovat. Existují-li již vhodné indexy, tlačítka jsou neaktivní.

Analýzou existujících indexů WinBase602 pozná, jakým směrem může být referenční integrita uplatněna a nabídne možnost ji definovat.


Vyhledání objektu v nákresu schematu
 Vyhledání objektu v nákresu

Po vybrání druhu a jména hledaného objektu stiskněte tlačítko Vyhledat. Nalezený objekt se umístí blíže ke středu nákresu. Jedná-li se o pohled, bude příslušné jméno v seznamu zvýrazněno.

Není-li zapnuto zobrazení dotazů, nelze dotazy vyhledávat (druh objektu Dotaz je neaktivní).

Při vyhledávání pohledů platí následující pravidla:

  1) jsou-li zobrazeny atributy v seznamech, přepne se návrh předem do zobrazení pohledů;

  2) vede-li hledaný pohled do dotazu a zobrazení dotazů je vypnuto, samo se zapne;

  3) vede-li hledaný pohled pouze do proměnných, budete o tom informováni a vyhledávání tím skončí.


 Přepsání souboru při exportu aplikace

Pokud exporujete aplikaci do adresáře, kde se nacházejí soubory stejného jména jako soubory exportované (např. starší verze aplikace), budete při prvním pokusu o přepsání souboru varováni oknem s těmito možnostmi:

Ano - přepsat nalezený soubor;

Ne - ukončit export;

Přepsat všechny - bez dalšího dotazování přepíše i ostatní shodné soubory.


 Export vybraných komponent aplikace

Některé komponenty aplikace lze označit příznakem, který říká, se při exportu aplikace exportovat nemají. Pro tabulky lze zvlášť a nezávisle zamezit exportu návrhu a/nebo exportu dat. Objekty, které se neexporují, se ani nezapíší do definičního souboru aplikace (přípona APL).

Příznaky ovlivňující export se nastavují na řídicím panelu aplikace pomocí jednoho nebo dvou zaškrtávacích čtverců skrytých pod pravým sloupcem tlačítek. Chcete-li se k nim dostat, musíte roztáhnout výšku řídicího panelu.

Každý nově vytvořený nebo importovaný objekt má nastaven příznak exportu. Stav příznaku se trvale pamatuje.

Spojení na ODBC tabulky se exportuje vždy, nikoli však jejich konkrétní návrh nebo obsah. Pro tabulky připojené z jiných aplikací ve WinBase602 nelze exportovat jejich návrh ani obsah, lze však exportovat spojovací objekt.

Přeložený program se exportuje vždy, i v případě, kdy zabráníte exportu zdrojového programu.


Databázové tabulky

Data, která spravuje WinBase602, jsou obsažena v tzv. tabulkách. Každá tabulka je soustavou záznamů. Například tabulka zaměstnanců obsahuje pro každého zaměstnance jeho záznam, tabulka faktur má v každém záznamu údaje o jedné faktuře.

Každý záznam je tvořen tzv. atributy. Atribut vždy obsahuje jeden údaj. Například záznam o zaměstnanci může mít atributy jméno, příjmení, funkce, plat; záznam o faktuře atributy dodavatel, příjemce, datum, částka atd. Všechny záznamy patřící do stejné tabulky mají stejné atributy a tedy stejnou strukturu - proto hovoříme o struktuře tabulky a o atributech tabulky.

Navrhnout databázovou tabulku znamená v první řadě popsat její atributy. Každý atribut má svoje jméno a typ. Typ atributu určuje, co smí být hodnotou atributu, neboli co lze do atributu zapsat. Viz Přehled typů atributů.

Atribut ve WinBase602 může mít i více než jednu hodnotu - v takovém případě mluvíme o tzv. multiatributu. V závislosti na způsobu definice multiatributu může být maximální počet těchto hodnot omezen nebo může být prakticky neomezený. Viz multiatributy.

Rychlost hledání v tabulce a rychlost třídění záznamů výrazně ovlivňují indexy k tabulce. Vztahy mezi relačními tabulkami pomáhá udržovat referenční integrita.

Tabulky a jejich indexy se definují v tzv. prostředí pro návrh tabulek. Do něj se dostanete takto:

  1) v řídicím panelu vyberete Tabulky;

  2) stisknete tlačítko Vytvořit nebo Modifikovat.


Řídicí panel - TABULKY

Veškerá data spravovaná WinBase602 jsou uložena v tzv. tabulkách. Základní operace, které uživatel může s tabulkami provádět, lze vyvolat pomocí tlačítek v pravé části řídicího panelu.

Otevřít -  otevře na obrazovce okno umožňující vidět data z označené tabulky po záznamech na řádcích. Lze vkládat nová data, přepisovat data, listovat v datech a vyhledávat data. Tento způsob práce s daty je vhodný pouze tehdy, pokud tabulka má jen málo atributů. Pro pohodlnější práci s obsahem tabulky je lepší si navrhnout pohled.

Vytvořit - vytvoření nové tabulky probíhá tak, že se přenesete do prostředí pro návrh tabulek, popíšete strukturu tabulky a případné její indexy a další vlastnosti a nakonec přidělíte tabulce jméno. Tím vznikne nová tabulka. Viz definování tabulek.

Modifikovat - přenesete do prostředí pro návrh tabulek. Tam budete mít možnost změnit strukturu označené tabulky, nebo její indexy a další vlastnosti a případně popsat, jak se ze staré verze tabulky mají přenést data do nové. Viz definování tabulek.

Statistika - pro označenou tabulku se určí počet platných, zrušených a uvolněných záznamů. Viz stav záznamu.

Zrušit - zrušení označené databázové tabulky. Zrušením tabulky jsou nevratně zničena všechna data, která v tabulce byla obsažena.

Přejmenovat - je Vám umožněno změnit jméno označené tabulky.

Ukázat SQL text - možnost prohlédnout si textovou definici tabulky.

Duplikovat - vytvoření přesné kopie označené tabulky. Data se nepřenesou.

Připojit - možnost připojení tabulky z jiné aplikace; viz Připojení objektu.

Základní funkce / Další funkce - přepínač základní a rozšířené nabídky funkcí.


Návrh a změna definice databázové tabulky

K vytváření a modifikování databázových tabulek slouží prostředí návrháře tabulek.

Návrhář tabulek se skládá ze standardního pohledu pro zápis atributů v levé části a sady upřesňujících a informačních polí v části pravé.

Pohled pro atributy má dva sloupce: Jméno atributu, kam se zapisuje nanejvýš desetiznakové jméno atributu a Typ atributu, kde se volí z nabídkového comba typ atributu.

Všechna pole v pravé části se týkají vždy jednoho atributu vybraného v levé části. Shora dolů jsou to tato pole:

Needitovatelné pole Stav atributu nabývá těchto hodnot:

Nový - stav po přidání nového atributu do návrhu. Upozorňuje, že atribut ještě není součástí tabulky.

Nezměněný - stav možný pouze při modifikaci tabulky. Informuje, že s atributem nebyla provedena dosud žádná změna.

Změněný - uživatel provedl změnu v názvu nebo typu atributu. Do pole Hodnota je vhodné zapsat, jaká data se mají do změněného atributu přenést.

Zrušený - uživatel tento atribut zrušil. Řádek s atributem je šedý, neaktivní.

Pole Hodnota se použije pouze při modifikaci tabulky. Zapíše se do něj výraz, popisující, co se má přenést do pozměněného atributu. Většinu standardních konverzí návrhář rozpozná a zapíše do pole sám. U přenosů složitějších je nutné vysvětlení uživatele.

U nezměněných atributů je v poli Hodnota šedý nápis <Nezměněna>.

Třetí editační combo se objevuje jen za určitých podmínek:

- je-li aktuální atribut typ STRING, CSSTRING nebo CSISTRING, má pole název Délka řetězce a zapisuje se do něj maximální počet znaků, které se budou moci vložit do atributu.

- je-li aktuální atribut typ POINTER či BIPTR, vybere se v combu Cílová tabulka tabulka, do níž ukazatel směřuje.

Má-li atribut z levé stany sloužit jako multiatribut, zaškrtněte označovací čtverec Multiatribut. Odstraněním zaškrtnutí změníte multiatribut na běžný atribut.

Pomocí polí Rezervace a Lze překročit? určíte, pro kolik hodnot multiatributu bude pevně rezervováno místo, a zda bude možné tento počet překročit. Políčka jsou aktivní pouze tehdy, je-li zaškrtnut čtverec Multiatribut.

Pole Smí mít prázdnou hodnotu? se odznačí tehdy, chcete-li zakázat možnost vložit záznam, který by neměl v tomto atributu nic zapsáno. Je rozumné zkombinovat tuto vlastnost s implicitní hodnotou.

Do pole Implicitní hodnota se zadává hodnota atributu, která se má objevit v každém novém záznamu. Hodnota musí být téhož typu jako atribut. Není povoleno používat výrazy ani standardní funkce s výjimkou funkce Today pro typ datum a funkce Now pro typ čas.

Pro řetězcové atributy existuje speciální implicitní hodnota. Použijete-li hodnotu USER (bez uvozovek), do atributu se zapíše vždy jméno uživatele, který záznam vložil.

Pro typ Integer existuje speciální hodnota UNIQUE, která zajistí, že do tohoto atributu se při vložení záznamu zapíše jedinečná hodnota. Tento mechanismus funguje pouze tehdy, pokud do tohoto atributu nebudete nikdy nic explicitně zapisovat. V opačném případě se může stát, že systém zapíše do nového záznamu stejnou hodnotu, jakou jste ručně zapsali do jiného záznamu.

Ke každému atributu můžete vytvořit index. Z nabídky comba označeného Index si vyberte jeden z typů:

Unikátní index - hodnoty v indexu se nesmí opakovat;

Primární klíč - speciální unikátní index, může být pouze jeden v tabulce;

Neunikátní index - hodnoty se smějí libovolně opakovat.

Podmínkou v poli Integritní omezení můžete určit rozmezí hodnot, které se smějí do atributu vložit.

K dispozici je podrobnější nápověda k těmto tématům:

 Zadávání atributů a jejich parametrů

 Přehled typů atributů

 Multiatributy

 Sledovací atributy

 Indexy k tabulce

 Integritní omezení atributů

 Referenční integrita tabulek

 O databázových tabulkách.


Zadávání atributů

Každý atribut tabulky je popsán několika údaji:

 1) jménem, viz jména atributů,

 2) typem, viz typy atributů,

 3) délkou tj. počtem znaků, jde-li o atribut typu řetězec znaků (typy String, CSString a CSIString),

 4) označením, jedná-li se o multiatribut),

 5) jménem cílové tabulky, jde-li o atribut typu ukazatel (Pointer nebo Biptr).

Na pořadí atributů v definici záleží pouze v případě sledovacích atributů. Atribut zrušíte z definice tabulky tak, že z menu vyberete položku Editace / Zrušit řádek. Atribut vložíte mezi dva existující atributy tak, na tom atributu, před nějž chcete vkládat, vyberete z menu položku Editace / Vložit řádek.

Pro ukončení definice tabulky vyberte z menu položku Hotovo.


Indexy k databázovým tabulkám

Index je datová struktura, která podstatně urychluje:

- hledání záznamů v tabulce;

- uspořádávání záznamů v tabulce;

- operace JOIN nad tabulkami (relační propojení tabulek);

- použití subpohledu do relačně přivázaných záznamů.

Každý index zachycuje uspořádání všech záznamů v tabulce podle obecného výrazu, který obsahuje jeden nebo více atributů. Je možno definovat index jako jedinečný, tzn., že nebude povoleno zapsat jeho duplicitní hodnotu.

Použití indexů je zcela automatické. Uživatel databáze ani programátor aplikace nemají kontrolu nad tím, který index se ve kterém okamžiku použije. Pokládají pouze databázi dotazy, a ta při hledání odpovědi se pokusí vhodně využít ty indexy, které bude mít k dispozici.

Indexy se definují dvojím způsobem:

  1) Jednoduchý index, jehož klíč tvoří jeden samotný atribut, můžete vytvořit již při definování tohoto atributu. V pravé dolní části návrháře vyberete z comba nazvaného Index odpovídající druh indexu.

  2) Složitější indexy se popisují ve zvláštním okně, které v prostředí pro návrh tabulek otevřete tak, že z menu Vlastnosti vyberete položku Indexy. Pokud tuto akci provedete podruhé, okno s indexy se zavře.

 Viz Definování složitějších indexů.


Popis indexů k tabulce

Složitější indexy se popisují ve zvláštním okně, které v prostředí pro návrh tabulek otevřete tak, že z menu Vlastnosti vyberete položku Indexy. Pokud tuto akci provedete podruhé, okno s indexy se zavře.

Pro přidání nového indexu stiskněte klávesu INS. Objeví se dialogové okno, které Vám pomůže s jeho sestavením. V seznamu označte atribut, který má být v indexu. Podle směru třídění stiskněte jedno z dvou tlačítek Přidat atribut. Má-li být v indexu více atributů, opakujte tuto akci. Stiskem tlačítka Hotovo přenesete atributy do indexového okna, kde můžete definici indexu (je-li potřeba) dále editovat.

Přidáte-li nové indexy k tabulce nebo změníte-li existující indexy, pak počítejte při opouštění tabulky s časovou prodlevou nutnou na vybudování indexů.

Viz také Indexy k databázovým tabulkám.


Popis integritních omezení k tabulce

Integritní omezení slouží k stanovení určitého rozmezí hodnot, kterých může některý atribut nabývat.

Integritní omezení v návrhu tabulky se definuje dvojím způsobem:

  1) jednoduchá omezení pro jeden konkrétní atribut můžete vytvořit již při definování tohoto atributu. V pravé dolní části návrháře zapíšete do pole Integritní omezení podmínku pro daný atribut. Příklad: chcete-li, aby nešlo do pole Osobní číslo zapsat číslo záporné, zadejte podmínku

OS_CISLO > 0

  2) složitější integritní omezení se popisují ve zvláštním okně, které v prostředí pro návrh tabulek otevřete tak, že z menu Vlastnosti vyberete položku Integritní omezení. Pokud tuto akci provedete podruhé, okno s omezeními se zavře.

Pro přidání dalšího integritního omezení, stiskněte klávesu INS. Do seznamu se přidá další řádek. Vyplníte nepovinné Jméno omezení a Podmínku. Pro podmínku můžete použít operátory, názvy atributů a standardní funkce jazyka.

Příklad: datum zaplacení nesmí být menší než datum vystavení faktury

DAT_ZAPL > DAT_VYST


Pravidla referenční integrity tabulek

Referenční integrita je interní nástroj, který pomáhá udržovat pořádek a konzistenci v relačně propojených tabulkách.

Integrita dat se vždy definuje pro dvě tabulky:

Tabulka, v níž definujete referenční integritu, se nazývá podřízená tabulka. Některý její atribut má mít hodnotu z druhé nadřízené tabulky (číselníku). Při správném definování referenční integrity bude program za Vás hlídat dvě pravidla:

  1) Přidáváte-li záznam do podřízené tabulky, hodnotě atributu definovaného v referenční integritě musí odpovídat hodnota jiného atributu v nadřízené tabulce.

  2) Smazání atributu v nadřízené tabulce bude povoleno jen tehdy, není-li v podřízené tabulce ani jeden záznam se stejnou hodnotou atributu, pro nějž je definována referenční integrita.

viz Definování referenční integrity


Definování referenční integrity tabulek

Referenční integrita se vždy definuje v tabulce podřízené. V návrháři podřízené tabulky vyberte z menu Vlastnosti položku Referenční integrita. Otevře se okno s již definovanými integritami v této tabulce.

Pro definování další referenční integrity stiskněte klávesu INS. Objeví se dialogové okno pro nové pravidlo referenční integrity.

V seznamu Nadřízená tabulka na levé straně označíte tabulku. V combu Vzdálený atribut se objeví seznam unikátních indexů z nadřízené tabulky - z nich vyberete ten index, který přísluší atributu, jehož hodnoty tvoří číselník pro místní atribut. Není-li unikátní index dosud vytvořen, musíte opustit návrhář podřízené tabulky a změnit návrh tabulky nadřízené. Teprve potom lze referenční integritu definovat.

 v combu Místní atribut vyberete ten atribut, jehož hodnoty referenční integrita hlídá. Pokud není dosud v indexu, opusťte návrh referenční integrity, vytvořte index a znovu definujte referenční integritu.

Po stisku tlačítka OK se definice nové referenční integrity přenese do původního okna.

Vysvětlení pravidel referenční integrity - viz Referenční integrita


Jména atributů tabulek

Každý atribut tabulky má svoje jméno neboli svůj identifikátor. Vždy, když chcete s tímto atributem pracovat, odkážete na něj jeho jménem - například pokud jej uvádíte v popisu složky pohledu nebo pokud s ním manipulujete v programu..

Pro jména atributů platí tato omezující pravidla:

  1) jméno má nejvýše 10 znaků.

  2) jméno začíná písmenem a smí obsahovat pouze písmena, číslice a znak '_' (podtržítko).

  3) v tabulce nesmí být dva stejně pojmenované atributy.

  4) jméno nesmí být stejné jako klíčové slovo nebo předdefinovaný identifikátor vnitřního programovacího jazyka. Pokud byste takové jméno v definici tabulky použili, WinBase602 Vás na ně upozorní.

V různých tabulkách mohou být stejně pojmenované atributy, atributy mohou mít stejná jména jako tabulky, pohledy, programy atd. Nadměrné používání stejných jmen však snižuje přehlednost systému.

Jinou podstatnou vlastností každého atributu je jeho typ.


Typy atributů databázových tabulek

Každý atribut má svůj pevně daný typ. Typ určuje, jaká jaké hodnoty smí atribut mít. Zatímco hodnoty atributů se zpravidla často mění, typ zůstává stejný a k jeho změně je nutná reorganizace tabulky.

Typ každého atributu se zadává při definování tabulky. Ve WinBase602 jsou k dispozici tyto typy:

Boolean - typ pro údaje typu ANO - NE. Má pouze dvě hodnoty, a to TRUE a FALSE. TRUE lze alternativně zadat jako ANO (při vstupu dat do databáze stačí A), FALSE lze zadat jako NE (při vstupu dat stačí N).

Char - hodnotou atributu tohoto typu je jeden znak (jakýkoli). Pokud potřebujete více znaků, použijte některý z typů String.

Short - hodnotou smí být celé číslo z intervalu od -32767 do 32767.

Integer - celé číslo z intervalu -2147483647 až 2147483647.

Money - peněžní částka v rozsahu přibližně od -1.4 biliónu do 1.4 biliónu

Real - reálné číslo (kladně nebo záporné) v rozsahu absolutních hodnot 1.7e-308 až 1.7e308 nebo nula.

String - řetězec znaků (jisté předem omezené délky); tyto řetězce se uspořádávají lexikograficky podle interního kódu svých znaků. Nadefinovanou délku řetězce není možné překročit - označovací čtverec Překročení se týká počtu hodnot, nikoliv délky řetězce!

CSString - řetězec znaků (jisté předem omezené délky); tyto řetězce se uspořádávají lexikograficky podle pořadí písmen v češtině a slovenštině, velká písmena jsou před malými.

CSIString - řetězec znaků (jisté předem omezené délky); tyto řetězce se uspořádávají lexikograficky podle pořadí písmen v češtině a slovenštině, mezi velkými a malými písmeny se nerozlišuje.

Date - Datum, tedy den, měsíc a rok.

Time - Čas v rozsahu jednoho dne, tedy hodiny, minuty, sekundy a tisíciny sekundy.

Pointer - Ukazatel do jisté určené tabulky, ukazuje na nějaký její záznam.

Biptr - Obousměrný ukazatel do jisté určené tabulky (v níž musí být atribut typu obousměrný ukazatel směřující zpět). Oba ukazatele se pak mění synchronně, čímž vzniká obousměrné propojení.

Text - Libovolný text předem nedefinované délky.

Raster - Rastrový obrázek ve formátu BMP, PCX, TIFF, GIF nebo WPG.

OLE - Nedefinovaný typ proměnné velikosti. Nejčastější použití je pro data vytvořená technologií OLE.

Autorizace - Sledovací atribut obsahující jméno autora poslední změny hodnoty jistého sledovaného atributu.

Datumovka - Sledovací atribut obsahující datum a čas poslední změny jistého sledovaného atributu.

Historie - Sledovací atribut obsahující minulé hodnoty jistého sledovaného atributu příp. i jména autorů a časy jednotlivých provedených změn.

Atributy typu Text, Raster, OLE a Historie jsou proměnné délky. To znamená, že množství místa, které v databázi zabírají, se bude dynamicky měnit v závislosti na jejich hodnotě.


Sledovací atributy

Kromě normálních atributů, jejichž hodnoty mění uživatel databáze, mohou být součástí databázové tabulky také tzv. sledovací atributy. Hodnoty sledovacích atributů mění pouze WinBase602, uživatel do nich nemůže zasáhnout. Účelem sledovacích atributů je sledovat změny hodnot určitého sledovaného atributu.

Každý sledovací atribut sleduje ten normální atribut, za nimž je uveden v definici tabulky. Pokaždé, když uživatel (nebo jeho program) změní hodnotu sledovaného atributu, WinBase602 automaticky změní hodnotu sledovacího atributu.

Sledovací atribut Autorizace obsahuje uživatelské jméno autora poslední změny hodnoty sledovaného atributu.

Sledovací atribut Datumovka obsahuje datum a čas poslední změny hodnoty sledovaného atributu.

Sledovací atribut Historie obsahuje minulé hodnoty sledovaného atributu. Se změnami sledovaného atributu se historie neustále zvětšuje. Správce databáze může historii občas zmenšit - nechat zapomenout její určenou část.

Pokud je v definici tabulky mezi sledovaným atributem a sledovacím atributem typu Historie atribut typu Autorizace nebo Datumovka, pak se do historie zahrnou i autoři a časy změn.

Sledovat nelze atributy proměnné velikosti, atributy typu ukazatel a multiatributy.

Pokud definice tabulky začíná sledovacími atributy Autorizace nebo Datumovka, pak se do nich budou zaznamenávat změny všech atributů. Sledovací atribut typu Historie nesmí být uveden před všemi normálními atributy.


Multiatributy

Atribut databázové tabulky může být definován jako multiatribut. Multiatribut může mít v jednom okamžiku více než jednu hodnotu, čímž se liší od normálního atributu, který má v každém okamžiku právě jednu hodnotu.

Při definování multiatributu musíte označit čtverec Multiatribut. Poté se zpřistupní dvě pole:

  1) Do pole Počet hodnot zadáte, pro kolik hodnot multiatributu se má v každém záznamu v tabulce rezervovat místo.

  2) Čtvercem Překročení vyznačíte, zda zadaný počet hodnot bude smět být překročen. Pokud ano, pak počet hodnot není v praxi omezen (je omezen počtem 65535).

Pokud povolíte překročení pevně rezervovaného počtu hodnot, pak ve sloupci počet hodnot smí být i 0.

Multiatributy se nedají použít v indexech.

Sledovací atributy nemohou být multiatributy.

Hodnoty multiatributu mohou být v pohledech obsaženy v samostatných složkách nebo mohou být zpřístupněny všechny společně v jednom okně sloužícím tomuto účelu.


Import dat do WinBase602

Importem se rozumí přenos dat obsažených v souboru do WinBase602. WinBase602 je schopna číst soubory v těchto formátech:

  1) interní formát WinBase602 (používá se hlavně pro archivační účely a pro přenos dat mezi instalacemi WinBase602);

  2) ASCII formáty;

  3) formát dBase IV;

  4) formát FoxPro 2.

ASCII formátem se rozumí textový zápis dat, v němž

- buď jsou hodnoty jednotlivých atributů ve sloupcích pod sebou, záznamy jsou na řádkách. Na první řádce jsou uvedena jména atributů, do nichž se obsah sloupce bude zapisovat. Přesnější popis viz manuály.

- nebo je to formát CSV (Comma Separated Values) - hodnoty oddělené čárkami.

Import ve formátu dBase IV nebo FoxPro 2 lze použít také pro soubory vyrobené staršími (či novějšími) verzemi těchto produktů nebo Clipperem, pokud se nepřenášejí MEMO-pole.

Pro import dat postupujte takto:

  1) na řídicím panelu  vyberte Tabulky;

  2) vyberte z menu Nástroje / Import dat do tabulky;

  3) v dialogovém okně nastavte přepínač na příslušný formát. Jde-li o import ve vnitřním nebo ASCII formátu, pak tabulka, do níž se importuje, již musí existovat. Import dat do tabulky, k níž jsou definovány indexy, lze ovlivnit pomocí označovacího čtverce Indexy měnit až po importu. Je-li čtverec zatržen, u tabulky, do níž se importují data, se zruší všechny indexy a po importu se znovu vybudují. Tím se podstatně zrychlí importy větších objemů dat. Naopak při importu malého množství dat do značně zaplněné tabulky je výhodnější indexy aktualizovat průběžně - to zajistí nezatržený označovací čtverec;

  4) stiskem tlačítka Importovat se otevře selektor souborů, ve kterém určíte, ze kterého souboru se mají data přenést. Nastavená extenze souboru odpovídá Vámi zvolenému druhu importu;

  5) při importu dat z jiného prostředí můžete nastavit, v jakém kódování jsou původní data uložena;

Při importu ve formátech dBase IV nebo FoxPro2 vznikne nová tabulka. Pomocí selektoru souborů určíte nejprve DBF-soubor, ze kterého se mají data importovat, a pak jméno pro novou databázovou tabulku, která se vytvoří a naplní daty.

Aplikaci lze importovat jako jeden celek - viz Import aplikace


Export dat z WinBase602

Exportuje se vždy celý obsah tabulky nebo dotazu. Export vyvoláte takto:

  1) v řídicím panelu  vyberete Tabulky nebo Dotazy a v prostředním seznamu zvýrazníte objekt, který chcete exportovat;

  2) vyberete z menu Nástroje/Export dat z tabulky (z dotazu);

  3) v dialogovém okně určíte, zda exportovat do souboru nebo odeslat poštou;

  4) při exportu dat do souboru označíte přepínačem příslušný formát;

  5) při exportu dat do souboru můžete nastavit, do jakého kódování se mají původní data konvertovat.

  6) stiskem tlačítka Exportovat se otevře:

- okno pro výběr souborů, v němž určíte adresář a jméno souboru, který vznikne exportem; nastavená přípona (extenze) souboru odpovídá Vámi zvolenému druhu exportu; nebo

- dialog pro odeslání zásilky poštou Mail602.

Ve formátu dBase IV nebo FoxPro 2 se neexportují atributy typu ukazatel (Pointer a Biptr), Time a Nospec, ani multiatributy a sledovací atributy. Při exportu tabulky obsahující atributy typu Text nebo Raster  vznikne navíc také MEMO-soubor se stejným jménem.

V ASCII formátech se neexportují atributy typu ukazatel (Pointer a Biptr), atributy typů proměnné velikosti, ani multiatributy a sledovací atributy.

ASCII formát může být buď CSV (Comma Separated Values) pro přenos do tabulkových kalkulátorů nebo sloupcový formát se jménem atributu v záhlaví každého sloupce.

Aplikaci lze exportovat jako jeden celek - viz Export aplikace


Popis přenosu dat při hromadných operacích

Na popis přenosu se lze dívat jako na sérii přiřazovacích příkazů, které se mají provést pro každý záznam. Do popisu lze zadat operace, které se mají při přenosu provést.

	Bool	Char	Short	Int	Mon	Real	String	Date	Time	Ptr	Text
Boolean	OK	1	1	1	1	1	1	1	1	--	--
Char	2	OK	3	3	--	--	OK	--	--	--	--
Short	2	4	OK	OK	OK	OK	5	6	7	OK	--
Integer	2	4	OK	OK	OK	OK	5	6	7	OK	--
Money	2	--	OK	OK	OK	OK	8	--	--	--	--
Real	2	--	9	9	OK	OK	10	--	--	--	--
String	2	OK	11	11	12	13	OK	14	15	--	OK
Date	2	--	16	16	16	16	17	OK	--	--	--
Time	2	--	18	18	18	18	19	--	OK	--	--
Ptr	--	--	OK	OK	--	--	--	--	--	OK	--
Text	--	--	--	--	--	--	OK	--	--	--	OK

Tabulka popisuje možnosti konverze typu uvedeného v záhlaví řádku na typy uvedené v záhlavích sloupců. Obsah tabulky není symetrický.

Typ  Ptr je v této tabulce zkratkou za typy  Pointer a  Biptr, tedy za jednosměrné a obousměrné ukazatele. Údaje o typu  String se v plné míře vztahují i na typy  CSString a  CSIString, navíc hodnoty těchto tří typů se dají navzájem přiřazovat bez konverzí.

Značky v tabulce znamenají toto:

  OK - lze přímo přiřadit, konverze není potřebná nebo proběhne automaticky;

pomlčka - nelze jednoduše konvertovat;

  1 - použijte podmíněný výraz ve tvaru:

  	atribut_typu_Boolean ? výraz1 : výraz2

  2 - použijte relaci ve tvaru:

atribut = hodnota

  častý případ převodu znaků A a N na logickou hodnotu:

Ord(znak) = Ord(A) (=65)

  3  - konvertujte funkcí Ord;

  4  - konvertujte funkcí Chr;

  5  - konvertujte funkcí Int2str;

  6  - využijte funkci Make_date;

  7  - využijte funkcí Make_time;

  8  - konvertujte funkcí Money2str;

  9  - konvertujte funkcí Trunc nebo Round;

  10 - konvertujte funkcí Real2Str;

  11 - konvertujte funkcí Str2Int;

  12 - konvertujte funkcí Str2Money;

  13 - konvertujte funkcí Str2Real;

  14 - konvertujte funkcí Str2Date;

  15 - konvertujte funkcí Str2Time;

  16 - využijte funkce Day, Month, Year;

  17 - konvertujte funkcí Date2str;

  18 - využijte funkce Hours, Minutes, Seconds, Sec1000;

  19 - konvertujte funkcí Time2str.

Některé složitější konverze se dají provádět i ve dvou krocích, např. textový zápis roku v atributu ROK typu  String převedete na datum prvního dne v roku voláním dvou funkcí:

Make_date(1, 1, Str2int(ROK) )

Přiřazovat lze i atributy proměnné délky a celé multiatributy najednou. Dokonce lze přiřadit i dva multiatributy proměnné velikosti.

Při přenosu záznamů ze staré tabulky do nové se nepřenášejí zrušené záznamy. Všechny záznamy, které byly před přenosem zrušené, budou po něm uvolněné. Nezrušené záznamy si přitom podrží svá čísla, a tak nebudou zpřetrhány ukazatelové vazby mezi tabulkami.


Práce s pohledem na obrazovce

Pro práci s pohledem na obrazovce jsou podstatné tyto informace:

- složky pohledu;

- ovládací tlačítka;

- systémové menu okna;

- význam a funkce kláves;

- vkládání záznamů;

Většinu akcí souvisejících s pohledem lze vyvolat buď stiskem klávesy, nebo myší, anebo ze systémového menu pohledu.

Okno pohledu má tyto hlavní částí:

Rám okna, který dovoluje měnit rozměry a polohu okna způsobem běžným v Windows. Na rámu jsou v pravém horním rohu tlačítka pro roztažení a ikonizaci pohledu, v levém horním rohu tlačítko systémového menu. Systémové menu můžete otevřít stiskem tohoto tlačítka myší nebo kombinací kláves Alt mezera a pak šipka doprava.

Táhlo u pravého rámu okna, které dovoluje se pohybovat mezi záznamy v pohledu nahoru a dolů. Pokud stisknete tlačítko myši pod nebo nad táhlem, posunete se o jednu stránku dopředu nebo dozadu. Pokud stisknete tlačítko myši na šipce pod nebo nad táhlem, posunete se o jeden záznam dopředu nebo dozadu. Táhlo není v těch pohledech, které vedou do proměnných projektu. POZOR: v některých pohledech poloha táhla nevyjadřuje poměr počtu záznamů před a za běžnou pozicí, protože WinBase602 dosud neví, kolik záznamů bude pohled obsahovat. Správnou polohu táhla je  množno nastavit při návrhu pohledu.

Řada ovládacích tlačítek, z nichž některá mohou být neviditelná. Tato tlačítka se objevují pouze tehdy, pokud to požaduje návrh pohledu, proto v některých pohledech nebudou.

Hlava okna, specifikovanou v návrhu pohledu.

Jeden nebo více záznamů, podle návrhu pohledu. V záznamech (případně i v hlavě okna) vidíte složky pohledu.  Stiskem myši na tlačítkách, označovacích čtvercích a na některých hodnotových složkách vyvoláte akci zadanou návrhem pohledu.


Složky  pohledu

Pohled obsahuje jeden nebo více záznamů (jsou pod sebou), každý záznam se skládá z jistého počtu složek (jsou libovolně rozmístěny v záznamu). Složky jsou různých druhů. Pro vstup a editaci dat se dají použít tyto složky:

Editační složky jsou orámovány a pokud některou z nich vyberete, objeví se v ní svislý kurzor.  Obsah složky můžete přepsat, přitom zadávání obsahu ukončíte stiskem klávesy Enter nebo přechodem na jinou složku.

Označovací čtverec (angl. Check-box) je čtvereček s nápisem vpravo. Čtverec může být zaškrtnut nebo nezaškrtnut případně může mít nedefinovanou hodnotu. Čtverec zaškrtnete nebo zaškrtnutí odstraníte tak, že na něm stisknete tlačítko myši nebo mezerník, je-li čtverec předem vybrán. Standardní použití je pro zápis do atributu typu Boolean. Vybraný čtverec poznáte tak, že má kolem svého nápisu tečkovaný rámeček.

Přepínač (angl. Radio-button) - dvoustavové přepínače kruhového tvaru, vyplněné nebo nevyplněné. Přepínají se myší nebo pouhým nastavením se na ně pomocí klávesy TAB.

Seznam (angl. List-box) slouží k zpřístupnění hodnoty multiatributu (z programu též hodnoty pole). Listuje se v něm pomocí šipek. Je-li počet hodnot větší než velikost seznamu, objeví se v jeho pravé části svislé táhlo a grafické šipky pro ovládání myší.

Combo pole (angl. Combo-box) slouží k výběru z několika předem známých hodnot. V této složce se listuje pomocí šipek dolů a nahoru. Combo pole se rozevře pomocí kombinace ALT+šipka dolů nebo kliknutím myši.

Tlačítka se dají stisknout buď myší, nebo mezerníkem, pokud je tlačítko předtím vybráno. Stisk tlačítka způsobí určitou akci definovanou v návrhu. Vybrané tlačítko poznáte tak, že má kolem svého nápisu tečkovaný rámeček.

Neformátované texty se editují editorem, který zavoláte stiskem tlačítka myši na textu (nebo stiskem klávesy Enter, je-li text vybrán).

Formátované texty (RTF) se editují přímo v pohledu - viz Formátovaný text.

Obrázky se dají načítat a zapisovat pomocí menu, které se otevře, pokud na obrázku stisknete pravé tlačítko myši (nebo klávesu Enter, je-li obrázek vybrán).

OLE složky - pravé tlačítko myši nebo Enter zpřístupní menu pro práci s touto složkou. Viz OLE - popis menu

Subpohled - pohled vložený do pohledu, slouží buď k synchronizovanému prohlížení dvou pohledů do stejných dat nebo k prohlížení (editování) relačně přivázaných záznamů k záznamu v superpohledu. Viz Subpohled

Kromě složek, pomocí nichž se přímo zapisuje do databáze, lze definovat ještě další pomocné složky. Jsou to:

Nápis - složka obsahující pouze určitý text;

Hodnotová složka - slouží pouze ke znázornění vypočtené hodnoty, needitovatelného zobrazení atributu, pro sledovací atributy apod;

Rám, čára - pro nakreslení obdélníkového rámu nebo úsečky v pohledu;

Krokovač - dvě malé šipky - nahoru a dolů; slouží k usnadnění editace číselné hodnoty v editační složce, s níž je svázána - viz Krokovač.

Posuvník - graficky vyjadřuje celočíselnou hodnotu pomocí polohy jezdce a posouváním jezdce umožňuje tuto hodnotu editovat - viz Posuvník.

Indikátor postupu - grafické znázorňování postupu práce pomocí čtverečků vyplňujících zleva doprava vodorovný pruh; používá se při běhu programu - viz Indikátor postupu.

Nová složka se do návrhu pohledu vloží buď z menu Složka (viz Vkládání složek) nebo myší z nabídkového panelu.


Tlačítka na ovládací liště

Pracovní lišta při otevřeném pohledu má tyto podoby:

Základní sestava tlačítek je následující:

V režimu kladení dotazu se tlačítka změní na

Zobrazení výsledku dotazu

Je-li otevřen vázací pohled, na liště přibude ještě jedno tlačítko:

 Význam tlačítek zleva doprava je:

- vystřihnout text do clipboardu;

- zkopírovat text do clipboardu;

- vlepit text z clipboardu;

- skok na první záznam pohledu;

- skok o stránku dozadu;

- skok o jeden záznam dozadu;

- skok o jeden záznam dopředu;

- skok o stránku dopředu;

- skok na poslední záznam pohledu;

- položení dotazu v jazyce QBE;

- zadání uspořádání záznamů;

- konec zadávání dotazu nebo uspořádání nebo zrušení dotazu a uspořádání;

- zrušení běžného záznamu v pohledu;

- zrušení všech záznamů v pohledu;

- tisk obsahu pohledu;

- otevření okna se složkami multiatributu;

- otevření okna pro zamykání a aktualizaci pohledu.

- otevření okna pro export záznamů z pohledu vč. odeslání elektronickou poštou.

Při otevřeném vázacím pohledu přibude

- odvázání zrušených záznamů ve vázacím pohledu.

Existují však klávesy a položky systémového menu, které mají stejný význam jako tato tlačítka.


Význam a funkce kláves v pohledu

Během práce s pohledem můžete použít těchto kláves:

šipky nahoru a dolů- přechody mezi složkami záznamu nebo mezi záznamy, listování ve složce typu seznam nebo combo;

Home - skok na první složku v záznamu;

End - skok na poslední složku záznamu;

Ctrl+Home - skok na první záznam v pohledu;

Ctrl+End - skok na poslední záznam v pohledu (může to být prázdný tzv. fiktivní záznam);

Page Up - skok o stránku zpět;

Page Down - skok o stránku dopředu;

Ctrl+Page Up - skok o jeden záznam zpět;

Ctrl+Page Down - skok o jeden záznam dopředu;

Ins - vložení nového záznamu do tabulky;

Tab - přechod na následující složku záznamu;

Shift+Tab - přechod na předcházející složku záznamu;

F2 - ve standardním pohledu přepnutí do editačního režimu;

mezera - stisk vybraného tlačítka v pohledu nebo označení čtverce či přepínače;

Alt+šipka dolů - rozevření combo pole

Del - vymazání hodnoty multiatributu ze složky typu seznam

Ctrl+F4 - uzavření okna s pohledem;

Ctrl+F3 - zadání uspořádání záznamů;

Ctrl+F2 - zadání dotazu v jazyce QBE;

Shift+F2 - zrušení zadaného dotazu nebo uspořádání;

F3 - konec zadávání dotazu nebo uspořádání;

F5 - otevření okna pro zamykání a aktualizaci záznamů

F7 - otevření okna se složkami multiatributu;

Shift+F7 - zrušení všech záznamů v pohledu;

F8 - přivázání nebo odvázání záznamu.

Shift+F8 - zrušení vybraného záznamu v pohledu;

F6 - přechod mezi superpohledem a subpohledem

Ctrl+F6 - přechod k dalšímu otevřenému pohledu;

(Některé tyto klávesy jsou uvedeny i u položek systémového menu pohledu.)


Systémové menu pohledu

Během práce s pohledem vyvoláte jeho systémové menu pomocí tlačítka v levém horním rohu rámu nebo stiskem kláves Alt mezera a šipka doprava. Systémové menu nabízí tyto akce:

Normální, poloha, velikost, minimální, maximální - standardní složky systémového menu se stejným významem, jako v každém jiném okně pod Windows;

Zavřít - zavření okna pohledu;

Další pohled - přechod do dalšího pohledu otevřeného na obrazovce;

QBE dotaz - zadání dotazu v jazyce QBE;

Uspořádání - zadání uspořádání záznamů;

Zrušit dotaz - zrušení zadaného dotazu a uspořádání;

Dotaz / pořadí zadáno - konec zadávání dotazu nebo uspořádání;

Tisk - tisk záznamů pohledu;

Multiatribut - otevření okna se složkami multiatributu;

Zamykání - otevření okna pro zamykání a aktualizaci záznamů

Přivázat / odvázat - přivázání nebo odvázání záznamu;

Odvázat zrušené - odvázání zrušených záznamů ve vázacím pohledu.

V návrhu pohledu lze stanovit, aby systémové menu pohledu obsahovalo pouze standardní položky systémového menu okna Windows.


Pohled na hodnotu multiatributu
Pohled na hodnoty multiatributu

V okně vidíte jednotlivé hodnoty multiatributu. Hodnoty jsou v levém sloupci očíslovány svými indexy.

Pokud jste toto okno otevřeli nad editační složkou pohledu, pak tyto hodnoty můžete editovat.

Maximální přípustný počet hodnot multiatributu je dán definicí tabulky. Je-li v definici tohoto atributu označen čtverec  Lze překročit?, pak počet hodnot může být až 65534.


Historie hodnoty atributu - Autor

Okno obsahuje historii hodnot sledovaného atributu. Starší hodnoty jsou výše, novější níže. Vždy první hodnota je prázdná - na počátku byla hodnota NONE.

Vybraná složka obsahuje uživatelské jméno toho, kdo hodnotu uvedenou na této řádce zapsal do databáze.


Historie hodnoty atributu - Datum a čas zápisu

Okno obsahuje historii hodnot sledovaného atributu. Starší hodnoty jsou výše, novější níže.

Vybraná složka obsahuje datum a čas, kdy byla do databáze zapsána hodnota uvedená na této řádce.


Historie hodnoty atributu

Okno obsahuje historii hodnot sledovaného atributu. Starší hodnoty jsou výše, novější níže.

Vybraná položka obsahuje hodnotu, která kdysi byla hodnotou sledovaného atributu.

Správce databáze má možnost historické hodnoty omezit na určitý počet nebo k určitému datu - viz Omezení historie.


Vázání záznamů
Přivazování záznamů

Mezi záznamy v databázových tabulkách mohou existovat vazby vytvořené pomocí ukazatelů. Atribut typu ukazatel v jednom záznamu může ukazovat na jiný záznam ve stejné nebo v jiné tabulce. Multiatribut typu ukazatel může ukazovat na množinu záznamů.

Vytváření těchto vazeb nazýváme přivazováním záznamů , jejich rušení  odvazováním záznamů. Přivazování a odvazování není ničím jiným než zapisováním vhodných hodnot do atributů typu ukazatel.

Vytváření  ukazatelových vazeb neboli editace hodnot ukazatelů se děje v pohledech prostřednictvím tzv. vázacích pohledů.


Vázací pohled

Vázací pohled je uživatelem navržený pohled do tabulky nebo dotazu, který obsahuje atribut typu ukazatel.  Od normálního pohledu se liší pouze tlačítkem v levé části návrhu. Tlačítko má tři podoby:

 - přivázaný záznam;

 - odvázaný (nepřivázaný záznam);

 - tlačítko ve fiktivním záznamu nebo při kladení dotazu.

Vázací pohled se otevírá většinou tlačítkem, které dá pokyn k provedení akce Otevření vázacího pohledu.

Při automatickém návrhu pohledu se pro atribut typu ukazatel vygeneruje složka tlačítko s akcí Otevření vázacího pohledu. Do parametrů stačí doplnit jméno vázacího pohledu nebo ponechat nastavený standardní pohled.

Jsou-li ukazatele nebo obousměrné ukazatele multiatributy, pak ve vázacím pohledu lze současně vybrat víc záznamů (zapnout více než jeden přepínač). Na informační lince je v tomto případě) znázorněn údaj o počtu přivázaných záznamů. Chcete-li později zobrazit pouze přivázané záznamy, máte možnost položit speciální dotaz.

Vázací pohled uzavřete stejně jako každý jiný pohled. Dokud je vázací pohled otevřen, nelze pracovat s obsahem pohledu, z něhož byl vázací pohled otevřen.


Okno pro zadání dotazu QBE
Zadání dotazu QBE

Po stisku ovládacího tlačítka [image] nebo kláves Ctrl+F2 nebo po vybrání položky QBE dotaz ze systémového menu se otevře okno pro zadání dotazu QBE. V něm můžete zadat podmínky na hodnoty složek záznamů, které určí, zda se záznam má v pohledu objevit.

Podmínky vyplníte do těch složek, kterých se týkají. V dotazu je nyní 10 záznamů, v každém z nich může být skupina podmínek. K tomu, aby záznam byl vybrán, musí splnit všechny podmínky v alespoň jedné ze skupin, tzn. podmínky v jednom záznamu jsou spojeny logickou spojkou AND a skupiny podmínek v různých záznamech jsou spojeny spojkou OR.

Podmínkou je buď hodnota (a pak se obsah složky musí této hodnotě rovnat) nebo relační znaménko a hodnota (pak obsah složky musí být v příslušné relaci s uvedenou hodnotou). Lze použít tato relační znaménka:

=	rovno

<	menší než

<=	menší nebo rovno

>	větší než

>=	větší nebo rovno

<>	nerovno

.=	má prefix (pouze pro řetězce znaků)

.=.	obsahuje řetězec (pouze pro řetězce znaků)

 ~	podobá se řetězci (pouze pro řetězce znaků)

Chcete-li položit více podmínek jedné složce platících současně (např. PLAT > 5000 a PLAT < 7000), oddělíte podmínky čárkou.

Po zadání dotazu stiskněte ovládací tlačítko [image] nebo klávesu F3, anebo ze systémového menu pohledu vyberte položku Dotaz / pořadí zadáno.

Pokud chcete dotaz zrušit, pak stiskněte ovládací tlačítko [image] nebo klávesu Shift+F2, anebo ze systémového menu pohledu vyberte položku Zrušit dotaz.

Pokud do složky typu Text zapíšete jakýkoli řetězec, budou se hledat texty, které tento řetězec obsahují. Znaménko .=.  v takovém případě nepoužívejte.

Při zadávání podmínek je možno také zatrhávat označovací čtverce, přepínače nebo si vybírat z combo-polí.

Pomocí složky seznam v pohledu a dotazovacího jazyka QBE lze položit dotaz na to, zda multiatribut obsahuje určitou hodnotu. Při pokládání dotazu lze totiž do složky seznam přímo psát. Napíšete-li do ní nějakou hodnotu, pak se vyberou ty záznamy, které zadanou hodnotu v multiatributu obsahují. Hodnotu zapište do složky bez jakéhokoli relačního znaménka. Tento zápis odpovídá použití operátoru .. (např. v dotazu).

Ve vázacím pohledu je možno také vybrat pouze přivázané záznamy k multiukazateli - viz pohled na přivázané záznamy.

Téma vybírání záznamů obsahují též stránka Dotazová pole .


Pohled na přivázané záznamy

V otevřeném vázacím pohledu, máte možnost zobrazit pouze ty záznamy, které jsou přivázané.

Chcete-li toho dosáhnout, pak při otevřeném vázacím pohledu postupujte takto:

  1) přejděte do zadávání dotazu QBE (stiskněte ovládací tlačítko [image] nebo klávesu Ctrl+F2, anebo ze systémového menu pohledu vyberte položku QBE Dotaz).

  2) stiskněte myší v kterémkoli záznamu přivazovací tlačítko [image].

Vyplníte-li do dotazového okna nějaké další omezující podmínky, budou se ignorovat.


Okno pro zadání pořadí záznamů v pohledu
Zadání uspořádání záznamů v pohledu

Po stisku ovládacího tlačítka [image] nebo klávesy Ctrl+F3 nebo po vybrání položky Uspořádání ze systémového menu se otevře okno pro zadání uspořádání záznamů.V něm můžete zadat, jak mají být uspořádány záznamy v pohledu. Do té složky pohledu, podle níž se mají záznamy uspořádat, zapište 1 resp. 1 DESC podle toho, zda požadujete vzestupné nebo sestupné uspořádání.

Pokud se záznamy, které v takto vyznačené složce mají stejnou hodnotu, mají uspořádat podle hodnoty jiné složky, pak do ní zapište 2 nebo 2 DESC. Podobně můžete postupovat dále až po 8.

Po vyznačení uspořádání stiskněte ovládací tlačítko [image] nebo klávesu F3, anebo ze systémového menu pohledu vyberte položku Dotaz / pořadí zadáno.

Pokud chcete uspořádání zrušit, pak stiskněte ovládací tlačítko [image] nebo klávesu Shift+F2, anebo ze systémového menu pohledu vyberte položku Zrušit dotaz.

Pro setřídění standardního pohledu podle jednoho atributu stačí dvojitě kliknout na záhlaví tohoto sloupce. Zrušit uspořádání provedete opět tlačítkem [image] jako v předchozím případě.


Vkládání záznamů

Vložit nový záznam do pohledu lze dvěma způsoby:

  1) pomocí klávesy Insert;

  2) prostřednictvím tzv. fiktivního záznamu.

Obě tyto možnosti lze blokovat nezávisle na sobě pomocí dvou samostatných čtverců v dialogovém okně obrazovkových parametrů pohledu.

Přidání záznamu do pohledu vždy odpovídá přidání záznamu do jedné tabulky. Nové záznamy nelze proto přidávat do pohledů, které vznikly relačním spojením z více tabulek. Nevadí ovšem, pokud v pohledu jsou složky získané pomocí ukazatelů z jiných tabulek.


Složková a záznamová synchronizace

Pokud při práci s pohledem přepisujete data, která jsou v něm obsažena, pak se tyto změny promítají do obsahu databáze. Existují dvě možnosti, kdy k tomuto promítnutí může dojít:

  a) tehdy, když ukončíte editaci složky pohledu, např. stiskem klávesy Enter nebo přechodem na jinou složku (tzv. složková synchronizace);

  b) tehdy, když opustíte záznam, v němž jste provedli změny (tzv. záznamová synchronizace).

Starší verze WinBase602 umožňovaly pouze složkovou synchronizaci. Výhodou záznamové synchronizace je, že změny prováděné v záznamu se chápou jako jeden celek, a lze je buď všechny odvolat anebo na nich provést integritní testy, a pak je potvrdit. Pokud změněný záznam nelze zaznamenat do databáze (například kvůli zámku jiného klienta), lze všechny změny provedené ve složkách záznamu hromadně odvolat stiskem kombinace kláves Shift+Esc. Jinak nelze záznam opustit.


Vložení záznamu pomocí klávesu Insert
Vkládání záznamů pomocí klávesy Insert

Chování pohledu při vložení záznamu stiskem klávesy Insert se řídí následujícími zásadami.

A) klávesu Insert je stisknuta v době, kdy je uživatel na normálním záznamu:

  1) pokud jsou ve vybraném záznamu přepsány některé hodnoty, změny jsou zapsány do databáze;

  2) pokud v pohledu není fiktivní záznam, vytvoří se dočasný fiktivní záznam;

  3) do fiktivního záznamu se zapíší implicitní hodnoty definované v návrhu pohledu;

  4) pokud jde o subpohled relačně propojený rovností hodnot dvou atributů, pak se do spojovacího atributu ve fiktivním záznamu zapíše hodnota ze spojovacího atributu v nadřazeném pohledu;

  5) fiktivní záznam se stane vybraným záznamem a je možno pokračovat v zapisování hodnot do něj.

Při záznamové synchronizaci se nový záznam se vloží do databáze až tehdy, když se fiktivní záznam pokusíte opustit nebo zavřete pohled. To má několik důsledku:

  a) je-li v pohledu nastaven příznak Potvrzovat změny v záznamu, pak lze vložení záznamu odvolat a do databáze se nezapíše nic;

  b) integritní omezení definovaná v pohledu se po stisku klávesy Insert prověří pouze pro ty složky pohledu, do nichž se zapisuje implicitní hodnota, ostatní integritní omezení se prověří až při opouštění záznamu;

  c) integritní omezení definovaná v tabulce se prověří až při opouštění záznamu;

  d) vložení záznamu do relačně propojeného subpohledu způsobí jeho automatické provázání s nadřazeným záznamem.

Pokud pohled nemá mít fiktivní záznam, pak po vložení záznamu do databáze se nový fiktivní záznam neobjeví.

B) klávesa Insert je stisknuta na fiktivním záznamu:

  1) pokud do fiktivního záznamu dosud nebylo nic zapsáno, pak se naplní implicitními hodnotami, ale do databáze se zatím nezapisuje (reakce je stejná, jako na normálních záznamech);

  2) pokud do fiktivního záznamu již bylo cokoli zapsáno, pak se celý jeho obsah zapíše do databáze a fiktivní záznam se tím stane normálním záznamem.

C) klávesu Insert je stisknuta v pohledu určeném pouze pro vstup dat:

  1) jeho obsah vloží do databáze a pohled se naplní implicitními hodnotami sloužícími pro zadání dalšího záznamu.

Stisk klávesy Insert  vyvolá chybové hlášení na obrazovce v těch pohledech, které vedou do dotazu vzniklého relačním spojením dvou nebo více tabulek. Do takových pohledů se záznamy  vkládat nedají. Vkládání pomocí klávesy Insert lze zakázat v parametrech pohledu.


Fiktivní záznam

Pohled, který otevřete na obrazovce, obsahuje za všemi svými záznamy jeden fiktivní prázdný záznam. Výjimkou jsou ty pohledy, které mají v parametrech pohledu definováno, aby fiktivní záznam nezobrazovaly. Ve standardním pohledu je fiktivní záznam označen přeškrtnutým záhlavím řádku.

Zapisujete-li hodnoty do fiktivního záznamu, pak se tento záznam vloží do databáze:

  a) při složkové synchronizaci po zapsání první složky;

  b) při záznamové synchronizaci až po opuštění fiktivního záznamu.

K fiktivnímu záznamu nelze přivazovat žádné záznamy. Proto pokud všechny složky záznamu v pohledu jsou typu ukazatel, nový záznam tímto způsobem vložit nelze.

Fiktivní záznam není automaticky v těch pohledech, které vedou do dotazu vzniklého relačním spojením dvou nebo více tabulek. Do takových pohledů se záznamy vkládat nedají.


Pohledy ve WinBase602

Pohled je jedním ze základních pojmů WinBase602. Je to nástroj, který dovoluje specifikovat, jak má vypadat okno na obrazovce, jehož prostřednictvím budete vkládat, upravovat a vyhledávat údaje, nebo jak má vypadat sestava, kterou vytvoříte na tiskárně.

Činnost, během níž vysvětlujete WinBase602 svoje představy o pohledu, nazýváme návrh pohledu. Provádí se v prostředí pro návrh pohledů, do něhož se dostanete takto:

  1)  z řídicího panelu aplikace  vyberete Pohledy

  2)   stisknete tlačítko Vytvořit nebo Modifikovat.

Data, která se v pohledu objeví, pocházejí

  a) z určené tabulky,

  b) z dotazu, který z jedné nebo více tabulek vybere vhodné záznamy resp. kombinace záznamů.

Kromě nich lze v pohledu manipulovat s obsahem proměnných definovaných v programu, který pohled využívá - jde o tzv. proměnné projektu. Pohled může pracovat pouze s proměnnými projektu - pak nevyužívá žádnou tabulku ani dotaz a má jediný záznam.

Viz řídicí panel - pohledy a zahájení návrhu pohledu.


Řídicí panel - POHLEDY

Pohled je nástroj, který nám umožňuje vidět, zpracovávat resp. tisknout určená data v určené formě: pohled si vytvoříte pokaždé, když chcete naplnit svoji představu o tom, JAK mají data na obrazovce nebo na papíře vypadat.

Základní operace, které uživatel může s pohledy provádět, lze vyvolat pomocí tlačítek v pravé části řídicího panelu.

Otevřít -  otevře na obrazovce navržený pohled vybraný ze středního seznamu. Lze vkládat nová data, přepisovat je,  listovat a vyhledávat data. Je to základní způsob práce s daty ve WinBase602. Stisk tlačítka lze nahradit dvojím kliknutím na jménu pohledu. Viz Pohledy - ovládání

Vytvořit - založí nový pohled a otevře prostředí pro výběr návrhu pohledů. Viz zahájení návrhu pohledu.

Modifikovat - zavolá prostředí pro návrh pohledů a umožní změnit definici existujícího pohledu.

Tisknout - vytiskne označený pohled jako sestavu.

Zrušit - rušení označeného pohledu. Zrušením pohledu nejsou nijak dotčena data v tabulkách, do nichž pohled směřoval. Ekvivalentem je stisk klávesy Delete.

Přejmenovat - je Vám umožněno změnit jméno označeného pohledu.

Duplikovat - vytvoření přesné kopie označeného pohledu.

Připojit - možnost připojení pohledu z jiné aplikace; viz Připojení objektu.

Základní funkce / Další funkce - přepínač základní a rozšířené nabídky funkcí.

Viz Pohledy ve WinBase.


Sestava

Pohled, použitý pro výstup na tiskárnu, se nazývá sestava.

Tisk sestavy je možný

  a) z otevřeného pohledu: ovládacím tlačítkem  [image]  nebo položkou Tisk ze systémového menu;

  b) z řídicího panelu: označte pohled a stiskněte tlačítko Vytisknout.

Na jaké tiskárně se sestava vytiskne - viz Volba tiskárny.

Výstupní sestava obsahuje vše, co je obsaženo v pohledu s výjimkou tlačítek. Okolo editačních složek a složek combo nebude v sestavě rám. Složka combo navíc nebude obsahovat tlačítko k otevření nabídky.

 v sestavě se na rozdíl od pohledu na obrazovce objeví všechny oblasti, tedy také záhlaví a paty všech skupin, záhlaví a pata celé sestavy a paty stránek.

V sestavě se vypočtou a zobrazí i hodnoty agregovaných funkcí:

   SUM(atribut) - součet hodnot atributu

   AVG(atribut) - průměrná hodnota atribut

   MAX(atribut) - maximální hodnota z atributu

   MIN(atribut) - minimální hodnota z atributu

   COUNT - počet záznamů,

které se v pohledech na obrazovce nedají použít.

Množina záznamů, z nichž se agregovaná funkce počítá, je dána místem jejího výskytu v sestavě. Použije-li se v hlavě nebo patě skupiny, vztahuje se k záznamům patřícím do skupiny. V hlavě a patě sestavy nebo stránky mají agregované funkce tentýž význam, jako by byly použity v datové oblasti - vztahují se na celou sestavu. Potřebujete-li počítat agregované hodnoty pro stránky, vytvořte skupiny obsahující vždy tolik záznamů, kolik jich je na jedné stránce, a zadejte, že na hranici této skupiny se má přecházet na novou stránku. Agregovanou funkci pak umístěte do patičky (hlavičky) této skupiny.

Příklad: je li na stránce 7 záznamů, vytvořte skupinu takto:

@@ div 7.

Takto definovanou skupinu není možno kombinovat s jinými skupinami.


Volba tiskárny

Tisk z WinBase602 směřuje vždy na předem vybranou tiskárnu. Tiskárnu lze vybrat pomocí hlavního menu WinBase602, submenu   Nástroje / Parametry , položka  Tiskárna : Volba.

Pro volbu tiskárny se otevře standardní dialogové okno Windows. Volit lze pouze mezi těmi tiskárnami, které byly instalovány ve Windows.

Pokud nezvolíte žádnou tiskárnu, tiskne se na té, které je zvolena jako implicitní tiskárna Windows.

Volba tiskárny se zaznamená do souboru WINBASE.INI, a proto platí až do provedení nové volby.


Výstup sestavy na obrazovku - Preview

Výstup sestavy na obrazovku (tzv. preview ) - na rozdíl od otevření pohledu na obrazovce - má za úkol poskytnout co nejpřesnější informaci o formátu sestavy na tiskárně. Proto bude jeho obsah rozlámán do řádek i do stránek stejně, jako na tiskárně.

Vzhledem k rozdílům v rozlišovací schopnosti obrazovky a tiskárny musí přitom docházet ke zmenšování nebo zvětšování použitých fontů. Ne všechny fonty se však dají plynule zvětšovat a zmenšovat.

V preview nemusí být při určitých zmenšeních sestavy zarovnané k pravému okraji. Při tisku na tiskárně však toto zarovnání bude v pořádku.

Zkušební tisk na obrazovce se objeví ve speciálním okně s vlastním menu a lištou s tlačítky.

Lišta nabízí nejjednodušší způsob ovládání. Ovládací prvky mají jasný význam:

- zavření okna zkušebního tisku

- skok na začátek sestavy (na stránku č.1)

- přechod na předchozí stránku

- přechod na následující stránku

- skok na konec sestavy (na poslední stránku)

- vytištění sestavy od strany 1

- combo sloužící ke změně velikosti obrázku stránky

- nápověda

Přechod po stránkách

Příkazy menu Přechod i odpovídající tlačítka na liště slouží k posunu v rámci tiskové sestavy. Odpovídající klávesové povely jsou  PgDn a PgUp pro posun po stránkách, resp. Ctrl + Home a Ctrl + End pro skok na začátek či konec.

Velikost stránky sestavy

Stránka sestavy se při otevření preview vždy vykreslí ve zvětšení 100%. Je-li správně nastaven parametr Velikost obrazu v globálních parametrech WinBase602, bude při tisku na stránku formátu A4 na obrazovce rámeček okolo stránky 21 cm široký.

Preview umožňuje velikost stránky měnit. Combo na liště obsahuje některé přednastavené velikosti, pokud nestačí, je možno zapsat velikost zvětšení v procentech (zmenšení) vlastní. Combo obsahuje také dvě speciální položky Šířka stránky a Celá stránka. Zvětšení na šířku stránky je takové, při němž se horizontální rozměr stránky přizpůsobí velikosti okna. Zobrazení celé stránky zmenší rozměr stránky tak, aby se objevila v okně celá.

Pro rychlé zvětšování a zmenšování stránky v preview slouží také klávesy + a - na numerické části klávesnice.


 Výstup sestavy do souboru

Výstup sestavy do textového souboru je jedním ze způsobů, jak z WinBase602 exportovat data. Použije se např. V situaci, kdy není nutný grafický tisk nebo kdy výstup vyžaduje  dodatečnou editaci. Upozorňujeme, že smysluplný výstup do souboru poskytnou pouze speciálně navržené pohledy, rozhodně nemá smysl se pokoušet posílat do souboru každý pohled.

Při výstupu do souboru je ztracena informace o fontech použitých v sestavě, o barvě písma a pozadí, a částečně se změní prostorové rozvržení údajů. Proto není rozumné posílat sestavu do souboru, později se pokoušet tento soubor tisknout a očekávat podobný výsledek jako od přímého výstupu na tiskárnu.

Již při návrhu sestavy, která bude používána pro výstup do souboru, je vhodné použít pro tuto příležitost předdefinovaný rastr.

Pokud sestavu vytisknete do již existujícího souboru, můžete původní obsah přepsat nebo nový text přidat na konec.

POZOR !  Není dovoleno, aby se výstupní soubor jmenoval CON, PRN nebo jiným standardním jménem zařízení MS DOSu.


Tisk sestavy

Tisku sestavy předchází vyplnění parametrů ve speciálním dialogovém okně. Tyto parametry jsou popsány níže.

První a poslední tištěný záznam

Není nutno tisknout vždy všechny záznamy, je možno specifikovat interval pořadových čísel záznamů, které mají být zahrnuty do sestavy. Záznamy se číslují od nuly. Pokud tedy chcete vytisknout pouze prvních sto záznamů, zadejte interval od 0 do 99.

První a poslední tištěná stránka

Sestava může mít více stránek a není nutno je tisknout všechny najednou. Lze zadat, od které do které stránky se má tisknout. Stránky se číslují od jedné.

Výše uvedené parametry se uplatní při Tisku zvolených záznamů. Na Tisk všech záznamů nemají vliv.

Okraje stránky

Před tiskem lze zadat, že veškerý výstup na tiskárnu má být posunut o stanovený počet milimetrů vpravo. Tím se zvětší levý okraj stránky. Podobně je možno sestavu posunout dolů a zvětšit horní okraj. Zatímco spodní okraj je důležitý pro správné rozlámání do stránek (např. pro tisk A4 na šířku), pravý okraj se v této verzi nenastavuje.

Počet kopií - zadejte číslicí počet kopií sestavy. Při preview se počet kopií neuplatní.

Snášet kopie - je-li čtverec zatržen, budou se kopie tisknout  po stránkách, tj. nejprve N kusů první stránky (N je počet kopií), potom N kusů druhé stránky atd. Není-li zatržen, vytiskne se N krát celá sestava najednou. První způsob je značně rychlejší, umožňují ho však pouze některé tiskárny (hlavně laserové). Pokud tiskárna snášení kopií neumožňuje, je označovací čtverec neaktivní.

Výstup směřuje:

  a) na tiskárnu - tlačítkem Volba můžete změnit nastavenou tiskárnu  - viz Průběh tisku

  b) na obrazovku - viz Preview

  c) do souboru - tlačítkem Nabídnout otevřete okno pro výběr souborů - viz Výstup do souboru ;

Pokud soubor s tímto jménem již existuje, můžete ho přepsat nebo obsah přidat na konec.


Průběh tištění sestavy

Tisk pod operačním systémem Windows probíhá ve třech krocích: nejprve WinBase602 generuje popis stránek a předává je Windows. Pak Windows připravují popis tisku pro specifickou tiskárnu. Nakonec se data posílají tiskárně a tisknou se. První z těchto kroků je nejrychlejší, druhý je velmi pomalý, rychlost třetího záleží na použité tiskárně - na síťové tiskárně může trvat i minuty.

Během první a druhé fáze je na obrazovce informační okno, které poskytuje údaje o počtu zpracovaných stránek a dovoluje uživateli zrušit tisk. Vlastní posílání dat tiskárně řídí složka Windows nazvaná Správce tisku. Na něj se obracejte, pokud potřebujete pozastavit tisk, nebo jej obnovit např. po vložení dalšího papíru do tiskárny.


Zamykání záznamů z pohledu

Stiskem ovládacího tlačítka  [image] nebo klávesy F5 vyvoláte dialogové okno, které Vám dovoluje umístit nebo odstranit zámky na záznamy v pohledu. Zamknutý záznam nemůže jiný uživatel přepsat.

K dispozici jsou tyto možnosti:

  Nezamčeno nic - odstraníte zámky, které jste dříve umístili;

  Zamčen běžný záznam pro čtení - zámek se umisťuje na aktuální záznam, kde je kurzor; při přechodu na jiný záznam se starý záznam  odemkne a nový záznam zamkne;

  Zamčeny všechny záznamy pro čtení - zámek je umístěn na tabulku nebo na všechny tabulky, z nichž vzniknul dotaz

Při umísťování zámků mějte na paměti potřeby ostatních uživatelů v síti. Zamčení všech záznamů v pohledu používejte jen v dobře odůvodněných případech.

Stejné dialogové okno obsahuje také dvě tlačítka, která Vám umožní synchronizovat obsah pohledu se změnami, prováděnými ostatními uživateli v síti. Tlačítkem  Aktualizovat obsah načtete do všech záznamů v pohledu aktuální hodnoty. Tlačítkem  Aktualizovat záznamy navíc ověříte, zda některé záznamy nebyly zrušeny nebo zda mezi ně nebyly vloženy záznamy nové - po stisku tohoto tlačítka se na obrazovce mohou objevit i jiné záznamy, nejen nové hodnoty v původních záznamech. Toto tlačítko má význam používat pouze v pohledech vedoucích do tabulky, nikoliv do dotazu! Pohled vedoucí do dotazu lze aktualizovat pouze zavřením a novým otevřením dotazu!

Obecně o zámcích - Zámky a zamykání


Zámky a zamykání

Zamykání záznamů nebo objektů slouží k omezení práce jiných uživatelů se stejným záznamem či objektem

Existují dva druhy zámků:

  Zámek pro ČTENÍ (angl. read lock) - umístíte-li na záznam tento zámek, pak žádný jiný uživatel nemůže přepsat žádný atribut v tomto záznamu.

  Zámek pro PŘEPIS (angl. write lock) - umístíte-li na záznam tento zámek, pak žádný jiný uživatel nemůže nejen přepisovat hodnoty atributů, ale ani Vám  zabránit v přepisu hodnot atributů tohoto záznamu.

Na stejném záznamu smí současně být libovolný počet zámků pro čtení od různých uživatelů, anebo jediný zámek pro přepis a žádný zámek (pro čtení ani pro přepis) žádného jiného uživatele. Pokud se pokusíte umístit zámek, který tomuto pravidlu odporuje, nepodaří se Vám to. Z prostředí pohledu je možno umisťovat pouze zámky pro čtení - viz Zamykání záznamů z pohledu. Zámky pro přepis umisťuje příslušná funkce programovacího jazyka - např. Write_lock_record.

WinBase602 automaticky umístí zámky v těchto případech:

  1) pokud spustíte editor na atribut typu Text, bude záznam zamčen zámkem pro přepis;

  2) pokud otevřete vázací pohled, bude výchozí záznam zamčen zámkem pro přepis;

  3) pokud kopírujete obrázek nebo OLE objekt, bude záznam po dobu této operace zamčen zámkem pro přepis, pokud se kopíruje do databáze, nebo zámkem pro čtení, pokud se kopíruje z ní.

Nelze-li požadovaný zámek umístit, akce se neprovede. Například se nepodaří spustit textový editor na text, který již edituje někdo jiný.

Po dokončení akce je zámek automaticky odstraněn.


OLE

Pod zkratkou OLE (Object Linking and Embedding) se skrývá mechanismus, který dovoluje různým programům pracujícím pod Windows sdílet svá data.

Programu, který pracuje s hodnotou OLE složky, se říká  OLE server. Program, který pouze zobrazuje OLE objekt, nazýváme OLE kontejner. WinBase602 může sloužit jako OLE server - do cizího prostředí (např. textprocesoru) lze umístit objekt typu Pohled WinBase602 a v něm aktivovat plnohodnotné prostředí pohledu WinBase602, stejně dobře jako OLE kontejner - do atributu typu OLE umisťovat data ze zcela odlišných typů programů (např. formátované texty, videoklipy, vektorové obrázky aj). Takovéto hodnoty se ukládají do atributů typu OLE dvojím způsobem:

  1) jako  vložené (angl. embedded) objekty, které jsou uložené v databázi (databáze zde slouží jako prostor pro uložení, veškeré operace provádí jiný program);

  2) jako  připojené (angl. linked) objekty, které jsou uloženy v samostatném souboru a v databázi je jen odkaz na něj.


WinBase602 jako OLE server

Chcete-li umístit do cizího dokumentu pohled WinBase602, můžete postupovat několika cestami:

  1) v cizím OLE kontejneru zvolte položku menu Edit Insert Object (nebo ekvivalent) a z nabídky OLE serverů zvolte Pohled WinBase602. Poté projdete dialogem pro výběr pohledu; pokud budete vytvářet nový pohled, otevře se návrhář pohledů, použijete-li jako vzor pohled již vytvořený, vloží se ihned do kontejneru.

  2a) Na řídicím panelu aplikace označte daný pohled (tabulku) a stiskněte Ctrl+C. Tím se objekt umístí do schránky. V cizím OLE kontejneru vyberte položku menu Edit Paste Special (nebo ekvivalent) a z nabídky formátů ve schránce vyberte Pohled WinBase602.

  2b) Máte-li velké monitory, můžete využít elegantnější metody Drag & Drop: chytněte myší pohled z řídicího panelu a pusťte ho nad OLE kontejnerem. V obou případech vznikne vložený objekt.

Vložíte-li nebo připojíte-li do cizích dokumentů pohledy z WinBase602, pak tento OLE objekt poskytuje následující specifické akce:

Aktivovat - spustit OLE server WinBase602 v prostředí cizího kontejneru (tzv. in-place aktivace) a otevřít daný pohled. Je povolena veškerá práce s pohledem jako při běžném provozu.

Dvojí kliknutí na objekt provede tuto akci - je to akce primární. Neumí-li OLE kontejner in-place aktivaci, provede se akce Otevřít.

Otevřít - spustit OLE server WinBase602 v samostatném okně a otevřít daný pohled.

Modifikovat  - spustit OLE server WinBase602 v samostatném okně a otevřít návrhář daného pohledu. Změny provedené v návrhu se neprojeví v původním pohledu v databázi - objekt je vložený (embedded), nikoliv připojený (linked).

Při in-place aktivaci se nahradí ovládací lišta cizího programu ovládací lištou WinBase602 a do menu programu přibude nápověda WinBase602.

Pokud z pohledu aktivovaného in-place otevřete textový editor, okno s historii nebo s hodnotami multiatributu, otevřou se jako modální okna.

viz také : OLE


WinBase602 jako OLE kontejner

Při otevření tabulky nebo standardního pohledu se na místě OLE atributu objeví pouze nápis <OLE>. Vlastní obsah OLE objektu uvidíte až v obecném pohledu. V OLE složce bude buď grafické znázornění OLE objektu (například tehdy, jde-li o obrázek nebo graf), nebo pouze ikonu (například při záznamu zvuku). Způsob zobrazení lze volit z různých možností.

S různými OLE objekty lze provádět různé akce. Některé z nich jsou společné pro všechny druhy serverů (např. vložení, smazání apod), jiné jsou pro daný server specifické. Specifických akcí není mnoho, obvykle jedna až dvě. Například u obrázků nebo textů je specifickou akcí spuštění serveru pro jejich editaci. U záznamů zvuku nebo videoclipů jsou specifickými akcemi přehrání záznamu a editace záznamu. U programu je specifickou akcí jeho spuštění. Od verze 3.01 WinBase602 lze spouštět OLE servery, které to dokáží, v tzv. in-place režimu.

Je-li specifických akcí více, pak jedna z nich je označena jako primární. Je-li specifická akce pouze jedna, pak je také označována jako primární akce. Primární akci provedete tak, že na OLE složce dvakrát kliknete.

Všechny akce, které lze s OLE objektem vykonat (jak společné tak i specifické), se dají vyvolat pomocí menu, které otevřete stiskem pravého tlačítka myši na OLE složce obecného pohledu.

viz také : OLE


Výběr pohledu pro nový OLE objekt

Při vytváření nového OLE objektu typu Pohled WinBase602 máte na výběr dvě možnosti:

  1) Použít jako vzor některý pohled již dříve vytvořený ve vývojovém prostředí WinBase602 - v dialogovém okně označte aplikaci a pohled, který má být vzorem a stiskněte tlačítko Použít vybraný;

  2) Vytvořit pohled zcela nový - označte pouze aplikaci a stiskněte tlačítko Vytvořit nový.

V obou případech vznikne v kontejneru vložený objekt.


Subpohled

Speciální složkou pohledu může být i jiný pohled. Pohled, který je obsažen v jiném pohledu, nazýváme subpohled. Pohledu, který obsahuje subpohledy, budeme říkat  superpohled. Subpohledy mohou být pouze v obecných pohledech, nikoli ve standardních pohledech.

Mezi superpohledem a subpohledy existuje určitý druh vazby, který v závislosti na záznamu zvoleném v jednom z pohledů volí záznam nebo záznamy v ostatních pohledech.

Přechody mezi superpohledem a subpohledem:

  a) myší - kliknutí do příslušného pohledu;

  b) z klávesnice - klávesou F6.

Superpohledy typicky mají v okně na obrazovce pouze jediný záznam. Lze vytvořit superpohled s více záznamy, ale pak při listování v tomto pohledu bude synchronizace se subpohledy probíhat pouze ve vybraném záznamu.


OLE  - nový objekt

A) vložený objekt:

Po vybrání položky menu Nový objekt se nabídne seznam všech OLE serverů registrovaných na počítači. Z nich si vyberte ten, který chcete použít. Tlačítkem OK se příslušný OLE server spustí.

Poté v serveru vytvoříte objekt (např. namalujete obrázek, napíšete text, nahrajete zvukový záznam). Když v serveru objekt uložíte, zapíše se do databáze, a po opuštění serveru objekt (nebo jeho symbol) uvidíte v pohledu.

B) připojený objekt:

Přepněte přepínač do polohy Ze souboru. Zadejte, nebo z nabídky souborů vyberte zdrojový soubor. Zaškrtněte označovací čtverec Propojení.

Pokud chcete, aby prezentační složkou vašeho objektu byla ikona, zaškrtněte čtverec Zobrazit jako ikonu. V pravém dolním rohu dialogu se objeví implicitní ikona. Pokud se vám nelíbí, můžete si z nabídky, která se objeví po stisku tlačítka Změnit ikonu, vybrat jinou.


OLE  - propojení

V tomto dialogovém okně naleznete informace o druhu připojeného objektu, o souboru, v němž je objekt uložen a o tom, která část tohoto souboru je připojena.

Přepínačem  Aktualizace: Automaticky / Ručně můžete zvolit, zda se při editaci připojeného objektu má provádět automatická průběžná aktualizace jeho obrázku v databázi, nebo zda aktualizace má proběhnout až když v tomto dialogovém okně stisknete tlačítko  Aktualizovat. Význam má hlavně pro obrázky (např. z programu Paintbrush).

Tlačítkem Změnit zdroj můžete zadat jiný soubor, který bude připojen místo dosavadního souboru. Stisknutí tohoto tlačítka vyvolá dialogové okno podobné dialogu Otevřít soubor, které umožní standardním postupem vybrat nový zdrojový soubor.

Tlačítkem Otevřít zdroj  spustíte OLE server se zdrojovým dokumentem.

Tlačítko OK dialogové okno uzavírá.


OLE  - popis menu

Všechny akce (jak společné tak i specifické) se dají vyvolat pomocí menu, které otevřete stiskem  pravého tlačítka myši na složce.

  Vystřihnout -  přenesení objektu z vybrané složky do clipboardu. Po provedení této akce bude složka prázdná. Původní obsah složky lze pak přenést z clipboardu do jiné složky pomocí akce  Vlepit nebo Vlepit propojení.

  Zkopírovat -  vytvoření kopie objektu z vybrané složky v clipboardu. Obsah složky se touto akcí nezmění, lze jej však přenést z clipboardu do jiné složky pomocí akce  Vlepit nebo  Vlepit propojení.

  Vlepit -  zkopírování objektu z clipboardu do vybrané složky. Touto operací vznikne objekt  vložený do databáze (nikoli připojený). Položka je aktivní, pokud jsou splněny dvě podmínky: na clipboardu je vhodný objekt a složka umí přijmout  vložený objekt tohoto druhu.

  Vlepit jako - zkopírování objektu z clipboardu do vybrané složky s možností výběru typu objektu a možností vytvoření propojení; viz OLE - vlepit nový objekt.

  Zrušit - smazání objektu nacházejícího se ve vybrané složce. Je-li obsahem složky propojení, pak se smaže pouze toto propojení, nikoli externí soubor, v němž se objekt nachází.

  Nový objekt - vytvoření nového  vloženého nebo propojeného objektu; viz OLE - nový objekt.

  Propojení - otevření dialogového okna, v němž naleznete informace o druhu připojeného objektu, o souboru, v němž je objekt uložen a o tom, která část tohoto souboru je připojena.

Je aktivní pouze pro ty složky, které obsahují vložený objekt. Viz OLE - propojení.

Poslední položka menu má tuto podobu:

  Objekt typu <jméno_objektu>

Akce, které server nabízí jsou pak obsaženy v submenu. Za oddělovačem v submenu je navíc položka Zkonvertovat - viz OLE - konverze objektu.


OLE  - Změna ikony OLE objektu

V dialogu můžete zvolit ikonu a její popis OLE serveru. Ikona se objeví ve složce OLE pohledu místo prezentačních dat serveru.

Rámeček Ikona slouží k výběru vhodné ikony. Pokud program nenabízí žádnou vhodnou, můžete si zvolit ikonu z jiného souboru. V okně vidíte všechny ikony, které vybraný soubor nabízí. Jedna ikona je vždy označena jako ikona implicitní pro daný program.

V poli Nápis můžete změnit popis, který se objeví pod ikonou.

Tohoto způsobu zobrazování OLE objektů se využívá tam, kde nezáleží na vzhledu prezentačních dat OLE objektu nebo když se data natahují příliš dlouho.


OLE  - vlepení nového objektu s možností propojení

Jsou-li ve schránce Windows data v OLE formátu, je aktivní položka menu Vlepit jako. Příkaz otevře standardní dialogové okno, v němž si můžete vybrat jeden z nabízených formátů daného objektu, případně, povoluje-li to OLE server, zvolit mezi objektem připojeným a vloženým.

viz také : OLE


OLE  - konverze objektu

Některé OLE servery umožňují změnit typ objektu na typ jiný, neboli provést konverzi objektu. V praxi se tato akce používá převážně při přechodu ze staré verze OLE serveru na verzi jinou.


Export dat z pohledu

V průběhu běžné práce s pohledem je často třeba vyčlenit některé záznamy ať pro účely archivní, pro přenos do jiného pohledu, pro odeslání elektronickou poštou Mail602 apod.

Uživatel má sice možnost pomocí příkazu Export dat z hlavního menu vyexportovat data z tabulek a dotazů, ale pouze všechny záznamy najednou. Pokud chce přenést pouze některé, musel by si pro tyto záznamy vytvořit speciální dotaz, který by je obsahoval (a neobsahoval žádné jiné), nehledě nato, že je možné chtít vybrat záznamy bez logické souvislosti popsatelné definicí dotazu.

Pro tyto případy WinBase602 disponuje možností, jak exportu vybraných záznamů dosáhnout. Na ovládací liště stiskněte tlačítko [image]. Otevře se dialogové okno umožňující přenosy dat.


Exportní dialog

Máte-li v úmyslu přenášet záznamy z pohledu, musíte nejprve určit, kterých záznamů se má přenos týkat. Dialog nabízí tři možnosti:

  a) Běžný záznam - záznam, na němž právě stojíte;

  b) Všechny záznamy - použijí se všechny záznamy z tabulky nebo dotazu, do něhož pohled vede;

  c) Označené záznamy - přenesou se pouze záznamy explicitně označené uživatelem. Nejsou-li žádné záznamy označené, položka je neaktivní. Záznamy se označují ve speciálním režimu, do něhož se dostanete po stisku tlačítka Zahájit označování.

Označování záznamů

Po stisku tlačítka Zahájit označování se okno přenosu zavře. Pohled, v němž budete vybírat záznamy, se rozšířil o dvoustavová tlačítka ve své levé části. Tlačítka se přepínají kliknutím myši nebo klávesou F8. Máte-li všechny potřebné záznamy označené, stiskněte znovu tlačítko [image].. Objeví se opět okno přenosu, tentokrát s přednastavenou možností Označené záznamy.

Dále dialog nabízí tři možnosti, KAM přenést vybrané záznamy.

  a) Export do souboru - export vybraných záznamů do souboru ve formátu nastaveném pomocí comba Formát..

  b) Odeslat poštou - vybrané záznamy odešlete elektronickou poštou Mail602 jinému uživateli. Je-li pošta nainstalována a v parametrech uvedena cesta ke konfiguračním souborům pošty, objeví se dialog pro odeslání zásilky.

  c) Zkopírovat do schránky - vybrané záznamy se zkopírují do schránky Windows. Záznamy ve schránce můžete později vlepit do téhož pohledu nebo do pohledu jiného, který vede do stejných dat.

Jsou-li ve schránce Windows data z WinBase602, je v dialogu aktivní přepínač Vlepit záznamy ze schránky. Použijete-li tuto volbu, do pohledu se vloží nové záznamy a naplní se hodnotami ze schránky. Pro vlepení platí stejná pravidla jako při běžném vložení pomocí klávesy Ins


 Výběr adresátů

Tento dialog slouží k výběru seznamu adresátů. V levé horní části dialogu je v okénku Seznam zobrazen výčet dostupných seznamů. Seznam se otevře stiskem klávesy Enter nebo dvojím kliknutím myší na příslušném seznamu. Adresy obsažené v požadovaném seznamu se objeví v okénku Adresát v pravé horní části dialogu.

Označené adresáty lze zařadit do seznamu vybraných adresátů pomocí tlačítka Přidat nebo dvojím kliknutím myší na příslušné adrese. Vybraní adresáti se objevují v dolní části dialogu - v okénku Komu.... Pokud se zmýlíte a potřebujete některého adresáta z konečného výčtu vyřadit, nastavte na jeho položku ukazatel a stiskněte tlačítko Vyřadit. Takto lze vyřadit i celou skupinu označených adresátů.

Stiskem tlačítka OK se okno zavře a nastavení se přenese do okna, v němž se nastavují parametry WinBase602 zásilky.


 Parametry zásilky

Zásilka jako celek je mimo jiné charakterizována řadou parametrů, které určují způsob jejího odeslání. Jejich nastavení zajišťuje tento dialog.

Parametry se liší podle adresáta (příp. kombinace adresátů):

  a) Při komunikaci pouze pomocí lokální pošty najdete jen dva přepínače: Doporučeně a Se zprávou. První z nich slouží k označení zásilky jako doporučený dopis. Druhý přepínač zajistí u příjemce signalizaci o doručení dopisu.

  b) Při odesílání zásilek vnějším poštovním úřadům Mail602, jsou k dispozici následující parametry: Doporučeně, čtyři políčka pro nastavení časového intervalu, ve kterém se má zásilka odeslat a třípolohový přepínač Priorita pro nastavení priority odeslání zásilky.

  c) Při komunikaci pouze pomocí lokální pošty nebo při posílání zásilek do schránek má význam pouze přepínač Doporučeně.


Označení záznamů ve standardním pohledu

Ve standardním pohledu je vybraný záznam označen v záhlaví řádku jedním ze tří symbolů informujících o jeho momentálním stavu:

- [image] znamená, že je záznam vybrán, na obrazovce je totéž, co v databázi;

- [image] informuje, je záznam na obrazovce byl přepsán a změny dosud nebyly zapsány do databáze;

- [image] říká, že v některé složce záznamu právě probíhá editace.

Je-li záhlaví záznamu přeškrtnuto, pak jde o fiktivní záznam, tedy záznam, který dosud není zapsán do databáze.


Posuvník

Složka Posuvník" vyjadřuje celočíselnou hodnotu pomocí polohy jezdce a posouváním jezdce umožňuje tuto hodnotu editovat. Je vždy svázaná s atributem nebo proměnnou typu Integer nebo Short.

Jezdec se ovládá pomocí myši nebo šipkami z klávesnice. Použití posuvníku je omezeno tím, že nemůže zobrazovat prázdnou hodnotu a nedá se použít k jejímu zadávání.

Posuvník může být vodorovný nebo svislý - podle toho, který rozměr posuvníku je větší. Vložíte-li do pohledu složku Posuvník, musíte pomocí okna se seznamem vlastností zadat tyto její parametry: dolní a horní mez hodnot, krok na stupnici a umístění stupnice.

Pokud v pohledu existuje ještě další složka, která pracuje se stejným údajem jako posuvník (např. hodnotová, editační složka), pak pro obě složky zatrhněte příznak "Obnovit po změně v záznamu", aby se změny provedené v jedné složce průběžně promítaly i do druhé složky.

Posuvník lze použít i ke kladení dotazů. Otevřete-li dotazové okno s posuvníkem a umístíte-li jezdec do určité polohy, pak se vyberou pouze záznamy s jezdcem posuvníku ve stejné poloze. Toto omezení lze zrušit stejně jako jakékoli jiné omezení QBE, nebo selektivně v dotazovém okně stiskem klávesy Delete v situaci, kdy je posuvník vybranou složkou.


Krokovač

Složka Krokovač" se skládá ze dvou malých šipek - nahoru a dolů. Slouží k usnadnění editace číselné hodnoty v editační složce, s níž je svázána. Stiskem šipky nahoru se obsah editační složky zvětší o stanovenou hodnotu, stiskem šipky doků se zmenší.

Vložíte-li do pohledu krokovač, musíte pomocí okna se seznamem vlastností zadat tyto její parametry: číslo editační složky, s níž bude krokovač svázán, dolní a horní mez hodnot, velikost kroku.

Krokovač je zvykem umisťovat bezprostředně vpravo od té editační složky, kterou ovlivňuje.

Pokud je v editační složce hodnota ležící mimo meze krokovače, pak se stiskem kterékoli šipky dostane do těchto mezí.


Indikátor postupu

Složka Indikátor postupu" slouží ke grafickému znázorňování postupu práce pomocí čtverečků vyplňujících zleva doprava vodorovný pruh. Tato složka přistupuje k atributu nebo (častěji) proměnné typu Integer nebo Short a na základě jejich hodnot vykresluje čtverce. Je-li hodnota 0 (nebo menší), nekreslí se žádný čtverec, pro hodnotu 1000 (nebo větší) se celý pruh vyplní čtverci, pro hodnoty ležící mezi 0 a 1000 se vykreslí úměrný počet čtverců.

Pokud změníte hodnotu proměnné (nebo atributu) řídících obsah indikátoru postupu, musíte provést překreslení pohledu (pomocí standardní akce nebo funkce Reset_view), aby vzhled indikátoru opět odpovídal hodnotě.

Pro tuto složku se při návrhu nenastavují žádné speciální vlastnosti.


Formátovaný text
Formátovaný text (RTF)

Složka pohledu Formátovaný text  se v pohledu chová podobně, jako víceřádková editační složka, ale umožňuje také formátování textu v podobném rozsahu, jako WordPad. Na rozdíl od WordPadu však nemá vlastní vodorovné menu ani ovládací lištu a neumožňuje nastavovat rozměry stránky ani polohu tabulátorů, vyhledávat text a vkládat OLE objekty.

V návrháři pohledů lze pro Formátovaný text nastavit barvu pozadí, nikoli však barvu textu nebo druh písma - tyto vlastnosti se nastaví pro jednotlivé části textu během editace.

Text ve složce se formátuje pomocí příkazů popup-menu, které vyvoláte stiskem pravého tlačítka myši nebo "aplikační" klávesy (na nových klávesnicích) nebo kombinace kláves Shift+F10. Příkazy se zpravidla vztahují k označené části textu, a pokud není žádný text označen, pak k pozici kurzoru.

Příkazy Tučně, Kurzíva a Podtržení nastavují příslušné atributy textu. Pomocí příkazu Písmo můžete otevřít standardní dialogové okno na nastavování vzhledu, velikosti, barvy a dalších atributů písma. Příkazy Zarovnat doleva, Zarovnat na střed a Zarovnat doprava určují zarovnání textu v odstavci. Příkaz Odrážka vkládá značku na začátek odstavce, příkaz Odsadit první řádku odsazuje počáteční řádky odstavců. Zatržení kteréhokoli z výše uvedených příkazů v menu indikuje, že příslušná vlastnost je aktivní v celém vybraném úseku.

Příkaz Editace otevírá standardní editační submenu, příkazem Tisk lze vytisknout buď vybraný úsek textu nebo celý text.

Text editovaný složkou Formátovaný text se do atributu typu Text ukládá v tzv. formátu RTF. Proto nedoporučujeme vytvářet nad stejným atributem zároveň editační složku nebo složku Text.

Pro přenášení textu doporučujeme využívat standardních operací se schránkou.


Zahájení návrhu pohledu

Pokud začínáte vytvářet nový pohled, je rozumné nechat WinBase602 udělat část práce za Vás. WinBase602 může naplnit pohled složkami, které odpovídají atributům určité tabulky nebo dotazu.

V dialogovém oknu určujte tři věci:

  1) zdroj dat v pohledu

  2) mají-li být data editovatelná

  3) typ a tvar pohledu, který WinBase602 vygeneruje za Vás

ad1) Pohled může obsahovat

  data z tabulky - pohled bude obsahovat atributy ze tabulky zvolené v seznamu pod přepínači

  data z dotazu - pohled bude obsahovat atributy ze zvoleného kurzoru

  pouze proměnné - pohled bude prázdný, během návrhu do něj přidáte složky pro práci s proměnnými definovanými v aplikačním programu (tyto proměnné můžete ovšem používat i v předchozích dvou případech).

ad2) Přepínacím čtvercem Editovatelné složky volíte, mají-li být složky v pohledu vygenerované návrhářem editovatelné či nikoli (netýká se složek, které si do pohledu přidáte dodatečně ručně). Složky, které lze editovat se používají v pohledech, které slouží k zadávání dat, needitovatelné složky se používají mj. v tiskových sestavách.

ad3) Pokud zvolíte vytváření pohledu do obsahu tabulky nebo dotazu, pak v dalším kroku vyberete počáteční tvar pohledu - rozložení složek v pohledu. Máte dvě základní možnosti:

pohled standardní nebo obecný. Kromě toho můžete také z dat vytvořit graf nebo použít speciální druh obecného pohledu - štítky.


Návrh obecného pohledu

Vyberte počáteční tvar pohledu

Zvolíte-li tlačítko Horizontální, pak popisky budou v záhlaví tabulky a atributy ve sloupcích pod nimi. Tento tvar není vhodný, pokud se pracuje s mnoha atributy.

Zvolíte-li Vertikální, pak je pro každý atribut jeho popiska i hodnota na zvláštní řádce. Díky tomu má každý atribut i celý záznam více prostoru, na obrazovku se však vejde současně méně záznamů.

Nejčastěji používaná volba je Plošný. WinBase602 sama rozmístí složky po obrazovce a určí jim velikosti, které by mohly vyhovovat.

Zaškrtnete-li čtverec Bez složek, iniciální návrh bude prázdný a všechny složky pohledu musíte vytvořit sami.

Font použitý v návrhu jako standardní se nastavuje pomocí menu Nástroje/Parametry - viz Parametry WinBase602.

Volbou tvaru pohledu přejdete do prostředí pro návrh pohledů.


Prostředí pro návrh obecných pohledů
Prostředí pro návrh obecných pohledů (editor pohledů)

Navrhování pohledu probíhá tak, že do různých oblastí pohledu vkládáte složky pohledu, rozmisťujete je a nastavujete parametry těchto složek. Můžete také nastavovat řadu globálních parametrů pohledu a průběžně testovat, jak by vypadal výsledek návrhu.

Prostředí pro návrh pohledů umožňuje provádět tyto okruhy akcí řízené položkami vlastního menu:

Návrh - uložení a ukončení návrhu, stanovení pořadí složek v návrhu a test návrhu, návrh toolbaru či nálepek apod.- viz Návrh ;

Editace - manipulace s celými složkami pohledu (kopírování, rušení apod.) - viz Editace

Zobrazení - vypínání a zapínání nabídkového panelu, vypínání a zapínání okna se seznamem vlastností, zapínání a vypínání centimetrové pomocné sítě na pozadí návrhu;

Oblasti - umožňuje otevírat a zavírat okna příslušející jednotlivým oblastem pohledu - viz Oblasti ; při návrhu standardního pohledu není aktivní;

Parametry - nastavení globálních parametrů pohledu a sestav jako celku - viz Parametry

Složka - vložení nové složky - viz Složka

Ovládací lišta obsahuje tato tlačítka:

-  vystřihnout složku do clipboardu

-  zkopírovat složku do clipboardu

-  vlepit složku z clipboardu

-  uložit definici pohledu

-  ukončit návrh

-  otevřít reálný pohled podle návrhu

-  vytisknout definovanou sestavu

-  zapnout / vypnout zobrazení mřížky na pozadí

Prostředí pro návrh standardních pohledů


Oblasti obecného pohledu

Při návrhu pohledu se definuje obsah jedné nebo více jeho oblastí. Každá oblast se v pohledu objevuje na předepsaném místě nebo v určité situaci. Pohledy, které se objevují v oknech na obrazovce, používají pouze tyto dvě z možných oblasti:

Hlava stránky/okna (S)- objeví se v horní části okna

Datová oblast (>>)- obsahuje data příslušející jednomu záznamu a objeví se v pohledu pro každý záznam jednou. Jednotlivé výskyty datové oblasti budou pod hlavou stránky seřazené pod sebou.

Pohledy definující tvar tištěné sestavy mohou mít i další oblasti:

Hlava sestavy (R) - objeví se pouze jednou na začátku sestavy

Pata sestavy (r) - objeví se pouze jednou na konci sestavy

Hlava skupiny a až E(A,B,C,D,E) - objeví se vždy na začátku příslušné skupiny záznamů

Pata skupiny E až a (a,b,c,d,e)- objeví se vždy na konci příslušné skupiny záznamů

Hlava stránky/okna (S)- objevuje se v horní části každé vytištěné stránky

Pata stránky (s)- objevuje se ve spodní části každé vytištěné stránky.

V průběhu návrhu pohledu každá oblast tvoří samostatnou část okna návrhu. Oblasti jsou od sebe odděleny pohyblivou hranicí. Oblasti jsou označeny

Pomocí menu Oblasti můžete stanovit, která z těchto oblastí mají být viditelná. Na obrazovce jsou zapnuty ty oblasti, které mají u své položky menu značku. Tím, že vyberete z menu položku odpovídající některé oblasti, přidáte nebo odstraníte ji z okna návrháře.


Změny polohy a rozměrů složky při návrhu obecného pohledu
Změny polohy a rozměrů složky

Manipulovat můžete s jednou nebo více vybraných složek pohledu. Složka se stane vybranou tak, že na ní stisknete levé tlačítko myši. Vybraná složka má kolem sebe tlustý rám. Další složky můžete vybrat tím, že na nich stisknete levé tlačítko myši a zároveň držíte klávesu Shift. Všechny vybrané složky jsou orámované.

Chcete-li skupinu složek přemístit v rámci té oblasti, v níž se nachází, pak zajeďte myší dovnitř jedné složky, stiskněte a podržte levé tlačítko, a táhněte myší složky na to místo, kde je chcete mít. Jednu vybranou složku lze také přemisťovat pomocí kláves s šipkami.

Chcete-li změnit velikost jedné složky, pak stiskněte a podržte levé tlačítko myši na rámu složky a táhněte rám tak, aby složka získala správnou velikost. Rozměry složky lze také změnit stiskem kláves Shift a šipky.

Pro přemístění jedné složky mezi oblastmi nebo pro vytvoření kopie složky použijte menu Editace.

Zarovnání skupiny složek můžete provést příkazy z menu, které se otevře po stisku pravého tlačítka myši na některé z vybraných složek.


Popup menu složek v návrháři
Popup menu složky v návrháři

Během návrhu pohledu lze stiskem pravého tlačítka myši vyvolat popup menu, jehož akce umožňují manipulovat se složkou nebo s označenou skupinou složek.

Je-li označena skupina složek a menu vyvoláte na některé z nich, pak z něm naleznete položky, které manipulují s celou skupinou:

Zarovnat vlevo, vpravo, nahoru, dolů - provede se zarovnání všech složek ve skupině určeným směrem. Všechny složky se vyrovnají podle té z nich, která je ve zvoleném směru nejdále.

Font, Barva textu, Barva pozadí - nastaví se stejný font resp. stejná barva pro všechny složky ve skupině.

Pokud kliknete na složce, která není označena nebo která je označena jako jediná, pak se objeví menu obsahující tyto složky:

Font, Barva textu, Barva pozadí - otevřou se dialogová okna umožňující nastavení zvolených vlastností složky.

Při návrhu standardního pohledu lze menu vyvolat pouze po označenou složku, protože množinu složek nelze označit. Selektivní nastavení barvy pozadí a fontu pro jednu složku není možné.


Menu "Editace" a manipulace se složkami

Kromě složek, které jsou umístěny v oblastech pohledu, může se jedna složka nacházet v odkládací oblasti nazývané clipboard. Clipboard nám poslouží při vkládání složek, přemísťování složek mezi oblastmi a kopírování složek.

Je-li v clipboardu nějaká složka, pak kurzor má nad oblastmi pohledu odlišný tvar - tvar budoucí složky.. Tím symbolizuje, že je k dispozici složka v clipboardu. Tuto složku vložíte do oblasti tak, že na zvoleném místě stisknete levé tlačítko myši.

Složka se do clipboardu může dostat trojím způsobem:

  1) vytvořením nové složky pomocí menu Složka,

  2) zkopírováním existující složky pomocí menu Editace / Zkopírovat,

  3) přesunutím existující složky pomocí menu Editace / Vystřihnout. Složka přesunutá do clipboardu zmizí z oblasti, v níž se dosud nacházela.

Předtím, než můžete Zkopírovat nebo Vystřihnout složku, musíte ji napřed vybrat. Složku vyberete tak, že na ní stisknete levé tlačítko myši. Vybraná složka je silně orámovaná.

Vybranou složku můžete také zrušit tím, že z menu Editace vyberete položku Zrušit složku.

Pokud máte v clipboardu složku, kterou nepotřebujete, zbavíte se ji tak, že z menu Editace vyberete položku Smazat clipboard.


Složky pohledu, jejich vkládání a modifikování

Každý pohled obsahuje určitou množinu složek, což jsou texty, editační pole, obrázky, tlačítka, označovací čtverce, combo pole, seznamy, přepínací tlačítka atd. Každá složka patří do určité oblasti pohledu a tím je dáno, na jakých místech pohledu se obsah složky bude objevovat.

Novou složku vytvoříte takto:

  1) z menu Složka si vyberete položku, která odpovídá typu zamýšlené složky.

  2) Ukažte myší na to místo v některé oblasti pohledu, kde se má nacházet levý horní roh složky, a stiskněte levé tlačítko.

  3) Do okna, které se otevře na obrazovce, zadejte parametry složky a poté stiskněte tlačítko Hotovo.

Druhý způsob vytvoření nové složky je následující:

  1) Na nabídkovém panelu stisknete tlačítko se složkou odpovídající zvolenému atributu ze levého seznamu.

  2) Ukažte myší na to místo v některé oblasti pohledu, kde se má nacházet levý horní roh složky, a stiskněte levé tlačítko.

Provedením bodu 1) jste vytvořili složku nacházející se v tzv. clipboardu (viz editace složek). Pokud změníte názor a tuto složku již nechcete nikam vložit, pak ji zrušte pomocí menu Editace / Smazat clipboard.

Novou složku můžete také vytvořit jako kopii již existující složky.

Každá složka má mnoho parametrů. Pokud jste je všechny nenastavili při vytváření složky nebo pokud chcete některé z nich změnit, pak vyberte složku tím, že na ní stisknete tlačítko myši a v okně se seznamem vlastností změňte potřebné údaje.


Menu "Návrh" při navrhování obecného pohledu

Menu obsahuje tyto položky:

  Uložit - uloží návrh pohledu do databáze. Pokud pohled není dosud pojmenován, požádá Vás o zadání jména pohledu.

   Test návrhu - otevře na obrazovce pohled popsaný právě editovaným návrhem. Tím získáte možnost ověřit si, jaký je výsledek návrhu, aniž byste opustili prostředí pro návrh pohledů. Pokud je v návrhu chyba, budete o ní informováni a otevře se okno, které obsahuje chybný parametr. Pamatujte na to, že chyba může být způsobena také tím, že není otevřen správný projekt.

    Testovací tisk -  vytiskne právě vytvářenou sestavu - umožní ověřit výsledný tvar a podobu sestavy včetně všech oblastí, agregačních funkcí apod.

    Pořadí složek - Umožní definovat pořadí složek v pohledu. Pořadí složek určuje, která složka bude v pohledu vybraná po jeho otevření a z které složky na kterou budete při práci s pohledem přecházet stiskem klávesy TAB. Pořadí zadáte takto:

- vyberete položku Návrh / Pořadí složek, tím se na obrazovce objeví očíslované složky;

- stiskněte levé tlačítko myši na každé složce v tom pořadí, v jakém mají být složky uspořádány. Čísla složek se tím průběžně mění, na žádné složce nelze stisknout tlačítko dvakrát;

- poté, co takto vyznačíte pořadí všech složek, obnoví se normální vzhled obrazovky;

- zadávání pořadí můžete předčasně ukončit tím, že opětovně vyberete položku Návrh / Pořadí složek.

   Návrh štítků - slouží k přepnutí do režimu tvoření štítků (jmenovek).  Štítky vytvářejte do prázdného návrhu pohledu. Po vybrání této položky se otevře dialogové okno - viz Návrh štítků.

   Obrázky - položka pro vyvolání okna pro správu obrázků v aplikaci - viz Obrázky

   Návrh lišty - otevírá zvláštní návrhář pro tvorbu uživatelské lišty (toolbaru), která se objeví na místě standardní lišty pohledu vždy při otevření tohoto pohledu - viz Návrh lišty

   Přidat agregáty -  automatické přidání jedné agregační (souhrnné) funkce do některé oblasti; týká se všech atributů v pohledu - viz Agregáty

   Obrázky - otevře okno se seznamem fixních obrázků vložených do aplikace, umožní je prohlížet, mazat apod. Obrázky lze použít na pozadí pohledu, na tlačítka nebo samostatně.

   Konec - ukončí návrh pohledu a opustíte prostředí pro navrhování pohledů. Pokud návrh nebyl dosud uložen nebo byl od posledního uložení změněn, budete na to upozorněni a dostanete možnost návrh uložit.


Návrh štítků

V horní části dialogového okna pro návrh štítků je seznam předdefinovaných druhů štítků, které se u nás používají. Štítky začínající A4 označují speciální formáty určené pro laserové tiskárny.

Uživatel má navíc možnost nadefinovat si vlastní rozměry - po vybrání ze seznamu položku Níže definovaný formát  je možno do příslušných políček zadávat nové hodnoty.

Zadává se:

-  šířka jedné jmenovky v mm;

-  výška jedné jmenovky v mm;

-  šířka mezery mezi jmenovkami, je-li na stránce více než jedna (horizontální směr);

-  výška mezery mezi jmenovkami (vertikální směr);

-  počet jmenovek vedle sebe (horizontální směr);

-  počet jmenovek na jedné stránce (vertikální směr), i když se tiskne na nekonečný pás ;

-  levý horizontální okraj - vzdálenost od kraje podkladu k prvnímu štítku shora;.

-  horní vertikální okraj - vzdálenost od kraje podkladu k prvnímu štítku zleva;

Minimální změna každého rozměru je 0,3 mm - přesněji než tento rozměr nelze údaje zadat. Případná odchylka se však nekumuluje, na nové stránce budou rozměry opět v pořádku.

Režim návrhu jmenovek není určen pro běžné pohledy (nelze použít agregační funkce, oblasti apod). Chcete-li se z tohoto prostředí vrátit zpět do běžného návrháře pohledů, stiskněte tlačítko Normální pohled.


Štítky

Zvláštní druh obecných pohledů tvoří štítky. WinBase602 umožňuje vytvářet štítky libovolných rozměrů a parametrů, nejběžněji používané typy má však již předdefinovány. Návrh štítků se (až na drobnosti) neliší od návrhu obecného pohledu.

Rozměry a počty štítků se definují v samostatném okně - viz Návrh štítků.


Automaticky generované agregační funkce
Automaticky generované složky s agregačními (souhrnnými) funkcemi

Položka menu Návrh \ Přidat agregáty slouží k rychlému vložení skupiny hodnotových složek do vhodné oblasti pohledu. Oblasti, kam nelze vložit agregační funkce jsou datová oblast a hlava a pata stránky.

Po vybrání položky menu se objeví dialogové okno s nabídkou agregačních funkcí a seznamem oblastí. Vyberete oblast a funkci a tlačítkem Vložit vytvoříte v oblasti skupinu hodnotových složek s agregačními funkcemi. Nové složky se rozmístí stejně jako editační, hodnotové složky nebo editovatelná comba v datové oblasti.

Při přidávání agregačních funkcí do oblasti standardního pohledu se agregáty vloží pouze do prázdných buněk.


Zdroj dat pro pohled

Zdrojem dat pro pohled se míní tabulka nebo dotaz, odkud se berou údaje pro obsah pohledu.

Zdroj dat se volí poprvé v okamžiku, kdy vytváříte nový pohled. Tehdy zadáte, do které tabulky nebo kterého dotazu pohled směřuje.

Tuto volbu zdroje dat můžete změnit při návrhu pohledu pomocí okna se seznamem vlastností. Jako obsah můžete zvolit Data z tabulky,  Odpověď na dotaz nebo Pouze proměnné. V combu Zdroj dat vidíte seznam tabulek nebo dotazů, ketréí můžete použít.

Zdroj dat musíte volit tak, aby všechny identifikátory použité v popisu složek pohledu (a v definicích skupin), které nejsou proměnnými projektu, označovaly atributy ve zvolené tabulce nebo dotazu. Jinak pohled nepůjde otevřít. Změníte-li zdroj dat, doporučujeme jej ihned ověřit pomocí položky Návrh / Test návrhu.


Globální parametry pohledu

Pohled jako celek je popsán řadou parametrů, které lze nastavit dběma způsoby:

 A) pomocí položek menu Parametry

Fonty, barvy, členění - nastavuje parametry ovlivňující pohled na obrazovce i tištěnou sestavu - barvu pozadí a složek, typ a velikost fontu, rozčlenění záznamů na obrazovce apod. viz Fonty, barvy, členění

Obrazovka - nastavuje parametry platné pouze práci s pohledy na obrazovce - rozměry okna, parametry pohledu apod. - viz Parametry obrazovky

Skupiny - definování skupin záznamů pro sestavy - viz Definování skupin

Záhlaví a paty - definování vztahů mezi hlavami (patami) stránek a sestav - viz Záhlaví a paty

B) pomocí panelu vlastností, který lze otevří (a zavřít) příkazem menu Zobrazení / Seznam vlastností. Panel ukazuje vlastnosti pohledu, pokud není vybrána některá jednotlivá složka.


Rastr pro umístění složek pohledu

Při navrhování pohledů můžete nastavit rastr, v němž se budou umísťovat složky pohledu. Tento parametr se do návrhu pohledu neukládá, je to pouze pomůcka pro navrhování. Globálně lze rastr nastavit v okně s parametry WinBase602.

Umístění složek na obrazovce je dáno jejich souřadnicemi a může být v podstatě libovolné - poloha dvou složek se může lišit pouze o jediný pixel. Pak je ale velmi obtížné srovnat složky do řady nebo do sloupce. Proto je výhodnější povolit umísťování složek pouze v určitých souřadnicích. Vyberete-li položku Rastr pro složky, pak můžete zadat velikost rastru v souřadnici X a Y. Standardní rastr je 4 pixely v obou souřadnicích. To znamená, že souřadnice všech složek musí být dělitelné čtyřmi.

Zadáte-li větší číslo, pak se složky budou pohybovat v hrubším rastru a snadněji se budou zarovnávat. Naopak zadáte-li menší číslo, pak můžete jemněji nastavit polohu složky.

Tlačítkem Rastr pro výstup do souboru nastavíte takový rastr, který Vám zaručí správné rozložení složek do řádek při výstupu sestavy do textového souboru.


Globální parametry: fonty, barvy, členění
Globální parametry pohledu: font, barva, členění

Položka menu Parametry / Font, barva, členění otevírá okno, v němž se dají nastavit parametry pohledu uplatňující se jak na obrazovce tak i při výstupu sestavy. Jsou to:

Tlačítko Barva pozadí - dovoluje nastavit barvu pozadí celého pohledu a implicitní barvu pozadí pro složky, které budete vkládat.

Tlačítko Sjednotit pozadí - sjednocení barev pozadí všech složek podle barvy nastavené tlačítkem Barva pozadí

Tlačítko Barva textu - dovoluje nastavit implicitní barvu textů ve složkách, které budete vkládat (barvu pozadí i textu můžete v každé složce změnit individuálně).

Tlačítko Sjednotit text - sjednocení barvu textu všech složek podle barvy nastavené tlačítkem Barva textu

Mezi tlačítky je vzorek zvolených barev.

Tlačítko Font - dovoluje nastavit font, který se použije v těch složkách pohledu, které nemají definovaný font vlastní.

Obrázek na pozadí pohledu - combo s nabídkou obrázků aplikace; zvolený obrázek bude tvořit pozadí pohledu - viz Obrázky v aplikaci

Potlačení pozadí při tisku sestavy - je-li tento označovací čtverec zaškrtnut, pak se při vytváření sestavy nepoužije barevné pozadí pohledu a jeho složek ani pozadí tvořené obrázkem. Barevné pozadí při tisku působí většinou rušivě (zvláště na jehličkových tiskárnách).

Zahrnout i zrušené záznamy - volba, mají-li se v pohledu zobrazovat i záznamy označené jako zrušené.

Obsah okna / stránky - volba členění pohledu:

Jeden záznam - v okně na obrazovce bude jediný záznam

Neoddělené záznamy - mezi záznamy nebudou oddělovací čáry

Oddělené záznamy - mezi záznamy bude tenká oddělovací čára

Výrazně oddělené záznamy - mezi záznamy bude tlustá oddělovací čára

V sestavě se členění záznamů mezi stránky dá popisovat ještě podrobněji, viz parametry sestavy.


Globální parametry pohledu na obrazovce

Položka menu Parametry / Obrazovka otevírá okno, jež dovoluje nastavit ty parametry pohledu, které se uplatní při otevření pohledu v okně na obrazovce  Jsou to:

Souřadnice X a Y, výška a šířka - poloha a rozměry okna pohledu v pixelech obrazovky.

Nadpis pohledu - text, který se objeví na horním rámu okna pohledu.

Spočítat záznamy při otevření - je-li čtverec zatržen, při otevření pohledu se spočítají záznamy. Pak poloha svislého táhla odpovídá skutečné pozici  v tabulce.

Pouze pro vstup dat - speciální druh pohledu, který slouží výhradně k vkládání nových záznamů a nikoliv k prohlížení tabulek -viz Pohled pro vstup dat.

Trojrozměrný vzhled - editační složky pohledu budou "zanořené", iluze trojrozměrného dialogu.

Omezené systémové menu - systémové menu pohledu bude obsahovat pouze standardní položky.

Zákaz přechodů mezi záznamy -  je-li čtverec zatržen, bude v pohledu zakázán přechod mezi záznamy; vhodné pro pohledy, které obsahují jeden záznam na jedné stránce.

Zákaz editace - nelze přepisovat hodnoty.

Zákaz vkládání záznamů INS - nelze vložit záznam pomocí klávesy Insert.

Bez fiktivního záznamu - pohled neobsahuje fiktivní záznam.

Ukládat po přepsání složky - zápis do databáze proběhne po každém přepsání složky pohledu

Ukládat při deaktivaci pohledu - zápis do databáze proběhne navíc i při změně aktivity pohledu

Žádat potvrzení změn - každý zápis do databáze bude vyžadovat potvrzení

Modální pohled - pohled se otevře jako modální, tzn. dokud ho uživatel nebo program nezavře, bude zbytek prostředí WinBase602 zablokován

Blokováno uzavření - pohled lze zavřít pouze zavřením aplikace nebo příkazem jazyka Close_view.

Pevná velikost okna - nelze měnit velikost okna

Blokována maximalizace - okno s pohledem nelze maximalizovat.

Blokována minimalizace - okno s pohledem nelze minimalizovat.

Bez svislého táhla - pohled nebude mít svislý scroll bar, posun po záznamech není však zakázán

Číslo nápovědy - zde lze vyplnit číslo stránky v nápovědě, kterou si pro svoji aplikaci sami vytvoříte. Tato stránka se otevře, pokud při práci s pohledem stisknete klávesu F1 na položce, která nemá definovanou vlastní nápovědu. Nápověda musí být uložena v souboru WB602.HLP umístěném ve stejném adresáři, jako programy WB602.EXE resp. WBR602.EXE . Pokud nevytváříte vlastní nápovědu, pak obsah tohoto parametru neměňte.

Zamčení záznamů - nabídka tří možností zamykání:

Nezamykat - záznamy nebudou zamknuty, jiný uživatel v síti je může přepisovat i v době, kdy je přepisujete vy;

Zamčen běžný záznam - záznam, na kterém stojíte, je zamčen, ostatní jsou odemknuty;

Zamčeny všechny záznamy - všechny záznamy v pohledu jsou zamknuty.

Nepracujete-li v síti, nechte nastaveno Nezamykat. Při práci s pohledem je možno toto nastavení interaktivně změnit - viz Zamykání z pohledu

Rušení záznamů - combo s nabídkou tří režimů při mazání jednotlivých záznamů v pohledu:

Povoleno - rušení je povoleno

Zakázáno - rušení je zakázáno

Tázat se - před zrušením záznamu budete dotázáni na souhlas.

Při akci Vymazání všech záznamů v pohledu budete dotázáni na souhlas bez ohledu na nastavení tohoto parametru.


Členění sestavy do skupin záznamů

Při vytváření sestavy je možno rozčlenit záznamy v pohledu do skupin a pro každou skupinu vytvořit její hlavu a patu. Skupiny se dají definovat na max. 5 úrovních označených a až E, přičemž hlavy a paty skupiny a jsou zcela vně a hlavy a paty skupiny E zcela u datové oblasti záznamu. Úroveň a tedy vyjadřuje nejhrubší členění záznamů do skupin, úroveň E nejjemnější.

Každá skupina je zadána svým definujícím výrazem: dva záznamy patří do stejné skupiny, pokud hodnota definujícího výrazu je v nich stejná. Definující výrazy se zadávají v okně pro definování skupin otevíraném položkou Skupiny v menu Parametry.

Příklad: nechť v evidenci bankovních operací se sleduje datum operace v atributu DATUM a čas operace v atributu ČAS. Pokud jsou tyto záznamy uspořádány (zdrojem dat pro pohled je dotaz uspořádaný podle těchto dvou atributů), pak můžete vytvořit tyto skupiny:

A: Year(DATUM)

B: Month(DATUM)

C: Day(DATUM)

D: Hours(ČAS)

E: Minutes(ČAS)

kde Year, Month, Day, Hours a Minutes jsou standardní funkce programovacího jazyka WinBase602.


Definování skupin v sestavě

Položka menu Parametry / Skupiny umožňuje nadefinovat skupiny záznamů a rozlámání do stránek na hranicích těchto skupin.

Definující výrazy skupin - Dovoluji rozčlenit záznamy v pohledu do a pro každou skupinu pak vytvořit její hlavu a patu. Každá skupina je zadána svým definujícím výrazem: dva záznamy patří do stejné skupiny, pokud hodnota definujícího výrazu je v nich stejná.

Nová stránka na hranici skupin - dovoluje zajistit, že kdykoli se při generování záznamů přijde na hranici skupin určité (nebo vyšší) úrovně, přejde se na novou stránku. Paty končících skupin budou ještě na původní stránce, hlavy nových skupin už na nové stránce. Zvolíte-li variantu Nikde, pak se přechody na novou stránku řídí pouze množstvím místa na zbytku stránky.


Záhlaví a paty v sestavě

V praxi se vyskytují různé požadavky na pořadí oblastí na začátku a konci sestavy.  Je-li v záhlaví stránky její číslo, je vhodné, aby případné záhlaví sestavy bylo pod záhlavím stránky, je-li však v hlavě stránky např. záhlaví k datové oblasti, je potřeba ji umístit pod hlavu sestavy apod. K tomu, aby si uživatel mohl zvolit optimální variantu, slouží dialogové okno Záhlaví a paty sestavy.

Navrhuje se zvlášť záhlaví a zvlášť paty; tato dvě nastavení se vzájemně neovlivňují. K dispozici je šest základních vztahů pro oba případy, které lze ještě modifikovat parametrem Plovoucí pata stránky.

Jedná se o vzájemnou kombinaci tří položek combo boxu s označovacím čtvercem Umístit na zvláštní stránku. Podrobnější  popisy - viz Záhlaví a Paty


Vztah záhlaví sestavy a stránky

Vzájemný vztah oblastí na počátku sestavy ukážeme na obrázcích. Použité zkratky znamenají:

HL SES - hlava sestavy

HL STR - hlava stránky

PT STR - pata stránky

První skupina obrázků ukazuje první dvě stránky sestavy bez zatrženého označovacího čtverce Umístit na zvláštní stránku. Čísla znamenají možnosti nabízené combo boxem:

1. Hlava sestavy před hlavou stránky;

2. Hlava sestavy za hlavou stránky;

3. Hlava sestavy bez hlavy stránky.

Druhá skupina obrázků ukazuje první dvě stránky sestavy se zatrženým označovacím čtvercem Umístit na zvláštní stránku. Čísla znamenají možnosti nabízené combo boxem:

1. Hlava sestavy před hlavou stránky;

2. Hlava sestavy za hlavou stránky;

3. Hlava sestavy bez záhlaví a paty stránky.

Zatrhnete-li označovací čtverec Plovoucí pata stránky, nebude pata stránky na konci stránky, ale těsně za poslední oblastí. Týká se to všech stránek sestavy, nikoli jen stránky poslední. Dva příklady za všechny na následujícím obrázku.


Vztah paty sestavy a stránky

Vzájemný vztah oblastí na počátku sestavy ukážeme na obrázcích. Použité zkratky znamenají:

PT SES - pata sestavy

PT STR - pata stránky

HL STR - hlava stránky

První skupina obrázků ukazuje poslední dvě stránky sestavy bez zatrženého označovacího čtverce Umístit na zvláštní stránku. Čísla znamenají možnosti nabízené combo boxem:

1. Pata sestavy před patou stránky;

2. Pata sestavy za patou stránky;

3. Pata sestavy bez paty stránky.

Druhá skupina obrázků ukazuje poslední dvě stránky sestavy se zatrženým označovacím čtvercem Umístit na zvláštní stránku. Čísla znamenají možnosti nabízené combo boxem:

1. Pata sestavy před patou stránky;

2. Pata sestavy za patou stránky;

3. Pata sestavy bez záhlaví a paty stránky.

Zatrhnete-li označovací čtverec Plovoucí pata stránky, nebude pata stránky na konci stránky, ale těsně za poslední oblastí. Týká se to všech stránek sestavy, nikoli jen stránky poslední. Dva příklady za všechny na následujícím obrázku.


Volba barvy v návrhu pohledu

Barva se při definování pohledu dá volit pro pozadí celého pohledu a pro pozadí a texty jednotlivých složek. Barva textu pro pohled se uplatní pouze jako implicitní barva pro nově vkládané složky. Volba se provádí při nastavování parametrů složky nebo globálních parametrů pohledu.

Barvu volíte tak, že při nastavování parametrů stisknete tlačítko Barva pozadí nebo Barva textu Tím otevřete okno s nabídkou barev. Na zvolenou barvu ukažte a stiskněte tlačítko myši. Barva se pro kontrolu objeví v prostoru mezi tlačítky. Volbu potvrdíte stiskem tlačítka Vybráno nebo zrušíte stiskem tlačítka Zrušit volbu. Tlačítko Standardní slouží k nastavení barev podle použitého schématu v Control Panelu (odpovídá té kombinaci, která byla použita při automatickém návrhu - většinou černá na bílé). Barvy v pohledu se v tomto případě budou měnit v závislosti na barevném schématu Windows.

V závislosti na grafických schopnostech Vašeho video-adaptéru jsou některé barvy nahrazeny rastry. Rastry doporučujeme používat opatrně, snižují čitelnost textu. Pro výběr barvy textu jsou nastaveny pouze nerastrové barvy.


Fonty v návrhu pohledu

Font lze zvolit pro konkrétní složku pohledu, nebo globálně pro všechny složky, které nemají stanovený vlastní font. Volba se provádí při nastavování parametrů složky nebo globálních parametrů pohledu.

V dialogovém okně pro výběr fontu vybíráte:

Jméno fontu - v combo poli se Vám nabízejí nainstalované fonty, které jsou k dispozici. Výběr fontů je možno ovlivnit z prostředí Windows pomocí Control Panelu.

Styl - nabídka řezů k danému fontu;

Regular = normální,

Italic = kurzíva,

Bold = tučné.

Velikost fontu - vyberte jednu z nabízených velikostí nebo napište jinou velikost. Jiné než nabízené velikosti se dají použít pro tzv. True Type fonty. Pokud požadovaná velikost není k dispozici, použije se nejbližší možná.

Efekty - můžete mít písmo Podtržené nebo vodorovně Přeškrtnuté.

Vybraný font se Vám zobrazuje v okně označeném Vzorek. Na tomto vzorku zároveň vidíte, obsahuje-li použitý font českou diakritiku.


Nabídkový panel

Nabídkový panel je okno, které umožňuje nejpohodlnějším způsobem vytvářet a vkládat nové složky do návrhu pohledu.

Po vstupu do návrháře pohledu je nabídkový panel v pravém spodním rohu obrazovky. Lze ho přemístit kamkoli jinam. Lze ho také kdykoli uzavřít a později znovu otevřít pomocí položky  Nabídkový panel v submenu Zdroj dat.

Přepínač v horní části panelu umožňuje volit, zda obsahem nabídky mají být  Atributy ze zdroje dat zvoleného pro pohled, nebo  Proměnné definované v projektu.

V levé části panelu je velký seznam jmen. V tomto seznamu jsou obsažena buď jména atributů z určité tabulky nebo aliasy (jména) tabulek, které se podílejí na dotazu, anebo identifikátory proměnných projektu.

Ze seznamu lze vybírat jména a připojovat je k obsahu editačního pole nad seznamem. Jméno vyberete buď tak, že na něm dvakrát stisknete levé tlačítko myši, anebo jméno označíte a stisknete tlačítko  Připojit.

Při sestavování přístupu k atributu lze na nabídkovém panelu použít dalších operací. Kromě výběru a připojení jména tabulky, atributu nebo proměnné můžete:

   Připojit znak # za atribut proměnné velikosti nebo multiatribut. Tím získáte údaj označující délku atributu nebo počet složek multiatributu.

   Připojit index za multiatribut. Před připojením indexu buď vyplníte jeho hodnotu do pole vlevo od tlačítka, nebo toto pole ponecháte prázdné a tak připojíte prázdný index. Tím získáte přístup buď k jedné složce multiatributu nebo ke všem složkám prostřednictvím zvláštního okna nebo

seznamu.

Vrátit se o krok zpět a odpojit naposled připojenou část pomocí tlačítka Krok zpět.

Pracujete-li s dotazem, pak v prvním kroku vyberete z nabídnutého seznamu alias tabulky, a v dalším jméno atributu z této tabulky.

Pokud vyberete atribut typu ukazatel, nabídnou se Vám atributy z té tabulky, kam ukazatel směřuje. Díky tomu můžete vytvářet poměrně dlouhé přístupové cesty k atributům.

U pravého okraje panelu je sloupec tlačíte, které symbolizují jednotlivé druhy složek. Jsou zde ve stejném pořadí, jako v submenu  Složka. Složky se liší podle toho, navrhujete-li pohled standardní nebo obecný.


Výběr složek z nabídkového panelu (obecný pohled)

U pravého okraje panelu jsou dva sloupce tlačítek, které symbolizují jednotlivé druhy složek.

hodnotová složka

nápis

editační složka

tlačítko

složka combo

seznam

označovací čtverec

přepínací tlačítko (přepínač)

text

obrázek

rám nebo čára

složka OLE

subpohled

posuvník

krokovač

indikátor postupu

formátovaný text (RTF)

Adekvátně tomu, jak měníte obsah editačního pole, se mění nabídka druhů složek. Dokud je editační pole prázdné, jsou k dispozici všechny druhy složek. Poté, co vyberete některý atribut, zůstanou na panelu pouze ty druhy, které jsou pro něj použitelné.

Rozhodnete-li se vytvořit některou složku, pak nejprve její jméno přeneste do editačního pole, a pak stiskněte tlačítko symbolizující vybraný druh složky. Tím vznikne nová složka a umístí se do clipboardu. Ukazovatel myši (kurzor) se změní na symbol složky. POZOR! Tato změna se projeví pouze nad tou částí obrazovky, kam je možno složku umístit, tj. nad dosud nezaplněnou oblastí pohledu. Složku pak přesunete na vhodné místo obvyklým způsobem.

Složku, vytvořenou takto v clipboardu, můžete před jejím přenesením do některé oblasti zrušit tak, že opakovaným stiskem uvolníte tlačítko, které ji vytvořilo.


Parametry složky pohledu
Parametry pohledu a jeho složek

Parametry pohledu jako celku  i jeho jednotlivých složek se od verze 4.32 nastavují výlučně pomocí panelu vlastností, který lze otevřít (a zavřít) pomocí položky menu Zobrazení/Seznam vlastností.

Popis jednotlivých vlastností získáte stiskem klávesy F1, je-li na panelu vybrána příslušná vlastnost.

viz také: Panel vlastností


Parametry společné všem složkám pohledu
Dodatečné parametry složek

Souřadnice X a Y, šířka a výška - poloha a rozměry složky v pixelech obrazovky. Pro tisk se přepočítává 96 pixelů na palec. V nižších verzích byla tato hodnota 80 pixelů na palec, mohlo tedy dojít při přenosu tiskových sestav do nové verze k změně velikosti a rozložení složek, za což se omlouváme.

Identifikace - identifikační číslo složky v rozmezí 1 až 255. Využije se např. K přímému přístupu ke složce v aplikacích psaných v externím jazyce. Každé dvě složky musí mít různá čísla, jinak budou mít nedefinované obsahy.  Tuto hodnotu vrací funkce Current_item.

Obnovit složku po změně v záznamu ? - je-li čtverec zaškrtnut, pak se složka překresluje po jakékoliv změně v záznamu. Používá se v případě, že jedna složka (např. hodnotová) je závislá na jiné složce. Standardně je nastaveno neobnovovat (složky neblikají).

Lze složku vybrat klávesou TAB? - je-li tento čtverec zaškrtnut, pak se na složku lze dostat tak, že v pohledu opakovaně stisknete klávesu TAB.

Povoleno přetečení vpravo při tisku -  povoleno pouze pro standardní pohledy; použije se v případech, když chceme zobrazit text delší než je šířka sloupce - např. pro nadpis v hlavičce sestavy.

Podmínka viditelnosti - výraz typu Boolean udávající podmínku, za níž je tato složka viditelná.

příklad:	PLAT > 0

Podmínka aktivity - výraz typu Boolean udávající podmínku, při níž se dá se složkou pracovat.

příklad:	DAT_NAR > TODAY() - 365*25

Vysvětlující text - text, který se zobrazí na informační lince při vybrání složky.

Číslo nápovědy - zde lze vyplnit číslo stránky v nápovědě, kterou si pro svoji aplikaci sami vytvoříte. Tato stránka se otevře, pokud při práci s pohledem stisknete klávesu F1 na této položce. Nápověda musí být uložena v souboru WB602.HLP umístěném ve stejném adresáři, jako programy WB602.EXE resp. WBR602.EXE nebo v souboru .HLP určeném procedurou Help_file.. Pokud nevytváříte vlastní nápovědu, pak obsah tohoto parametru neměňte.

Dotazové pole - zde určíte, má-li složka sloužit jako tzv. dotazové pole a případně jakého typu. Jako dotazová pole se používají převážně editační složky, comba, označovací čtverce a přepínače v obecných pohledech.

Dotazová podmínka - podmínka ve tvaru    atribut operátor % , kde % znamená hodnotu zapsanou do dotazového pole.

U složky typu Rám je část parametrů neaktivní.


Dotazová pole

Do obecného pohledu lze vložit speciální složky, které budou sloužit k zadávání omezení na záznamy, které se v pohledu objevují. Tím se zjednodušuje proces kladení dotazu a vyhledávání záznamů, které obsahují určité hodnoty. Místo otevření dotazového okna (standardního QBE nebo uživatelem navrženého), vyplnění omezení a jeho potvrzení stačí pouze vyplnit omezení.

Dotazové pole se do pohledu vloží jako každá jiná složka, ale v dialogovém okně s parametry složky je nutno tlačítkem Další parametry otevřít další okno, v němž se specifikují parametry dotazového pole. V combu Dotazové pole vyberete buď Statické nebo Dynamické dotazové pole a případně vyplníte také Dotazovou podmínku.

Pokud Dotazová podmínka vyplněna není, pak o funkcí dotazového pole rozhoduje atribut, s nimž je pole svázáno. Přepokládejme, že dotazové pole má uvedený atribut os_číslo. Pak pokud při práci s pohledem uživatel napíše do dotazového pole hodnotu 200, pak se vyberou záznamy, v nichž je v atributu os_číslo hodnota 200. Pokud uživatel napíše >200, pak se vyberou záznamy, v nichž je hodnota atributu os_číslo větší než 200.

Vyplněním Dotazové podmínky lze uživateli ulehčit zadávání složitějších podmínek. Uvedete v ní booleovský výraz, v němž jsou místa, do nichž se má vložit hodnota zadaná uživatelem, označena znakem %. Jakmile uživatel zadá omezující hodnotu, zapíše se na místa znaků % a do pohledu se vyberou záznamy splňující takto vzniklou podmínku. Například pokud Dotazová podmínka bude os_číslo > %-10 and os_číslo < %+10, pak se do pohledu vyberou záznamy, v nich se hodnota atributu os_číslo liší od uživatelem zadané o méně než 10. Pokud Dotazová podmínka bude příjmení .= %, pak se v pohledu objeví záznamy, v nichž atribut příjmení začíná zadaným řetězcem.

Dynamické dotazové pole ovlivní obsah pohledu, jakmile je v něm změněn jakýkoli znak. Hodí se zejména pro vyhledávání pomocí prefixu řetězce.

Statické dotazové pole ovlivní obsah pohledu, jakmile je v něm změněna hodnota a stisknuta klávesa Enter nebo je složka opuštěna. Hodí se zejména pro vyhledávání pomocí kompletně zadané hodnoty.

Omezení zadaná tímto způsobem se skládají s omezeními zadanými všemi ostatními způsoby. Lze je odstranit smazáním dotazového pole nebo stejně, jak se odstraňuje položený dotaz (např. tlačítkem na ovládací liště).


Parametry složky Hodnota

Hodnota - výraz, jehož hodnota bude tvořit obsah složky. Vyplňuje se tehdy, pokud se má hodnota složky vypočítat z hodnot atributů a proměnných. Jinak použijte "Přístup k hodnotě".

Zobrazení - způsob zobrazení složky. Význam tohoto údaje závisí na typu atributu, může to být např. počet desetinných míst nebo formát data. Možné tvary lze získat z combo pole.

Barva pozadí a textu - pomocí tlačítek  můžete zvolit barvu pozadí složky a textu ve složce.

Font - font použitý pro texty ve složce, viz fonty v pohledu. Nezvolíte-li žádný, použije se font uvedený v globálních parametrech pohledu; pokud ani ten explicitně nezvolíte, použije se font definovaný v parametrech WinBase602 viz Menu "Nástroje.

Umístění obsahu - lze volit, zda obsah hodnotové složky má být vlevo, vpravo nebo uprostřed pole, které složka zabírá.

Tlačítko Další údaje - viz Dodatečné parametry složek.


Parametry složky Nápis

Nápis - text ve složce, používá se pro vysvětlující texty v pohledu (např. popisky editačních polí). Délka řetězce je omezena na 230 znaků. Nápis se rozláme do řádků podle šířky pohledu.

Barva pozadí a textu - pomocí tlačítek  můžete zvolit barvu pozadí složky a textu ve složce.

Font - font použitý pro texty ve složce, viz fonty v pohledu. Nezvolíte-li žádný, použije se font uvedený v globálních parametrech pohledu; pokud ani ten explicitně nezvolíte, použije se font definovaný v parametrech WinBase602 viz Menu "Nástroje.

Umístění obsahu - lze volit, zda obsah hodnotové složky má být vlevo, vpravo nebo uprostřed pole, které složka zabírá.

Tlačítko Další údaje - viz Dodatečné parametry složek.


Parametry Editační složky

Atribut nebo proměnná - jméno atributu nebo proměnné, jehož hodnota je obsahem složky. V závislosti na typu lze k identifikátoru připojit indexy, přechody přes ukazatel nebo jména složek záznamu.

Barva pozadí a textu - pomocí tlačítek  můžete zvolit barvu pozadí složky a textu ve složce.

Font - font použitý pro texty ve složce, viz fonty v pohledu. Nezvolíte-li žádný, použije se font uvedený v globálních parametrech pohledu; pokud ani ten explicitně nezvolíte, použije se font definovaný v parametrech WinBase602 viz Menu "Nástroje.

Zobrazení - způsob zobrazení složky. Význam tohoto údaje závisí na typu atributu, může to být např. počet desetinných míst nebo formát data. Možné tvary lze získat z combo pole.

Integritní omezení - výraz typu Boolean, udávající podmínku na hodnotu, kterou se pomocí této složky pokusíte zapsat do databáze. Zapisovaná hodnota je ve výrazu nahrazena znakem #. Hodnotu # můžete také předat odkazem funkci programu, která s ní ještě před zápisem může provést určité změny. Funkce musí vracet Boolean.

příklad: 	(#>0)

Preformatuj(#)

Akce při chybě - příkaz vnitřního programovacího jazyka nebo procedura programu, který se provede, pokud zadáte nepřípustnou hodnotu, ať už z důvodu typové kontroly nebo integritního omezení.

příklad:	INFO_BOX("Chyba","Zadejte číslo větší než nula!!!")

Implicitní hodnota - hodnota, která se zapíše do každého nového záznamu vloženého klávesou INS.

příklad:	TODAY()

Akce po změně - příkaz jazyka nebo procedura programu, které se provedou po přepsání hodnoty ve složce. Zadává se pomocí nabídky akcí.

Tlačítko Další údaje - viz Dodatečné parametry složek.

Pro atribut typu Text lze nově vytvořit editační složku víceřádkovou - viz Víceřádková editační složka.


Parametry složky Tlačítko

Akce - příkaz vnitřního programovacího jazyka, který se provede, pokud na složce stisknete tlačítko myši. Zadává se pomocí nabídky akcí.

Font - font použitý pro nápis na tlačítku, viz fonty v pohledu. Nezvolíte-li žádný, použije se font uvedený v globálních parametrech pohledu; pokud ani ten explicitně nezvolíte, použije se font definovaný v parametrech WinBase602 viz Menu "Nástroje.

Nápis - text na tlačítku. Je-li v tomto textu znak &, pak se v nápisu neobjeví, následující znak bude podtržený a bude sloužit jako horká klávesa.

Obrázek na tlačítku - nabídka obrázků v aplikaci; vybraný obrázek se zobrazí ve středu tlačítka. Je-li současně zvolený i nápis, obrázek má přednost. V platnosti však zůstává horká klávesa v nápisu definovaná.

Je-li zvolený libovolný obrázek, objeví se ještě tlačítko Pozadí obrázku a vzorek vybraného pozadí.

Atribut - jméno atributu, ke kterému se vztahuje činnost tlačítka: má-li tlačítko otevřít vázací pohled, je zde uveden jméno atributu typu Ukazatel, má-li zpřístupnit historické hodnoty, je zde zapsáno jméno atributu typu Historie.

Tlačítko Další údaje - viz Dodatečné parametry složek.


Parametry složky Combo

Atribut nebo proměnná - jméno atributu nebo proměnné, jehož hodnota je obsahem složky. V závislosti na typu lze k identifikátoru připojit indexy, přechody přes ukazatel nebo jména složek záznamu. Speciálně prázdný index [ ] umožní pracovat se všemi složkami multiatributu.

Barva pozadí a textu - pomocí tlačítek  můžete zvolit barvu pozadí složky a textu ve složce.

Font - font použitý pro texty ve složce, viz fonty v pohledu. Nezvolíte-li žádný, použije se font uvedený v globálních parametrech pohledu; pokud ani ten explicitně nezvolíte, použije se font definovaný v parametrech WinBase602 viz Menu "Nástroje.

Integritní omezení - výraz typu Boolean, udávající podmínku na hodnotu, kterou se pomocí této složky pokusíte zapsat do databáze. Zapisovaná hodnota je ve výrazu nahrazena znakem #. Hodnotu # můžete také předat odkazem funkci programu, která s ní ještě před zápisem může provést určité změny. Funkce musí vracet Boolean.

příklad: 	(#>0)

Preformatuj(#)

Akce při chybě - příkaz vnitřního programovacího jazyka WinBase602, který se provede, pokud zadáte nepřípustnou hodnotu, ať už z důvodu typové kontroly nebo integritního omezení. Není-li akce zadána, ukáže se na obrazovce informační okno.

příklad:	INFO_BOX("Chyba","Zadejte číslo větší než nula!!!")

Implicitní hodnota - hodnota, která se zapíše do každého nového záznamu vloženého klávesou INS.

příklad:	TODAY()

Akce po změně - příkaz jazyka nebo procedura programu, které se provedou po přepsání hodnoty ve složce. Zadává se pomocí nabídky akcí

Combo pole mohou být dvojího druhu :  Editovatelné a Překládané.

Combo pole s překládanými hodnotami je možno použít pouze na atributy typu Short, Integer a Char. V pohledu se otevře combo s hodnotami zapsanými do políčka Nabízený řetězec, zatímco do tabulky se zapíší hodnoty Překlad z téhož řádku. Toto combo pole nelze editovat.

Překlad musí být zadán číslem, a to i v případě, že atribut, s nimž se pracuje, je typu Char. i pro tento typ je nutno zadávat čísla mezi 0 a 255, do databáze se zapisují odpovídající kódy znaků. Velká písmena anglické abecedy jsou v rozmezí 65-90.

Editovatelné combo pole umožňuje nabídku, zapsanou do políčka Nabízený řetězec libovolně upravovat. Je použitelné pro všechny textové i numerické atributy.

Dotaz - výběr položek comba z předem připraveného číselníku.- viz dotaz v combu

Tlačítko Další údaje - viz Dodatečné parametry složek.


Parametry složky Seznam

Atribut - jméno multiatributu, jehož hodnoty se mají v seznamu objevit, u jména musí být prázdný index;

příklad:	DĚTI[]

nebo jméno proměnné typu pole, opět s prázdným indexem;

příklad:	PomPole[]

v seznamu obsahujícím pole se na obrazovce objeví pouze prvních 60 složek, při tisku se však objeví všechny.

Barva pozadí a textu - pomocí tlačítek  můžete zvolit barvu pozadí složky a textu ve složce.

Font - font použitý pro texty ve složce, viz fonty v pohledu. Nezvolíte-li žádný, použije se font uvedený v globálních parametrech pohledu; pokud ani ten explicitně nezvolíte, použije se font definovaný v parametrech WinBase602 viz Menu "Nástroje.

Zobrazení - způsob zobrazení složky. Význam tohoto údaje závisí na typu atributu, může to být např. počet desetinných míst nebo formát data. Možné tvary lze získat z combo pole.

Pružná výška v sestavě - použije se pouze v sestavě. Způsobí roztažení složky a případně i roztažení záznamu tak, aby se vypsaly všechny složky multiatributu.

Tlačítko Další údaje - viz Dodatečné parametry složek.


Parametry složky Označovací čtverec
Parametry složky Označovací čtverec a Přepínač

Atribut nebo proměnná - jméno atributu nebo proměnné, jehož hodnota je obsahem složky. V závislosti na typu lze k identifikátoru připojit indexy, přechody přes ukazatel nebo jména složek záznamu. Speciálně prázdný index [ ] umožní pracovat se všemi složkami multiatributu.

Barva pozadí a textu - pomocí tlačítek  můžete zvolit barvu pozadí složky a textu ve složce.

Font - font použitý pro texty ve složce, viz fonty v pohledu. Nezvolíte-li žádný, použije se font uvedený v globálních parametrech pohledu; pokud ani ten explicitně nezvolíte, použije se font definovaný v parametrech WinBase602 viz Menu "Nástroje.

Nápis - text napravo od přepínače. Je-li v tomto textu znak &, pak se v nápisu neobjeví, následující znak bude podtržený a bude sloužit jako horká klávesa.

Referenční hodnota - hodnota, s níž se porovnává hodnota atributu. Shodují-li se, je přepínač zatržen. Má význam pro skupinu přepínačů, jimiž se vybírají předem známé hodnoty.

Akce po změně - příkaz jazyka nebo procedura programu, které se provedou po přepsání hodnoty ve složce. Zadává se pomocí nabídky akcí.

Tlačítko Další údaje - viz Dodatečné parametry složek.

Stav logického atributu nebo vztah k referenční hodnotě lze nově indikovat i dvoustavovými tlačítky - viz Dvoustavová tlačítka.


Parametry složky Text

Atribut - jméno atributu typu text, do něhož se bude pomocí této složky zapisovat.

Barva pozadí a textu - pomocí tlačítek  můžete zvolit barvu pozadí složky a textu ve složce.

Font - font použitý pro texty ve složce, viz fonty v pohledu. Nezvolíte-li žádný, použije se font uvedený v globálních parametrech pohledu; pokud ani ten explicitně nezvolíte, použije se font definovaný v parametrech WinBase602 viz Menu "Nástroje.

Zachovat formát -  je-li zaškrtnut, pak se formát textu neupraví podle poměrů na obrazovce resp. tiskárně a bude vypadat přesně tak, jak byl zformátován v editoru.

Pružná výška v sestavě - použije se pouze v sestavě. Způsobí roztažení složky a případně i roztažení záznamu tak, aby se vytiskl celý obsah složky text. V tomto případě doporučujeme umístit Text na spodní okraj pohledu, aby případné roztažení složky nepřekrylo jiné složky nacházející se pod ní.

Tlačítko Další údaje - viz Dodatečné parametry složek.

Pro atribut typu Text lze nově vytvořit i víceřádkovou editační složku - viz Víceřádková editační složka.


Parametry složky Obrázek

Atribut - jméno atributu typu obrázek,

Fixní obrázek - nabídka obrázků importovaných do databáze; obrázek bude ve všech záznamech stejný - použití např. logo firmy do záhlaví dopisu apod.

Barva pozadí  - pomocí tlačítka  můžete zvolit barvu pozadí složky.

Zobrazení - způsob zobrazení obrázku.

Pevná velikost - obrázek (příp. jeho část) bude zobrazena ve skutečné velikosti;

Proměnná velikost - velikost obrázku bude upravena na velikost složky.

Zachovat poměr stran - dodrží se pouze jeden z rozměrů obrázku a přitom se zachová poměr stran , obrázek se nedeformuje;

Tlačítko Další údaje - viz Dodatečné parametry složek.


Parametry složky Rám, čára

Barva čáry a pozadí - pomocí tlačítek  můžete zvolit barvu čáry a pozadí rámu.

Tlačítko Další údaje - viz Dodatečné parametry složek. Mnohé dodatečné parametry (viditelnost aj) nejsou u této složky povoleny.


Parametry složky OLE

Atribut - jméno atributu typu  OLE;

Název - pojmenování složky, bude uvedeno v nadpisu OLE serveru při zpracování této složky;

Druh objektu - lze předepsat, že složka smí obsahovat pouze vložený objekt, pouze připojený objekt nebo jakýkoli objekt;

Zobrazení - Předepisuje způsob zobrazení OLE objektu:

Vyplnit prostor - velikost upravit tak, aby okno složky bylo obrázkem objektu přesně vyplněno;

Zachovat velikost - zachovat původní rozměr obrázku objektu;

Zachovat poměr stran - dodržet pouze jeden z rozměrů složky a přitom zachovat poměr stran v obrázku objektu (nedeformovat);

Zobrazit pouze ikonu - místo obrázku objektu se zobrazí pouze ikona jeho OLE serveru ve skutečné velikosti;

Zobrazit pouze titulek - místo obrázku objektu se zobrazí pouze jeho titulek z popisu OLE objektu

Server - lze vybrat jeden z nabídky OLE serverů instalovaných na počítači nebo položku  Libovolný server; je-li server vybrán, lze do složky vkládat nebo připojovat pouze objekty tohoto serveru, není-li vybrán, lze použít objekty od všech serverů;

Barva pozadí  - pomocí tlačítka  můžete zvolit barvu pozadí složky.

Složky OLE má smysl používat pouze v obecných pohledech.

Mechanismus OLE - viz OLE


Parametry složky Subpohled

Jméno subpohledu - pohled, který slouží jako subpohled, vybraný combem z nabídky existujících pohledů v aplikaci;

Propojovací hodnota (pouze u relačně propojeného subpohledu) - jméno atributu ze superpohledu (tj. pohledu, který se edituje), které slouží jako relační klíč;

Výběrová podmínka (pouze u relačně propojeného subpohledu) - výraz, na jehož základě se budou vybírat záznamy do subpohledu. Tento výraz musí mít tyto vlastnosti:

 1) použijí se v něm atributy ze subpohledu a znak %, který symbolizuje hodnotu atributu superpohledu uvedeného v poli  Propojovací hodnota;

 2) po zapsání hodnoty propojovacího atributu na místo znaku % musí vzniknout výraz typu  Boolean; do subpohledu se vyberou ty záznamy, pro něž tento výraz má hodnotu TRUE;

 3) ve výběrové podmínce se nesmí použít proměnné, konstanty ani funkce projektu.

Nejčastější případ je propojení na rovnost dvou atributů - výraz potom může vypadat takto:

cislo_zak = %

nebo jednodušeji

cislo_zak

Pružná výška v sestavě - použije se pouze v sestavě. Způsobí roztažení složky a (je-li na konci) případně i roztažení záznamu tak, aby se subpohled vytiskl celý.

Použít kurzor ze superpohledu - použije se pro častý případ subpohledu synchronizovaného se superpohledem, kdy oba dva vedou do stejného kurzoru.


Dotaz v combu
Dotaz ve složce Combo

Obsahem tohoto parametru je  dotaz v jazyce SQL, který z databáze vybere data do nabídky patřící ke složce combo. Dotaz musí splňovat tyto podmínky:

  1) v části SELECT musí být uveden buď jeden nebo dva atributy tabulky nebo dotazu;

  2) první atribut uvedený za SELECT musí být některého typu řetězec, může zde stát i výraz;

  3) případný druhý atribut musí být některého z typů Char, Short nebo Integer.

Zadáváte-li v popisu složky parametr Dotaz, pak se ignorují parametry Nabízený řetězec, Překlad a přepínač Editovatelné vs. Překládané. Pokud v dotazu uvedete jeden atribut, pak vznikne editovatelná složka combo. Pokud uvedete dva atributy, pak vznikne needitovatelná složka combo provádějící překlad hodnot.

Pokud odpověď dotazu má více než 500 záznamů, použije je pouze prvních 500 (což je podstatně více, než je rozumné využívat). Pokud byste potřebovali přesto nějakým způsobem vybírat hodnotu z číselníku o více prvcích, použijte relační pohled do číselníku.

První atribut z každého záznamu z odpovědi se objeví v nabídce složky combo. Pokud je uveden i druhý atribut, pak se použije jako překlad obsahu prvního atributu: pokud tedy uživatel vybere z nabídky některou hodnotu, do databáze se ve skutečnosti zapíše hodnota druhého atributu ze stejného záznamu v odpovědi na dotaz.

Dotaz se vyhodnocuje pouze při otevírání pohledu, takže změny obsahu databáze během práce s pohledem neovlivní obsah nabídky hodnot v jeho složkách combo.


Speciální údaje v pohledu

Mimo to, co dovoluje interní programovací jazyk, se v parametrech popisujících složky pohledu smějí používat symboly @, @@ a ##. Všechny tři označují hodnotu typu  Integer a můžete je libovolně začleňovat do výrazů.

Symbol @ označuje absolutní číslo záznamu v tabulce resp. V kurzoru (podle toho, nad čím je pohled vytvořen). Číslo záznamu v tabulce je pro každý záznam neměnné.

Symbol @@ označuje pořadové číslo záznamu v pohledu. Záznamy se číslují od nuly, proto @@ má v prvním záznamu hodnotu 0, v druhém 1 atd.

Hodnota symbolu @@ se liší od @ pouze tehdy, pokud jsou z pohledu automaticky vypouštěny zrušené záznamy. Tak je tomu ve všech pohledech, které nejsou otevřeny se speciálním parametrem DEL_RECS.

Symbol @ má na fiktivním záznamu hodnotu NONEINTEGER.

Během práce s pohledem na obrazovce je na informační řádce průběžně aktualizovaný údaj " @@ / @ ''.

Číslo stránky se v pohledu definujícím výstupní sestavu označuje symbolem ##. Stránky se číslují od jedné. Hodnota symbolu ## v pohledu otevřeném na obrazovce není definována.

Typickým místem, kde se používají složky s číslem stránky, je oblast Hlava stránky nebo Pata stránky.


Návrh uživatelské lišty
Návrh uživatelské lišty s tlačítky

Vybráním položky Návrh / Návrh lišty se dostanete do odlišného samostatného prostředí pro návrh pracovní lišty s tlačítky (Toolbaru).

Menu obsahuje jedinou položku Konec - vybráním se ukončí režim návrháře lišty.

Pod ním je zobrazen návrh nové lišty. Zpočátku je zde kromě standardních tlačítek  fiktivní tlačítko [image], postupně se zobrazují přidávaná tlačítka návrhu. Fiktivní tlačítko je vždy poslední vpravo. Chcete-li přidat nové tlačítko na poslední pozici, vyberete fiktivní tlačítko a stisknete akční tlačítko Editovat. Po vyplnění parametrů se vloží nové tlačítko a fiktivní se posune doprava.

Vždy jedno tlačítko je vybrané - nachází se v horní části okna Editace ovládací lišty. K tomuto tlačítku se vztahují všechny činnosti volitelné pomocí akčních tlačítek okna. Chcete-li vybrat jiné tlačítko z lišty, je nutno ho stisknout myší - z klávesnice to není možné (předpokládá se, že kdo vytváří prostředek určený výhradně pro myš, bude mít myš k dispozici).

K úpravě návrhu slouží tři editační tlačítka :

  Vložit - vloží nové tlačítko před vybrané a otevře okno s parametry tlačítka

  Editovat - otevře okno s parametry vybraného tlačítka

  Zrušit - zruší vybrané tlačítko z návrhu

Dále jsou k dispozici tato akční tlačítka:

  Uložit -  uloží návrh celého pohledu;

  Konec - konec práce, skok zpět do návrháře pohledu;

  Nápověda -  tento text.

pokračování: Parametry tlačítka na liště


Parametry tlačítka na liště

Každému tlačítku na liště je třeba definovat a určit několik parametrů.

Druh tlačítka

standardní - tlačítko použité ve WinBase602 se standardním významem - např. tisk pohledu [image], které je možno použít ve shodném významu i ve Vaší aplikaci.

soukromé - tlačítko s vlastním obrázkem zasílající zprávu uživatelskému programu. Nutnou podmínkou je vytvoření vlastních návrhů obrázků o rozměrech 19 x 19 pixelů a jejich načtení do aplikace - viz Obrázky v aplikaci.

Obrázek - výběr obrázku, který se objeví na tlačítku lišty. Vybíráte ze speciálního combo boxu, jehož položky tvoří v případě volby standardního tlačítka obrázky vhodných tlačítek z WinBase602, v případě volby soukromého tlačítka obrázky, které jste importovali do aplikace. Mají-li tyto obrázky větší rozměry než 19 x 19 bodů, zobrazí se v combu pouze jejich levý horní roh.

Akce - programová nebo standardní akce, které se má zaslat po stisku tohoto tlačítka. Editace je povolena pouze pro soukromá tlačítka (seznam akcí se otevře po stisku tlačítka Nabídka akcí), standardní tlačítka vykonají svou standardní činnost.

Vysvětlující text - text, který se objeví na informační lince (status baru), pokud myš najede na příslušné tlačítko lišty. U standardních tlačítek není nutné vyplňovat, tlačítka si pak ponechají své vlastní informační texty.

Odsazení - výběrem jednoho přepínače určíte, jak má být vybrané tlačítko vzdálené od svého levého souseda.

Žádné  - tlačítka se dotýkají;

Malé - mezi tlačítky je mezera v šíři asi jedné čtvrtiny tlačítka;

Velké - mezi tlačítky je mezera v šíři asi jednoho tlačítka.

Umístit vpravo - tlačítko bude umístěno na pravém okraji lišty (jako je standardně tlačítko Nápověda). Se zmenšováním okna pohledu se pravá tlačítka posouvají tak, aby byla stále stejně vzdálena od pravého okraje okna. Pokud by při zmenšení okna došlo k překrytí tlačítek zleva a zprava, viditelná budou tlačítka na pravé straně. Určení vzdálenosti mezi tlačítky na pravé straně pomocí skupiny přepínačů Odsazení se vztahuje k pravému sousedu.

Stlačením tlačítka Hotovo se nové tlačítko vloží do návrhu lišty.


Pohled pro vstup dat

Takto se označuje pohled, který má sloužit výhradně k zadávání údajů do tabulky nebo dotazu (tzn. nelze jím prohlížet záznamy). Při návrhu tohoto pohledu je nutno zatrhnout označovací čtverec Pohled pro vstup dat v seznamu vlastností pohledu.

Pohled se otevře prázdný nebo s hodnotami nastavenými jako implicitní. Po vyplnění všech složek pohledu se stiskne klávesa INS, která data vloží do tabulky (dotazu).  Před uložením se provede znova kontrola integrity dat, a pokud některý údaj nevyhovuje nastavenému omezení, budete o tom informováni a záznam se neuloží.


Tvorba grafu
Vytvoření grafu

 Při nabídce druhů nového pohledu zvolte nejprve zdroj dat a poté druh pohledu Graf. Otevře se okno návrháře grafů a v něm se po chvíli, až se spustí program WinGraf602, objeví v levém horním rohu sloupcový graf tvořený simulovanými daty grafického serveru. Plocha tohoto grafu je vyšrafovaná, což znamená, že je spuštěn OLE server tohoto objektu.

Menu návrháře pohledů je značně redukováno - zbyly zde pouze ty položky, které mají pro tento typ pohledu smysluplný význam. Naopak přibyla položka Reálná data, která umožňuje přepínat mezi simulovanými daty grafového serveru a reálnými daty z WinBase602. Zvláště při komplikovaném dotazu může výpočet dat určitou dobu trvat, proto je možné graf navrhovat s daty simulovanými, která se zobrazují daleko rychleji.

V popředí návrháře je otevřený jednoduchý standardní pohled označený Výběr atributů do grafu. Vyplněním tohoto pohledu stanovíte obsah grafu - viz Výběr atributů.

Vlastní návrh grafu se provádí v prostředí programu WinGraf602, do něhož se dostanete přepnutím pomocí seznamu vyvolaného klávesami Ctrl+Esc.


Výběr atributů do grafu

Nejvýznamnější je první sloupec nazvaný Atribut. V combu jsou atributy z tabulky nebo dotazu, který jste zvolili na počátku návrhu.

Z hodnot vybraných atributů numerických typů (Short, Integer, Money, Real) se vytváří průběh grafu.

Hodnoty jednoho vybraného nenumerického atributu (Date, Time, Char, String, CSString, CSIString) se mohou použít jako popis osy X.

Do sloupce Legenda zapište řetězec, který se má objevit v legendě grafu náležící atributu v témže řádku okna.. Automaticky se zde objeví jméno atributu, můžete je však přepsat vlastním popisem, který smí obsahovat jakékoli znaky včetně mezer.

Sloupec Osa X se používá k označení atributu, jehož hodnoty budou na ose X (v grafech XY) resp. budou tvořit popis osy X. Označit je možné pouze jeden atribut - označení druhého způsobí odznačení prvního.

viz Návrh grafu


Grafy ve WinBase602

V soustavě objektů WinBase602 tvoří grafy jeden z druhů pohledů. Graf je alternativní způsobem, jak reprezentovat data z tabulky nebo odpovědi na dotaz. Podobně jako ostatní pohledy, se graf dá tisknout, dá se i použít jako relačně propojený subpohled v pohledech jiných.

Při každém překreslení pohledu s grafem se v grafu objeví aktuální hodnoty. Pokud byste chtěli získat graf pevný, nepropojený na data, vytvořte ho jako vložený objekt do složky typu OLE obecného pohledu.

Návrh grafu je jednodušší než návrh ostatních pohledů. Probíhá ve dvou prostředích: ve WinBase602 v grafovém serveru WinGraf602. Na straně WinBase602 jde zejména o výběr atributů, jejichž hodnoty budou v grafu znázorněny. V grafovém serveru se zvolí typ grafu, souřadná soustava, nastaví se popisky a případně i mnohé další parametry.

Během návrhu grafu budete tedy přecházet mezi prostředím WinBase602 a WinGraf602 stejně, jako mezi jinými dvojicemi aplikací ve Windows: použijete např. kombinace kláves Alt+Tab nebo příkaz Přejdi do… v systémovém menu programu.

viz Návrh grafu


Seznam vlastností pohledu

Vlastnosti pohledu jako celku i jednotlivých složek se nastavujípomocí speciálního okna nazvaného Seznam vlastností.

Chování okna

Okno Seznamu vlastností se samo otevře při prvním spuštění návrháře. Je stále viditelné nad ostatními okny, nicméně neblokuje do nich přístup.  Pokud překáží, dá se odsunout stranou, minimalizovat (tj. nahradit ikonou) nebo zavřít.

Obsah okna

Okno je naplněno vždy údaji o vybrané složce návrhu pohledu. Není-li vybrána žádná složka (nebo je-li vybrána skupina složek), obsahem jsou globální vlastnosti pohledu jako celku.

Okno vlastností se skládá ze dvou částí - levý sloupec tvoří názvy a popisy vlastností, v pravém sloupci se editují a zapisují jejich hodnoty. Hranici mezi sloupci je možné pomocí myši posouvat.

Struktura seznamu - skupiny

Vlastností složky nebo pohledu je více, než by se vešlo na výšku obrazovky. Okno má proto vlastnosti, které spolu tematicky souvisejí, uspořádány do skupin. Každá skupina je znázorněna tlačítkem. Po stisku tlačítka se skupina rozvine - pod tlačítkem se objeví seznam vlastností ze skupiny. Tlačítko rozvinuté skupiny zůstane dole a opětovným stiskem můžete skupinu uzavřít. Skupinu lze také rozvinout nebo uzavřít stiskem kláves Ctrl+Mezera. Stromová struktura vlastností skupin je navíc znázorněna u levého okraje okna čarou vycházející z názvu skupiny a spojující vlastnosti, které do ní patří.

Jedna z vlastností je vždy vybraná - je znázorněna inverzně. Vlastnost vyberete kliknutím nebo pomocí kláves s šipkami. Některé vlastnosti a skupiny jsou vypsány šedě a jsou neaktivní - jsou to ty, které v daném kontextu nemají smysl.

Pravý sloupec

Pravý sloupec slouží k zadání nebo změně hodnoty vybrané vlastnosti ze sloupce levého. Hodnoty se zapisují různými způsoby:

  1) existuje-li k vlastnosti předem daná množina hodnot (viz obrázek), hodnoty se nabídnou v combu;

  2) je-li potřeba pro zadání otevřít samostatné dialogové okno (např. pro volbo fontu), objeví se v pravé části pole tlačítko s šipkou směřující vpravo, které toto dialogové okno otevře;

  3) logické hodnoty (Ano, Ne) se zadávají pomocí označovacího čtverce;

souvisí-li s vlastnostmi nějaká akce, která se má přímo vykonat (např. nastavení rastru pro výstup do souboru), je na místě pole pro zadání hodnot tlačítko s vykřičníkem.

  4) ostatní hodnoty se zapisují do běžných editačních polí;

Zadávání delších hodnot do úzkých editačních polí je nepohodlné. Po stisku kláves Shift+F2 je proto možné si toto editační pole rozšířit.

Nápovědu k jednotlivým vlastnostem získáte tak, že zvýrazníte danou vlastnost a stisknete klávesu F1.

viz 	Popis jednotlivých globálních vlastností

Popis jednotlivých vlastností složky


Popis jednotlivých vlastností pohledu
Popis jednotlivých globálních vlastností pohledu

viz také Seznam vlastností

Druh pohledu

Druh pohledu (obecný, standardní, štítky, graf) je zvolen ještě před vlastním návrhem. Nelze ho po celou dobu návrhu změnit.

Členění

Určíte, co bude obsahem okna pohledu nebo jedné stránky sestavy. Volba Jeden záznam znamená, že v okně resp. na jedné stránce bude jediný záznam. V ostatních případech bude okno resp. stránka vyplněna tolika záznamy, kolik se jich tam vejde. Oddělením záznamů se zde míní vykreslení tenké nebo tlusté vodorovné čáry mezi záznamy.

Obsah

Stanovíte, odkud se budou brát data pro pohled - z tabulky, z odpovědi na dotaz nebo pouze z proměnných projektu. Použije se tehdy, chcete-li změnit nastavení určený před návrhem.

Zdroj dat

Combo Vám nabídne seznam tabulek nebo dotazů z aplikace, které můžete použít jako zdroj dat, pokud byste dříve nastavený zdroj chtěli změnit.

Vzhled obsahu

Sdružuje skupinu vlastností, které se týkají vzhledu složek a pohledu jako celku (barvy, pozadí apod.)

Font

Informuje o použitém fontu pro všechny složky pohledu. Font je možno změnit pomocí dialogu, který se otevře po stisku tlačítka vpravo.

Není-li zvolen žádný font, použije se font nastavený v globálních parametrech WinBase602. V poli je pak nápis Font WinBase602.

Zvolený font se použije pouze v těch složkách, které nemají specifikovaný vlastní font.

Vybraný font se zruší stiskem klávesy Del.

Barva textu

Pole informuje o barvě nastavené globálně pro text ve složkách. Barvu je možno změnit pomocí dialogu, který se otevře po stisku tlačítka vpravo. Výběr je možný pouze z nerastrových barev. Jejich počet je dán videokartou počítače (16 nebo 256). Zvolená barva bude barvou textu ve složkách, které nově vložíte. V každé složce máte pak možnost tuto barvu individuálně změnit. Volbou barvy textu nezměníte zpětně barvu dříve vložených složek.

Není-li dosud zvolena žádná barva, použije se standardní barva Windows.

Barva pozadí

Pole informuje o barvě nastavené globálně pro pozadí pohledu. Barvu je možno změnit pomocí dialogu, který se otevře po stisku tlačítka vpravo.

V obecných pohledech se zde zvolená barva pozadí uplatní v oblastech pohledu mimo složky. Objeví se také na pozadí nově vkládaných složek. Volbou barvy však nezměníte zpětně barvu pozadí v již vložených složkách.

Není-li dosud zvolena žádná barva, použije se standardní barva Windows.

Obrázek v pozadí

Pole informuje o obrázku, který byl určen jako pozadí pohledu. Nebyl-li dosud určen, je zde nápis -Není-. Combo nabízí všechny obrázky importované do aplikace.

Vybraný obrázek se zruší stiskem klávesy Del.

Tisknout pozadí

Přepínač, umožňující stanovit, má-li se při tisku sestavy tisknout i grafické nebo barevné pozadí pohledu. Tisk pozadí (hlavně na jehličkových tiskárnách) značně zpomaluje tisk.

Zrušené záznamy

Zapnete-li přepínač Zrušené záznamy, pak pohled bude mít tyto (neobvyklé) vlastnosti:

1) vede-li do tabulky, pak v něm po otevření nebo při tisku budou i zrušené záznamy

2) vede-li do tabulky, pak záznamy, které při práci s pohledem zrušíte, nezmizí z obrazovky, ale zůstanou nezměněné v pohledu

3) vede-li pohled do odpovědi na dotaz, pak záznam, který zrušíte, nezmizí, ale bude obsahovat nápisy Zrušeno.

Zahrnutím zrušených záznamů lze podstatně urychlit práci s pohledem obsahujícím velmi mnoho záznamů. Zejména v případě pohledů do dotazů, v nichž žádné zrušené záznamy z povahy věci nejsou, nebo pohledů na jediný záznam, je zahrnutí opodstatněné.

Sjednotit text

Tlačítkem Sjednotit text nastavíte barvu textu všech složek v pohledu na barvu určenou v parametru Barva textu.

Změnit barvu textu u skupiny složek obecného pohledu lze po označení této skupiny pomocí menu vyvolaného pravým tlačítkem.

Sjednotit pozadí

Tlačítkem Sjednotit pozadí nastavíte barvu pozadí všech složek v pohledu na tu barvu, kterou má pozadí pohledu.

Změnit barvu pozadí u skupiny složek obecného pohledu lze po označení této skupiny pomocí menu vyvolaného pravým tlačítkem.

Okno pohledu

Skupina vlastností popisující vzhled a chování okna pohledu.

Nadpis

Do pole Nadpis můžete zadat nadpis, který se objeví na horním rámu okna pohledu. Neuplatní se v subpohledech ani v sestavách.

Souřadnice X

Hodnotami zapsanými do polí Souřadnice X: a Y: specifikujete polohu okna pohledu při jeho otevření na obrazovce.

Souřadnice se zadávají  v pixelech relativně vzhledem k levému hornímu vnitřnímu rohu hlavního okna WinBase602 (pod lištou s tlačítky).

Polohu pohledu můžete snáze nastavit tak, že návrh pohledu posunete na zvolené místo na obrazovce.

Souřadnice Y

Hodnotami zapsanými do polí Souřadnice X: a Y: specifikujete polohu okna pohledu při jeho otevření na obrazovce.

Souřadnice se zadávají  v pixelech relativně vzhledem k levému hornímu vnitřnímu rohu hlavního okna WinBase602 (pod lištou s tlačítky).

Polohu pohledu můžete snáze nastavit tak, že návrh pohledu posunete na zvolené místo na obrazovce.

Šířka

Pomocí pole Šířka zadáte horizontální rozměr okna pohledu na obrazovce. Udává se v pixelech.

V praxi nastavíte rozměry okna pohledu snáze prostě tak, že změníte rozměry návrhu.

Šířka okna pohledu může být i menší, než je horizontální rozloha složek pohledu. Pak v pohledu nebudou současně viditelné všechny složky a horizontální posuvník u spodního okraje pohledu umožní pohyb vpravo a vlevo. Tato vlastnost je zcela přirozená u standardních pohledů, v obecných pohledech působí poněkud nepohodlně.

Při navrhování šířky pohledu počítejte s tím, že u pravého okraje se po otevření objeví svislý posuvník.

Výška

Pomocí pole Výška zadáte vertikální rozměr okna pohledu na obrazovce. Udávají se v pixelech.

V praxi nastavíte rozměry okna pohledu snáze prostě tak, že změníte rozměry návrhu. V obecném pohledu bude výška pohledu součtem výšky hlavičky okna a datové oblasti v návrháři.

Pevná velikost

Přepínač Pevná velikost způsobí, že velikost okna pohledu nelze po otevření změnit. Okno bude mít pouze tenký rám.

Lze maximalizovat

Pohled půjde nebo nepůjde maximalizovat.

Lze minimalizovat

Pohled půjde nebo nepůjde minimalizovat.

Lze zavřít

Přepínačem Lze zavřít docílíte toho, že okno s pohledem půjde nebo nepůjde zavřít pomocí ikony v levém horním rohu, příkazu v systémovém menu ani žádnou kombinací kláves.

Svislé táhlo

Není-li zatržen čtverec Svislé táhlo, pohled nebude mít svislé táhlo (scroll bar), přechody mezi záznamy tím však nejsou zakázány.

Omezené menu

Zapnutý přepínač Omezené menu změní systémové menu pohledu do dat na menu obvyklé u běžných oken. Chybějící příkazy ze systémového menu se dají nadále provádět pomocí tlačítek na ovládací liště nebo kombinací kláves.

Trojrozměrné

Přepínač Trojrozměrný vzhled změní vzhled složek pohledu trojrozměrný (podobný složkám dialogových oken ve WinBase602). Barva pozadí se přitom změní na světle šedivou. Lze sice použít i jiné barvy pozadí, ty si však (s výjimkou tmavě šedé) s barvami stínů složek příliš nerozumí.

Při navrhování plastického pohledu pamatujte, že je rozumné nechávat mezi editačními složkami několik pixelů volného prostoru, aby se mohly vykreslit stíny dodávající trojrozměrný vzhled.

Chování pohledu

Skupina vlastností ovlivňující chování pohledu.

Zákaz přechodů

Zapnete-li přepínač Zákaz přechodů mezi záznamy, pak v pohledu nebude možno přecházet ze záznamu na záznam.

Zákaz editace

Pokud zapnete přepínač Zákaz editace, pak v pohledu nebude možno měnit hodnoty žádných složek.

Zákaz vkládání INS

Při zapnutí přepínače Zákaz vkládání záznamů pomocí klávesy INS nebude do pohledu možno vkládat nové záznamy jinak než pomocí fiktivního záznamu.

Bez fiktivního

Při zapnutí přepínače Bez fiktivního záznamu se v pohledu nebude trvale zobrazovat fiktivní záznam (záznamy lze vkládat pomocí klávesy Ins, není-li také blokována)

Rušení záznamů

Z nabídky Rušení záznamů můžete zvolit co se stane, pokusí-li se uživatel při práci s pohledem zrušit záznam. Varianta Povoleno dovoluje rušení, varianta Zakázáno jej znemožňuje, varianta Tázat se znamená, že při pokusu o zrušení záznamu bude nutno zrušení potvrdit ve zvláštním dotazovém okně.

Pouze pro vstup dat

Zapnutím přepínače Pouze pro vstup dat vytvoříte speciální pohled, který se dá použít pouze pro vkládání nových záznamů.

Tento druh pohledu se odlišuje od normálních pohledů zejména v tom, že je v něm pouze fiktivní záznam. Do databáze se zapíše až po stisku klávesy Ins nebo provedení akce Vložit záznam. Poté se obsah složek vyprázdní (resp. naplní implicitními hodnotami) a lze vkládat další záznam.

Pokud v pohledu pouze pro vstup dat vyplníte hodnoty složek a pohled zavřete, do databáze se nezapíše nic.

Ukládání

Skupina vlastností týkající se způsobu ukládání dat do databáze.

Ukládat po změně složky

Je-li zatržen přepínač Ukládat po změně složky, zápis do databáze proběhne po každém přepsání složky pohledu. Tento způsob zápisu, nazývaný složková synchronizace, byl ve starších verzích standardní a jediný. Není-li zatržen, používá se tzv. záznamová synchronizace, kdy zápis do databáze proběhne až při opuštění editovaného záznamu.

Ukládat při deaktivaci

Při záznamové synchronizaci je možno dále stanovit, má-li se editovaný záznam uložit při přechodu aktivity na jiné okno. Jestliže ano, zaškrtněte čtverec Ukládat při deaktivaci.

Tázat se před uložením

Při zápisu změn v záznamu do databáze je možno vyžadovat dodatečné potvrzení - čtverec Tázat se před uložením. Je-li zapnut, pak uživatel bude mít po přepsání každého záznamu možnost buď potvrdit nebo odvolat provedené změny, anebo pokračovat v editaci.

Modální chování

Zaškrtnutím čtverce Modální chování způsobíte, že pohled bude po otevření se bude chovat jako modální okno, tj. až do zavření pohledu nebude možno pracovat s jinými okny WinBase602.

Zamčení

Zvolíte-li z nabídky Zamčení variantu Nic, docílíte tím normální práce WinBase602, během níž se záznam automaticky zamyká pouze při editaci textů, práci s obrázkem a přivazování záznamů. Při ostatních editačních akcích se hlídají pouze konflikty vzniklé ze souběžné práce více klientů se stejnými daty.

Varianta Běžný záznam znamená, že WinBase602 se pokusí zamknout pro čtení každý záznam, na který uživatel vstoupí, a odemkne ho při spuštění. Nepodaří-li se záznam zamknout, bude to uživateli oznámeno.

Varianta Všechny záznamy znamená, že WinBase602 se pokusí zamknout všechny záznamy v tabulce nebo tabulkách při otevírání pohledu. Nepodaří-li se zamčení,  pohled nebude otevřen.

Číslo nápovědy

Číslo nápovědy je číslem stránky, na níž se uživatelská nápověda otevře při stisku klávesy F1 při práci s pohledem.

Spočítat záznamy při otevření

Pokud zapnete přepínač Spočítat záznamy při otevření, pak se při otevření pohledu spočítají všechny jeho záznamy.

Posuvník na pravém okraji pohledu bude pohybovat adekvátně pozici v pohledu. Spočtení všech záznamů může v pohledech do velkého počtu záznamů zpomalit otevírání.

Akce při otevření

Zadáte-li Akci při otevření pohledu, můžete definovat akci, která se automaticky provede pokaždé, když je pohled otevřen, a to nezávisle za způsobu otevření. Při provádění akce jsou již vytvořeny a naplněny složky pohledu.

Akce při uzavření

Akce při zavírání pohledu se automaticky provede bezprostředně před zavřením pohledu. Provede se bez ohledu na to, jakým způsobem je pohled zavřen (akcí uživatele, programem, atd.). Akce se provádí před zrušením složek pohledu.

Pokud potřebujete rozlišit akce při zavření pohledu jedním z několika příkazů menu nebo jedním z několika tlačítek, pak specifické akce musíte předřadit akcím zavírajícím pohled a Akci při zavírání pohledu nepoužívat.

Sestava

Skupina vlastností týkající se definování a vzhledu tiskové sestavy.

Úroveň A

 Výraz definující první skupinu záznamů.

Úroveň B

Výraz definující druhou vnořenou skupinu záznamů.

Úroveň C

Výraz definující třetí vnořenou skupinu záznamů.

Úroveň D

Výraz definující čtvrtou vnořenou skupinu záznamů.

Úroveň E

Výraz definující pátou vnořenou skupinu záznamů.

Nová stránka

V návrhu pohledu lze zadat, jak se má sestava členit do stránek. Přitom ale nelze obejít velikost stránky - jediné, čeho lze dosáhnout, je to, že se na novou stránku bude přecházet dříve, než je to nezbytně nutné.

Ve vlastnostech sestavy vyberte jednu z šesti možností comba Nová stránka označených Na úrovni A, B, C, D, E nebo Nikde. Tím specifikujete, že přechod na novou stránku se má vynutit na hranici skupin zvolené úrovně nebo že se nevnucuje nikde, když není zapotřebí.

Hlava sestavy

Vlastnost ovlivňující vzájemný vztah mezi oblastmi na začátku sestavy - viz Záhlaví

Hlava sestavy na zvláštní stránce

Přepínač modifikující předchozí výběr - hlava sestavy bude vždy na samostatné stránce.

Pata sestavy

Vlastnost ovlivňující vzájemný vztah mezi oblastmi na konci sestavy - viz Paty

Pata sestavy na zvláštní stránce

Přepínač modifikující předchozí výběr - pata sestavy bude vždy na samostatné stránce.

Plovoucí pata stránky

Zatrhnete-li označovací čtverec Plovoucí pata stránky, nebude pata stránky na konci stránky, ale těsně za poslední oblastí. Týká se to všech stránek sestavy, nikoli jen stránky poslední.

Rastr

Informuje o nastaveném rastru, tj. počtu pixelů, na jejichž násobky se zaokrouhlují souřadnice složek pohledu.

Není-li dosud nastaven, bere se nastavení z globálních parametrů WinBase602.

Vodorovný krok

Rastr ve vodorovném směru.

Svislý krok

Rastr ve svislém směru.

Pro tisk do souboru

Speciální nastavení rastru pro případ tisku sestavy do souboru, aby nedošlo při zaokrouhlování k tisku několika řádků na řádek jeden.

Štítky

Pole informuje o tom, je-li pohled navrhován v režimu štítků nebo nikoliv. Tlačítkem vpravo je možno vyvolat dialog pro nastavení velikosti štítku.


Popis jednotlivých vlastností složek pohledu

viz také Seznam vlastností

Druh složky

Každá složka pohledu je jednoho určitého druhu. Druh složky se určuje již při vzniku složky a nelze ho později změnit.

Obsah složky

Obsahem složky je atribut, proměnná nebo výraz (pro needitovatelné složky). Je-li zdrojem dat pro pohled tabulka nebo dotaz, pak combo Obsah složky nabízí všechny jeho atributy. Proměnné nebo výrazy musíte vepsat ručně.

Referenční hodnota

Přepínače (případně i zaškrtávací čtverce) se v obecném pohledu dají sdružovat do skupin společně editujících jeden atribut nebo proměnnou. Ve skupině je vždy zapnut nejvýše jeden přepínač. Zapnutím některého přepínače ve skupině se všechny ostatní vypnou.

Atribut, editovaný skupinou přepínačů, není typu Boolean (jako v případě samostatných přepínačů), ale některého jiného typu umožňujícího porovnávání hodnot. Pro každý přepínač je kromě tohoto atributu, uvedeného jako Obsah složky, zadána také Referenční hodnota, která je stejného typu jako atribut a je jiná v každém přepínači ve skupině. Platí tato dvě pravidla:

  1) Přepínač je zobrazen jako zapnutý, pokud se hodnota atributu rovná referenční hodnotě.

  2) Pokud uživatel zapne přepínač, do atributu tím zapíše referenční hodnotu. Tím se automaticky vypnou všechny ostatní přepínače.

Nápis

Neměnný nápis na složce se týká složek typu Nápis, tlačítek a v obecném pohledu také přepínačů a složek OLE. Nápis se zadává vždy bez uvozovek.

Akce

Tlačítko v pravé části pole Akce otevře okno pro zadávání posloupnosti akcí. Uplatní se zvláště u složek typu Tlačítko.

Vzhled obsahu

Skupina vlastností popisující vzhled složky.

Font

Informuje o použitém fontu pro složku pohledu. Font je možno změnit pomocí dialogu, který se otevře po stisku tlačítka vpravo.

Není-li zvolen žádný font, použije se font nastavený pro celý pohled a není-li nastaven ani ten, použije se font určený v globálních parametrech WinBase602. V poli je pak nápis Font WinBase602.

Vybraný font se zruší stiskem klávesy Del.

Barva textu (čáry)

Pole informuje o barvě nastavené pro text ve vybrané složce. Barvu je možno změnit pomocí dialogu, který se otevře po stisku tlačítka vpravo. Výběr je možný pouze z nerastrových barev. Jejich počet je dán videokartou počítače (16 nebo 256).

Není-li dosud zvolena žádná barva, použije se standardní barva Windows.

Barva pozadí

Pole informuje o barvě nastavené pro pozadí vybrané složky. Barvu je možno změnit pomocí dialogu, který se otevře po stisku tlačítka vpravo.

Není-li dosud zvolena žádná barva, použije se standardní barva Windows.

Zobrazení

Combo Zobrazení obsahuje nabídku formátů, v nichž lze obsah daného typu zobrazit.

Obsah nabídky závisí na typu složky:

Pro typy Date a Time (datum a čas) rozsah nabídky závisí na tom, zda je složka editovatelná nebo hodnotová - editovatelné složky mají nabídku menší, nelze například zadávat měsíc slovy. U hodnotových složek pro tyto typy jsou k dispozici i formáty nastavené ve Windows.

Pro Reálné číslo hodnotová složka nabízí zobrazení buď v desetinném, v semilogaritmickém tvaru nebo v účetním formátu (s oddělovači tisíců podle nastavení Windows).

Pro OLE atribut jsou tyto způsoby zobrazení:

Vyplnit prostor - velikost upravit tak, aby okno složky bylo obrázkem objektu přesně vyplněno;

Zachovat velikost - zachovat původní rozměr obrázku objektu;

Zachovat poměr stran - dodržet pouze jeden z rozměrů složky a přitom zachovat poměr stran v obrázku objektu (nedeformovat);

Zobrazit pouze ikonu - místo obrázku objektu se zobrazí pouze ikona jeho OLE serveru ve skutečné velikosti;

Zobrazit pouze titulek - místo obrázku objektu se zobrazí pouze jeho titulek z popisu OLE objektu

Pro Obrázek je nabídka následující:

Pevná velikost - obrázek (příp. jeho část) bude zobrazena ve skutečné velikosti;

Proměnná velikost - velikost obrázku bude upravena na velikost složky.

Zachovat poměr stran - dodrží se pouze jeden z rozměrů obrázku a přitom se zachová poměr stran , obrázek se nedeformuje;

Počet des. míst

Počet desetinných míst lze zadat pouze pro složky typu Reálné číslo.

Umístění

Podle nabídky z comba u vlastnosti Umístění můžete volit umístění obsahu složky vlevo, vpravo nebo uprostřed prostoru, který je pro složku v pohledu vymezen. Vlastnost je aktivní pouze pro některé složky.

Obrázek (neměnný)

Na tlačítku nebo ve složce typu Obrázek může být zobrazen neměnný obrázek vložený předem do aplikace. Combo u vlastnosti Obrázek (neměnný) nabídne seznam všech použitelných obrázků. Obrázky do aplikace vložíte příkazem Obrázky z menu návrháře pohledů nebo z hlavního menu vývojového prostředí.

Pokud jste pro složku nastavili obrázek a chcete jej zrušit, stiskněte klávesu Del. Místo názvu obrázku se objeví nápis -Není-.

Tato vlastnost se netýká obrázků, které máte uloženy v databázových tabulkách a které budou v každém záznamu jiné.

Rám

Většinu složek lze orámovat jednoduchou čarou, některé čarou se stínem. Tuto vlastnost volíte v combu Rám.

Zachovat formát

Při zobrazení složky typu Text můžete stanovit, jak se má obsah rozlámat. Možnosti jsou dvě: zachovat původní formát, v jakém je text uložen v databázi nebo nově rozlámat podle velikosti složky.

Poloha a rozměry

Skupina vlastností týkající se umístění a velikosti složky.

Souřadnice X

Poloha složky se zadává údaji Souřadnice X a Souřadnice Y. Poloha složky je míněna v rámci oblasti. Poloha se vyjadřuje v pixelech obrazovky.

Pohodlnějším způsobem zadávání těchto parametrů je přemísťování a roztahování složky pomocí myši. Přímé zadání hodnot parametrů však umožňuje umístit složku mimo specifikovaný rastr.

Souřadnice Y

Poloha složky se zadává údaji Souřadnice X a Souřadnice Y. Poloha složky je míněna v rámci oblasti. Poloha se vyjadřuje v pixelech obrazovky.

Pohodlnějším způsobem zadávání těchto parametrů je přemísťování složky pomocí myši. Přímé zadání hodnot parametrů však umožňuje umístit složku mimo specifikovaný rastr.

Šířka

Rozměry složky se zadávají údaji Šířka a Výška. Rozměry se vyjadřují v pixelech obrazovky.

Pohodlnějším způsobem zadávání těchto parametrů je roztahování složky pomocí myši. Přímé zadání hodnot parametrů však umožňuje umístit složku mimo specifikovaný rastr.

Výška

Rozměry složky se zadávají údaji Šířka a Výška. Rozměry se vyjadřují v pixelech obrazovky.

Pohodlnějším způsobem zadávání těchto parametrů je roztahování složky pomocí myši. Přímé zadání hodnot parametrů však umožňuje umístit složku mimo specifikovaný rastr.

Pružná výška v sestavě

Pro složky typu Seznam a Text, u kterých předem nemusí být jasno, kolik místa při tisku zaberou, je možno nastavit pružnou výšku při tisku. Na nový záznam se pak přejde až tehdy, když se vypíše celý obsah složky. Taková sestava pak bude mít záznamy proměnlivé výšky. Složku s pružnou výškou je rozumné umístit až na konec oblasti, aby případně nepřekryla jiné složky.

Přetékání vpravo při tisku

Zapnete-li přepínač Přetékání vpravo  při tisku, pak při tisku sestavy může obsah složky přesáhnout pravý okraj složky. Této vlastnosti využijete ve standardních pohledech, např. pokud chcete v záhlaví nebo patě umístit nápis široký přes několik sloupců. V obecných pohledech není tato vlastnost potřebná, protože složku můžete natáhnout na potřebnou šířku.

Editace

Vlastnosti skupiny Editace se týkají pouze těch složek, které jsou svázány s nějakým databázovým atributem nebo proměnnou projektu.

Implicitní hodnota

Pokud složka má definovanou implicitní hodnotu, pak se tato hodnota objeví v každém novém záznamu vloženém do pohledu klávesou Ins. Implicitní hodnota musí být stejného typu jako editovaný atribut nebo proměnná.

Implicitní hodnotu zadáte v okně vlastností složky. Můžete ji zadat i jako výraz, v něm lze volat i standardní funkce nebo Vaše funkce definované v projektu. Hodnota výrazu se po stisku Ins vyčíslí a vloží do složky.

Implicitní hodnota se neuplatní, pokud nový záznam bude přidán tak, že  uživatel zapíše hodnotu do některé složky  fiktivního záznamu na konci pohledu.

Implicitní hodnota se objeví  také ve  speciálním pohledu, sloužícím pouze pro vstup dat. Zapíše se do složky  při otevření  pohledu a znova po každém uložení záznamu do databáze.

Implicitní hodnoty se dají definovat i pro přepínače.

Impicitní hodnota definovaná v pohledu má přednost před implicitní hodnotou uvedenou v definici tabulky. V definici tabulky však můžete předepsat implicitní hodnoty i pro ty atributy, které v pohledu nejsou.

Integritní omezení

Integritní omezení je podmínka, jíž se ověřuje přípustnost zadané hodnoty. Pokaždé, když uživatel zapíše novou hodnotu do editační složky a buď stiskne Enter nebo přejde na jiné pole, vyhodnotí se integritní omezení. Má-li hodnotu TRUE, pokračuje se bez zásahu. Pokud má hodnotu FALSE, pak se nově zadaná hodnota nezapíše do databáze resp. proměnné, ale uživateli se oznámí chyba.

Maska

Maska umožňuje definovat tzv. vstupní masku zadávaného údaje (většinou řetězce nebo data). Maskou stanovíte, jaký druh znaku může či musí být na které pozici vkládaného údaje.

Akce při chybě

Akce při chybě se provede v těchto případech:

  1) uživatel zapíše do složky údaj nepřípustného typu (např. písmena do celočíselné složky);

  2) hodnota zapsaná uživatelem poruší Integritní omezení definované pro složku v návrhu pohledu.

Typickou akcí při chybě je vypsání upozornění a vhodného vysvětlení v okně na obrazovce. Není-li akce při chybě definována, chyba se oznámí standardním způsobem.

Akce při chybě se nevyvolá, pokud chybu rozpozná až databázový server, například při porušení integritního omezení definovaného v návrhu tabulky, při zápisu duplicitní hodnoty do unikátního indexu apod. Tyto chyby jsou vždy hlášeny standardními chybovými okny.

Akce po změně

Akce po změně umožňuje reagovat za změnu hodnoty složky a například přepsat hodnoty jiných složek. Nedoporučujeme provádět v akci po změně příliš složité akce.

Pozor! V akci po změně se vyhněte zejména takovým akcím, které vyvolají opět změnu ve složce, která vyvolá akci atd. Taková akce vede nutně k pádu systému a možné ztrátě dat.

Druh comba

Combo je buď editovatelné nebo překládané. V prvním případě uživatel může zadat kromě nabízených hodnot i jakoukoli jinou, v druhém případě se vybraná hodnota při zápisu do databáze nahrazuje hodnotou jinou, tzv. překladem.

Obsah comba

Pokus chcete, aby nabídka hodnot byla pokaždé stejná, pak nabídku můžete zahrnout přímo do popisu comba. K editaci nabídky slouží specializované okno, které se otevře po stisku tlačítka u vlastnosti Obsah comba.

Dotaz plnící combo

Pokud chcete, aby obsah nabídky v combu mohl být v různých situacích různý, nebo chcete stejnou nabídku používat ve více různých pohledech, pak nabídku nezadáte v popisu comba, ale místo ní uvedete dotaz, z jehož odpovědi se nabídka později vytvoří. Tuto možnost využijete zejména při implementaci číselníků: číselník bude zadán ve zvláštní tabulce, dotaz vybere z číselníku do nabídky názvy a bude je překládat na čísla.

Dotaz buď vyberte z nabídky existujících dotazů nebo jej přímo zapište slovy do vlastnosti Dotaz plnící combo.

Dotaz plnící combo je vhodné si připravit a vyzkoušet předem v návrháři dotazů. Dotaz musí splňovat tyto podmínky:

  1) v části SELECT musí být uveden buď jeden atribut pro editovatelné combo nebo dva atributy pro překládané combo;

  2) první atribut uvedený za SELECT musí být některého typu řetězec;

  3) případný druhý atribut musí být některého z typů Char, Short nebo Integer.

Při otevírání pohledu se zodpoví dotaz zadaný v popisu složky. Pokud odpověď má více než 500 záznamů, použije je pouze prvních 500 (což je podstatně více, než je rozumné využívat). První atribut z každého záznamu z odpovědi se objeví v nabídce složky.

Pokud je uveden i druhý atribut, pak se použije jako překlad obsahu prvního atribut: pokud tedy uživatel vybere z nabídky některou hodnotu, do databáze se ve skutečnosti zapíše hodnota druhého atributu ze stejného záznamu v odpovědi na dotaz.

Dotaz se vyhodnocuje pouze při otevírání pohledu, takže změny obsahu databáze během práce s pohledem neovlivní obsah nabídky hodnot v jeho složkách combo.

Chování složky

Podmínka viditelnosti

Podmínkou viditelnosti složky je výraz typu Boolean, který říká, za jakých podmínek se složka má v pohledu objevit. Je-li tato podmínka zadána, pak může zajistit, že složka bude viditelná pouze v některých záznamech.

Je-li tlačítko neviditelné, pak se nedá stisknout, ani když uživatel stiskne tlačítko myši na místě, kde se tlačítko  v pohledu obvykle nachází.

Podmínka aktivity

Podmínkou aktivity složky je výraz typu Boolean, který říká, za jakých podmínek lze pracovat se složkou pohledu. Je-li tato podmínka zadaná, pak může zajistit, že se složkou bude možno pracovat pouze v některých záznamech.

Pojem pracovat se složkou” zahrnuje možnost editovat hodnotu složky (včetně otevření editoru na atribut typu Text), možnost stisknout tlačítko, zaškrtnout nebo zrušit zaškrtnutí označovacího čtverce, přepnout přepínač, vyvolat akci definovanou pro složku, získat nabídku hodnot. Nic z toho se nedá provádět, není-li podmínka aktivity splněna.

Neaktivní nápisy a hodnotové složky jsou vykresleny šedě. Ostatní složky mají normální barvu, pouze nereagují na pokusy o změnu hodnoty.

Lze vybrat TAB?

Přepínačem Lze vybrat TAB? můžete specifikovat, zda se při práci s pohledem při přechodech mezi složkami pomocí klávesy Tab (nebo Shift+Tab) dostanete i na tuto složku. Zatržení má význam pouze pro složky v datové oblasti pohledu, složky v záhlaví se klávesou Tab vybrat nedají. Možnost vybrat složku klávesou Tab platí i pro subpohledy, z nich však touto klávesou již nelze odejít.

Obnovit po změně v záznamu?

Aktivujete-li přepínač Obnovit složku po změně v záznamu, pak se po změně kterékoli jiné složky v záznamu znovu přečte nebo vypočte a vypíše hodnota této složky. Čtverec označte tehdy, pokud hodnota složky závisí na hodnotě některé jiné složky v záznamu: například tehdy, pokud je obsahem složky výraz obsahující atribut editovatelný v jiné složce pohledu.

Dotazové pole

Každá složka může být označena jako Dotazové pole. Dotazová pole slouží k rychlému vyhledávání záznamů.

Pomocí nabídky u skupiny Dotazové pole vyberte jednu ze tří možností: Není dotazové pole, dynamické pole, statické pole.

Dotazová podmínka

Definujete-li dotazové pole, musíte ještě zadat podmínku výběru. Tuto podmínku zapíšete do editačního pole vedle vlastnosti Dotazová podmínka. Podmínku na rovnost hodnoty a atributu u statických dotazových polí není třeba vyplňovat.

Číslo nápovědy

Do pole Číslo nápovědy lze zadat identifikační číslo nápovědného textu. Ten se objeví na obrazovce, když je tato složka vybrána a uživatel stiskne klávesu F1. Definování specifické nápovědy pro složku pohledu vyžaduje přidání textu nápovědy do souboru nápověd.

Styl nápovědy

Vyberte z comba buď Samostatné okno nebo Popup okénko. Samostatné okno odpovídá je běžná stránka nápovědy s vlastním menu, popup okénko je malé okno, otevřené v místě zavolání, bez menu a lišty nápovědy.

Klávesy

Možnost definovat význam vybraných kláves v navrhovaném pohledu podle místních potřeb. Lze zadat, zda se klávesa předá vybrané složce pohledu nebo zda bude zpracována podle pravidel pohybu po pohledu. Pro příklad: klávesa Home standardně znamená skok na první složku pohledu, v jednořádkových editačních boxech má však častěji význam skok na začátek editovaného řetězce apod.

Šipky nahoru nebo dolů

Umožní určit, má-li se význam daných kláves vztahovat k pohledu jako celku (volba Pohyb po pohledu) nebo pouze pro tuto složku (volba Pohyb uvnitř složky).

Šipky vlevo nebo vpravo

Umožní určit, má-li se význam daných kláves vztahovat k pohledu jako celku (volba Pohyb po pohledu) nebo pouze pro tuto složku (volba Pohyb uvnitř složky).

Page Up, Page Dn

Umožní určit, má-li se význam daných kláves vztahovat k pohledu jako celku (volba Pohyb po pohledu) nebo pouze pro tuto složku (volba Pohyb uvnitř složky). Užívá se např. tehdy, chcete-li ve víceřádkovém editačním boxu nebo formátovaném textu používat klávesy Page Up a Page Dn pro skok na další resp. předchozí stránku editovaného textu, nikoliv na jiný záznam.

Ctrl+Page Up, Ctrl+Page Dn

Umožní určit, má-li se význam kombinace daných kláves vztahovat k pohledu jako celku (volba Pohyb po pohledu) nebo pouze pro tuto složku (volba Pohyb uvnitř složky). Užívá se např. tehdy, chcete-li ve formátovaném textu používat klávesy Ctrl+Page Up a Ctrl+Page Dn pro skok na konec resp. začátek stránky editovaného textu, nikoliv na následující resp. předchozí záznam.

 Home, End

Umožní určit, má-li se význam daných kláves vztahovat k pohledu jako celku (volba Pohyb po pohledu) nebo pouze pro tuto složku (volba Pohyb uvnitř složky). Užívá se např. tehdy, chcete-li v jednořádkovém editačním boxu používat klávesy End a Home pro skok na konec resp. začátek editovaného textu, nikoliv na poslední resp. první složku pohledu.

Ctrl+Home, Ctrl+End

Umožní určit, má-li se význam kombinace daných kláves vztahovat k pohledu jako celku (volba Pohyb po pohledu) nebo pouze pro tuto složku (volba Pohyb uvnitř složky). Užívá se např. tehdy, chcete-li ve víceřádkovém editačním boxu používat klávesy Ctrl+End a Ctrl+Home pro skok na konec resp. začátek editovaného textu, nikoliv na poslední resp. první záznam.

Tab (tabelátor)

Umožní určit, má-li se význam klávesy Tab vztahovat k pohledu jako celku (volba Pohyb po pohledu) nebo pouze pro tuto složku (volba Pohyb uvnitř složky). Užívá se např. tehdy, chcete-li ve víceřádkovém editačním boxu používat klávesy Tab pro úpravu editovaného textu a nikoliv pro skok na další složku pohledu.

Příjemce Enter

Takto označené tlačítko bude stisknuto, pokud uživatel stiskne klávesu Enter na kterékoli složce, která tuto klávesu nezpracovává sama (tedy mimo složky Text, Formátovaný text a víceřádkové editační složky). Tlačítko, které je příjemcem Enter, má silnější rám. Funguje od otevření pohledu do okamžiku, kdy v pohledu vyberete některé jiné tlačítko - od této chvíle bude na klávesu Enter reagovat vždy naposled vybrané tlačítko.

Subpohled

Složku subpohled lze vložit do obecného pohledu. Vytváří "pohled v pohledu" a umožňuje oba pohledy synchronizovat. Pohledu obsahujícímu subpohled říkáme superpohled.

Combo nabízí seznam všech pohledů v aplikaci. Jeden z nich vyberte jako subpohled.

Propojovací hodnota

Pouze u relačně propojeného subpohledu - jméno atributu ze superpohledu (pohledu, který navrhujete), které slouží jako relační klíč.

Výběrová podmínka

Pouze u relačně propojeného subpohledu - výraz, na jehož základě se budou vybírat záznamy do subpohledu. Výraz musí mít tyto vlastnosti:

  1) použijí se v něm atributy ze subpohledu a znak %, který symbolizuje hodnotu atributu superpohledu  uvedeného v poli Propojovací hodnota;

  2) po zapsání hodnoty propojovacího atributu na místo znaku % musí vzniknout výraz typu  Boolean; do subpohledu se vyberou ty záznamy, pro něž tento výraz má hodnotu TRUE;

  3) ve výběrové podmínce se nesmí použít proměnné, konstanty ani funkce projektu.

Nejčastější případ je propojení na rovnost dvou atributů.

Použít kurzor ze subpohledu

Pouze u subpohledu synchronizovaného na stejný záznam - vedou-li super- i subpohled do stejného zdroje dat, použijte tento přepínač. Otevírání i práce s pohledem se zrychlí.

Druh OLE objektu

Umožní předepsat, že složka smí obsahovat pouze vložený (embedded) objekt, pouze připojený (linked) objekt nebo oba typy OLE objektů.

OLE server

Umožní vybrat jeden z nabídky OLE serverů instalovaných na počítači nebo položku  -Libovolný server-. Je-li server vybrán, lze do složky vkládat nebo připojovat pouze objekty tohoto serveru, není-li vybrán, lze použít objekty od všech serverů.

Máte-li na svém počítači větší množství OLE serverů, může otevření comba s nabídkou chvíli trvat. Vybraný server zrušíte stiskem klávesy Del.

Krokovač

Složka se skládá ze dvou malých šipek - nahoru a dolů. Slouží k usnadnění editace číselné hodnoty v editační složce, s níž je svázána. Stiskem šipky nahoru se obsah editační složky zvětší o stanovenou hodnotu, stiskem šipky doků se zmenší.

Dolní mez

Minimální hodnota, od níž bude možno pomocí krokovače zvyšovat hodnotu v editační složce a pod níž nelze klesnout;

Horní mez

Maximální hodnota, do níž bude možno pomocí krokovače zvyšovat hodnotu v editační složce;

Krok

Velikost kroku, tedy hodnota, o kterou se změní obsah editační složky při jednom stisknutí šipky krokovače.

Číslo ovládané složky

Číslo editační složky, s níž bude krokovač svázán (pokud není správně vyplněno, krokovač nefunguje);

Posuvník

Složka vyjadřuje celočíselnou hodnotu pomocí polohy jezdce a posouváním jezdce umožňuje tuto hodnotu editovat. Je vždy svázaná s atributem nebo proměnnou typu Integer nebo Short.

Dolní mez

Dolní mezi bude odpovídat poloha jezdce vlevo resp. nahoře

Horní mez

Horní mezi bude odpovídat poloha jezdce vpravo resp. dole

Krok na stupnici

Počet hodnot, kterým bude odpovídat jedna čárka na stupnici; zadáte-li 0, stupnice se nenakreslí, zadáte-li 1, bude čárka na stupnici odpovídat každé hodnotě, zadáte-li N, pak bude čárka na stupnici odpovídat každé N-té hodnotě;

Stupnice

Umístění stupnice (uplatní se pouze pokud je krok nenulový), možnosti jsou Dole nebo vpravo, Nahoře nebo vlevo, Po obou stranách; o orientaci posuvníku rozhoduje šířka a výška složky.

Číslo složky

Identifikace složky je číslo z intervalu 1 až 254. Na jeho konkrétní hodnotě nezáleží, ale každé dvě složky se v tomto čísle musí lišit, a to i tehdy, pokud jsou v různých oblastech.

Identifikaci nové složky přidělí WinBase602 tak, aby se neshodovala s identifikací žádné existující složky.

Identifikaci složky využívají aplikační programy ve WinBase602, když chtějí přímo číst nebo zapisovat hodnoty složek nebo vybrat určitou složku.

Vysvětlující text

Do pole Vysvětlující text  můžete vepsat text, který se vypíše na stavový řádek WinBase602, kdykoli uživatel vybere tuto složku pohledu.


Definice obsahu comba

Okno obsahuje tři sloupce. První sloupec není editovatelný a pouze informuje o pořadí řetězců v nabídce. Do sloupce označeného Nabízený řetězec zapíšete postupně pod sebe všechny řetězce, které se v nabídce hodnot comba mají objevit. Pro editovatelné combo musí obsah každého řetězce vyhovovat typu atributu, do něhož se hodnota bude zapisovat.

Třetí sloupec je aktivní pouze pro překládané combo. Obsahuje překlady, tj. hodnoty, které se do databáze budou zapisovat místo odpovídajících hodnot ve sloupci druhém. Pro atribut typu Char nezapisujte do sloupce Překlad znak, ale kód znaku, tedy celé číslo v rozsahu 0 až 255. Do databáze se uloží znak se zadaným kódem.


Speciální pohledy

Návrhář pohledů ve WinBase602 dovoluje automaticky vygenerovat některé složitější typy pohledů. Jedná se o pohled obsahující dotazová pole, superpohled se subpohledem synchronizovaným na stejný záznam a tiskovou sestavu se skupinami.

Nepředpokládá se, že se pohledy vytvořené automaticky budou moci používat okamžitě bez dalších úprav. Naopak - iniciální návrhy jsou nedokonalé a dodatečná alespoň grafická úprava je nezbytná.


Vyhledávací pohled

První z nabídky speciálních pohledů je plošný obecný pohled, který volitelně obsahuje dotazová pole pro rychlý výběr záznamů. Dotazová pole budou implicitně umístěna v hlavičce stránky. Podle typu atributu se zvolí i typ dotazového pole a dotazová podmínka.

Okno návrhu speciálního pohledu

V seznamu okna jsou atributy, které jste vybrali pro pohled. Jejich názvy jsou v prvním sloupci, který není editovatelný. Druhý sloupec obsahuje popisky těchto atributů. Z nich se vytvoří složky typu Nápis popisující editační nebo hodnotové složky náležející k atributům.

Ve třetím sloupci zvolíte, jakého typu bude složka. V combu naleznete tuto nabídku: Editační složka, Hodnotová složka nebo Není. Varianta Není znamená, že tento atribut nebude mít v iniciálním návrhu svojí složku.

V posledním sloupci zaškrtnutím označovacích čtverců určíte, pro které atributy se mají vytvořit dotazová pole. Dotazová pole budou mít vlastnosti podle následujících pravidel:

Je-li atribut některého typu Řetězec, vytvoří se dynamické dotazové pole s podmínkou využívající operátor "začíná na…". Používá se takovému způsobu vyhledávání, kdy uživatel píše vyhledávaný řetězec a po každém novém písmenu se výsledná množina záznamů zúží podle zapsaného prefixu.

Je-li atribut číselného typu, Datum, Čas nebo Logický, vytvoří se statické dotazové pole s podmínkou na rovnost. Tato pole se využívají pro vyhledání např. faktury podle zadaného čísla.


Pohled se subpohledem

Tato možnost vygeneruje superpohled se subpohledem. Oba pohledy vedou do stejné tabulky nebo odpovědi na dotaz a jsou synchronizovány na stejný záznam. I v tomto případě je možno nechat vytvořit dotazová pole - výběr v subpohledu pomocí dotazových polí v superpohledu je velice efektní.

Okno návrhu speciálního pohledu

V seznamu okna jsou atributy, které jste vybrali pro pohled. Jejich názvy jsou v prvním sloupci, který není editovatelný. Druhý sloupec obsahuje popisky těchto atributů. Z nich se vytvoří složky typu Nápis popisující editační nebo hodnotové složky náležející k atributům.

Ve třetím sloupci zvolíte, jakého typu bude složka. V combu naleznete tuto nabídku: Editační složka, Hodnotová složka nebo Není. Varianta Není znamená, že tento atribut nebude mít v iniciálním návrhu svojí složku.

Navíc jsou zde informace o subpohledu, který se vytvoří současně se superpohledem.

Ve čtvrtém sloupci vyberete ty atributy, které se mají v subpohledu objevit. Můžete opět zvolit mezi složkami editovatelnými nebo hodnotovými.

V posledním sloupci zaškrtnutím označovacích čtverců určíte, pro které atributy se mají vytvořit dotazová pole. Dotazová pole budou mít vlastnosti podle následujících pravidel:

Je-li atribut některého typu Řetězec, vytvoří se dynamické dotazové pole s podmínkou využívající operátor "začíná na…". Používá se takovému způsobu vyhledávání, kdy uživatel píše vyhledávaný řetězec a po každém novém písmenu se výsledná množina záznamů zúží podle zapsaného prefixu.

Je-li atribut číselného typu, Datum, Čas nebo Logický, vytvoří se statické dotazové pole s podmínkou na rovnost. Tato pole se využívají pro vyhledání např. faktury podle zadaného čísla.

V dolní části nezapomeňte vyplnit jméno budoucího subpohledu. Po stisku tlačítka OK bude vytvořen subpohled i superpohled (pojmenován je zatím pouze subpohled) a otevře se návrhář na superpohled.

Tento nástroj se nehodí pro vytváření pohledů s relačně synchronizovaným subpohledem.


Sestava

Automatizovaný návrh sestavy slouží k ulehčení práce s vkládáním množství souhrnných (agregačních) funkcí do jednotlivých oblastí sestavy. Návrhář vytvoří podle zadaných informací tiskovou sestavu se dvěma úrovněmi skupin a do oblastí rozmístí příslušné hodnotové složky se souhrnnými funkcemi.

Okno návrhu speciálního pohledu

V seznamu okna jsou atributy, které jste vybrali pro pohled. Jejich názvy jsou v prvním sloupci, který není editovatelný. Druhý sloupec obsahuje popisky těchto atributů. Z nich se vytvoří složky typu Nápis popisující hodnotové složky náležející k atributům.

Do dvou polí v dolní části zapište definiční výrazy pro jednu nebo dvě skupiny budoucí sestavy.

Třetí sloupec určuje, budou-li atributy v datové oblasti sestavy.

Dále můžete nastavit obsah hlaviček a patiček obou skupin. Obsahem mohou být souhrnné (agregační) funkce (počet, součet, průměr, maximum a minimum) nebo prostá hodnota atributu (je-li právě atribut definicí skupiny).


Dvoustavová tlačítka

Na složky typu zaškrtávací čtverec nebo přepínač lze v návrháři pohledů umístit obrázek. Složka se pak chová jako dvoustavové tlačítko. Pokud se svázaná s atributem (nebo proměnnou) typu Boolean, je dole právě když má hodnotu TRUE. Pokud má zadanou referenční hodnotu, je dole právě když se hodnota atributu (resp. proměnné) rovná referenční hodnotě.


Víceřádková editační složka v pohledu

Do návrhu pohledu lze pro editaci atributu typu Text vložit textovou složku nebo (nově) editační složku. Takováto složka bude mít víceřádkový obsah.

Pokud ve víceřádkové editační složce stisknete klávesu Enter, neopustíte tuto složku, ale přejdete v ní na další řádku. Stiskem Home resp. End se dostanete na začátek resp. konec běžné řádky ve složce. Složku můžete opustit například stiskem klávesy Tab.

Jeden atribut editujte buď vždy textovou nebo vždy editační složku, ale nekombinujte obě možnosti. Textová složka totiž vkládá do textu pomocné znaky vyznačující zalomení odstavce, a ty by v editační složce působily rušivě.


Vstupní maska
Maska

Maska pro složku pohledu slouží k vytvoření uživatelského formátu zobrazení pro zadávání a editaci nebo zobazení hodnot.

Pokud masku připojíte k editační složce pohledu, pak se zadávání obsahu této složky bude podobat vyplňování znaků do pevně daných políček ve formuláři. Maska specifikuje, kolik těchto políček pro jednotlivé znaky v editační složce bude a co do nich bude možno zapsat.

Maska pro složku hodnotovou slouží pro uživatelské zobrazení hodnoty složky.

Při návrhu masky se můžete rozhodnout buď pro některou z předem připravených tzv. standardních masek, nebo si můžete vytvořit masku vlastní. Standardní masku zvolíte z nabídky v combu v horní části. Seznam standardní masky není možno uživatelsky doplňovat.

Standardní masky pro datum a čas mají několik podob, do nichž se automaticky upraví podle způsobu zobrazení nastaveného pro tuto složku.

Definujete-li vlastní masku, pak její jednotlivá políčka budou popsána v seznamu v levé části okna návrháře. Nová políčka do seznamu přidáte tak, že označíte některé již existující políčko a stisknete tlačítko Duplikovat položku. Tlačítkem Zrušit položku vybrané políčko naopak z masky odstraníte.

Vlastnosti políčka, které je označené v seznamu, se nastavují v pravé části okna návrháře. Políčka jsou dvojího druhu:

- políčka, do nichž uživatel může napsat znak z klávesnice - přepínač Místo pro;

- políčka, která obsahují pevně daný znak, jež nemůže být přepsán (obvykle závorky, pomlčky apod) - přepínač Pevný znak.

Pro políčka, která vyplňuje uživatel, lze předepsat, co lze do nich zapsat. Dále lze nastavit, zda se zapsaná písmena mají konvertovat na velká resp. malá písmena. Lze také stanovit, zda políčko musí být uživatelem vyplněno, nebo smí zůstat prázdné.

Pro políčka s pevně daným znakem je nutno zadat tento znak buď přímo, nebo odkazem na oddělovač specifikovaný na řídicím panelu Windows. Lze dále stanovit, zda se tento znak bude ukládat spolu s vyplňovanými políčky do databáze, nebo zda se má objevovat pouze na obrazovce a do databáze se nezapíše (druhá varianta je nutná, pokud vytváříte masku pro čísla).

Při práci s editační složkou obsahující masku jsou dosud nevyplněná místa znázorněna výplňovým znakem. Návrhář umožňuje stanovit, který znak to má být, standardně se používá podtržítko ( _ ).


Editor textů

Editor slouží ve WinBase602 více účelům:

  1) editace hodnot atributů typu Text, tedy textů v tabulkách;

  2) psaní programů ve vnitřním programovacím jazyce;

  3) zasahování do textové podoby návrhu pohledů, dotazů a menu;

  4) k prohlížení definic tabulek v jazyce SQL.

Zde můžete získat informace k těmto tématům

 Vlastnosti editoru

 Ovládání editoru z klávesnice

 Ovládání editoru myší

 Lišta s tlačítky

 Řídící menu editoru


Vlastnosti editoru
Vlastnosti editoru textů

Editor textů ve WinBase602 pracuje pouze v režimu vkládání znaků, režim přepisování není implementován. Při psaní programů se nové řádky automaticky odsouvají na pozici začátku předchozího řádku (Autoindent). Při editaci atributů typu Text editor může zalamovat řádky a přeformátovávat odstavce. V textu lze vyhledávat řetězec nebo nahrazovat řetězec jiným.

Maximální velikost textu v editoru je 64 KB.

Některé parametry editoru si můžete přednastavit pomocí příkazu Parametry z menu Nástroje vývojového prostředí. Tyto hodnoty se zapíší do INI souboru a tudíž se zachovají i pro další spuštění.


Ovládání editoru z klávesnice
Ovládání textového editoru z klávesnice

Ovládání editoru zabudovaného ve WinBase602 je volitelné jako

  a) ovládání editorů wordstarovského typu (např. editor v Turbo Pascalu),

  b) ovládání editorů ve Windows (např. Notepad).

Nastavení se provede globálně pomocí příkazu Parametry z hlavního menu WinBase602.

Editor pracuje pouze ve vkládacím režimu, tedy text psaný na klávesnici nikdy nepřepisuje dříve napsaný text. Při přechodu na nový řádek se kurzor automaticky umístí pod první znak řádku nad ním (autoindent).

Během editace můžete používat tyto klávesy:

 šipky - posun kurzoru všemi směry;

 Ctrl "šipka vpravo" - skok na začátek dalšího slova;

 Ctrl "šipka vlevo" - skok na začátek běžného nebo předcházejícího slova;

 Home - skok na začátek řádky;

 End - skok na konec řádky;

 Page Up - posun o stránku nahoru;

 Page Down - posun o stránku dolů;

 Ctrl Page Up - skok na začátek textu;

 Ctrl Page Down - skok na konec textu;

 Delete - zrušení běžného znaku; na konci řádku způsobí připojení dalšího řádku na konec řádku  aktuálního; ve Windows režimu také smaže označený blok;

 Backspace - zrušení znaku vlevo, pokud neexistuje, spojení řádky s předchozí řádkou; ve Windows režimu také smaže označený blok;

 Ctrl Y - zrušení celé řádky;

 Ctrl X - vystřihnutí bloku do clipboardu;

 Ctrl C - zkopírování bloku do clipboardu;

 Ctrl v - vlepení obsahu clipboardu na pozici kurzoru;

 Enter - ukončení řádky v místě, kde je kurzor, a přechod na začátek další řádky; editujete-li atribut typu Text, pak klávesa Enter ukončí odstavec; ve Windows režimu také smaže označený blok;

 Ctrl B - přeformátování odstavce od řádky, na níž je kurzor (pouze při editaci atributu typu Text);

 TAB - posun kurzoru vpravo na pozici dělitelnou čtyřmi;

 F2 - zápis textu do databáze;

 Ctrl F4 - ukončení práce s editorem.

 Ctrl k B - označení začátku bloku;

 Ctrl k K - označení konce bloku;

 Ctrl k H - zneviditelnění nebo zviditelnění označeného bloku;

 Ctrl k Y - zrušení označeného bloku;

 Ctrl k v - přesun označeného bloku na místo, kde je kurzor;

 Ctrl k C - kopírování označeného bloku na místo, kde je kurzor;

 Ctrl k X - ukončení práce s editorem;

 Ctrl k I - odsazení označeného bloku o jeden znak vpravo;

 Ctrl k U - odsazení označeného bloku o jeden znak vlevo;

 Ctrl k R - čtení diskového souboru na místo, kde je kurzor;

 Ctrl k W - zápis označeného bloku do diskového souboru;

 Ctrl k X - ukončení práce s editorem;

 Ctrl Q F - vyhledání řetězce v textu;

 Ctrl Q a - nahrazení řetězce v textu;

 Ctrl L nebo F3 - zopakování posledního vyhledávání nebo nahrazování;

Blok textu můžete také vyznačit tak, že podržíte klávesu Shift a přesunete kurzor na opačný konec bloku. Blok se přitom průběžně vybarvuje.

Na informační lince jste průběžně informováni o pozici kurzoru v textu.


Lišta editoru
Lišta s tlačítky editoru

Pracovní lišta editoru se liší podle toho, jaký objekt se edituje.

Pro program obsahuje lišta tato tlačítka

a pro textovou editaci pohledu, menu nebo dotazu tato tlačítka

Význam tlačítek:

- vystřihnout text do clipboardu

- zkopírovat text do clipboardu

- vlepit text z clipboardu do okna editoru na pozici kurzoru

- uložit definici do databáze

- najít řetězec

- nahradit řetězec jiným řetězcem

- pokračovat v hledání

- přeložit program nebo definici objektu

- přeložit program z includu

- spustit program

- spustit program z includu

- spustit ladicí běh programu

- spustit ladicí běh programu z includu

Lišta editoru pro editaci obsahu atributu typu Text vypadá takto:

Význam tlačítek je stejný, poslední tlačítko provede zarovnání odstavce.


Ovládání editoru myší
Ovládání textového editoru myší

Během práce s textovým editorem Vám myš může posloužit k těmto specifickým účelům (o výběru položek z menu se zde nebudeme zmiňovat):

Přemístění kurzoru - na místo, kam chcete umístit kurzor, ukažte myší, a stiskněte její levé tlačítko.

Označení bloku textu - chcete-li označit blok textu, pak na jeho jednom konci stiskněte levé tlačítko myši, přesuňte ukazatel na druhý konec bloku a pusťte tlačítko. Text se během pohybu myši průběžně vybarvuje.

Listování v textu - posunete-li táhlo na pravém rámu okna editoru nahoru nebo dolů, přejdete v textu o odpovídající počet řádek dozadu nebo dopředu. Stisknete-li tlačítko myši nad nebo pod táhlem, posunete se o jednu stránku dozadu nebo dopředu. Stisknete-li tlačítko myši na šipce nad nebo pod táhlem, posunete se o jeden řádek nahoru nebo dolů.

Obdobně lze použít táhlo na spodním rámu okna editoru k pohybu vpravo a vlevo.


Hlavní menu textového editoru

Hlavní menu obsahuje ve svých submenu tyto položky: (v různých situacích mohou některá submenu chybět)

Text

  Uložit - zapíše editovaný text do databáze (pokud byl změněn).

  Font - umožní zvolit font pro zobrazení obsahu editoru

  Tisk - otevře dialog pro tisk

  Konec - ukončí práci textového editoru; pokud editovaný text nebyl dosud uložen nebo byl od posledního uložení změněn, nabídne se Vám možnost uložit text.

Editace

  Vystřihnout - vezme označený blok textu a přenese jej do clipboardu. Blok touto operací z textu zmizí.

  Zkopírovat - zkopíruje označený blok textu do clipboardu.

  Vlepit - na místo, kde je právě kurzor, vloží obsah clipboardu.

  Smazat - smaže označený blok textu

  Schovat/Ukázat - Zneviditelní nebo zviditelní označený blok textu.

  Označit vše - Označí celý text jako blok. Hodí se, pokud text chcete zapsat do souboru.

  Uložit blok - uloží označený blok textu do souboru na disku.

  Uložit blok ASCII - uloží označený blok textu do souboru na disku. Přitom z textu odstraní informace o hranicích odstavců. Každá řádka bude ukončena dvojicí znaků CR LF.

  Přečíst - přečte obsah zadaného diskového souboru a uloží jej do textu na místo, kde je právě kurzor.

  Turbo ovládání - přepínač mezi ovládáním editoru ve stylu Turbo editorů nebo ve stylu Windows.

Hledání

  Najít - vyhledávání řetězce v textu.

  Nahradit - nahrazování řetězce v textu.

  Zopakovat akci - zopakuje naposled prováděné vyhledávání nebo nahrazování řetězce v textu.

Formát

  Přehazování slov - je-li tato položka označena, pak slova, která se nevejdou na řádku, jsou automaticky přesunuta na začátek další řádky. Tím, že jste k vytvoření této nové řádky nepoužili klávesu Enter, budou obě řádky patřit do stejného odstavce, který může být později přeformátován.

  Zarovnávání okraje - je-li tato položka označena, pak se každá napsaná řádka automaticky zarovnává vpravo. Mezi slova se k tomuto účelu vkládají mezery. Tuto vlastnost je vhodné používat pouze tehdy, pokud v pohledu nebo v sestavě se tento text nebude automaticky přeformátovávat.

  Přeformátování - přeformátuje odstavec od řádky, na níž je kurzor, do jeho konce.

Překlad/Běh

  Překlad - přeloží text v editoru, čímž zkontroluje jeho syntaxi. Překládat lze programy ve vnitřním jazyce, definice menu, pohledů a dotazů. Dojde-li při překladu k chybě, pak se objeví informační okno a po jeho odstranění se kurzor přesune na místo, kde byla objevena chyba.

  Běh - Běh lze spustit pouze pro programy ve vnitřním jazyce. Pokud program nebyl dosud přeložen nebo byl od posledního překladu změněn, před během se přeloží. Dojde-li k chybě při překladu, běh se nespustí. Po zahájení běhu okno editoru zůstane na obrazovce, takže může částečně zastínit akce vyvolané běžícím programem, proto doporučujeme přemístit okno editoru stranou.

  Ladění -  přeloží program, je-li překlad v pořádku, zastaví běh na prvním řádku programu a čeká na příkazy debuggeru - viz Debugger

  Překlad, běh, ladění startovního programu - umožní spustit či přeložit hlavní program (označený jako startovní objekt) z okna includu.


Funkce Active_view
Active_view

function Active_view : window_id;

Popis

Funkce Active_view zjišťuje, který pohled je právě aktivní.

Hodnota funkce

Funkce vrací identifikaci aktivního pohledu. Pokud není otevřen žádný pohled nebo pokud je aktivní okno, které není pohledem (např. editor textu), funkce vrací nulu.


Funkce Alogin
Alogin

function Alogin(parent : window_id) : Boolean;

Parametry

parent - okno, které bude "rodičem"' přihlašovacího okna

Popis

Funkce Alogin je alternativou funkce Login. Po svém zavolání se uživatele zeptá na jméno a na heslo. Poté se pokusí uživatele přihlásit stejně jako funkce Login. Při zadání nesprávného jména nebo hesla se zadání automaticky opakuje.

Parametr parent smí mít hodnotu 0. Tuto hodnotu doporučujeme použít ve vnitřním programovacím jazyce, pokud jste nevytvořili žádné okno, které by mohlo být "rodičem".

Hodnota funkce

Funkce Alogin skončí teprve tehdy, až se uživatel buď úspěšně přihlásí, nebo se stiskem tlačítka vzdá dalších pokusů. V prvním případě funkce vrací hodnotu TRUE, v druhém FALSE.

Příklad

if Alogin(0) then ...


Funkce Bind_records
Bind_records

function Bind_records(var attr : attribute;  var viewdef : string; base : tcursnum;  flags : short) : Boolean;

Parametry

attr - databázový atribut nebo multiatribut typu ukazatel nebo obousměrný ukazatel

viewdef - specifikace vázacího pohledu, který má být otevřen

base - otevřený kurzor nebo konstanta NO_REDIR - viz také parametr tcursnum

flags - viz Parametry otevření pohledu.

Popis

Funkce Bind_records se smí volat pouze z pohledu - smí být uvedena pouze v části "Akce" návrhu pohledu. Tato funkce otevře pohled specifikovaný viewdef a umožní v něm vybrat jeden nebo více záznamů. Tyto záznamy přiváže k ukazateli attr.

Otevíraný pohled bude přesměrován na kurzor base.

Hodnota funkce

Funkce vrací TRUE, pokud se pohled podařilo otevřít, jinak vrací FALSE.

Příklad

Bind_records(UKAZATEL,"*POHLED1",NO_REDIR,0)


Procedura Close_all_views
Close_all_views

procedure Close_all_views;

Popis

Procedura Close_all_views uzavře všechna okna s pohledy na obrazovce.

Viz

Close_view


Procedura Close_view
Close_view

procedure Close_view(id : window_id);

Parametry

id - identifikace otevřeného pohledu

Popis

Procedura Close_view uzavře okno obsahující pohled s identifikací id.

Příklad

Close_view(ID_POHLED1)

Viz

Open_view, Close_all_views,


Funkce Commit_view
Commit_view

function Commit_view(id : window_id; can_ask, report_error : Boolean) : Boolean;

Parametry

id - handle otevřeného pohledu

can_ask - příznak, má-li se objevit dotaz na uložení dat

report_error - příznak, má-li se v případě chyby otevřít okno s jejím popisem

Popis

Funkce Commit_view zapíše změny v aktuálním záznamu v záznamově synchronizovaném pohledu id do databáze, aniž by bylo třeba opouštět záznam. Je-li parametr can_ask roven True a současně v návrhu pohledu je nastaveno Žádat potvrzení změn, budete před uložením změněného záznamu do databáze požádáni o potvrzení této akce. Je-li parametr report_error roven True, pak se při výskytu chyby při zápisu objeví informační okno s popisem chyby. Zda-li se zápis provedl, poznáte z hodnoty funkce.

Funkce přibližně odpovídá akci Uložit změny v pohledu.

Hodnota funkce

Funkce vrací TRUE, pokud se zápis provedl, FALSE v případě chyby.

Příklad

if Commit_view(ID_POHLED1,false,true) then Close_view(ID_POHLED1);

Viz

Roll_back_view,


Funkce Current_item
Current_item

function Current_item(id : window_id) : short;

Parametry

id - identifikace pohledu

Popis

Funkce zjišťuje, která složka pohledu  id je právě vybraná.

Pokud tuto funkci zavoláte v reakci na zprávu o změně hodnoty složky, pak se dozvíte, která složka se stala vybranou po přepsání hodnoty. Proto pokud chcete reagovat na změnu hodnoty určité složky, pak využijte spíše možnost zadat parametr složky pohledu  Akce po změně.

Hodnota funkce

Funkce vrací identifikaci vybrané složky pohledu  id.


Procedura Draw_line
Draw_line

procedure Draw_line(id : window_id; x1, y1, x2, y2 : short; colour : short);

Parametry

id - identifikace pohledu

x1, y1 - souřadnice začátku úsečky

x2, y2 - souřadnice konce úsečky

color - označení barvy

Popis

Procedura nakreslí v okně pohledu id úsečku v barvě color od místa se souřadnicemi (x1, y1) do (x2, y2).

Příklad

var

  id,i,j : short;

begin

  Open_view("a DBDIALOG 20 20 400 300 begin end",no_redir,0,0,0,id);

  Draw_line(id, 50,50,100,50,0);

  Draw_line(id, 100,50,100,100,0);

  Draw_line(id, 100,100,50,100,0);

  Draw_line(id, 50,100,50,50,0);

  for i := 51 to 99 do

    for j := 51 to 99 do

      Put_pixel(id,i,j,i*j mod 255);

  repeat  Peek_message until id=0;

end.

Viz

Put_pixel


Funkce Edit_text
Edit_text

function Edit_text(var attr : attribute; xpos, ypos, xsize, ysize : short) : Boolean;

Parametry

attr - databázový atribut typu  Text

xpos, ypos - souřadnice levého horního rohu editačního okna

xsize, ysize - rozměry editačního okna

Popis

Funkce Edit_text se smí volat pouze z pohledu - smí být uvedena pouze v části "Akce" návrhu pohledu. Funkce otevře editační okno na obsah atributu attr a umožní jeho editaci.

Hodnota funkce

Funkce vrací TRUE, pokud se editační okno podařilo otevřít, jinak vrací FALSE.

Příklad

Edit_text(TEXT,20,20,450,200)


Funkce Exec
Exec

function Exec(var pathname, params : string) : short;

Parametry

pathname - cesta a jméno souboru obsahujícího program

params - parametry, které se programu předají na příkazové řádce

Popis

Funkce Exec spustí program uložený v souboru pathname a předá mu parametry params. Tento program bude prováděn souběžně s WinBase602. Jeho ukončení nelze provést z WinBase602.

Hodnota funkce

Funkce vrátí totéž, co vrátí systémová funkce WinExec. Bližší údaje viz systémové manuály Windows. Hodnota menší než 32 znamená, že došlo k chybě.

Příklad

if Exec ("CALC.EXE", "") < 32

  then Info_box ('Chyba','Kalkulačka');


Funkce Get_ext_message
Get_ext_message

function Get_ext_message(var msg : integer; var handle :

window_id; var info : integer) : Boolean;

Parametry

msg - výstupní parametr: číslo zprávy

handle - výstupní parametr: handle (číslo) pohledu u notifikačních zpráv

info - výstupní parametr: rezervováno pro budoucí použití

Popis

Funkce Get_ext_message čeká na další zprávu, kterou programu předá uživatel. Takováto zpráva může vzniknout stiskem tlačítka provádějícího příkaz RETURN v pohledu, vybráním některé položky z menu, stiskem zaregistrované klávesy nebo provedením akce, která automaticky generuje zprávu (notifikační) z pohledu.

V parametru msg bude vráceno číslo zprávy.

V parametru handle bude handle (číslo) pohledu, je-li zpráva notifikační (automaticky generovaná v pohledu), v jiném případě nula.

Parametr info je rezervován pro budoucí použití, ve verzi 4.0 má hodnotu NIL.

Pokud ve frontě nečekají žádné zprávy, funkce Get_ext_message neskončí, dokud uživatel takovou zprávu nevygeneruje. To znamená, že uvnitř provádění funkce Get_ext_message uživatel může např. editovat obsah databáze prostřednictvím pohledů otevřených na obrazovce nebo volat procedury projektu pomocí tlačítek.

Je-li v debuggeru funkce přerušena stiskem Ctrl+Break, v parametru msg vrátí hodnotu -2.

Funkce plně nahrazuje dřívější funkci Get_message.

Hodnota funkce

Funkce vrátí FALSE ve dvou případech:

pokud se vrací zpráva s hodnotou -1;

pokud aplikace byla ukončena zvenčí.

Příklad

while Get_ext_message(msg, handle, NIL) do

begin

  case msg of

{ošetření definovaných zpráv}

    msg1 : ...

    msg2 : ...

    ...

{ošetření notifikačních zpráv}

    else : if (handle=id_pohl1) and (msg=4) then ...

  end;

Viz

Get_message,


Funkce Get_fcursor
Get_fcursor

function Get_fcursor(id : window_id; var curs : cursor; var flags : short) : Boolean;

Parametry

id - identifikace pohledu

curs - výstupní parametr: číslo kurzoru

flags - výstupní parametr: viz Parametry otevření pohledu

Popis

Funkce získá z otevřeného pohledu číslo jeho kurzoru a hodnoty příznaků. Tyto údaje zapíše do proměnných curs a flags.

Pokud pohled zadaný parametrem id vede do tabulky, pak funkce v parametru curs vrátí číslo této tabulky. Čísla kurzorů začínají od 32768, čísla tabulek jsou řádově desítky, takže je lze od sebe rozeznat: číslo tabulky (kurzoru) můžete přiřadit do prom. typu Integer a tu pak porovnat s 32768. Pro některé funkce (např. Translate) je nutné vědět, zda její parametr je kurzor nebo tabulka.

Hodnota funkce

Funkce vrací TRUE po úspěšném provedení akce, jinak vrací FALSE.

Příklad

/* v pohledu id občas pokládáme QBE dotaz. S jedním z vybraných záznamů pohledu id (do tabulky nebo do kurzoru vzniklého odpovědí QBE) chceme dále pracovat. */

      Get_view_pos(id, ic, ac);

/* zjištění pozice záznamu */

      Get_fcursor(id, curs1, nil);

/* zjištění kurzoru nebo tabulky, do níž vede pohled id */

      integ := curs1;

/* přiřazení čísla kurzoru nebo tabulky do prom. typu Integer */

      if integ >= 32768 then

         Translate(curs1, ac, 0, cislo)

      else cislo : = ac;

/* přepočtení pozice záznamu ac v kurzoru curs1 na pozici tabulky, do níž vedl pohled id */

Viz

Set_fcursor


Funkce Get_item_value
Get_item_value

function Get_item_value(id : window_id; irec : trecnum; itemnum : short; var value : untyped) : Boolean;

Parametry

id - handle pohledu;

irec - interní číslo záznamu;

itemnum - číslo složky pohledu;

value - výstupní parametr: beztypová hodnota složky itemnum

Popis

Funkce zjistí skutečný obsah složky s číslem itemnum v záznamu irec v pohledu id. Zjištěnou hodnotu uloží do beztypové proměnné, odkud ji můžete přiřazením do proměnné získat.

Funkce přibližně nahrazuje zastaralou funkci Get_view_item. Tato funkce vracela v řetězci pouze obsah složky pohledu (to, co je napsané ve složce), zatímco funkce Get_item_value zjistí hodnotu atributu nebo proměnné, do níž složka vede. Je-li složka pohledu změněna a změna není ještě zapsána do databáze nebo proměnných, tyto dvě funkce vracejí různé hodnoty.

Interní číslo záznamu lze získat voláním funkce Get_view_pos.

Hodnota funkce

Funkce vrací TRUE po úspěšném provedení akce, jinak vrací FALSE.

Viz

Set_item_value, Get_view_item


Funkce Get_message
Get_message

function Get_message(var msg : integer) : Boolean;

Parametry

msg - proměnná, která přijme zprávu

Popis

Funkce Get_message čeká na další zprávu, kterou programu předá uživatel. Takováto zpráva může vzniknout stiskem tlačítka provádějícího příkaz Return v pohledu, vybráním některé položky z uživatelského menu nebo provedením akce v pohledu, která automaticky generuje standardní zprávu.

Funkce Get_message neskončí, dokud uživatel takovou zprávu nevygeneruje. To znamená, že "uvnitř" provádění funkce Get_message uživatel může např. editovat obsah databáze prostřednictvím pohledů otevřených na obrazovce nebo volat procedury projektu pomocí tlačítek.

Hodnota funkce

Funkce vrátí FALSE ve dvou případech:

- pokud uživatel vytvořil zprávu s hodnotou -1;

- pokud aplikace byla ukončena z operačního systému.

Příklad

while Get_message(MSG) DO

begin                      { cyklus zpracování zpráv }

  if MSG = 1100 then ...

  else if MSG = ...

Viz

Peek_message


Funkce Get_view_item
Get_view_item

function Get_view_item(id : window_id;  itemnum : short) : string;

Parametry

id - identifikace pohledu

itemnum - číslo složky pohledu

Popis

Funkce Get_view_item zjišťuje obsah složky s číslem itemnum pohledu id. Je-li v pohledu více záznamů, pracuje se s prvním z nich. Do doby, než se obsah složky zapíše do databáze nebo do proměnné, může být v atributu (proměnné) jiná hodnota, než vrací tato funkce.

Hodnota funkce

Funkce vrací řetězec znaků, který je obsahem zadané složky pohledu. Obsah řetězce není nijak konvertován.

Příklad

/* cyklus, který čeká, až do editační složky pohledu zapíšeme třetí znak */

  repeat

    if Peek_message then

       s := Get_view_item(id_pohledu,3)

  until Strlength(s)>=3;

Viz

Get_view_pos, Set_int_pos, Set_ext_pos, Set_view_item, Get_item_value


Funkce Get_view_pos
Get_view_pos

function Get_view_pos(id : window_id; var irec, erec : trecnum) : Boolean;

Parametry

id - identifikace pohledu

irec - vrácené interní číslo vybraného záznamu

erec - vrácené absolutní číslo vybraného záznamu

Popis

Funkce Get_view_pos vrátí údaj o tom, který záznam je v pohledu id zrovna vybrán. V parametru erec se vrátí absolutní číslo tohoto záznamu. V parametru irec se vrátí pořadové číslo tohoto záznamu v pohledu.

Hodnota funkce

Při úspěchu funkce vrací TRUE. Hodnota FALSE se vrátí v případě, že parametr id neoznačuje okno s pohledem.

Příklad

procedure synchronizace(vzor, cíl : window_id);

var irec, erec, cíl_rec : trecnum;

    vzor_curs, cíl_curs : cursor;

    flags : short;

{ Nastaví pohled "cíl" na stejný záznam jako pohled "vzor" }

begin

  if Get_view_pos(vzor, irec, erec) then

    if Get_fcursor(vzor, vzor_curs, flags) then

      if Get_fcursor(cil, cíl_curs, flags) then

        if not Super_recnum(vzor_curs, cíl_curs, erec, cíl_rec) then

          Set_ext_pos(cil, cíl_rec, -1);

end;

Viz

Get_view_item, Set_int_pos, Set_ext_pos, Set_view_item


Procedura Help_file
Help_file

procedure Help_file(var name : string);

Parametry

name - jméno souboru včetně cesty

Popis

Procedura Help_file zajistí, že stránky nápovědy volané funkcí Show_help se budou hledat v souboru name a nikoliv v souboru WB602.HLP. Soubor nápověd name musí být vytvořen podle konvencí Windows.

Viz

Show_help


Procedura Info_box
Info_box

procedure Info_box(var caption, text : string);

Parametry

caption - nadpis informačního okna

text - text v informačním okně

Popis

Procedura otevře na obrazovce modální okno obsahující nadpis caption, text  text, informační ikonu a tlačítko "OK". Procedura skončí poté, co uživatel stiskne toto tlačítko.

Stiskne-li uživatel místo toho kombinaci kláves Ctrl + F4, přeruší tím běh programu ve vnitřním jazyce. Takto lze ukončit případný věčný cyklus, v němž se neustále otevírá informační okno.

Příklad

Info_box("chyba",int2str(Sz_error));


Funkce Input_box
Input_box

function Input_box(var caption, text : string; maxlen : short) : Boolean;

Parametry

caption - nadpis dialogového okna

text - řetězec editovaný v dialogovém okně

maxlen - délka, na níž se omezí výstupní řetězec  text

Popis

Funkce Input_box otevře na obrazovce dialogové okno a umožní uživateli zadat jeden údaj ve formě řetězce znaků. Tento řetězec vrátí v proměnné  text. Obsah proměnné  text musí být před voláním této funkce inicializován řetězcem, které se má v dialogovém okně objevit po jeho otevření.

Uživatel nebude moci zadat více znaků, než je hodnota parametru maxlen.

Pro zadávání většího počtu údajů použijte pohledu do proměnných projektu.

Hodnota funkce

Funkce vrací TRUE, pokud bylo stisknuto tlačítko OK, FALSE, pokud bylo stisknuto tlačítko Zrušit.

Příklad

var

  a : boolean;

  ss : string[20];

  dat : date;

begin

  repeat

    ss := date2str(Today,1);

    a := Input_box("Zadejte datum",ss,10);

    dat := Str2date(ss);

  until (dat <> nonedate) or (a = false);

end.


Funkce Mail_parameters
Mail_parameters

function Mail_parameters(parent_id : window_id; var params : string; buflen : short) : Boolean;

Parametry

parent_id - handle okna, který má být vždy pod otevřeným dialogem, nebo nula;

params - vstupní i výstupní parametr: řetězec popisující parametry zásilky;

buflen - délka pole znaků předaného jako druhý parametr.

Popis

Funkce umožní interaktivně vytvořit parametry zásilky pro elektronickou poštu WinMail602 - zadat adresu příjemce, parametry přenosu, cílovou aplikaci, tabulku aj. Tato funkce se volá před vlastním odesláním dat poštou.

Před voláním funkce je nutno zapsat do params buď prázdný řetězec nebo řetězec obsahující parametry zásilky. Funkce otevře dialogové okno pro nastavení parametrů a dialog naplní hodnotami z params. Po stisku tlačítka OK se do params zapíšou parametry zásilky specifikované uživatelem v dialogovém okně.

V parametru buflen zadáváte velikost v bajtech, kterou může vznikající řetězec params naplnit. Doporučená hodnota je alespoň 300 bajtů. Bude-li velikost buflen menší než počet bajtů potřebný pro zápis zadaných parametrů, nepodaří se funkci ukončit stiskem tlačítka OK.

Vzniklý řetězec se předává funkci Data_export, která zabezpečí vlastní přenos dat.

Hodnota funkce

Funkce vrací TRUE, pokud bylo stisknuto tlačítko OK, FALSE, pokud bylo stisknuto tlačítko Zrušit akci.

Viz

Data_export

Příklad

table

  aa;

var

  s : string[300];

begin

if Mail_parameters(0,s,300) then

  Data_export(aa,categ_table,s,0,0);

end.


Funkce Main_menu
Main_menu

function Main_menu(var menudef : string) : Boolean;

Parametry

menudef - specifikace menu nebo prázdný řetězec nebo NIL resp. NULL

Popis

Pokud parametr menudef specifikuje uživatelské menu, pak funkce přiřadí hlavnímu oknu WinBase602 menu zadané tímto parametrem. Pokud hlavní okno mělo předtím jiné menu, je odstraněno.

Parametr menudef může specifikovat menu trojím způsobem:

- pokud začíná hvězdičkou, pak za ní následuje jméno, pod nímž je definice menu uložena v databázi;

- pokud začíná znakem plus, pak za ním následuje označení textového souboru, který obsahuje definici menu;

- jinak přímo parametr menudef obsahuje definici menu)

Pokud je parametr menudef roven prázdnému řetězci znaků, pak funkce pouze znova vykreslí existující menu hlavního okna. Přitom se některé položky mohou v souladu s podmínkami své aktivity vypsat šedě.

Pokud je parametr menudef roven NULL (resp. NIL), pak funkce odstraní uživatelské menu hlavního okna WinBase602. Jste-li ve vývojovém prostředí a neběží-li aplikační program, pak se oknu vrátí jeho původní vývojové menu.

Hodnota funkce

Funkce vrací TRUE, pokud se menu podařilo vytvořit a přiřadit oknu, jinak vrací FALSE. Příčinou chyby je nejčastěji závada v definici menu.

Příklad

Main_menu("*Hlavni_menu");


Funkce Open_view
Open_view

function Open_view(var viewdef : string;  base : tcursnum; flags : integer; position : trecnum; parent_id : window_id; var id : window_id) : window_id;

Parametry

viewdef - specifikace pohledu, který má být otevřen

base - otevřený kurzor nebo konstanta NO_REDIR - viz také parametr tcursnum

flags - viz Parametry otevření pohledu.

position - číslo prvního záznamu

parent_id - identifikace pohledu, který má být vždy pod otevíraným pohledem, nebo nula

id - výstupní parametr: identifikace otevřeného pohledu

Popis

Funkce Open_view otevře na obrazovce okno obsahující pohled specifikovaný parametrem viewdef.  Začíná-li string viewdef hvězdičkou (*), musí následovat jméno pohledu v databázi, začíná-li znakem plus (+), musí následovat jméno textového souboru, který obsahuje definici pohledu, začíná-li jinak, je tento řetězec přímo definicí pohledu.

Je-li mezi příznaky parametrů flags i hodnota MODAL_VIEW (otevřít pohled jako modální), je důležité si uvědomit, že program se ve funkci Open_view zastaví po tu dobu, po kterou pohled bude otevřen. Program bude pokračovat teprve po uzavření modálního pohledu.

Pokud parametr base má jinou hodnotu než NO_REDIR, bude pohled přesměrován na tento kurzor.

Parametr  position udává číslo záznamu, na němž má být pohled otevřen. Je-li v okně pohledu více záznamů, bude specifikovaný záznam první v pořadí. Pokud je tento parametr kladný, považuje se za pořadové číslo záznamu v pohledu, je-li záporný, považuje se za externí číslo záznamu v tabulce nebo kurzoru, do něhož pohled vede, a uplatní se jeho absolutní hodnota.

Parametr parent_id má hodnotu jinou než nula pouze tehdy, pokud si přejeme, aby otevíraný pohled se nemohl ocitnout nikdy pod (dříve otevřeným) pohledem parent_id.

Parametrem id může být buď konstanta NIL nebo proměnná. V druhém případě funkce zapíše do této proměnné identifikaci otevřeného pohledu a tuto proměnnou si zapamatuje. Jakmile bude pohled uzavřen, WinBase602 zapíše do této proměnné nulu. Díky tomu může program zjistit, že uživatel uzavřel některý pohled.

Poloha, rozměry, barva a obsah okna jsou dány jeho definicí.

Hodnota funkce

V případě úspěchu funkce vrací identifikaci otevřeného pohledu, při neúspěchu vrátí nulu.

Příklad

/* pohled zavře program */

Open_view("*POHLED1", NO_REDIR, NO_INSERT+NO_DELETE,0,0,id_POHLED1);

...

Close_view(id_POHLED1);

/* uživatel zavře pohled sám na záznamu s číslem rec*/

Open_view("*POHLED1",NO_REDIR,MODAL_VIEW+NO_MOVE,-rec,0,id_POHLED1);

repeat Peek_message until id_POHLED1 = 0;

/* otevření pohledů synchronizovaných trvale na stejný záznam */

Open_view("*pohled1",NO_REDIR,0,20,0,id1);

Open_view("*pohled2",NO_REDIR,PARENT_CURSOR,0,id1,id2);

Register_rec_syn(id1,id2);

...

Viz

Close_view


Funkce Peek_message
Peek_message

function Peek_message : Boolean;

Popis

Funkce Peek_message zjišťuje, zda je k dispozici nějaká zpráva pro prezentační vrstvu WinBase602.

Tato funkce se hodí v případech, kdy program čeká, dokud buď nedojde nějaká zpráva, nebo dokud nenastane určitá situace.

Pokud funkce Peek_message signalizuje, že zpráva je k dispozici, pak si ji může funkce Get_message vyzvednout bez čekání.

Hodnota funkce

Funkce vrací TRUE, pokud zpráva je k dispozici, nebo FALSE, pokud žádná zpráva nedošla.

Příklad

/*program ve smyčce čeká, až uživatel zavře pohled*/

Open_view("*POHLED1", NO_REDIR, NO_INSERT+NO_DELETE,0,0,id_POHLED1);

repeat Peek_message until id_POHLED1 = 0;

Viz

Get_message


Procedura Pick_window
Pick_window

procedure Pick_window(id : window_id);

Parametry

id - identifikace pohledu

Popis

Procedura Pick_window "vytáhne" pohled zadaný parametrem id nad všechna ostatní nemodální okna na obrazovce a učiní jej aktivním.


Procedura Print_copies
Print_copies

function Print_copies(copies : short; collate : Boolean) : Boolean;

Parametry

copies - počet kopií

collate -  požadavek na snášení kopií

Popis

Funkce Print_copies nastavuje požadovaný počet kopií, které vzniknou při tisku pohledu.

Některé tiskárny jsou schopny tisknout každou stránku vícekrát a tím urychlit vytištění více kopií. U nich se uplatní parametr  collate. Pokud má hodnotu TRUE, pak bude každá kopie vytištěna zvlášť a schopnost opakovat tisk stránky se nebude používat. Pokud parametr má hodnotu FALSE, pak se vytisknou napřed všechny první stránky, pak všechny druhé atd. Tisk bude celkově rychlejší, ale kopie bude nutno poté snášet ručně.

Funkce Print_copies nemá vliv na tištění textů z editoru ani na výstup sestavy na obrazovku.

Počet kopií a jejich snášení lze nastavit také interaktivně pomocí funkce Print_opt.

Příklad

Print_copies (2, True);

Viz

Print_view, Set_printer, Printer_dialog, Print_margins, Print_opt


Funkce Print_opt
Print_opt

function Print_opt(parent : window_id) : Boolean;

Parametry

parent - identifikace "rodiče'' otevíraného okna nebo nula

Popis

Funkce Print_opt otevře na obrazovce okno, které dovolí zadat parametry generování sestavy. Nastavené hodnoty parametrů ovlivní práci funkce Print_view. Neinteraktivní nastavení stejných parametrů umožňuje procedura Set_printer, Print_margins a Print_copies.

Hodnota funkce

Funkce vrátí TRUE, pokud uživatel ukončí zadávání parametrů jejich potvrzením. Funkce vrátí FALSE, pokud uživatel požádá stiskem tlačítka v okně s parametry o zrušení akce.

Příklad

if Print_opt(0) then View_print("*POHLED1")

Viz

Print_view, Set_printer, Printer_dialog, View_print, Print_margins, Print_copies


Funkce Print_view
Print_view

function Print_view(var viewdef : string;  base : tcursnum; firstrec, lastrec : trecnum) : Boolean;

Parametry

viewdef - specifikace pohledu, který má být otevřen

base - otevřený kurzor nebo konstanta NO_REDIR - viz také parametr tcursnum

firstrec - pořadové číslo (interní) prvního tištěného záznamu

lastrec - pořadové číslo (interní) posledního tištěného záznamu

Popis

Funkce Print_view vytiskne sestavu definovanou pohledem specifikovaným parametrem viewdef. Pokud parametr base má jinou hodnotu než NO_REDIR, bude pohled přesměrován na tento kurzor.

Do sestavy budou zahrnuty pouze ty záznamy, jejichž pořadová čísla v pohledu spadají do intervalu od firstrec do lastrec.

Další parametry tisku lze zadat buď interaktivně pomocí funkce Print_opt, nebo neinteraktivně pomocí funkce Set_printer. Pokud chcete, aby funkce Print_view tiskla rozsah záznamů specifikovaný některou z těchto funkcí, pak hodnoty parametrů firstrec a lastrec musí být -1. Počet kopií nastavíte procedurou Print_copies. Okraje tiskové stránky se nastavují pomocí Print_margins.

Hodnota funkce

V případě úspěchu funkce vrací TRUE, jinak FALSE.

Příklad

Print_opt(0);

if not Print_view("*POHLED1", NO_REDIR, -1, -1) then ...

Viz

Print_opt, Set_printer, Printer_dialog, Print_margins, Print_copies


Procedura Printer_dialog
Printer_dialog

procedure Printer_dialog(parent : window_id);

Parametry

parent - identifikace "rodiče'' otevíraného okna nebo nula

Popis

Procedura otevře na obrazovce standardní dialogové okno pro volbu tiskárny. Provedená volba platí až do nové volby nebo do ukončení práce s WinBase602. Volba tiskárny neovlivní jiné aplikace běžící pod Windows.

Příklad

Printer_dialog(0);


Funkce Printer_select
Printer_select

function Printer_select(var printer_name, port_name : string;

orientation, papersize, paperbin, quality, duplex, color , truetype : short) : Boolean;

Parametry

printer_name - jméno tiskárny

port_name - jméno výstupního portu

orientation - orientace papíru

papersize - druh a velikost papíru

paperbin - způsob podávání papíru

quality - rozlišení tiskárny nebo kvalita tisku

duplex - duplexní tisk

color - barevný tisk

truetype - způsob tisku TT fontů na laserových tiskárnách

Popis

Funkce Printer_select umožní programově zvolit tiskárnu a nastavit její parametry. Zatímco prvních pět parametrů funguje spolehlivě pro všechny tiskárny, poslední čtyři parametry se uplatní pouze u některých značek. Navíc některé tiskárny mají své vlastní další parametry, které, chcete-li je použít, musíte zadat pomocí funkce Printer_dialog.

•	V parametru printer_name zadáte jméno tiskárny, která se má použít. Tiskárna musí být nainstalována ve Windows. Jméno tiskárny musí být zadáno přesně stejně, jako se objevuje v dialogu na výběr tiskárny, včetně mezer mezi slovy a velikostí písmen. Tento parametr nesmí zůstat prázdný.

•	Parametr port_name určí výstupní bránu pro tisk. Nejobvyklejší hodnoty jsou LPT1:, LPT2:, COM1:, COM2: (včetně dvojtečky) apod. Prázdný řetězec znamená použít port přednastavený pro tiskárnu zadanou parametrem printer_name.

•	Parametr orientation nastaví polohu papíru. Hodnota 1 znamená tisk na výšku, hodnota 2 tisk na šířku zvoleného papíru.

•	Pomocí parametru papersize nastavíte druh a velikost papíru v tiskárně. Nejběžnější druhy papíru jsou uvedeny v následující tabulce:

druh a rozměr papíru	hodnota

dopisní, 8 3/4 x 11 palců	1

Legal, 8 3/4 x 14 palců	5

Executive, 7 1/2 x 10 1/2 palce	7

A3, 297 x 420 mm	8

A4, 210 x 297 mm 	9

A5, 148 x 210 mm	11

B5, 182 x 257 mm	13

obálka #10, 4 1/8 x 9 1/2 palce	20

obálka DL, 110 x 220 mm	27

obálka C5, 162 x 229 mm	28

obálka Monarch, 3 7/8 x 7 1/2 palce	37

skládaný papír 14 7/8 x 11 palců	39

skládaný papír 8 1/2 x 12 palců	40

skládaný papír 8 1/2 x 13 palců	41

uživatelsky definovaný rozměr	256

Vyberte si pouze z těch možností, které nabízí ovladač tiskárny (v anglických Windows místo obálka naleznete slovo Envelope, místo dopisní slovo Letter a místo skládaný papír slovo Fanfold).

•	Parametr paperbin nastaví způsob podávání papíru nebo typ podavače.

K dispozici jsou tyto hodnoty:

způsob podávání	hodnota

horní podavač	1

spodní podavač	2

ruční podávání	4

obálky	5

podavač obálek	6

automatický	7

traktor	8

Vyberte si pouze z těch možností, které nabízí ovladač tiskárny. Pokud nenabízí žádnou volbu, použijte hodnotu 1.

•	Parametr quality definuje kvalitu tisku.

kvalita tisku	hodnota

Kocept	-1

Nízká kvalita	-2

Střední kvalita	-3

Vysoká kvalita	-4

Použijete-li kladné číslo, definujete rozlišení tiskárny v počtů znaků na palec (DPI). U některých tiskáren je standardní hodnota nula.

•	Pomocí parametru duplex se nastavuje oboustranný tisk (u tiskáren, které to umožňují). U běžných tiskáren použijte hodnotu 1. Další hodnoty určí způsob otočení papíru v tiskárně.

tisk	hodnota

Simplex	1

Duplex Horizontal	2

Duplex Vertical	3

•	Parametr color přikáže barevné tiskárně tisknout barevně či černobíle. U běžných tiskáren použijte hodnotu 1.

tisk	hodnota

Color	1

Monochrome	2

•	Posledním parametrem je parametr truetype, který nastaví způsob tisku TT fontů.

způsob	hodnota

tisk jako grafika	1

download TT fontů do tiskárny HP	2

náhrada TT fontů tzv. Device fonty	3

Používáte-li počeštěné TrueType fonty, doporučujeme používat hodnotu parametru 1. U ostatních hodnot jsou špatné zkušenosti s diakritikou.

Nejste-li si u některého parametru jisti správnou hodnotou, můžete ji zjistit následujícím způsobem: v globálních parametrech WinBase602 si interaktivně nastavte danou tiskárnu a její parametry. Uvedené nastavení se zapíše do sekce [Printer] souboru WINBASE.INI, kde si jej můžete zjistit.

Hodnota funkce

V případě úspěšného nastavení funkce vrací TRUE, v opačném případě FALSE.

Příklad

Nastavit tiskárnu HP IIP pro tisk na papír A4 na šířku:

Printer_select('HP LaserJet IIP','',2,9,1,-4,1,2,1);

Viz

 Set_printer, Print_opt, Print_copies, Print_margins , Printer_dialog


Procedura Print_margins
Print_margins

procedure Print_margins(leftmargin, rightmargin, topmargin, bottommargin : integer);

Parametry

leftmargin - levý okraj stránky v mm

rightmargin - pravý okraj v mm

topmargin - horní okraj v mm

bottommargin - spodní okraj v mm

Popis

Procedura Print_margins umožňuje nastavit parametry stránky navíc k parametrům z Ovládacího panelu Windows.

Příklad

 Print_margins(20,20,0,20);

Viz

 Set_printer, Print_opt, Print_copies


Procedura Put_pixel
Put_pixel

procedure Put_pixel(id : window_id; x, y, colour : short);

Parametry

id - identifikace pohledu

x, y - souřadnice v okně pohledu id

color - označení barvy

Popis

Procedura nakreslí v okně id v souřadnicích x a y bod v barvě color.

Příklad

var

  id,i,j : short;

begin

  Open_view("a DBDIALOG 20 20 400 300 begin end",no_redir,0,0,0,id);

  Draw_line(id, 50,50,100,50,0);

  Draw_line(id, 100,50,100,100,0);

  Draw_line(id, 100,100,50,100,0);

  Draw_line(id, 50,100,50,50,0);

  for i := 51 to 99 do

    for j := 51 to 99 do

      Put_pixel(id,i,j,i*j mod 255);

  repeat  Peek_message until id=0;

end.

Viz

Draw_line


Funkce QBE_state
QBE_state

function QBE_state(id : window_id) : integer;

Parametry

id - identifikace pohledu

Popis

Funkce dovoluje určit, je-li v pohledu id položen QBE dotaz nebo uspořádání. Funkce se využije zejména v podmínkách, které specifikují viditelnost, aktivitu nebo funkci tlačítek v pohledu.

Hodnota funkce

Funkce vrací hodnotu 0, pokud v pohledu není kladen dotaz QBE, hodnotu 1, pokud jsou zadávána omezení na hodnoty atributů, nebo hodnotu 2, pokud je zadáváno uspořádání záznamů.


Procedura Register_key
Register_key

procedure Register_key(keycode : short; with_shift, with_ctrl, with_alt : Boolean; msg : integer);

Parametry

keycode - číslo kódu klávesy;

with_shift - příznak současně stisknuté klávesy Shift;

with_ctrl - příznak současně stisknuté klávesy Ctrl;

with_alt	- příznak současně stisknuté klávesy Alt;

msg - číslo zprávy;

Popis

Procedura umožní měnit význam kláves. Způsobí, že při stisku klávesy se vyšle zpráva.

Každé klávese (nebo její kombinaci s klávesami Shift, Ctrl a Alt), jejíž stisk chcete zachytit, musíte pomocí Register_key, přiřadit číslo zprávy msg. Pomocí funkce Get_ext_message v hlavní smyčce programu na tuto zprávu můžete reagovat.

Čísla zpráv msg musí být z intervalu 1001 až 60 000 nebo 0. Má-li parametr msg hodnotu 0, vrátí se klávese původní význam.

Předefinováním některých kláves (hlavně funkčních) přijdete o jejich původní význam. Týká se to nejen kláves ve WinBase602, ale i kláves, které používají Windows (např. rychlý výběr z menu apod). Volte proto uvážlivě, které klávesy použijete pro své účely.

V následující tabulce uvedeme číselné kódy většiny kláves na běžné klávesnici:

klávesa	kód	klávesa	kód	klávesa	kód
Backspace	8	A	65	num 1	97
Tab	9	B	66	num 2	98
Enter	13	C	67	num 3	99
Pause	19	D	68	num 4	100
Escape	27	E	69	num 5	101
Mezerník	32	F	70	num 6	102
Page Up	33	G	71	num 7	103
Page Down	34	H	72	num 8	104
End	35	I	73	num 9	105
Home	36	J	74	num *	106
šipka vlevo	37	K	75	num +	107
šipka nahoru	38	L	76	num -	109
šipka vpravo	39	M	77	num .	110
šipka dolu	40	N	78	num /	111
Print Screen	44	O	79	F1	112
Insert	45	P	80	F2	113
Delete	46	Q	81	F3	114
0	48	R	82	F4	115
1	49	S	83	F5	116
2	50	T	84	F6	117
3	51	U	85	F7	118
4	52	V	86	F8	119
5	53	W	87	F9	120
6	54	X	88	F10	121
7	55	Y	89	F11	121
8	56	Z	90	F12	123
9	57	num 0	96	Scroll Lock	145

Příklad

reagujte na stisk klávesy Ctrl+F12:

Register_key(123,false,true,false,5000);

...

if msg=5000 then ...


Funkce Register_rec_syn
Register_rec_syn

function Register_rec_syn(id1,id2 : window_id);

Parametry

id1,id2 - handle pohledů

Popis

Funkce Register_rec_syn zajistí, že pohledy id1 a id2 budou synchronizovány na stejný záznam, vedou-li do stejného zdroje dat. Posun v jednom pohledu zapříčiní posun v pohledu druhém a naopak. Nejčastější použití funkce je, otevřete-li pohled id2 s příznakem PARENT_CURSOR na stejném záznamu jako v pohledu id1 a chcete mít zajištěnu synchronizaci až do zavření pohledů. V tomto případě funkce odpovídá akci Otevřít pohled na stejný záznam.

V případě, že programátor nezajistí stejný zdroj dat (oba kurzory jsou stejné nebo jeden je subkurzorem druhého - např. tabulka a kurzor do ní  vedoucí) pro oba pohledy, funkce neoznámí chybu, nicméně synchronizace bude fungovat špatně.

Synchronizace se ukončí zavřením jednoho z pohledů.

Hodnota funkce

Pokud se pohledy zdaří uvést do synchronizovaného stavu (bez ohledu na kurzory pohledů), vráti funkce TRUE, dojde-li k chybě (např. jeden pohled není otevřen), vrátí FALSE.

Příklad

synchronizovat dva pohledy

...

cislo := ...

Open_view("*Pohled1",NO_REDIR,0,cislo,0,id1);

Open_view("*Pohled2",NO_REDIR,PARENT_CURSOR,0,id1,id2);

/* druhý pohled se otevře na stejném záznamu cislo */

Register_rec_syn(id1,id2);

...


Procedura Relate_record
Relate_record

function Relate_record(var local_attrname, viewdef : string;    base : tcursnum; flags : short; var id : window_id; var remote_attrname : string) :  window_id;

Parametry

local_attrname  - jméno atributu, do něhož se zapisuje

viewdef - specifikace pohledu, který má být otevřen

base - otevřený kurzor nebo konstanta NO_REDIR

flags - příznaky

id - vrací identifikaci otevřeného pohledu, navíc do proměnné id bude po uzavření pohledu zapsána nula.

remote_attrname - jméno atributu ze vzdálené tabulky

Popis

Funkce Relate_record slouží k výběru záznamu z relačně propojené tabulky (číselníku) a přenosu hodnoty atributu remote_attrname z tohoto záznamu do atributu local_attrname v tabulce místní. Používá se v těch případech, kdy hodnota atributu v místní tabulce musí nabýt jedné z hodnot  některého atributu ve vzdálené tabulce (číselníku).

Funkce se běžně volá stiskem tlačítka v pohledu při vyplňování hodnot  záznamu. Odpovídá akci Otevřít relační pohled. Při vyplňování parametrů akce vyplňujete pouze jméno místního atributu, do něhož se hodnota zapisuje, jméno tabulky, v níž se nachází vzdálený atribut a jméno tohoto atributu.

Funkce (zavolaná např. stiskem tlačítka) otevře na obrazovce pohled specifikovaný parametrem viewdef případně přesměrovaný na kurzor zadaný parametrem base (pokud tento není roven NO_REDIR) a umožní uživateli, aby vybral jeden záznam. Záznam se vybere stejným způsobem jako při přivazování záznamů k ukazateli (tj. stiskem tlačítka, které se objeví v levé části pohledu).

Parametrem id může být buď konstanta NIL  nebo proměnná. V druhém případě funkce zapíše do této proměnné identifikaci otevřeného pohledu a tuto proměnnou si zapamatuje. Jakmile bude pohled uzavřen, WinBase602 zapíše do této proměnné nulu. Díky tomu může program zjistit, že uživatel uzavřel tento pohled.

Hodnota funkce

Pokud se podaří pohled otevřít, funkce vrací jeho identifikaci, jinak vrací nulu.


Procedura Reset_view
Reset_view

procedure Reset_view(id : window_id;  rec : trecnum; extent : short);

Parametry

id - identifikace pohledu

rec - interní (pořadové) číslo záznamu v pohledu

extent - rozsah akcí

Popis

Procedura Reset_view uvádí do souladu obsah pohledu na obrazovce s obsahem databáze: přitom data v databází určují, co bude na obrazovce, nikoli naopak. Funkce se volá poté, co program nebo činnost uživatele v jiném pohledu způsobily, že obsah pohledu již neodpovídá obsahu databáze.

Aktualizuje se obsah té části pohledu id, která obsahuje záznam rec. Je-li parametr rec roven -1, pak se aktualizuje celý obsah okna.

Parametr extent procedury Reset_view specifikuje rozsah činnosti této funkce. Jeho možné hodnoty jsou označeny konstantami použitelnými i z vnitřního jazyka:

•	RESET_VISIBILITY (0) - zajistí, že složky pohledu budou viditelné a aktivní v souladu s podmínkami viditelnosti a aktivity zadanými v návrhu pohledu.

•	RESET_CONTROLS (1) - zajistí, že obsah složek pohledu bude odpovídat obsahu databáze a navíc dělá to, co RESET_VISIBILITY.

•	RESET_DELETIONS (5) - zajistí, že se v pohledu objeví záznamy, přidané do tabulky nebo do kurzoru, do nichž pohled vede. Pokud v pohledu nemají být zrušené záznamy, pak z pohledu odstraní ty záznamy, které byly v tabulce nebo kurzoru zrušeny. Kurzor se znovu nepřebudovává, tzn. že záznam přidaný do kurzoru se objeví až na jeho konci bez ohledu na třídění a záznam přidaný do tabulky se v otevřeném kurzoru do téže tabulky neobjeví. Navíc dělá to, co RESET_CONTROLS.

•	RESET_CACHE (256) - provede nové naplnění vyrovnávací paměti klienta daty z databáze.

•	RESET_CURSOR (512) - způsobí zavření a opětovné otevření kurzoru. Tím se aktualizuje setřídění záznamů a jejich výběr do kurzoru (pokud se neděje průběžně). Navíc dělá to, co RESET_CACHE.

Z prvních tří konstant se vybere nejvýše jedna a dle potřeby se sečte se čtvrtou nebo pátou konstantou.

Pokud byl obsah pohledu uživatelem změněn a nebyl zapsán do databáze, pak voláním Reset_view s konstantou RESET_DELETIONS, RESET_CACHE nebo RESET_CURSOR jsou změny ztraceny. Pokud chcete změny zapsat do databáze, musíte předem pohled synchronizovat.

Proceduru Reset_view je účelné volat tehdy, pokud v důsledku přepsání atributů nebo proměnných programem nastane situace, v níž obsah pohledu otevřeného na obrazovce již není aktuální.

Příklad

Reset_view(id_POHLED1,-1,RESET_DELETIONS+RESET_CURSOR)


Funkce Roll_back_view
Roll_back_view

procedure Roll_back_view(id : window_id);

Parametry

id - handle otevřeného pohledu

Popis

Procedura Roll_back_view odvolá změny v aktuálním záznamu v záznamově synchronizovaném pohledu id a překreslí pohled zpět s hodnotami z databáze. Často se používá jako součást procedury volané po stisku uživatelského tlačítka Zrušit akci.

Procedura odpovídá akci Odvolat změny v pohledu.

Příklad

Roll_back_view(ID_POHLED1)

viz

Commit_view


Funkce Select_file
Select_file

function Select_file(parent_id : window_id;  var filename : string) : Boolean;

Parametry

parent_id - handle pohledu, nad kterým se má otevřít dialog, nebo nula

filename - vstupní i výstupní parametr - plné jméno souboru

Popis

Funkce otevře na obrazovce nad pohledem specifikovaným v parent_id standardní dialog pro výběr souborů (selektor souborů). V dialogu bude nastaven drive, adresář i jméno souboru analyzované z plného  jména souboru filename. Ve jménu souboru mohou být použita i hvězdička jako zástupný znak pro množinu souborů.

Parametr filename musí být před voláním funkce inicializován. Po ukončení funkce stiskem tlačítka Vybráno v dialogu se do téhož parametru zapíše plné jméno vybraného souboru.

Hodnota funkce

Pokud se podaří vybrat soubor, funkce vrací TRUE, jinak vrací FALSE.

Příklad

var

  name : string[100];

  f : file;

begin

   name := "c:\*.*";

   if Select_file(0,name) then Rewrite(f,name);

   ...

end.

viz

Select_directory


Funkce Select_directory
Select_directory

function Select_directory(parent_id : window_id;  var dir : string) : Boolean;

Parametry

parent_id - handle pohledu, nad kterým se má otevřít dialog, nebo nula

dir - vstupní i výstupní parametr - cesta k adresáři

Popis

Funkce otevře na obrazovce nad pohledem specifikovaným v parent_id dialog pro výběr adresáře.  V dialogu bude nastavena jednotka i adresář analyzované z parametru dir.

Parametr dir musí být před voláním funkce inicializován. Po ukončení funkce stiskem tlačítka Vybráno v dialogu se do téhož parametru zapíše cesta k novému adresáři.

Hodnota funkce

Pokud se podaří vybrat soubor, funkce vrací TRUE, jinak vrací FALSE.

Příklad

var

  zaldir : string[200];

begin

   zaldir := "c:\zaloha";

   if Select_directory(0,zaldir) then ZalohujData(zaldir);

   ...

end.

viz

Select_file


Funkce Select_records
Select_records

function Select_records(var viewdef : string;  base : tcursnum; flags : short;  limit : short;  var bindl; parent_id : window_id;  var id : window_id) : window_id;

Parametry

viewdef - specifikace pohledu, který má být otevřen

base - otevřený kurzor nebo konstanta NO_REDIR - viz také parametr tcursnum

flags - viz Parametry otevření pohledu

limit - maximální počet vybraných záznamů (číslo větší nebo rovno 1)

bindl - pole složek typu  trecnum (viz popis níže)

parent_id - identifikace pohledu, který má být vždy pod otevíraným pohledem, nebo nula

id - vrací identifikaci otevřeného pohledu, navíc do proměnné id bude po uzavření pohledu zapsána nula.

Popis

Funkce Select_records slouží k výběru záznamu nebo množiny záznamů z tabulky. Procedura otevře na obrazovce pohled specifikovaný parametrem viewdef případně přesměrovaný na kurzor zadaný parametrem base (pokud tento není roven NO_REDIR) a umožní uživateli, aby vybral určité záznamy. Záznamy se vybírají stejným způsobem jako při přivazování záznamů k ukazateli (tj. stiskem tlačítka, které se objeví v levé části pohledu) .Program se pak může dozvědět absolutní čísla těchto vybraných záznamů. Čísla vybraných záznamů v poli bindl jsou absolutními čísly záznamů v kurzoru, do něhož pohled vede.

Vybrané záznamy se zaznamenají v poli bindl. Počet složek pole bindl musí být  alespoň o 1 větší, než je hodnota parametru limit. První složka pole bindl obsahuje počet vybraných záznamů, další složky pak obsahují absolutní čísla vybraných záznamů tabulky.

Obsah pole bindl má význam nejen po, ale i  před voláním Select_records. Program může do pole bindl zapsat čísla nějakých "předem" vybraných záznamů, a  musí do první složky pole zapsat jejich počet. Pokud žádné záznamy nemají být vybrány předem, je  nutno před voláním Select_records do první složky pole bindl zapsat nulu.

Parametr parent_id má hodnotu jinou než nula pouze tehdy, pokud si přejeme, aby se otevíraný pohled nemohl ocitnout nikdy pod (dříve otevřeným) pohledem parent_id.

Parametrem id může být buď konstanta NIL, nebo proměnná. V druhém případě funkce zapíše do této proměnné identifikaci otevřeného pohledu a tuto proměnnou si zapamatuje. Jakmile bude pohled uzavřen, WinBase602 zapíše do této proměnné nulu. Díky tomu může program snadno zjistit, že uživatel uzavřel některý pohled.

Hodnota funkce

Pokud se podaří pohled otevřít, funkce vrací jeho identifikaci, jinak vrací nulu.

Příklad

var

  pole : array[0..10] of trecnum;

  id : window_id;

  i : short;

cursor

  CURS;

begin

  Open_cursor(CURS);

  pole[0]:=0;

  Select_records("*POHL1",CURS,NO_INSERT+NO_DELETE,10,pole,0,id);

  while (id <> 0) do Peek_message;

  for i := 1 to pole[0] do

             CURS[pole[i]].plat := CURS[pole[i]].plat + 1000;

  Close_cursor(CURS);

end.


Funkce Send_message
Send_message

function Send_message(id : window_id;  msg : short;  wParam : short;  lParam : integer) : integer;

Parametry

id - identifikace okna

msg -  číslo zprávy

wParam - první parametr zprávy

lParam - druhý parametr zprávy

Popis

Funkce Send_message zasílá zprávu  msg oknu  id. Zpráva má parametry  wParam a  lParam, jejichž význam závisí na druhu zprávy. Zpráva je oknu doručena ihned a okno na ní ihned reaguje.

Funkce přímo volá funkci Windows SendMessage a vrací její výsledek.

Zprávy jsou označeny konstantami začínajícími SZM_. Mají dva parametry wP typu WPARAM a lP typu LPARAM. Pokud parametr není popsán, na jeho hodnotě nezáleží. Zpracování zprávy vrací výsledek typu LRESULT. Není-li výsledek uveden, pak na jeho hodnotu nelze spoléhat.

Zprávy zasílané okenní funkci

Přechody mezi záznamy v pohledu

SZM_NEXTREC (1584): přechod na následující záznam

SZM_PREVREC(1585): přechod na předchozí záznam

SZM_FIRSTREC(1586): přechod na první záznam

SZM_LASTREC(1587): přechod na poslední záznam

SZM_NEXTPAGE(1588): přechod o stránku dopředu

SZM_PREVPAGE(1589): přechod o stránku zpět

Přechody mezi složkami v záznamu (v obecném pohledu závisejí na zadaném pořadí složek)

SZM_FIRSTITEM(1590): přechod na první složku v záznamu

SZM_LASTITEM(1591): přechod na poslední složku v záznamu

SZM_NEXTTAB(1592): přechod na následující složku, kterou lze vybrat TABem

SZM_PREVTAB(1593): přechod na předchozí složku, kterou lze vybrat TABem

SZM_UPITEM(1595): přechod o složku výše

SZM_DOWNITEM(1594): přechod o složku níže

SZM_SETIPOS(1601): přechod na složku s identifikací určenou ve wParam

Kladení dotazů v pohledu

SZM_QBE(1598): otevření okna pro zadaní dotazu

SZM_ORDER(1612): otevření okna pro zadání uspořádání

SZM_ACCEPT_Q(1614): konec zadávání dotazu nebo uspořádání, aplikace dotazu resp. uspořádání

SZM_UNLIMIT(1599): odstranění položeného dotazu a zadaného uspořádání, návrat k původnímu obsahu pohledu

Rušení a vkládání:

SZM_DELREC(1603): zrušení vybraného záznamu; vrací 2 při úspěchu; vrací 0, pokud v pohledu nelze rušit záznamy; vrací 1, pokud při rušení záznamu došlo k chybě nebo pokud uživatel nepotvrdil zrušení záznamu.

SZM_DELALL(1604): zrušení všech záznamů v pohledu bez dotazu.

SZM_DELASK(1607): zrušení všech záznamů v pohledu po potvrzení uživatelem.

SZM_INSERT(1602): vloží záznam do pohledu. Vrací pořadové číslo vloženého záznamu v pohledu, vrací -1 při chybě nebo pokud nelze vkládat záznamy.

Ostatní

SZM_PRINT(1613): otevře okno s parametry tisku a umožní vytisknout obsah pohledu

SZM_LOCKS(1628): otevře dialogové okno pro zamykání pohledu a jeho plnění novým obsahem

SZM_INDEX(1596): otevře systémový pohled do hodnot multiatributu, lze použít pouze na složce s multiatributem následovaným prázdným indexem [ ]

SZM_BIND(1600): přivazuje nebo odvazuje záznam, jehož pořadové číslo je v lP. Použitelné pouze ve vázacích pohledech.

Hodnota funkce

Funkce vrací reakci okna  id na doručenou zprávu.


Funkce Set_cursor
Set_cursor

function Set_cursor(tvar : short) : short;

Parametry

tvar - požadovaný tvar kurzoru myši

Popis

Funkce Set_cursor nastavuje tvar kurzoru spojeného s myší. Pokud je parametr tvar roven nule, nastaví obyčejný kurzor s šipkou, je-li roven jedné, nastaví kurzor s přesýpacími hodinami.

Toto nastavení platí pouze do té doby, dokud uživatel nepohne s myší a není doručena zpráva o této akci. Nastavení kurzoru ve tvaru hodin má smysl tehdy, pokud program provádí časově náročný výpočet, během něhož nezpracovává docházející zprávy (tedy nevolá funkci Get_message ani Peek_message).

Po ukončení programu se kurzor automaticky nastaví do tvaru šipky.

Hodnota funkce

Funkce vrací předchozí tvar kurzoru, tedy 1 pro hodiny a 0 pro šipku.


Funkce Set_ext_pos
Set_ext_pos

function Set_ext_pos(id : window_id;  pos : trecnum; itemnum : short) : Boolean;

Parametry

id - identifikace pohledu

pos - absolutní číslo záznamu

itemnum - číslo některé složky pohledu id

Popis

Funkce Set_ext_pos způsobí, že v pohledu id bude vybraným záznamem záznam s absolutním číslem rec a vybranou položkou položka s číslem itemnum. Pokud parametr itemnum má hodnotu -1, pak se změní pouze vybraný záznam a vybraná položka zůstane beze změny.

Hodnota funkce

Funkce vrací TRUE po úspěšném provedení akce, jinak vrací FALSE.

Příklad

Nekonečné prohlížení záznamů v pohledu:

Procedure Dokola;

var

 i,j : integer;

 id : window_id;

begin

  Open_view('*POHL1',no_redir,0,0,0,id);

  repeat

    for i := 0 to 10 do begin

      Set_ext_pos(id, i, -1);

      Peek_message;

      for j := 1 to 1000;

    end;

  until false;

end;

Viz

Get_view_pos, Get_view_item, Set_int_pos, Set_view_item


Funkce Set_fcursor
Set_fcursor

function Set_fcursor(id : window_id; curs : tcursnum; flags : short) : Boolean;

Parametry

id - identifikace pohledu

curs - otevřený kurzor - viz také parametr tcursnum

flags - viz Parametry otevření pohledu

Popis

Funkce přesměruje již otevřený pohled id na nový kurzor curs a předá pohledu nové parametry flags. Kurzor curs musí mít stejné složky jako kurzor, nad nimž je pohled otevřen, jinak je chování WinBase602 nedefinováno.

Je-li mezi parametry flags požadavek na uzavření kurzoru při uzavírání pohledu (AUTO_CURSOR), pak se vztahuje již k novému kurzoru curs. Je-li flags rovno -1, převezmou se původní parametry pohledu.

Pro provedení této funkce je rozumné volat proceduru Reset_view.

Provedením funkce Set_fcursor se automaticky nezavírá původní kurzor, je nutné ho někdy později zavřít ručně.

Hodnota funkce

Funkce vrací TRUE po úspěšném provedení akce, jinak vrací FALSE. Hodnota funkce neříká nic o tom, zda pohled bude schopen s dodaným kurzorem pracovat.

Příklad

  sel := 'select * from Tfirma where ...' ;

  if Open_sql_cursor(cfind,sel) then signalize;

  Open_view('*pvybrsuper',no_redir,0,0,0,id_vyb);

  id_subvyb := GetDlgItem(id_vyb,3);

/* zjištění id subpohledu */

  if Set_fcursor(id_subvyb,cfind,-1) then

    Reset_view(id_subvyb,-1,1);

/* vnucení kurzoru cfind subpohledu*/

Viz

Get_fcursor


Funkce Set_int_pos
Set_int_pos

function Set_int_pos(id : window_id;  pos : trecnum; itemnum : short) : Boolean;

Parametry

id - identifikace pohledu

pos - interní číslo záznamu v pohledu id

itemnum - číslo některé složky pohledu id

Popis

Funkce Set_int_pos způsobí, že v pohledu id bude vybraným záznamem záznam s pořadovým číslem rec a vybranou položkou položka s číslem itemnum. Pokud parametr itemnum má hodnotu -1, změní se pouze vybraný záznam a vybraná položka zůstane beze změny.

Častěji se však používá podobná funkce Set_ext_pos.

Hodnota funkce

Funkce vrací TRUE po úspěšném provedení akce, jinak vrací FALSE.

Viz

Get_view_pos, Get_view_item, Set_ext_pos, Set_view_item


Funkce Set_item_value
Set_item_value

function Set_item_value(id : window_id; irec : trecnum; itemnum : short; var value : untyped) : Boolean;

Parametry

id - handle pohledu;

irec - interní číslo záznamu;

itemnum - číslo složky pohledu;

value - vstupní parametr: beztypová hodnota složky itemnum

Popis

Funkce nastaví nový obsah složky s číslem itemnum v záznamu irec v pohledu id. Hodnota musí být předem přiřazena do beztypové proměnné value.

Interní číslo záznamu v pohledu lze zjistit voláním funkce Get_view_pos.

Funkce přibližně nahrazuje zastaralou funkci Set_view_item, která pouze zapsala novou hodnotu do složky pohledu. Funkce Set_item_value navíc zapíše hodnotu do atributu nebo proměnné, do níž složka vede.

Hodnota funkce

Funkce vrací TRUE po úspěšném provedení akce, jinak vrací FALSE.

Viz

Get_item_value, Get_view_pos, Set_view_item


Procedura Set_printer
Set_printer

procedure Set_printer(firstrec, lastrec : trecnum; firstpage, lastpage, direction : short; var outfile : string;  leftmargin : short);

Parametry

firstrec - interní číslo prvního tištěného záznamu

lastrec - interní číslo posledního tištěného záznamu

firstpage - interní číslo první tištěné stránky

lastpage - interní číslo poslední tištěné stránky

direction - způsob generování sestavy:

0 - na tiskárně,

1 - kontrolní výpis na obrazovku,

 	2 - do souboru zadaného parametrem outfile.

outfile - jméno výstupního souboru; uplatní se pouze při direction = 2;

leftmargin - velikost levého okraje sestavy v milimetrech (přičte se ke standardnímu okraji generovanému tiskárnou)

Popis

Procedura Set_printer provede nastavení parametrů vytváření sestav. Nastavení platí až do nového nastavení. Procedura Print_opt umožňuje interaktivní nastavení těchže parametrů.

Zatímco záznamy se číslují od 0, stránky se číslují od 1. Čísla stránek se vztahují ke zvolenému intervalu záznamů. Pokud jsou např. 3 záznamy na stránce, tisknete počínaje záznamem 100 a stránkou 5, pak jako první se vytiskne záznam s pořadovým číslem 112.

Příklad

Set_printer(0,999,1,999,0,"",0)

Viz

Print_view, Print_opt , Printer_dialog


Procedura Set_status_nums
Set_status_nums

procedure Set_status_nums(num1, num2 : trecnum);

Parametry

num1 - nezáporné celé číslo nebo -1

num2 - nezáporné celé číslo nebo -1

Popis

Procedura vypíše v druhé části informačního řádku hodnoty  num1 a  num2 oddělené lomící čarou. Je-li parametr  num2 roven -1, vypíše se pouze první parametr bez lomící čáry. Jsou-li oba parametry rovny -1, vymaže se předchozí obsah této části informačního řádku.

Při ukončení programu se informační řádek automaticky vymaže.

Příklad

Set_status_text("Zpracovávám záznam číslo :");

for i := 1 to PočetZáznamů do

begin

  ...

  Set_status_nums(i,-1);

end;

Viz

Set_status_text


Procedura Set_status_text
Set_status_text

procedure Set_status_text(var text : string);

Parametry

text - text, který se objeví na informační řádce

Popis

Procedura vypíše v první části informačního řádku řetězec zadaný parametrem text.

Při ukončení programu se informační řádek automaticky vymaže.

Příklad

Set_status_text("Čekejte, probíhá výpočet");

...

Set_status_text("Hotovo");

Viz

Set_status_nums


Procedura Set_view_item
Set_view_item

procedure Set_view_item(id : window_id;  itemnum : short; var val : string);

Parametry

id - identifikace pohledu

itemnum - číslo složky pohledu

val - nový obsah složky pohledu

Popis

Procedura Set_view_item nastavuje nový obsah složky pohledu id s číslem itemnum bez zápisu do databáze. Chcete-li současně se změnou obsahu provést i zápis do databáze (proměnné), použijte funkci Set_item_value.

Je-li v pohledu více záznamů, pracuje se s prvním z nich.

Proceduru nelze použít ve standardním pohledu.

Viz

Get_view_pos, Get_view_item, Set_ext_pos, Set_int_pos, Set_Item_value


Procedura Show_help
Show_help

procedure Show_help(topic : short);

Parametry

topic - číslo stránky nápovědy

Popis

Procedura Show_help otevře na obrazovce okno a nápovědou obsahující stránku s číslem topic. Procedura je určená pro vyvolávání nápovědy z aplikací ve vnitřním programovacím jazyce.

Procedura Show_help se obvykle používá jako příkaz prováděný po vybrání položky v uživatelem definovaném menu nebo po stisku tlačítka v pohledu.

Použití procedury Show_help předpokládá, že stránka nápovědy s číslem topic byla vytvořena a začleněna do systému nápověd.

Viz

Help_file


Funkce Signalize
Signalize

function Signalize : Boolean;

Popis

Funkce Signalize slouží ke srozumitelnému oznámení uživateli aplikačního programu, k jaké chybě došlo při poslední operaci nad databázovým serverem. Funkce zavolá funkci Sz_error a obdrží-li od ní zprávu o chybě, promítne na obrazovce informační okno s vysvětlujícím textem k chybě. Pokud funkce Sz_error oznámí, že k chybě nedošlo, pak se neděje nic. Proto lze Signalize volat po provedení každé databázové operace bez ohledu na to, zda operace byla úspěšná či nikoli.

Hodnota funkce

Funkce vrací hodnotu TRUE, pokud ohlásila chybu a uživatel ji potvrdil stiskem tlačítka. Vrací FALSE, pokud neohlásila žádnou chybu.

Příklad

Open_cursor(CURS);

if Signalize then Halt;

Viz

Sz_error


Procedura View_close
View_close

procedure View_close(var viewdef : string);

Parametry

viewdef - řetězec znaků obsahující hvězdičku a jméno pohledu

Popis

Procedura View_close uzavře pohled zadaný parametrem.

Příklad

View_close("*POHLED1")

Viz

View_open, View_print, View_state, View_toggle


Procedura View_open
View_open

procedure View_open(var viewdef : string);

Parametry

viewdef - řetězec znaků obsahující hvězdičku a jméno pohledu

Popis

Procedura View_open otevře pohled zadaný parametrem. Pokud je pohled již otevřen, pak jej přemísti nad všechna ostatní okna.

Příklad

View_open("*POHLED1")

Viz

View_close, View_print, View_state, View_toggle


Procedura View_print
View_print

function View_print(var viewdef : string) : Boolean;

Parametry

viewdef - řetězec znaků obsahující hvězdičku a jméno pohledu

Popis

Funkce View_print vytiskne sestavu zadanou parametrem.

Hodnota funkce

Funkce vrací TRUE, pokud se podařilo sestavu vytvořit, jinak vrací FALSE.

Příklad

View_print("*POHLED1")

Viz

View_open, View_close, View_state, View_toggle


Funkce View_state
View_state

function View_state(var viewdef : string) : Boolean;

Parametry

viewdef - řetězec znaků obsahující hvězdičku a jméno pohledu

Popis

Funkce View_state zjišťuje, zda zadaný pohled je otevřen na obrazovce.

Hodnota funkce

Funkce vrací TRUE, je-li pohled otevřen, FALSE, není-li otevřen.

Příklad

if View_state("*POHLED1") then View_close("*POHLED1")

Viz

View_open, View_print, View_close, View_toggle


Procedura View_toggle
View_toggle

procedure View_toggle(var viewdef : string);

Parametry

viewdef - řetězec znaků obsahující hvězdičku a jméno pohledu

Popis

Procedura View_toggle otevře pohled zadaný parametrem, pokud již otevřen není. Pokud tento pohled již otevřen je, zavře jej.

Viz

View_open, View_print, View_state, View_close


Funkce Yesno_box
Yesno_box

function Yesno_box(var caption, text : string) : Boolean;

Parametry

caption - nadpis dotazovacího okna

text - text v dotazovacím okně

Popis

Funkce otevře na obrazovce modální okno obsahující nadpis caption, text  text, ikonu s otazníkem a tlačítka "Ano" a "Ne". Funkce skončí poté, co uživatel stiskne některé z těchto tlačítek.

Stiskem kombinace kláves CTRL+F4 lze v tomto okně ukončit běh programu.

Hodnota funkce

Funkce vrátí TRUE, pokud uživatel stiskl tlačítko "Ano", jinak vrátí FALSE.

Příklad

while not konec and Get_message(MSG) do

begin

  ..

  konec := Yesno_box("Upozornění","Ukončit práci?")

end;


Funkce Abs
Abs

function Abs(r : real) : real;

Parametry

r - reálné číslo

Popis

Funkce Abs vypočítá absolutní hodnotu reálného čísla.

Hodnota funkce

Funkce vrací absolutní hodnotu čísla zadaného jako parametr. Na rozdíl od podobné funkce v Pascalu je typ výsledku vždy Real.

Viz

Iabs


Funkce Add_index
Add_index

Funkce není od verze 3.0 implementována. Pro programové vytvoření indexu použijte SQL příkaz CREATE INDEX.

Viz

SQL_execute


Funkce Append
Append

function Append(curs : tcurstab) : trecnum;

Parametry

curs - tabulka nebo otevřený kurzor - viz také parametr tcurstab

Popis

Funkce Append přidává nový prázdný záznam k tabulce nebo ke kurzoru curs za všechny existující záznamy. První provedení Append na určitou tabulku resp. kurzor může chvíli trvat, protože se musí projít všechny záznamy patřící do tabulky resp. kurzoru.

Ve funkci Append nelze použít kurzory vzniklé spojením více tabulek.

V přidaném záznamu budou mít všechny atributy hodnoty NONE podle svých typů nebo hodnoty zadané implicitní hodnotou.

Funkce Append provedená na tabulku je totožná s funkcí Insert. Při provedení na kurzor se však liší - Append vloží záznam na konec tabulky, do níž kurzor vede, Insert využije volné mezery v tabulce po smazaném a uvolněném záznamu.

Hodnota funkce

Funkce vrací absolutní číslo přidaného záznamu. Toto číslo lze použít pro zápis do přidaného záznamu v tabulce resp. kurzoru curs. Vrácená hodnota je o 1 menší než hodnota, kterou by vrátila funkce Rec_cnt zavolaná po Append.

Pokud se operace neprovede, vrací se hodnota -1.

Příklad

table

   TAB1;

var

   cislo : trecnum;

begin

  cislo := Append(TAB1);

  TAB1[cislo].jméno := "Josef";

  ...

Viz

Insert, Delete, Undelete, Free_deleted.


Funkce Arctan
Arctan

function Arctan(r : real) : real;

Parametry

r - reálné číslo

Popis

Funkce Arctan počítá arkus tangens vyjádřený v radiánech.

Hodnota funkce

Funkce vrátí hodnotu arkus tangenty.

Viz

Sin, Cos, Ln, Exp.


Funkce Chr
Chr

function Chr(i : integer) : char;

Parametry

i - číslo, které bude převedeno na znak

Popis

Funkce Chr převádí celé číslo na znak, jehož kód má stejnou hodnotu. Při této konverzi se používá standard ASCII a východoevropská norma reprezentace národních znaků ve Windows (cp 1250). Hodnota funkce je definována pro hodnoty parametru z intervalu 0 až 255. Funkce Chr je inverzní k funkci Ord.

Hodnota funkce

Hodnotou funkce je znak, jehož kód je parametrem funkce.

Viz

Ord.


Procedura Close
Close

procedure Close(var f : file);

Parametry

f - proměnná typu  File

Popis

Procedura Close uzavírá dříve otevřený soubor. Každý soubor, který byl otevřen procedurou Reset nebo Rewrite, by měl být uzavřen procedurou Close. Pokud není explicitně uzavřen, uzavře jej WinBase602 při ukončení běhu programu (předtím oznámí Program neuzavřel všechny soubory). Soubor musí být bezpodmínečně uzavřen dříve, než je podruhé otevřen procedurou Reset nebo Rewrite. Dojde-li před uzavřením souboru ke zhroucení operačního systému, nebude zaznamenána změna velikosti souboru vyplývají z operací zápisu provedených nad tímto souborem.

Příklad

var

  f  : file;

begin

  Rewrite(f,"C:\WB602\POKUS.TXT");

  ...

  Close(f);

end.

Viz

Read, Write, Writeln, Reset, Rewrite, Eof, Seek, Filelength.


Funkce Close_cursor
Close_cursor

function Close_cursor(var curs : tcursnum) : Boolean;

Parametry

curs - jakýkoli otevřený kurzor (pevný nebo proměnný) - viz také parametr tcursnum

Popis

Funkce Close_cursor uzavře zadaný kurzor. Tento kurzor musí být otevřený. Uzavřením znemožní čtení a zápis dat prostřednictvím tohoto kurzoru.

Doporučuje se uzavírat kurzory, které program již nepotřebuje. Tím se uvolní část operační paměti. Počet otevřených kurzorů zjistíte pomocí funkce Owned_cursors.

Pokud není kurzor explicitně uzavřen, uzavře jej WinBase602 při ukončení běhu programu (předtím oznámí Program neuzavřel všechny kurzory).

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

...

if Close_cursor(Cur1) then Signalize;

Viz

Open_cursor, Open_sql_cursor, Open_sql_parts, Rec_cnt, Restrict_cursor, Restore_cursor, Owned_cursors


Funkce Commit
Commit

function Commit : Boolean;

Popis

Funkce Commit potvrzuje a ukončuje transakci a způsobuje trvalé zaznamenání všech její efektů do databáze. Pokud žádná transakce není zahájena, funkce neudělá nic.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést nebo pokud žádná transakce není zahájena. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Viz

Start_transaction, Roll_back.


Funkce Cos
Cos

function Cos(r : real) : real;

Parametry

r - reálné číslo

Popis

Funkce Cos počítá cosinus úhlu zadaného v radiánech.

Hodnota funkce

Funkce vrátí hodnotu cosinu zadaného úhlu.

Viz

Arctan, Sin, Ln, Exp.


Funkce Create_group
Create_group

function Create_group(var name : string) : Boolean;

Parametry

name - jméno skupiny

Popis

Funkce vytvoří novou skupinu. Uživatele je možné do skupiny přiřadit pomocí funkce User_to_group.

Hodnota funkce

Funkce vrátí FALSE při úspěchu, TRUE při chybě.

Viz

User_to_group, User_in_group


Funkce Date2str
Date2str

function Date2str(dt : date, prez : short) : string;

Parametry

dt	- hodnota, která se má konvertovat

prez	- způsob konverze

Popis

Funkce Date2str převede hodnotu zadanou prvním parametrem na řetězec znaků. Při konverzi se použije hodnota parametru prez takto:

    prez = 0  - zápis času bude obsahovat pouze den a měsíc;

    prez = 1  - zápis času bude obsahovat den, měsíc a rok;

Hodnota funkce

Funkce vrací textový zápis data dt.

Viz

Int2str, Str2int, Real2str, Str2real, Money2str, Str2money, Str2date, Str2time, Time2str


Funkce Day_of_week
Day_of_week

function Day_of_week(dt : date) : integer;

Parametry

dt - datum

Popis

Funkce Day_of_week zjistí, jaký den v týdnu připadá na datum dt.

Hodnota funkce

Funkce vrací číslo označující den v týdnu, toto číslo leží v intervalu 0 až 6. Hodnota 0 odpovídá neděli, hodnota 1 pondělí až hodnota 6 odpovídá sobotě. Pokud má datum nepřípustný formát, funkce vrací hodnotu 7.

Viz

Make_date

Příklad

var

  ss : string[30];

  i : short;

begin

  i :=  Day_of_week(Today);

  ss := "Dnes je "+(i=0 ? "neděle" : i=1 ? "pondělí" : i=2 ? "úterý" : i=3 ? "středa" : i=4 ? "čtvrtek": i=5 ? "pátek" : "sobota");

  Info_box("",ss);

end.


Funkce Day
Day

function Day(dt : date) : integer;

Parametry

dt - datum

Popis

Funkce Day extrahuje den z data.

Hodnota funkce

Funkce vrací číslo označující den v měsíci, toto číslo leží v intervalu 1 až 31.

Viz

Make_date, Month, Year, Today, Make_time, Hours, Minutes, Seconds, Sec1000, Now.


Funkce Define_table
Define_table

function Define_table(var name, description : string) : Boolean;

Parametry

name	- jméno pro novou tabulku

description	- popis struktury a indexů tabulky

Popis

Tabulku lze vytvořit  přímým zavolánín SQL příkazu CREATE TABLE. Funkce Define_table existuje z důvodů zpětné kompatibility.

Funkce Define_table vytváří novou prázdnou tabulku se jménem name. Tabulka stejného jména nesmí již v aktuální aplikaci existovat.

Popis struktury tabulky description musí přesně dodržet níže popsanou syntaxi, jinak tabulka nebude vytvořena.

Popis se skládá po řadě z 1 až 254 popisů atributů, z 0 až 24 popisů indexů a ukončujícího slova END.

Popis každého atributu vypadá takto:

ATTRIBUTE jméno typ[parametr] PREALLOC=nn EXPANDABLE

přičemž:

jméno - je jméno atributu, tedy identifikátor o délce max. 10 znaků;

typ - je typ atributu;

parametr - a hranaté závorky okolo něj se uvádějí pouze u typu String (v závorkách je pak délka řetězce) a u typů Pointer a Biptr (v závorkách je jméno cílové tabulky);

PREALLOC=nn - se uvádí pouze u multiatributů, nn je počet hodnot multiatributu, pro něž je staticky rezervováno místo, nn musí být mezi 0 a 127;

EXPANDABLE - lze uvést pouze u multiatributů a specifikuje, že multiatribut smí mít i další hodnoty, pro něž není staticky rezervováno místo.

Popis každého indexu vypadá takto:

INDEX [!] výraz směr, ... výraz směr

přičemž:

! - je-li uveden, index se vytvoří jako jedinečný;

výraz - výraz definující obecný index, může obsahovat až 8 atributů;

směr - může být ASC pro vzestupně uspořádané indexy nebo DESC pro sestupně uspořádané indexy, pokud se neuvede, míní se vzestupné uspořádání.

Při vytváření tabulky lze specifikovat, že změny v této tabulce se nemají zaznamenávat do journalu. Na začátek definice takovéto tabulky umístíte slovo NO_JOURNAL. V návrháři tabulek tuto vlastnost zadat nelze.

Příklad:

Define_table("NOVÁ", "NO_JOURNAL  ATTRIBUTE a INDEX a END");

Hodnota funkce

Funkce vrací FALSE, pokud tabulku vytvoří, nebo TRUE, pokud tabulku nemůže vytvořit (obvykle kvůli chybnému popisu struktury, nebo pokud tabulka tohoto jména již existuje).

Příklad

result := Define_table('NovaTab',

 'attribute i short '

 'attribute j short '

 'attribute n csstring[30] '

 'attribute r real prealloc=5 expandable '

 'attribute t text '

 'attribute p pointer[StaraTab] '

 'index n[10], i '

 'index i+j desc end');

Sql_execute('CREATE TABLE NovaTab ('

'i INTEGER INDEX,'

'j INTEGER,'

'n CHAR(30) COLLATE CSSISTRING,'

'r REAL PREALLOC=5 EXPANDABLE,'

't TEXT LONG VARCHAR,'

'p POINTER [StaraTab],'

'INDEX (n[10]),'

'INDEX (i+j DESC))')

Viz

Free_deleted, SQL_execute


Funkce Delete
Delete

function Delete(curs : tcurstab; position : trecnum) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka - viz také parametr tcurstab

position - absolutní číslo rušeného záznamu.

Popis

Funkce zruší záznam s číslem position v kurzoru nebo tabulce curs. Provedením Delete se nezmění absolutní čísla ostatních záznamů.

Pro rušení objektů (a tabulek) se jako parametr předá číslo příslušné systémové tabulky.

V této funkci nelze použít kurzory, které vznikají spojením více tabulek. Pokud je záznam nebo objekt určený parametry funkce již zrušený, jádro vydá varování.

Zrušíte-li záznam v kurzoru, dojde zároveň k jeho zrušení i v tabulce, do níž náleží.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

1.  if not Rec_cnt(TAB1, limit) then

    for I:=0 to limit-1  do

      if not TAB1[I].deleted then

        Delete( TAB1, i );

/* zrušení všech záznamů v tabulce TAB1 */

2.  var

      CisloObjektu : short;

    begin

    if not Find_object("TAB1",categ_table,CisloObjektu)

      then Delete(TAB_TABLENUM,CisloObjektu)

    end.

/* zrušení tabulky TAB1 */

Viz

Insert, Append, Undelete, Free_deleted.


Funkce Delete_all_records
Delete_all_records

function Delete_all_records(curs : tcurstab) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka - viz také parametr tcurstab

Popis

Funkce vymaže všechny platné záznamy tabulky nebo kurzoru curs.

Chcete-li zrušit pouze některé záznamy v tabulce, pak buď na ně postupně zavolejte funkce Delete, anebo vytvořte kurzor obsahující záznamy, které mají být zrušeny, a na něj zavolejte funkci Delete_all_records. Druhý postup je rychlejší, nelze ho však použít v rámci transakce (zruší probíhající transakci).

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Viz

Delete

Příklad

var c:cursor;

.....

   if not Open_sql_parts(c, 'PRODEJ', '*', 'datum < 1.1.1994', '')

   then begin

     Delete_all_records(c);

     Close_cursor(c)

   end;


Funkce Delete_file
Delete_file

function Delete_file(filename : string) : Boolean;

Parametry

filename - plné jméno souboru podle konvencí DOSu

Popis

Funkce Delete_file zavolá obdobnou funkci DOSu na smazání souboru.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se soubor podařilo úspěšně smazat. V opačném případě vrací TRUE.

Viz

Make_directory

Příklad

Delete_file("C:\WB602\OUTPUT\out.txt");


Funkce Enable_index
Enable_index

function Enable_index(table : ttablenum;  which : short; enable : Boolean) : Boolean;

Parametry

table	- tabulka deklarovaná v programu - viz také parametr ttablenum

which	- číslo indexu

enable	- požadovaný stav

Popis

Funkce aktivuje resp. deaktivuje indexy tabulky  table. Je-li parametr enable roven TRUE, je po provedení této funkce použití indexů povoleno, je-li roven FALSE, jsou použití indexů a jejich aktualizace znemožněny.

Parametr which musí mít v této verzi hodnotu -1(= všechny indexy).

Pomocí funkce je možno programově přebudovat indexy v tabulce (viz příklad).

Funkce se nesmí použít na tabulky připojené k aplikaci.

Hodnota funkce

 Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

{přebudování indexů v tabulce Tfirma}

  Enable_index(Tfirma,-1,false);

  Enable_index(Tfirma,-1,true);


Funkce Eof
Eof

function Eof(var f : file) : Boolean;

Parametry

f - proměnná typu soubor (File)

Popis

Funkce Eof zjišťuje, zda soubor f byl dočten do konce. Tento soubor musí být otevřen. Vedlejším efektem funkce Eof je přeskočení mezer a oddělovačů řádek před testováním konce souboru.

Hodnota funkce

Funkce vrátí TRUE, pokud je soubor dočten do konce nebo pokud nepřečtený zbytek souboru sestává v okamžiku volání Eof pouze z mezer a oddělovačů řádek. Jinak vrátí FALSE.

Viz

Read, Write, Writeln, Reset, Rewrite, Close, Seek, Filelength.


Procedura Err_mask
Err_mask

procedure Err_mask(mask : Boolean);

Parametry

mask - příznak, zda maskovat chyby

Popis

Funkce Err_mask nastavuje způsob reakce programu na výskyt databázových chyb. Pokud je hodnota parametru FALSE, pak chyby nejsou maskovány a výskyt chyby způsobí chybové hlášení a ukončení běhu programu. Pokud hodnota parametru je TRUE, pak, dojde-li k chybě, nepřeruší se běh programu ani se nevydá žádné hlášení. Program se může o chybě dozvědět voláním funkce Sz_error.

Procedura se týká pouze těch chyb, které nejsou explicitně hlášeny hodnotou funkcí obracejících se na databázi, tedy pouze chyb při čtení a zápisu hodnot do databázových atributů a databázových záznamů. Naopak např. chyba v operaci Delete se projeví pouze hodnotou TRUE této funkce a reakci programu nelze ovlivnit procedurou Err_mask.

Na začátku běhu programu chyby nejsou maskovány.


Funkce Exp
Exp

function Exp(r : real) : real;

Parametry

r - reálné číslo

Popis

Funkce Exp počítá přirozenou exponenciálu, tedy hodnotu r-té mocniny základu přirozených logaritmů.

Hodnota funkce

Funkce vrátí hodnotu exponenciály v bodě r.

Viz

Arctan, Sin, Cos, Ln.


Funkce Filelength
Filelength

function Filelength(var f : file) : integer;

Parametr

f - proměnná typu File deklarovaná v programu

Popis

Funkce Filelength zjišťuje délku souboru f. Tento soubor musí být v okamžiku volání funkce otevřen.

Hodnota funkce

Funkce vrátí délku souboru f v bajtech. Dojde-li k chybě (např. když soubor není otevřen), funkce vrátí hodnotu -1.

Viz

Read, Write, Writeln, Reset, Rewrite, Close, Eof, Seek.


Funkce Free_deleted
Free_deleted

function Free_deleted(table : ttablenum) : Boolean;

Parametry

table - tabulka deklearovaná v programu - viz také parametr ttablenum

Popis

Funkce Free_deleted uvolní všechny zrušené záznamy tabulce table. Místo, které tyto záznamy zabíraly, může být poté využito pro nové záznamy.

Zrušené a uvolněné záznamy nelze později obnovit funkcí Undelete.

Funkce se neprovede, je-li otevřen editovatelný kurzor z této tabulky nebo jsou-li na tabulku umístěné zámky jiného uživatele. V obou případech bude Signalize hlásit chybu S objektem někdo pracuje. Zámky volajícího uživatele funkci neblokují.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

var cislo_tab : short;

begin

  if not Find_object("MY_TABLE", CATEG_TABLE, cislo_tab)

    then Free_deleted(cislo_tab);

end;

Viz

Insert, Append,  Delete, Undelete.


Funkce From_xbase
From_xbase

function From_xbase(var tablename : string, var filename : string, dBase : Boolean, filecode : short) : Boolean;

Parametry

tablename - jméno tabulky ve WinBase602

filename - jméno souboru ve formátu dBase IV nebo FoxPro 2.0

dBase - TRUE pro formát dBase, FALSE pro formát FoxPro

filecode - kódování českých znaků použité v souboru filename

Popis

Od verze 3.0 se jedná o funkci zastaralou, plně nahrazenou obecnější funkcí Data_import.

Funkce From_xbase konvertuje soubor  filename ve formátu DBF (a případně i příslušející MEMO-soubor) na tabulku ve WinBase602. Tuto tabulku vytvoří pod jménem  tablename. Tabulka tohoto jména nesmí ve stejné aplikaci ve WinBase602 dosud existovat.

Soubor  filename se hledá na tom počítači, na němž běží aplikace, která zavolá tuto funkci (nikoli na počítači, na němž běží databázový server).

Podrobnější popis způsobu převodu dat naleznete v Export dat z WinBase.

Parametr  filecode označuje způsob kódování českých znaků v souboru  filename. Na základě hodnoty tohoto parametru se provede potřebné překódování tak, aby texty přenesené do WinBase602 byly ve shodě s kódováním českých znaků pod Windows. Parametr smí mít tyto hodnoty:

0 - kódová stránka 1250, vnitřní čeština Windows 3.1;

1 - kód Kamenických, KEYBCS2;

2 - kód KOI8-CS;

3 - kód LATIN 2 použitý v Text602;

4 - kódová stránka 852 z MS DOSu 5.0, LATIN 2;

5 - kód Windows ANSI.

Hodnota funkce

Funkce vrací TRUE pokud se převod podařilo úspěšně provést, nebo FALSE, pokud došlo k chybě. Příčinou chyby může být např. nenalezení souboru  filename, chyba ve vnitřní struktuře tohoto souboru nebo to, že tabulka se jménem  tablename již existuje.

Viz

To_xbase, Save_table, Restore_table, Data_import


Funkce Hours
Hours

function Hours(tm : time) : integer;

Parametry

tm - údaj o čase

Popis

Funkce Hours extrahuje počet hodin z časového údaje.

Hodnota funkce

Funkce vrací počet hodin z intervalu 0 až 23.

Viz

Make_date, Day, Month, Year, Today, Make_time, Minutes, Seconds, Sec1000, Now.


Fukce Iabs
Iabs

function Iabs(i : integer) : integer;

Parametry

i - celé číslo

Popis

Funkce Iabs spočte absolutní hodnotu celého čísla.

Hodnota funkce

Funkce vrací absolutní hodnotu čísla zadaného jako parametr.

Viz

Abs


Funkce Insert
Insert

function Insert(curs : tcurstab) : trecnum;

Parametry

curs - tabulka nebo otevřený kurzor - viz také parametr tcurstab

Popis

Funkce Insert přidává nový prázdný záznam k tabulce nebo ke kurzoru curs. Při vkládání do tabulky se nový záznam přidá vždy na konec tabulky. Při vkládání do kurzoru se nový záznam objeví na konci kurzoru, vložen však může být na místo v tabulce volné po smazaném a uvolněném záznamu. Není proto zaručeno, že číslo vloženého záznamu bude větší než čísla ostatních (zrušených i nezrušených) neuvolněných záznamů v tabulce.

Ve funkci nelze použít kurzor vzniklý spojením více tabulek nebo needitovatelný kurzor.

V přidaném záznamu budou všechny atributy mít hodnoty NONE dle svých typů nebo implicitní hodnoty definované v návrhu tabulky.

Je-li v definici tabulky stanoveno, že některý atribut nesmí mít hodnotu NONE, definujte též implicitní hodnotu tohoto atributu, nebo Insert a zápis do tohoto atributu proveďte v jedné transakci.

Je-li curs podřízená tabulka v referenční integritě, vede zavolání funkce Insert k porušení pravidel  ref. integrity. Proveďte proto Insert i zápis do hlídaného atributu v jedné transakci.

Hodnota funkce

Funkce vrací absolutní číslo přidaného záznamu. Toto číslo lze použít pro zápis do přidaného záznamu v tabulce resp. kurzoru curs.

Kontrolujte vždy výsledek operace! Pokud se operace neprovede, vrací se hodnota -1. Povahu chyby lze pak zjistit voláním funkce Sz_error.

Příklad

table

   TAB1;

var

   cislo;

begin

  cislo := Insert(TAB1);

  Signalize;

if cislo <> -1 then

  TAB1[cislo].jméno := "Josef";

  ...

Viz

Append,  Delete, Undelete, Free_deleted.


Funkce Insert_object
Insert_object

function Insert_object(var name : string;  category : short; var objnum : short) : Boolean;

Parametry

name - jméno objektu;

category - kategorie objektu;

objnum - vrácená hodnota: číslo objektu.

Popis

Vytvoří nový objekt zadané kategorie a zadaného jména. V parametru objnum vrátí číslo vytvořeného objektu. Objektem může být např. program, pohled, uživatel atd.

Jako parametr category se používají konstanty CATEG_TABLE, CATEG_VIEW, CATEG_CURSOR, CATEG_MENU, CATEG_PGMSRC, CATEG_PGMEXE, CATEG_PICT, CATEG_USER, CATEG_APPL, případně sjednocené s konstantou IS_LINK. Konstanta IS_LINK označuje spojovací objekt.

Ve vnitřním programovacím jazyce nalezne tato funkce uplatnění zejména při vytváření uživatelů. Vytvořenému uživateli je nutno přidělit heslo funkcí Set_password.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE.

Příklad

if not Insert_object("Honza", categ_user, num) then

    Set_password("Honza","bflmpsvz");

Viz

Set_password


Funkce Int2str
Int2str

function Int2str(int : integer) : string;

Parametry

int	- hodnota, která se má konvertovat

Popis

Funkce Int2str převede hodnotu zadanou prvním parametrem na řetězec znaků a vrátí jej.

Hodnota funkce

Funkce vrací řetězec znaků, který je desítkovým zápisem čísla int.

Příklad

var

  i : integer;

begin

  i := 1000;

  Info_box("I",Int2str(I));

end.

Viz

Str2int, Real2str, Str2real, Money2str, Str2money, Str2date, Str2time, Time2str, Str2time


Funkce Isqr
Isqr

function Isqr(i : integer) : integer;

Parametry

i - celé číslo

Popis

Funkce Isqr spočte druhou mocninu celého čísla.

Hodnota funkce

Funkce vrací druhou mocninu čísla zadaného jako parametr.

Viz

Sqr, Sqrt.


Funkce Like
Like

function Like(var s1, s2 : string) : Boolean;

Parametry

s1 - řetězec znaků

s2 - řetězec znaků

Popis

Funkce Like zjišťuje, zda řetězce s1 a s2 jsou si podobné: zda se liší pouze mezerami, velikostí písmen a diakritikou.

Hodnota funkce

Funkce vrátí TRUE, pokud mezi s1 a s2 jsou pouze výše uvedené rozdíly (nebo ani ty). Jinak funkce vrátí FALSE.

Viz

Strcat, Strcopy, Strinsert, Strdelete, Strpos, Strlength, Pref, Strtrim, Substr, Upcase.


Funkce Ln
Ln

function Ln(r : real) : real;

Parametry

r - reálné číslo

Popis

Funkce Ln počítá přirozený logaritmus. Parametr funkce musí být kladný, jinak dojde k chybě při výpočtu.

Hodnota funkce

Funkce vrátí hodnotu přirozeného logaritmu svého parametru.

Viz

Arctan, Sin, Cos, Exp.


Funkce Login
Login

function Login(var username, password : string) : Boolean;

Parametry

username - jméno uživatele

password - heslo přidělené uživateli

Popis

Funkce Login přihlašuje uživatele a jim spuštěný aplikační program ke komunikaci s databází. Funkce musí být zavolána před prvním pokusem o komunikaci s databází.

Tato funkce se smí použít pouze pokud uživatel není přihlášen. Taková situace nastává při provozu aplikací vytvořených ve vnitřním jazyce pouze tehdy, pokud byla zavolána funkce Logout, která uživatele odhlásila.

Funkci Login volejte opatrně při ladění programu ve vývojovém prostředí WinBase602.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

if not Login("DB_ADMIN","FREE") then ...

Viz

Logout.


Funkce Logout
Logout

function Logout : Boolean;

Popis

Funkce Logout ukončuje komunikaci mezi aplikací a databází - odhlašuje uživatele. Po provedení Logout již nelze až do případného dalšího přihlášení se s databází komunikovat.

Funkci Logout není nutno v běžných aplikacích volat, protože program WinBase602 Runtime nebo vývojové prostředí WinBase602 provede odhlášení ve vhodnou dobu. Jediný případ, kdy je volání Logout oprávněné, je situace, kdy jeden uživatel končí práci s programem a má se přihlásit jiný uživatel.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Viz

Login.


Funkce Make_date
Make_date

function Make_date(day, month, year : integer) : date;

Parametry

day - den v měsíci (1 až 31)

měsíc - měsíc (1 až 12)

year - rok (nula a více)

Popis

Funkce Make_date vytváří datum ze 3 složek: dne, měsíce a roku. Datum musí patřit do našeho letopočtu.

Hodnota funkce

Funkce vrací vytvořené datum. Nelze-li datum vytvořit (např. 31.2.1994), vrátí NONEDATE.

Viz

Day, Month, Year, Today, Make_time, Hours, Minutes, Seconds, Sec1000, Now. Day_of_week

Příklad

/* vytvořit zítřejší datum */

Make_date(Day(Today)+1,Month(Today),Year(Today))


Funkce Make_directory
Make_directory

function Make_directory(dirname : string) : Boolean;

Parametry

dirname - jméno adresáře i s cestou podle konvencí DOSu

Popis

Funkce vytvoří adresář podle parametru dirname. Pokud adresář již existuje, nestane se nic.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se adresář podařilo úspěšně vytvořit. V opačném případě vrací TRUE.

Příklad

Make_directory("C:\WB602\OUTPUT");

Viz

Delete_file


Funkce Make_time
Make_time

function Make_time(hours, minutes, seconds, sec1000 : integer) : time;

Parametry

hours - počet hodin

minutes - počet minut

seconds - počet sekund

sec1000 - počet tisícin sekundy

Popis

Funkce Make_time vytváří údaj o čase ze 4 složek: hodin, minut, sekund a setin sekundy. Povolený rozsah pro hodiny je 0 až 23, pro minuty a sekundy 0 až 59, pro tisíciny 0 až 999.

Hodnota funkce

Funkce vrací vytvořený údaj o čase.

Viz

Make_date, Day, Month, Year, Today, Hours, Minutes, Seconds, Sec1000, Now.


Procedura Memcpy
Memcpy

procedure Memcpy(var destination; var source; size : short);

Parametry

destination - proměnná, do níž se kopíruje

source - proměnná, z níž se kopíruje

size - počet přenášených bajtů

Popis

Procedura Memcpy slouží pro přenos (kopírování) dat bez ohledu na jejich typy. Přenáší se počet bajtů zadaný parametrem size z proměnné source do proměnné destination. Je-li tento počet větší, než je velikost první proměnné, může snadno dojít ke zhroucení systému. Je-li tento počet větší, než je velikost druhé proměnné, není definováno, co se přenese. Obě proměnné mohou být libovolného typu, nesmí to být databázové atributy.

Tato procedura dovoluje obcházet typové kontroly jazyka. Je to její hlavní účel.


Funkce Minutes
Minutes

function Minutes(tm : time) : integer;

Parametry

tm - údaj o čase

Popis

Funkce Minutes extrahuje počet minut z časového údaje.

Hodnota funkce

Funkce vrací počet minut z intervalu 0 až 59.

Viz

Make_date, Day, Month, Year, Today, Make_time, Hours, Seconds, Sec1000, Now.


Funkce Money2str
Money2str

function Money2str(m : money; prez : short) : string;

Parametry

m - hodnota, která se má konvertovat

prez - způsob konverze

Popis

Funkce Money2str převede hodnotu zadanou prvním parametrem na řetězec znaků a vrátí jej. Při konverzi se použije hodnota parametru prez takto:

- je-li prez nulové, bude desetinná část oddělena čárkou a je-li nulová, bude nahrazena pomlčkou (např. 89,30 nebo 123,-);

- je-li prez nenulové, bude desetinná část obsahovat dvě cifry oddělené od celé části tečkou (např. 89.30 nebo 123.00).

Parametr prez má tedy stejný význam, jako parametr Zobrazení v popisu složky pohledu.

Hodnota funkce

Funkce vrací řetězec znaků, který je desítkovým zápisem čísla m.

Příklad

ss := Money2str(Plat,1);

Viz

Int2str, Str2int, Real2str, Str2real, Str2money, Str2date, Str2time, Time2str, Str2time


Funkce Month
Month

function Month(dt : date) : integer;

Parametry

dt - datum

Popis

Funkce Month extrahuje měsíc z data.

Hodnota funkce

Funkce vrací číslo označující měsíc, toto číslo leží v intervalu 1 až 12.

Viz

Make_date, Day, Year, Today, Make_time, Hours, Minutes, Seconds, Sec1000, Now.


Funkce Now
Now

function Now : time;

Popis

Funkce Now je funkce bez parametrů, která udává okamžitý čas.

Hodnota funkce

Funkce vrátí čas s přesností na sekundy, který získá dotazem u operačního systému počítače.

Viz

Make_date, Day, Month, Year, Today, Make_time, Hours, Minutes, Seconds, Sec1000.


Funkce Odd
Odd

function Odd(i : integer) : Boolean;

Parametry

i - celé číslo

Popis

Funkce Odd zjišťuje, zda číslo je sudé nebo liché.

Hodnota funkce

Funkce má hodnotu TRUE, pokud je její parametr lichý, nebo FALSE, pokud je parametr sudý.


Funkce Open_cursor
Open_cursor

function Open_cursor(var curs : cursor) : Boolean;

Parametry

curs - pevný kurzor uložený v databázi a deklarovaný v programu (nikoli proměnná typu kurzor)

Popis

Funkce Open_cursor otevírá zadaný kurzor, tedy umožní čtení a zápis dat prostřednictvím tohoto kurzoru.

Není-li kurzor po použití uzavřen, zabírá místo v operační paměti. Po ukončení běhu programu jsou všechny explicitně neuzavřené kurzory uzavřeny, předtím je však vydána hláška Program neuzavřel všechny kurzory.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

cursor

    Pomocny;

begin

  ...

  if Open_cursor(Pomocny) then Signalize

  else

  ...

end.

Viz

Open_sql_cursor, Open_sql_parts, Close_cursor, Rec_cnt, Restrict_cursor, Restore_cursor.


Funkce Open_sql_cursor
Open_sql_cursor

function Open_sql_cursor(var curs : cursor; var query : string) : Boolean;

Parametry

curs	- proměnná typu kurzor (neboli proměnný kurzor) - viz také parametr cursor

query	- dotaz SELECT v jazyce SQL

Popis

Funkce otevře proměnný kurzor, který je odpovědí na zadaný dotaz query v jazyce SQL (viz popis syntaxe dotazu). Dotaz se zadá v souladu se syntaxí příkazy SELECT.

Není-li kurzor po použití uzavřen, zabírá místo v operační paměti. Po ukončení běhu programu jsou všechny explicitně neuzavřené kurzory uzavřeny, předtím je však vydána hláška Program neuzavřel všechny kurzory.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Nejběžnější příčinou chyby je nesprávná syntaxe dotazu nebo to, že kurzor je již otevřen.

Příklad

/* zjistit počet nesmazaných záznamů v tabulce TAB1*/

if not Open_sql_cursor(Cur,"select * from TAB1") then

 Rec_cnt(Cur, pom);

Viz

Open_cursor, Open_sql_parts, Close_cursor, Rec_cnt, Restrict_cursor, Restore_cursor.


Funkce Open_sql_parts
Open_sql_parts

function Open_sql_parts(var curs : cursor; var select, from, where, order : string) : Boolean;

Parametry

curs	- proměnná typu kurzor (neboli proměnný kurzor) - viz také parametr cursor

select	- první část dotazu v jazyce SSQL: obsah klauzule SELECT

from	- druhá část dotazu v jazyce SSQL: obsah klauzule FROM

where	- třetí část dotazu v jazyce SSQL: obsah klauzule WHERE

order	- čtvrtá část dotazu v jazyce SSQL: obsah klauzule ORDER BY

Popis

Funkce otevře proměnný kurzor, který je odpovědí na zadaný dotaz query v jazyce SSQL (viz popis syntaxe dotazu). Dotaz se zadá po částech - každá ve zvláštním řetězci. Funkce přidá před jednotlivé části slova "SELECT", "FROM", "WHERE" a "ORDER BY" a zřetězí je za sebou. Tím získá kompletní dotaz a pak pracuje stejně jako funkce Open_sql_cursor. Parametry where a order mohou být prázdné řetězce.

Složitější dotazy je nutno otevírat pomocí funkce Open_sql_cursor.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Nejběžnější příčinou chyby je nesprávná syntaxe dotazu nebo to, že kurzor je již otevřen.

Příklad:

    ...

    else if msg=MSG_INT_JE then begin

{ do proměnných start a stop je zadán interval dat pro zobrazení záznamů }

      dolní:='(datum>='+ start + ')';

      horní:='(datum<='+ stop + ')');

      podmínka:='';

      if start<>'' then podmínka:=dolní;

      if stop <>'' then

        if podmínka='' then podmínka:=horní

        else

        begin { vytvoření podmínky pro definici kurzoru}

          podmínka:=dolni + 'AND' + horní;

        end;

      if podmínka<>"" then

      begin {otevření proměnného kurzoru sql_curs}

        if not Open_sql_parts(sql_curs, "*", "tpeníze", podmínka, "datum") then

        begin {otevření pohledu do kurzoru sql_parts}

          Open_view("*ppřehled", sql_curs, AUTO_CURSOR+NO_INSERT+NO_EDIT+NO_DELETE, 0, 0, id_přehled)

        end

        else info_box("Chyba", "Špatně zadáno datum!");

      end

    end

Viz

Open_cursor, Open_sql_cursor, Close_cursor, Rec_cnt, Restrict_cursor, Restore_cursor.


Funkce Ord
Ord

function Ord(c : char) : integer;

Parametry

c - znak, který má být konvertován na celé číslo

Popis

Funkce Ord konvertuje znaky na celá čísla dle standardu ASCII a východoevropské normy reprezentace národních znaků v Windows (cp 1250).

Hodnota funkce

Hodnotou funkce je kód znaku zadaného parametrem.

Viz

Chr.


Funkce Pref
Pref

function Pref(var pref, str : string) : Boolean;

Parametry

pref - řetězec znaků, který má být prefixem str

str - řetězec znaků, který má mít prefix pref

Popis

Funkce Pref zjišťuje, zda řetězec pref je prefixem řetězce str, tedy zda řetězec str začíná řetězcem pref a pak případně (jakkoli) pokračuje.

Hodnota funkce

Funkce vrátí TRUE, pokud je pref prefixem str, jinak vrátí FALSE.

Viz

Strcat, Strcopy, Strinsert, Strdelete, Strpos, Strlength, Strtrim, Like, Substr, Upcase.


Funkce Quarter
Quarter

function Quarter(dt : date) : integer;

Parametry

dt - datum

Popis

Funkce Quarter zjistí číslo čtvrtletí z datumu dt. Použití je v dotazech a sestavách, kdy je třeba zjišťovat čtvrtletní obraty apod.

Hodnota funkce

Funkce vrátí číslo čtvrtletí v rozmezí 1-4. Pro dt=NONEDATE vrací NONEINTEGER

Příklad

...

SELECT Quarter(dt),SUM(cena)

FROM Fakt96

GROUP BY Quarter(dt)


Funkce Read
Read

function Read(var f : file;  var prom) : Boolean;

Parametry

f - textový soubor

prom - proměnná některého z typů  Boolean, Char, Short, Integer, Real, String, CSString nebo CSIString.

Popis

Funkce Read čte z textového souboru zadaného prvním parametrem hodnotu do proměnné uvedené jako druhý parametr. Přitom převádí textový zápis hodnoty na hodnotu příslušného typu. Soubor musí být předem otevřen.

Při použití funkce Eof pro zjištění konce souboru nezapomeňte, že Eof přeskakuje mezery mezi slovy.

Použití funkce Read pro zápis do řetězcové proměnné se přečte řádek až po znak konce řádku (je-li velikost proměnné dostatečná).

Hodnota funkce

Hodnota funkce Read je TRUE, pokud se povedlo přečíst a zapsat do parametru přečtený údaj. Hodnota bude FALSE pokud v souboru není hodnota, která by se dala převést na příslušný typ.

Viz

Write, Writeln, Reset, Rewrite, Close, Eof, Seek, Filelength.


Funkce Real2str
Real2str

function Real2str(r : real;  prez : short) : string;

Parametry

r - hodnota, která se má konvertovat

prez - způsob konverze

Popis

Funkce Real2str převede hodnotu zadanou prvním parametrem na řetězec znaků a vrátí jej. Při konverzi se použije hodnota parametru prez takto:

- absolutní hodnota prez udává počet desetinných míst;

- je-li prez kladné, výsledek bude v semilogaritmickém tvaru

- je-li prez záporné, výsledek bude v desetinném tvaru.

Parametr prez má tedy stejný význam, jako parametr Zobrazení v popisu složky pohledu.

Od verze 4.0 přibylo speciální tzv. účetní zobrazení - desetinné zobrazení, kde jsou tisíce odděleny oddělovačem nastaveným ve Windows. Účetní zobrazení má hodnotu 100+počet des. míst.

Hodnota funkce

Funkce vrací řetězec znaků, který je desítkovým zápisem čísla r.

Příklad

ss := Real2str(cislo,102);

Viz

Int2str, Str2int, Str2real, Money2str, Str2money, Str2date, Str2time, Time2str, Str2time


Funkce Rec_cnt
Rec_cnt

function Rec_cnt(curs : tcurstab; var recnum : trecnum) : Boolean;

Parametry

curs - tabulka nebo otevřený kurzor;

recnum - vrácený počet záznamů.

Popis

Funkce vrací v parametru recnum počet záznamů v kurzoru resp. tabulce curs. Tato hodnota je větší než čísla všech záznamů obsažených v tabulce nebo v kurzoru, Toho lze využít při procházení všech záznamů.

Je-li parametrem curs číslo tabulky, vrací se počet všech záznamů v tabulce, včetně zrušených a těch uvolněných, za nimiž jsou ještě nějaké neuvolněné záznamy. Je-li curs číslo otevřeného kurzoru, vrací se počet záznamů vybraných do kurzoru při jeho vytváření, včetně těch, které byly za dobu existence kurzoru zrušeny, a záznamy později přidané. První provedení Rec_cnt na určitou tabulku resp. kurzor může chvíli trvat, protože záznamy se musí spočítat.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

  if not Rec_cnt(TAB1, limit) then

  for I:=0 to limit-1  do

    if not TAB1[I].deleted then

      Delete( TAB1, i );

Viz

Open_cursor, Open_sql_cursor, Open_sql_parts, Close_cursor, Restrict_cursor, Restore_cursor.


Funkce Remove_index
Remove_index

Funkce není od verze 3.0 implementována. Pro programové zrušení indexu použijte SQL příkaz DROP INDEX.

Viz

SQL_execute


Funkce Reset
Reset

function Reset(var f : file;  var filename : string) : Boolean;

Parametry

f - otevíraný soubor

filename - jméno souboru

Popis

Funkce Reset otevírá existující textový soubor f (f je proměnná typu File). Parametr filename musí označovat jméno existujícího souboru (vytvořené podle konvencí operačního systému). Obsah souboru otevřeného funkcí Reset lze číst, lze do něj však i zapisovat.

Hodnota funkce

Funkce vrací hodnotu TRUE, pokud se soubor podařilo otevřít, jinak vrací FALSE.

Příklad

var

  f  : file;

begin

  Reset(f,"C:\WB602\POKUS.TXT");

  ...

  Close(f);

end.

Viz

Read, Write, Writeln, Rewrite, Close, Eof, Seek, Filelength.


Funkce Restore_cursor
Restore_cursor

function Restore_cursor(var curs : tcursnum) : Boolean;

Parametry

curs - otevřený subkurzor vytvořený funkcí Restrict_cursor - viz také parametr tcursnum

Popis

Procedura Restore_cursor uzavře subkurzor curs a nahradí ho původním kurzorem. Po provedení této procedury označuje identifikátor kurzoru původní kurzor, tak jak byl definován před provedením první funkce Restrict_cursor. Procedura Restore_cursor tedy odstraní efekt všech funkcí Restrict_cursor provedených nad kurzorem curs.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

var

  id_p : window_id;

cursor

  SEZN_5000;

begin

   ...

   Open_cursor(SEZN_5000);

{ otevření kurzoru, který má v části WHERE podmínku PLAT>5000 }

   Restrict_cursor(SEZN_5000,"PLAT>7000");

{ zúžení kurzoru podmínkou PLAT>7000 }

   Open_view("*ZAMĚST4",SEZN_5000,0,0,0,id_p);

{ otevření pohledu s přesměrováním na zúžený kurzor }

  ...

    Restore_cursor(SEZN_5000);

 { návrat k původnímu kurzoru }

    Open_view("*ZAMĚST4",sezn_5000,0,0,0,id_p);

 { otevření pohledu do původního kurzoru }

end

Viz

Open_cursor, Open_sql_cursor, Open_sql_parts, Close_cursor, Rec_cnt, Restrict_cursor.


Funkce Restore_table
Restore_table

function Restore_table(table : ttablenum; var filename : string) : Boolean;

Parametry

table - tabulka deklarovaná v programu - viz také parametr ttablenum

filename - jméno souboru (dle konvencí operačního systému)

Popis

Od verze programu 3.0 se jedná o funkci zastaralou, plně nahrazenou obecnější funkcí Data_import.

Funkce Restore_table přečte soubor filename obsahující záznamy z tabulky uložené ve vnitřním tvaru WinBase602 a přidá tyto záznamy do tabulky table. Soubor filename musel vzniknout voláním funkce Save_table (Data_export) (resp. exportem dat ve vnitřním tvaru) pro stejnou tabulku, jinak je chování WinBase602 nedefinované.

V programu ve vnitřním programovacím jazyce smí být parametrem table jak číslo tabulky získané voláním funkce Find_object, tak i tabulka deklarovaná v tomto programu.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Viz

Define_table, Save_table, Data_import


Funkce Restrict_cursor
Restrict_cursor

function Restrict_cursor(var curs : tcursnum; var condition : string) : Boolean;

Parametry

curs	- otevřený kurzor (pevný nebo proměnný) - viz také parametr tcursnum

condition - text podmínky ve tvaru výrazu typu  Boolean

Popis

Funkce Restrict_cursor vytvoří subkurzor kurzoru curs tak, že z něj vybere pouze ty záznamy, které splňují zadanou podmínku. Tímto subkurzorem nahradí původní kurzor, takže všechny operace s kurzorem curs se budou provádět s vytvořeným subkurzorem. Každé další použití funkce Restrict_cursor na tentýž kurzor způsobí zesílení celkové podmínky (podmínky se spojují spojkou AND). Odstranění podmínek lze provést pouze najednou, a to funkcí Restore_cursor.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

var

  id_p : window_id;

cursor

  SEZN_5000;

begin

   ...

   Open_cursor(SEZN_5000);

{ otevření kurzoru, který má v části WHERE podmínku PLAT>5000 }

   Restrict_cursor(SEZN_5000,"PLAT>7000");

{ zúžení kurzoru podmínkou PLAT>7000 }

   Open_view("*ZAMĚST4",SEZN_5000,0,0,0,id_p);

{ otevření pohledu s přesměrováním na zúžený kurzor }

  ...

    Restore_cursor(SEZN_5000);

 { návrat k původnímu kurzoru }

    Open_view("*ZAMĚST4",sezn_5000,0,0,0,id_p);

 { otevření pohledu do původního kurzoru }

end

Viz

Open_cursor, Open_sql_cursor, Open_sql_parts, Close_cursor, Rec_cnt, Restore_cursor.


Funkce Rewrite
Rewrite

function Rewrite(var f : file;  var filename : string) : Boolean;

Parametry

f - otevíraný soubor

filename - jméno souboru

Popis

Funkce Rewrite vytváří nový textový soubor f (f je proměnná typu File). Parametr filename označuje jméno tohoto souboru (vytvořené podle konvencí operačního systému). Pokud soubor již existuje, je zrušen a je založen znovu.

Hodnota funkce

Funkce vrací hodnotu TRUE, pokud se soubor podařilo vytvořit, jinak vrací FALSE. Do souboru otevřeného funkcí Rewrite lze zapisovat, zapsané údaje lze však i číst.

Příklad

var

  f  : file;

begin

  Rewrite(f,"C:\WB602\POKUS.TXT");

  ...

  Close(f);

end.

Viz

Read, Write, Writeln, Reset, Close, Eof, Seek, Filelength.


Funkce Roll_back
Roll_back

function Roll_back : Boolean;

Popis

Funkce Roll_back zruší rozpracovanou transakci a zajistí, že žádné změny, které byly od zahájení transakce provedeny, se nepromítnou do databáze. Pokud žádná transakce není zahájena, funkce neudělá nic.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést, nebo pokud žádná transakce není zahájena. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Viz

Commit, Start_transaction.


Funkce Round
Round

function Round(r : real) : integer;

Parametry

r - reálné číslo z intervalu hodnot typu Integer

Popis

Funkce Round zaokrouhlí reálné číslo na nejbližší celé číslo.

Hodnota funkce

Funkce vrací celé číslo nejbližší hodnotě parametru. Pokud je hodnota parametru funkce mimo rozsah typu Integer, není hodnota funkce definována.

Viz

Trunc.


Funkce Save_table
Save_table

function Save_table(table : ttablenum; var filename : string) : Boolean;

Parametry

table - tabulka deklarovaná v programu - viz také parametr ttablenum

filename - jméno souboru (dle konvencí operačního systému)

Popis

Od verze programu 3.0 se jedná o funkci zastaralou, plně nahrazenou obecnější funkcí Data_export.

Funkce Save_table zapíše do souboru filename celý obsah tabulky tab ve vnitřním tvaru WinBase602. Takto vzniklý soubor lze použít pro import dat do stejné tabulky (ručně z vývojového prostředí nebo  voláním funkce Restore_table (Data_import)).

V programu ve vnitřním programovacím jazyce smí být parametrem table jak číslo tabulky získané voláním funkce Find_object, tak i tabulka deklarovaná v tomto programu.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Viz

Define_table, Restore_table, Data_export


Funkce Sec1000
Sec1000

function Sec1000(tm : time) : integer;

Parametry

tm - údaj o čase

Popis

Funkce Sec1000 extrahuje počet tisícin sekundy z časového údaje.

Hodnota funkce

Funkce vrací počet tisícin sekundy z intervalu 0 až 999.

Viz

Make_date, Day, Month, Year, Today, Make_time, Hours, Minutes, Seconds, Now.


Funkce Seconds
Seconds

function Seconds(tm : time) : integer;

Parametry

tm - údaj o čase

Popis

Funkce Seconds extrahuje počet sekund z časového údaje.

Hodnota funkce

Funkce vrací počet hodin z intervalu 0 až 59.

Viz

Make_date, Day, Month, Year, Today, Make_time, Hours, Minutes, Sec1000, Now.


Funkce Seek
Seek

function Seek(var f : file;  position : integer) : Boolean;

Parametry

f - proměnná typu File

position - pozice v souboru (nezáporné číslo)

Popis

Funkce nastaví pozici v souboru na hodnotu zadanou druhým parametrem. Soubor musí být otevřen.

Pozice v souboru určuje místo, kam se do souboru bude zapisovat následující procedurou Write (Writeln), resp. odkud se bude číst funkcí Read.

Při použití funkce Eof pro zjištění konce souboru f nezapomeňte, že funkce Eof přeskakuje mezery mezi slovy.

Hodnota funkce

Funkce vrátí TRUE pokud soubor f je otevřen, jinak vrátí FALSE.

Viz

Read, Write, Writeln, Reset, Rewrite, Close, Eof, Filelength.


Funkce Sin
Sin

function Sin(r : real) : real;

Parametry

r - reálné číslo

Popis

Funkce Sin počítá sinus úhlu zadaného v radiánech.

Hodnota funkce

Funkce vrátí hodnotu sinu zadaného úhlu.

Viz

Arctan, Cos, Ln, Exp.


Funkce Sqr
Sqr

function Sqr(r : real) : real;

Parametry

r - reálné číslo

Popis

Funkce Sqr spočte druhou mocninu reálného čísla.

Hodnota funkce

Funkce vrací druhou mocninu čísla zadaného jako parametr. Na rozdíl od podobné funkce v Pascalu je typ výsledku vždy Real.

Viz

Isqr, Sqrt.


Funkce Sqrt
Sqrt

function Sqrt(r : real) : real;

Parametry

r - reálné nezáporné číslo

Popis

Funkce Sqrt počítá druhou odmocninu. Parametrem musí být nezáporné číslo, jinak dojde k chybě při výpočtu.

Hodnota funkce

Funkce vrací druhou odmocninu svého parametru.

Viz

Sqr, Isqr.


Funkce Start_transaction
Start_transaction

function Start_transaction : Boolean;

Popis

Funkce Start_transaction zahajuje provádění transakce. Pokud se transakce již provádí, funkce neudělá nic. Blíže o transakcích v kapitole o komunikaci se serverem WinBase602.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést nebo pokud se transakce již provádí. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Viz

Commit, Roll_back.


Funkce Str2date
Str2date

function Str2date(var str : string) : date;

Parametry

str - řetězec znaků obsahující zápis data ve tvaru den.měsíc nebo den.měsíc.rok

Popis

Funkce Str2date převede zápis data v řetězci str na hodnotu typu Date a vrátí ji. Prázdný řetězec se převede na hodnotu NONEDATE.

Hodnota funkce

Funkce vrátí datum, pokud jeho zápis je (jediným) obsahem řetězce  str, jinak vrací NONEDATE.

Viz

Int2str, Str2int, Real2str, Str2real, Money2str, Str2money, Date2str, Time2str, Str2time


Funkce Str2int
Str2int

function Str2int(var s : string) : integer;

Parametry

s - řetězec znaků obsahující zápis čísla typu Integer

Popis

Funkce Str2int převede zápis čísla v řetězci s na hodnotu typu Integer a vrátí ji. Prázdný řetězec se převede na hodnotu NONEINTEGER.

Hodnota funkce

Funkce vrací celé číslo, pokud je jeho desítkový zápis obsahem řetězce s. Jinak vrací NONEINTEGER.

Viz

Int2str, Real2str, Str2real, Money2str, Str2money, Str2date, Str2time, Time2str, Str2time


Funkce Str2money
Str2money

function Str2money(var s : string) : money;

Parametry

s - řetězec znaků obsahující zápis čísla typu Money

Popis

Funkce Str2money převede zápis čísla v řetězci s na hodnotu typu Money a vrátí ji. Prázdný řetězec se převede na hodnotu NONEMONEY.

Hodnota funkce

Funkce vrátí číslo, jehož desítkový zápis je obsahem řetězce s, nebo hodnotu NONEMONEY, pokud v s není povolený zápis čísla typu Money.

Viz

Int2str, Str2int, Real2str, Str2real, Money2str, Str2date, Str2time, Time2str, Str2time


Funkce Str2real
Str2real

function Str2real(var s : string) : Real;

Parametry

s - řetězec znaků obsahující zápis čísla typu Real

Popis

Funkce Str2real převede zápis čísla v řetězci s na hodnotu typu Real a vrátí ji. Prázdný řetězec se převede na hodnotu NONEREAL.

Hodnota funkce

Funkce vrátí reálnou hodnotu, pokud řetězec obsahuje konvertovatelný zápis čísla typu Real (a nic víc). Jinak funkce vrátí MONEREAL.

Viz

Int2str, Str2int, Real2str, Money2str, Str2money, Str2date, Str2time, Time2str, Str2time


Funkce Str2time
Str2time

function Str2time(var s : string) : time;

Parametry

s - řetězec znaků obsahující zápis času ve tvaru hodina:minuta nebo hodina:minuta:sekunda nebo hodina:minuta:sekunda.tisíciny

Popis

Funkce Str2time převede zápis času v řetězci  s na hodnotu typu Time a vrátí ji. Prázdný řetězec se převede na hodnotu NONETIME.

Hodnota funkce

Funkce vrátí údaj o čase, pokud jeho zápis je (jediným) obsahem řetězce s, jinak vrací NONETIME.

Viz

Int2str, Str2int, Real2str, Str2real, Money2str, Str2money, Str2date, Date2str, Time2str,


Funkce Strcat
Strcat

function Strcat(var s1, s2 : string) : string;

Parametry

s1, s2 - libovolné řetězce znaků

Popis

Funkce Strcat spojí řetězce s1 a s2 do jednoho řetězce (s2 připojí na konec s1) a vrátí výsledný řetězec. Přitom výsledek nesmí být delší než 255 znaků, jinak se vrátí pouze jeho prefix (v tomto případě se používá StrInsert).

Často je jednodušší použít pro spojení řetězců operátor '+'.

Hodnota funkce

Funkce vrátí zřetězení  s1 a s2.

Viz

Strcopy, Strinsert, Strdelete, Strpos, Strlength, Strtrim, Pref, Like, Substr, Upcase.


Funkce Strcopy
Strcopy

function Strcopy(var s : string;  index, count : short) : string;

Parametry

s - řetězec znaků

index - pozice v řetězci s

count - počet znaků

Popis

Funkce Strcopy vybere z řetězce s podřetězec začínající v pozici index délky count. Řetězce se indexují od 1.

Hodnota funkce

Funkce vrací podřetězec vybraný z řetězce s.

Viz

Strcat, Strinsert, Strdelete, Strpos, Strlength, Strtrim, Pref, Like, Substr, Upcase.


Procedura Strdelete
Strdelete

function Strdelete(var s : string;  index, count : short) : string;

Parametry

s - řetězec znaků

index - pozice v řetězci s

count - počet znaků

Popis

Funkce Strdelete zruší v řetězci s jeho podřetězec začínající v pozici index délky count. Řetězce se indexují od 1. Řetězec s může být delší než 255 znaků.

Výsledný řetězec je také funkcí vrácen, aby funkci bylo možno použít např. v SQL příkazu.

Viz

Strcat, Strcopy, Strinsert,  Strpos, Strlength, Strtrim, Pref, Like, Substr, Upcase.


Procedura Strinsert
Strinsert

function Strinsert(var source : string;  var s : string;  index : short) : string;

Parametry

source - vkládaný řetězec znaků

s - řetězec znaků, do něhož se vkládá

index - pozice v řetězci s

Popis

Funkce Strinsert vloží do řetězce s od pozice index řetězec source. Řetězce se indexují od 1. Výsledná délka řetězce s nesmí překročit délku zadanou v jeho deklaraci, jinak může dojít ke zhroucení systému.

Pomocí procedury Strinsert můžete vytvářet i řetězce delší než 255 znaků, což spojováním řetězců pomocí operátoru + nebo funkce Strcat nelze.

Výsledný řetězec je také funkcí vrácen, aby funkci bylo možno použít např. v SQL příkazu.

Viz

Strcat, Strcopy, Strdelete, Strpos, Strlength, Strtrim, Pref, Like, Substr, Upcase.


Funkce Strlength
Strlength

function Strlength(var s : string) : short;

Parametr

s	- řetězec znaků

Popis

Funkce Strlength zjišťuje skutečnou délku řetězce s.

Hodnota funkce

Funkce vrací délku řetězce s.

Viz

Strcat, Strcopy, Strinsert, Strdelete, Strpos, Strtrim, Pref, Like, Substr, Upcase.


Funkce Strpos
Strpos

function Strpos(var substr : string;  var s : string) : short;

Parametry

substr - řetězec znaků

s - řetězec znaků

Popis

Funkce Strpos zjišťuje, zda řetězec substr je podřetězcem řetězce s.

Hodnota funkce

Funkce vrací index prvního znaku prvního výskytu podřetězce substr v řetězci s, pokud nějaký výskyt existuje (řetězce se indexují od 1). Jinak funkce vrací 0.

Viz

Strcat, Strcopy, Strinsert, Strdelete, Strlength, Pref, Strtrim, Like, Substr, Upcase.


Funkce Strtrim
Strtrim

function Strtrim(var s : string) : string;

Parametry

s - řetězec znaků

Popis

Funkce Strtrim odstraní z řetězce  s mezery na začátku a na konci. Mezery vyskytující se mezi jinými znaky v řetězci ponechá beze změny. Řetězec s, předaný odkazem, je touto funkcí změněn.

Hodnota funkce

Funkce vrací řetězec s.

Viz

Strcat, Strcopy, Strinsert, Strdelete, Strlength, Pref, Like, Substr, Upcase.


Funkce Substr
Substr

function Substr(var sub, str : string) : Boolean;

Parametry

sub - řetězec znaků, který má být obsažen v řetězci str

str - řetězec znaků, který má obsahovat řetězec sub

Popis

Funkce Substr zjišťuje, zda řetězec sub je obsažen v řetězci str. Místo, kde je obsažen, zde nehraje roli, může být na začátku, uvnitř nebo na konci str. Vždy záleží na velikosti písmen.

Hodnota funkce

Funkce vrátí TRUE, pokud je sub obsažen v str, jinak vrátí FALSE.

Viz

Strcat, Strcopy, Strinsert, Strdelete, Strpos, Strlength, Strtrim, Pref, Like, Upcase.


Funkce Sz_error
Sz_error

function Sz_error : short;

Popis

Funkce zjišťuje číslo chyby, ke které došlo při posledním volání databázové operace, tedy např. při čtení nebo zápisu do databázového atributu, otevření kurzoru, vložení záznamu a pod.

POZOR! Funkce nepodává informace o chybách v prezentační vrstvě, tedy např. při otevírání pohledu nebo tisky sestavy.

Tuto funkci volejte bezprostředně po provedení operace, jejíž výsledek chcete zjistit.

Hodnota funkce

Funkce vrací číslo chyby, k níž došlo při provádění poslední operace. Číselník chyb - viz chybová hlášení WinBase. Pokud funkce vrátí hodnotu 0, znamená to, že poslední operace proběhla bez chyby.

Příklad

  Info_box("CHYBA",int2str(Sz_error));

Viz

Signalize


Funkce Sz_warning
Sz_warning

function Sz_warning : short;

Popis

Funkce zjišťuje číslo varování, které bylo vydáno při posledním volání určité databázové operace

Tuto funkci volejte bezprostředně po provedení operace, jejíž výsledek chcete zjistit.

Hodnota funkce

Funkce vrací číslo varování vydaného při provádění poslední operace. Číselník varování - viz varování WinBase. Pokud funkce vrátí hodnotu 0, znamená to, že poslední operace proběhla bez varování.

Příklad

  Info_box("CHYBA",int2str(Sz_warning));


Funkce Time2str
Time2str

function Time2str(tm : time, prez : short) : string;

Parametry

tm - hodnota, která se má konvertovat

prez - způsob konverze

Popis

Funkce Time2str převede hodnotu zadanou prvním parametrem na řetězec znaků. Při konverzi se použije hodnota parametru prez takto:

    prez = 0  - zápis času bude obsahovat pouze hodiny a minuty;

    prez = 1  - zápis času bude obsahovat hodiny, minuty a sekundy;

    prez = 2  -  zápis času bude obsahovat hodiny, minuty,  sekundy a tisíciny sekundy;

Hodnota funkce

Funkce vrací textový zápis času tm.

Viz

Int2str, Str2int, Real2str, Str2real, Money2str, Str2money, Str2date, Date2str, Str2time


Funkce Today
Today

function Today : date;

Popis

Funkce Today je funkce bez parametrů, která zjišťuje dnešní datum.

Hodnota funkce

Funkce vrátí datum, které získá dotazem u operačního systému počítače.

Viz

Make_date, Day, Month, Year, Make_time, Hours, Minutes, Seconds, Sec1000, Now, Day_of_week


Funkce To_xbase
To_xbase

function To_xbase(var tablename : string, var filename : string, dBase : Boolean, filecode : short) : Boolean;

Parametry

tablename - jméno tabulky ve WinBase602

filename - jméno souboru ve formátu dBase IV nebo FoxPro 2.0

dBase - TRUE pro formát dBase, FALSE pro formát FoxPro

filecode - kódování českých znaků použité v souboru filename

Popis

Ve verzi 3.0 se jedná o funkci zastaralou, plně nahrazenou obecnější funkcí Data_import.

Funkce To_xbase exportuje soubor  tablename do souboru filename ve formátu DBF (a případně vytvoří i příslušející MEMO-soubor ve formátu závisejícím na hodnotě parametru dBase). Z tabulky se exportují pouze ty atributy, které připouští formát Xbase.

Soubor  filename vznikne na tom počítači, na němž běží aplikace, která zavolá tuto funkci (nikoli na počítači, na němž běží databázový server).

Podrobnější popis způsobu převodu dat naleznete v  Import dat do WinBase602.

Parametr  filecode označuje způsob kódování českých znaků v souboru  filename. Na základě hodnoty tohoto parametru se provede potřebné překódování tak, aby texty přenesené do WinBase602 byly ve shodě s kódováním českých znaků pod Windows. Parametr smí mít tyto hodnoty:

0 - kódová stránka 1250, vnitřní čeština Windows 3.1;

1 - kód Kamenických, KEYBCS2;

2 - kód KOI8-CS;

3 - kód LATIN 2 použitý v Text602;

4 - kódová stránka 852 z MS DOSu 5.0, LATIN 2;

5 - kód Windows ANSI.

Hodnota funkce

Funkce vrací TRUE pokud se export podařilo úspěšně provést, nebo FALSE, pokud došlo k chybě. Příčinou chyby může být např. nenalezení tabulky tablename, nebo nemožnost vytvořit soubor filename.

Viz

From_xbase, Save_table, Restore_table, Data_export


Funkce Translate
Translate

function Translate(var curs : tcursnum;  crec : trecnum; tbord : short;  var trec : trecnum) : Boolean;

Parametry

curs - otevřený kurzor - viz také parametr tcursnum

crec - absolutní číslo záznamu v kurzoru curs

tbord - pořadové číslo tabulky v kurzoru curs (počítáno od 0)

trec - vrací absolutní číslo záznamu v tabulce, z něhož vznikl záznam crec

Popis

Funkce konvertuje číslo crec záznamu z otevřeného editovatelného kurzoru curs na číslo téhož záznamu v tabulce, z níž jsou záznamy do kurzoru vybrány; tbord je pořadové číslo tabulky v kurzoru (v klauzuli FROM). Tabulky se číslují od nuly.

Je-li curs číslo tabulky (funkce Get_fcursor zavolaná na pohled vrací číslo tabulky nebo kurzoru), funkce Translate oznámí chybu Špatné číslo kurzoru.

Funkci Translate má smysl a lze používat pouze na editovatelné kurzory.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

table

  tab1;

var

  cislo : integer;

  c1    : cursor;

begin

  if Open_sql_cursor(c1,"select aa from tab1 where aa=964") then

    Info_box("open_cursor",int2str(Sz_error))

  else

    if Translate(c1,0,0,cislo) then

      Info_box("Translate",int2str(Sz_error))

    else

      Info_box("cislo v tab1",int2str(cislo));

end.


Funkce Trunc
Trunc

function Trunc(r : real) : integer;

Parametry

r - reálné číslo z intervalu hodnot typu  Integer

Popis

Funkce Trunc převede reálné číslo na celé číslo odříznutím desetinné části.

Hodnota funkce

Funkce vrací celé číslo vzniklé seříznutím z hodnoty parametru. Pokud je hodnota parametru funkce mimo rozsah typu Integer, není hodnota funkce definována.

Viz

Round.


Funkce Undelete
Undelete

function Undelete(table : ttablenum; position : trecnum) : Boolean;

Parametry

table	- tabulka deklarovaná v programu - viz také parametr ttablenum

position	- číslo zrušeného záznamu

Popis

Funkce Undelete obnoví dříve zrušený záznam nebo objekt v tabulce table. Provedením Undelete se nezmění absolutní čísla ostatních záznamů v tabulce resp. kurzoru. Funkci nelze použít na uvolněný záznam.

V programu ve vnitřním programovacím jazyce smí být parametrem table jak číslo tabulky získané voláním funkce Find_object, tak i tabulka deklarovaná v tomto programu.

Pokud záznam nebo objekt určený parametry funkce není zrušený, jádro vydá varování. K chybě dojde, pokud parametr position specifikuje uvolněný záznam.

Hodnota funkce

Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Sz_error.

Příklad

   Rec_cnt(MTAB, limit);

   for I:=0 to limit-1 do

    if MTAB[I].deleted then

      Undelete( MTAB, I);

Viz

Insert, Append, Delete,  Free_deleted.


Procedura Upcase
Upcase

procedure Upcase(var str : string);

Parametry

str - řetězec znaků

Popis

Procedura Upcase konvertuje všechna malá písmena v řetězci str na velká. Umí konvertovat i národní znaky.

Viz

Strcat, Strcopy, Strinsert, Strdelete, Strpos, Strlength, Strtrim, Pref, Like, Substr.


Funkce User_in_group
User_in_group

function User_in_group(user, group : tobjnum; var state : Boolean) : Boolean;

Parametry

user - číslo uživatele

group - číslo skupiny

state - výstupní parametr: stav náležení uživatele do skupiny

Popis

Funkce User_in_group zjišťuje, zda uživatel  user je členem skupiny  group. Do parametru  state zapíše TRUE, pokud je, FALSE, pokud není.

Číslo uživatele a číslo skupiny vrátí funkce Find_object s parametrem CATEG_USER.

Hodnota funkce

Funkce vrací FALSE při úspěchu, TRUE při chybě.

Viz

User_to_group, Insert_object


Funkce User_to_group
User_to_group

function User_to_group(user, group : tobjnum; state : Boolean) : Boolean;

Parametry

user - číslo uživatele

group - číslo skupiny

state - náležení uživatele do skupiny

Popis

Funkce User_in_group zařazuje resp. vyřazuje uživatele  user do resp. ze skupiny  group. Je-li parametr  state roven TRUE, je uživatel zařazen do skupiny, je-li roven FALSE, je vyřazen ze skupiny.

Číslo uživatele a číslo skupiny vrátí funkce Find_object s parametrem CATEG_USER.

Zařazovat uživatele do skupin a vyřazovat je z nich smí pouze správce databáze (uživatel DB_ADMIN).

Hodnota funkce

Funkce vrací FALSE při úspěchu, TRUE při chybě.

Viz

User_in_group, Insert_object


Procedura Write
Write

procedure Write(var f : file; ... );

Parametry

f - textový soubor

ostatní parametry - libovolné výrazy typu  Boolean, Char, Short, Integer, Real, Date, Time, String, CSString nebo CSIString.

Popis

Procedura Write konvertuje hodnoty výrazů, které obdrží jako druhý a další parametry, na znakové řetězce a zapisuje je do souboru, který je jejím prvním parametrem. Soubor musí být předem otevřen.

Za druhým a každým dalším parametrem Write smí být uvedena dvojtečka a celočíselný výraz. Je-li takový údaj uveden, pak vyčíslí hodnotu tohoto výrazu a předá se konverzní proceduře. Význam této hodnoty je stejný jako význam parametru, který v definici pohledu udává přesnost zobrazení - viz kapitola o návrhu pohledů. Hodnota říká, jakým způsobem se provede konverze parametru Write na řetězec znaků.

Příklad

Write(soubor, 'Výsledek je ', 17.5*koef : -3, ' metrů za sekundu.');

Viz

Read, Writeln, Reset, Rewrite, Close, Eof, Seek, Filelength.


Procedura Writeln
Writeln

procedure Writeln(var f : file; ... );

Parametry

f - textový soubor

ostatní parametry - libovolné výrazy typu  Boolean, Char, Short, Integer, Real, Date, Time, String, CSString nebo CSIString.

Popis

Procedura Writeln konvertuje hodnoty výrazů, které obdrží jako druhý a další parametry, na znakové řetězce a zapisuje je do souboru, který je jejím prvním parametrem. Za hodnotou posledního parametru procedura zapíše do souboru přechod na nový řádek (znaky CR a LF a kódy 13 a 10). Soubor musí být předem otevřen.

Za druhým a každým dalším parametrem Writeln smí být uvedena dvojtečka a celočíselný výraz. Je-li takový údaj uveden, pak vyčíslí hodnotu tohoto výrazu a předá se konverzní proceduře. Význam této hodnoty je stejný jako význam parametru, který v definici pohledu udává přesnost zobrazení (není to tedy počet vypsaných znaků jako ve standardním Pascalu) - viz kapitola o návrhu pohledů. Hodnota říká, jakým způsobem se provede konverze parametru Writeln na řetězec znaků.

Viz

Read, Write, Reset, Rewrite, Close, Eof, Seek, Filelength.


Funkce Year
Year

function Year(dt : date) : integer;

Parametry

dt	- datum

Popis

Funkce Year extrahuje rok z data.

Hodnota funkce

Funkce vrací nezáporné číslo označující rok (v našem letopočtu).

Viz

Make_date, Day, Month, Today, Make_time, Hours, Minutes, Seconds, Sec1000, Now.


Funkce Add_record
Add_record

function Add_record(curs : tcursnum;  var recs;  numofrecs : short);

Parametry

curs - otevřený kurzor - viz také parametr tcursnum

recs - pole čísel záznamů, které vytvoří jeden záznam v kurzoru

numofrecs - počet tabulek, z nichž je kurzor vytvořen

Popis

Funkce Add_record přidává nový záznam do kurzoru curs. Tento záznam je popsán enticí absolutních čísel záznamů v tabulkách, jejichž spojením je kurzor vytvořen. Používá se výjimečně, když autor programu chce vytvořit proměnný kurzor, jenž obsahuje záznamy vybrané explicitně z tabulek, nikoliv logickou podmínkou WHERE.

Hodnota funkce

Funkce vrací FALSE při úspěchu, jinak vrací TRUE.

Příklad

Open_sql_cursor(addc,"select & from TABLE1 where FALSE");

cislozaz := ...

Add_record(addc, cislozaz, 1);


Funkce Find_object
Find_object

function Find_object(var name : string;  category : short; var position : short) : Boolean;

Parametry

name - jméno objektu;

category - kategorie objektu;

position - výstupní parametr: číslo záznamu o objektu.

Popis

Funkce zjistí, zda existuje zadaný objekt, a pokud ano, vrátí v parametru  position jeho číslo (tj. číslo záznamu v příslušné systémové tabulce).

Jako parametr  category se používají konstanty CATEG_TABLE, CATEG_VIEW, CATEG_CURSOR, CATEG_MENU, CATEG_PGMSRC, CATEG_PGMEXE, CATEG_PICT, případně sjednocené s konstantou IS_LINK.

Pokud  name označuje spojovací objekt, pak funkce dokáže vrátit buď číslo spojovacího objektu, nebo rovnou číslo objektu, který je tímto spojovacím objektem připojen. Je-li parametrem  category sjednocení konstanty označující kategorii s konstantou IS_LINK, pak funkce vrátí ve výstupním parametru  position číslo spojovacího objektu. Pokud neuvedete IS_LINK, pak funkce vrací číslo připojeného objektu.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE. Doporučujeme vždy ověřovat výsledek této funkce, a tak se vyhnout pozdější práci s nesmyslným číslem objektu.

Příklad

var objnum, linkobj : short;

begin

{ práce s normálním nebo připojeným objektem: }

  if not Find_object('MY_TABLE', CATEG_TABLE, objnum)

    then Free_deleted(objnum);

{ zrušení spojovacího objektu: }

  if not Find_object('MY_TABLE', CATEG_TABLE or IS_LINK, linkobj)

    then Delete(TAB_TABLENUM, linkobj);

end;


Funkce Get_data_rights
Get_data_rights

function Get_data_rights(table : ttablenum; var username : string; var rights : short; var rd_ri : short; var wr_ri : short) : Boolean;

Parametry

table - tabulka deklarovaná v programu - viz také parametr ttablenum

username - jméno uživatele;

rights - výstupní parametr: základní práva uživatele k datům;

rd_ri - výstupní parametr: rozšiřující práva ke čtení atributů;

wr_ri - výstupní parametr: rozšiřující práva k přepisování dat.

Popis

Funkce přečte přístupová práva uživatele k datům obsaženým v tabulce. Je-li parametr  username prázdný řetězec, funkce pracuje s právy přihlášeného uživatele.

Parametr rights nabyde hodnotu rovnou součtu těchto práv: RIGHT_READ (1), RIGHT_WRITE (2), RIGHT_INSERT (4), RIGHT_DEL (8), RIGHT_GRANT (128).

Rozšiřující práva mají význam tehdy, jsou-li práva ke čtení nebo pro zápis uplatněna pro jednotlivé atributy tabulky (prvních patnáct) - viz příklad.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE.

Příklad 1

var

   a,b,c, pozice : short;

begin

   Find_object("tab1",categ_table,pozice);

/* do prom. pozice se zapsalo číslo tabulky TAB1 */

   Get_data_rights(pozice,"everybody",a,b,c);

/* do prom. a,b,c se zapsala práva uživatele EVERYBODY k TAB1 */

   Info_box("práva k obsahu",int2str(a));

   Info_box("selektivní pro čtení",int2str(b));

   Info_box("selektivní pro přepis",int2str(c));

end.

Nechť má EVERYBODY k tabulce TAB1 tato práva:

právo číst všechny atributy a vkládat záznamy;

právo přepisovat první třetí a čtvrtý atribut.

V prom. a bude hodnota 5 (RIGHT_READ + RIGHT_INSERT),

v prom. b bude hodnota 0 (čtení je zajištěno předcházejícím globálním právem),

v prom. c bude hodnota 13 (0000000000001101).

Příklad 2

function TestPrav : Boolean;

{**************************************}

{ověření, má-li přihlášený uživatel dostatek práv k tabulce Tab1

var

 a,b,c,d,e,f,g,h,i : short;

begin

  TestPrav := true;

  Get_data_rights(Tab1,"",a,b,c);

  if (a and Right_read = 0) or (a and Right_write = 0) or

     (a and Right_insert = 0) or (a and Right_del = 0)

  then if not YesNo_box("Upozornění",

       "Nemáte všechna potřebná práva,"#10"program nebude správně fungovat."#10#10"Pokračovat?")

       then TestPrav := False;

end;

Viz

Get_object_rights, Set_data_rights, Set_object_rights


Funkce Get_object_rights
Get_object_rights

function Get_object_rights(var objname : string; category : short;  var username : string; var rights : short) : Boolean;

Parametry

objname - jméno objektu;

category - kategorie objektu;

username - jméno uživatele;

rights - výstupní parametr: práva uživatele k objektu.

Popis

Funkce zjistí přístupová práva uživatele k objektu. Je-li parametr  username prázdný řetězec, funkce pracuje s právy přihlášeného uživatele.

Parametr  category musí být jedním z CATEG_TABLE, CATEG_VIEW, CATEG_CURSOR, CATEG_MENU, CATEG_PGMSRC, CATEG_PGMEXE.

Parametr rights nabyde hodnotu rovnou součtu těchto práv: použití - RIGHT_READ (1), přepsání - RIGHT_WRITE (2), poskytnutí - RIGHT_GRANT (128).

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE.

Příklad

var

  prava : short;

begin

  Get_object_rights("POHL1", CATEG_VIEW, "EVERYBODY", prava) ;

end.

Do proměnné PRAVA se zapsalo sjednocení práv uživatele EVERYBODY k pohledu POHL1. Má-li všechny tři (použití, přepsání, poskytnutí), výsledek je 131 (1+2+128).

Viz

Get_data_rights, Set_data_rights, Set_object_rights


Funkce Read_lock_record
Read_lock_record

function Read_lock_record(curs : tcurstab; position : trecnum) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka;

position	- číslo záznamu.

Popis

Funkce uzamkne záznam pro čtení.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE. K neúspěchu může dojít, pokud záznam je jinou aplikací uzamčen pro zápis. Pokud uvedený kurzor zahrnuje více spojených tabulek, zamknou se příslušné záznamy ve všech těchto tabulkách.

Viz

Read_lock_table, Read_unlock_record, Read_unlock_table, Write_lock_record, Write_lock_table, Write_unlock_record, Write_unlock_table


Funkce Read_lock_table
Read_lock_table

function Read_lock_table(curs : tcurstab) : Boolean;

Parametry

curs	- otevřený kurzor nebo tabulka.

Popis

Funkce uzamkne všechny záznamy tabulky pro čtení. Pokud uvedený kurzor zahrnuje více spojených tabulek, zamknou se všechny.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE. K neúspěchu může dojít, pokud je některý záznam tabulky jinou aplikací uzamčen pro zápis.

Viz

Read_lock_record, Read_unlock_record, Read_unlock_table, Write_lock_record, Write_lock_table, Write_unlock_record, Write_unlock_table


Funkce Read_unlock_record
Read_unlock_record

function Read_unlock_record(curs : tcurstab; position : trecnum) : Boolean;

Parametry

curs	- otevřený kurzor nebo tabulka;

position	- číslo záznamu.

Popis

Funkce odemkne dříve uzamčený záznam pro čtení. Pokud uvedený kurzor zahrnuje více spojených tabulek, odemknou se příslušné záznamy ve všech těchto tabulkách.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE.

Viz

Read_lock_record, Read_lock_table, Read_unlock_table, Write_lock_record, Write_lock_table, Write_unlock_record, Write_unlock_table


Funkce Read_unlock_table
Read_unlock_table

function Read_unlock_table(curs : tcurstab) : Boolean;

Parametry

curs	- otevřený kurzor nebo tabulka.

Popis

Funkce odemkne všechny záznamy tabulky pro čtení. Pokud uvedený kurzor zahrnuje více spojených tabulek, odemknou se všechny.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE. .

Viz

Read_lock_record, Read_lock_table, Read_unlock_record, Write_lock_record, Write_lock_table, Write_unlock_record, Write_unlock_table


Funkce Set_data_rights
Set_data_rights

function Set_data_rights(table : ttablenum; var username : string;  rights : short; var rd_ri :short; var wr_ri : short) : Boolean;

Parametry

table - tabulka deklarovaná v programu - viz také parametr ttablenum

username - jméno uživatele;

rights - základní práva uživatele k datům;

rd_ri - rozšiřující práva ke čtení atributů;

wr_ri - rozšiřující práva k přepisování dat.

Popis

Funkce nastaví přístupová práva uživatele k datům obsaženým v tabulce  tablenum.

Je-li parametr  username prázdný řetězec, funkce pracuje s právy přihlášeného uživatele.

Parametr rights musí být jedním z RIGHT_READ, RIGHT_WRITE, RIGHT_INSERT, RIGHT_DEL, RIGHT_GRANT.

Rozšiřující práva ke čtení a k přepisování se definují tehdy, je-li žádoucí, aby, tato práva byla přidělena jednotlivým atributům tabulky (pouze prvním patnácti).

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE. K chybě může dojít, pokud uživatel volající tuto funkci nemá dostatek práv, aby je mohl k uvedenému objektu poskytnout.

Příklad

if Set_object_rights("TAB1",categ_table,'everybody', right_read+right_write+right_grant) then Signalize

else

 if not Find_object("TAB1",categ_table, objnum) then

  if Set_data_rights(objnum,'everybody', right_read+right_write+right_insert+right_del+right_grant,0,0) then Signalize;

Uživateli EVERYBODY jsme poskytli veškerá práva k tabulce TAB1.

Viz

Get_object_rights, Get_data_rights, Set_object_rights


Funkce Set_object_rights
Set_object_rights

function Set_object_rights(var objname : string; category : short;  var username : string; rights : short) : Boolean;

Parametry

objname - jméno objektu;

category - kategorie objektu;

username - jméno uživatele;

rights - práva uživatele k objektu.

Popis

Funkce nastaví přístupová práva uživatele k objektu objname. Je-li parametr username prázdný řetězec, funkce pracuje s právy přihlášeného uživatele.

Parametr  category musí být jedním z CATEG_TABLE, CATEG_VIEW, CATEG_CURSOR, CATEG_MENU, CATEG_PGMSRC, CATEG_PGMEXE.

Parametr rights musí být jedním z RIGHT_READ, RIGHT_WRITE, RIGHT_GRANT.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE.

Příklad

begin

   Set_object_rights("pohl1",categ_view,"everybody",right_read);

end.

Uživateli EVERYBODY jsme omezili práci s pohledem POHL1 pouze na čtení.

Viz

Set_data_rights, Get_data_rights,  Get_object_rights


Funkce Set_password
Set_password

function Set_password(var usernm, password : string);

Parametry

usernm - jméno uživatele

password - heslo

Popis

Funkce nastaví nové heslo zadaného uživatele. Heslo smí mít nejvýše 16 znaků. Používá se při vytvoření nového uživetele.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE.


Funkce Super_recnum
Super_recnum

function Super_recnum(subcursor, supercursor : tcursnum; subrecnum : trecnum;  var superrecnum : superrecnum) : Boolean;

Parametry

subcursor - subkurzor kurzoru  supercursor

supercursor - kurzor - viz také parametr tcursnum

subrecnum - číslo záznamu v kurzoru  subcursor

superrecnum - výstupní parametr: číslo záznamu v kurzoru supercursor

Popis

Funkce Super_recnum převádí číslo záznamu v subkurzoru na číslo téhož záznamu v superkurzoru, tedy v kurzoru, z něhož je subkurzor odvozen. Může provést tutéž akci pro dva kurzory vytvořené nad stejnou tabulkou - viz příklad.

Hodnota funkce

Funkce vrací FALSE při úspěchu, TRUE při chybě.

Příklad

procedure synchronizace(vzor, cíl : window_id);

var irec, erec, cíl_rec : trecnum;

    vzor_curs, cíl_curs : cursor;

    flags : short;

{ Nastaví pohled "cíl" na stejný záznam jako pohled "vzor" }

begin

  if Get_view_pos(vzor, irec, erec) then

    if Get_fcursor(vzor, vzor_curs, flags) then

      if Get_fcursor(cil, cíl_curs, flags) then

        if not Super_recnum(vzor_curs, cíl_curs, erec, cíl_rec) then

          Set_ext_pos(cil, cíl_rec, -1);

end;


Funkce Uninst_table
Uninst_table

function Uninst_table(table : ttablenum) : Boolean;

Parametry

table - tabulka deklarovaná v programu - viz také parametr ttablenum

Popis

Funkce sdělí jádru, že program nebude v nejbližší době pracovat s tabulkou table. Jádro tuto informaci využije k tomu, aby uvolnilo paměť využívanou pro přístup k této tabulce.

Pokud parametr  table má hodnotu -1, pak jádro uvolní paměť vztahující se ke všem tabulkám.

Program, který pracuje s velkým množstvím tabulek, by tímto způsobem měl jednotlivé tabulky po použití uvolňovat.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE.


Funkce Who_am_I
Who_am_I

function Who_am_I : String;

Popis

Funkce pro zjištění právě přihlášeného uživatele. Pro anonymního uživatele (přihlášeného prázdným jménem a heslem) bude vrácen prázdný řetězec.

Hodnota funkce

Funkce Who_am_I vrací uživatelské jméno, pod nimž je klient přihlášen na databázový server.


Funkce Write_lock_record
Write_lock_record

function Write_lock_record(curs : tcurstab; position : trecnum) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka;

position	 - číslo záznamu.

Popis

Funkce uzamkne záznam pro zápis.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE. K neúspěchu může dojít, pokud záznam je jinou aplikací uzamčen pro zápis. Pokud uvedený kurzor zahrnuje více spojených tabulek, zamknou se příslušné záznamy ve všech těchto tabulkách.

Viz

Read_lock_record, Read_lock_table, Read_unlock_record, Read_unlock_table, Write_lock_table, Write_unlock_record, Write_unlock_table


Funkce Write_lock_table
Write_lock_table

function Write_lock_table(curs : tcurstab) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka.

Popis

Funkce uzamkne všechny záznamy tabulky pro zápis. Pokud uvedený kurzor zahrnuje více spojených tabulek, zamknou se všechny.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE. K neúspěchu může dojít, pokud je některý záznam tabulky jinou aplikací uzamčen pro zápis nebo pro čtení.

Viz

Read_lock_record, Read_lock_table, Read_unlock_record, Read_unlock_table, Write_lock_record, Write_unlock_record, Write_unlock_table


Funkce Write_unlock_record
Write_unlock_record

function Write_unlock_record(curs : tcurstab; position : trecnum) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka;

position - číslo záznamu.

Popis

Funkce odemkne dříve uzamčený záznam pro zápis. Pokud uvedený kurzor zahrnuje více spojených tabulek, odemknou se příslušné záznamy ve všech těchto tabulkách.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE.

Viz

Read_lock_record, Read_lock_table, Read_unlock_record, Read_unlock_table, Write_lock_record, Write_lock_table, Write_unlock_table


Funkce Write_unlock_table
Write_unlock_table

function Write_unlock_table(curs : tcurstab) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka.

Popis

Funkce odemkne všechny záznamy tabulky pro zápis. Pokud uvedený kurzor zahrnuje více spojených tabulek, odemknou se všechny.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE. .

Viz

Read_lock_record, Read_lock_table, Read_unlock_record, Read_unlock_table, Write_lock_record, Write_lock_table, Write_unlock_record


Funkce Create_link
Create_link

function Create_link(var sourcename, sourceappl : string; category: short; var linkname : string) : Boolean;

Parametry

sourcename - jméno objektu

sourceappl - jméno aplikace

category - kategorie objektu

linkname - jméno spojovacího objektu

Popis

Funkce vytvoří spojovací objekt jménem linkname kategorie category, který připojuje objekt stejné kategorie se jménem sourcename z aplikace sourceappl.

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE. .


Funkce SQL_execute
SQL_execute

function SQL_execute (var statement : string) : Boolean;

Parametry

statement 	příkaz jazyka SQL

Popis

Funkce vykoná příkaz jazyka SQL zadaný v parametru statement. Při překladu se nekontroluje smysluplnost SQL příkazu - případná syntaktická chyba příkazu se projeví až při běhu, kdy jádro ohlásí, že nemůže splnit požadavek.

Mezi SQL příkazy použité ve WinBase602 patří:

příkaz	význam

CREATE TABLE	vytvoří novou prázdnou tabulku

DROP TABLE	zruší tabulku

CREATE INDEX	vytvoří index

DROP INDEX	smaže index

CREATE VIEW	vytvoří dotaz

DROP VIEW	zruší dotaz

DELETE	smaže záznam(y)

INSERT	přidá záznam(y) do tabulky

UPDATE	provede hromadnou změnu v tabulce

SELECT	vybere množinu záznamů

GRANT	přidělí práva

REVOKE	odebere práva

Popis SQL příkazů - viz SQL příkazy

Hodnota funkce

Funkce vrací při úspěchu FALSE, při neúspěchu TRUE. .

Příklad

if not Sql_execute("DELETE FROM Zamestnan WHERE Oddeleni=1")

   then …


Funkce Data_import
Data_import

function Data_import (var tablename : string; index_past : Boolean; var filename : string; format,recode : short) : Boolean;

Parametry

tablename - jméno tabulky, do níž se importuje;

index_past - příznak, mají-li se indexy budovat hromadně po přenosu či postupně;

filename  - jméno souboru, z něhož se  importuje;

format - formát dat;

recode - druh kódování češtiny.

Popis

Funkce Data_import zajistí import dat ze souboru do tabulky WinBase602. Jsou-li data ve formátu DBF, parametr tablename musí být jméno tabulky, která se při importu vytvoří. Nesmí se rovnat jménu jiné existující tabulky. V ostatních případech parametr tablename musí být jméno již existující tabulky. Data ze souboru se pak připojí k datům v tabulce.

Parametr Index_past určí, mají-li se indexy v tabulce, do níž se přidávají záznamy, vytvářet postupně v průběhu importu (hodnota FALSE), nebo má-li se vytvořit najednou po skončení importu (hodnota TRUE). Při importu DBF souborů nemá parametr index_past význam.

Parametrem filename specifikujete soubor, z něhož se data importují. Pro zjištění jména můžete s výhodou využít funkce Select_file.

Parametr format stanoví způsob importu dat. Hodnoty parametru a jim odpovídající typy formátů dat jsou v následující tabulce:

hodnota	formát

0	interní formát WinBase602

1	ASCII formát sloupcový

2	CSV formát

3	formát dBase IV

4	formát FoxPro 2

Parametrem recode stanovíte druh kódování češtiny ve vstupním souboru. Hodnoty parametru a jejich význam jsou uvedeny v následující tabulce:

hodnota	kódování

0	Windows EECS (cp 1250)

1	kód Kamenických (KEYBCS)

2	KOI8-CS (Text602)

3	Latin 2 (Text602)

4	Latin 2 (cp 852) MS DOS 5.0

5	ANSI Windows 3.0

Funkce plně nahrazuje starší funkce Restore_table a From_xbase.

Hodnota funkce

Funkce při chybě vrátí FALSE, při úspěchu TRUE.

Příklad

Data_import('FAKTURY',True,'C:\DBF\FAKT.DBF',3,1);

Viz

Data_export, Restore_table, From_xbase


Funkce Data_export
Data_export

function Data_export (objnum : tcurstab; categ : short; var filename : string; format, recode : short) : Boolean;

Parametry

objnum - číslo tabulky, kurzoru pevného i proměnného - viz parametr tcurstab;

categ - kategorie objektu;

filename - jméno souboru, do něhož se  exportuje, nebo parametry poštovní zásilky;

format - formát dat;

recode - druh kódování češtiny.

Popis

Funkce Data_export zajistí export dat z tabulky nebo kurzoru do souboru ve všech podporovaných formátech, nebo odeslání dat poštou.

Zdrojem dat pro export může být nejen tabulka, ale i pevný nebo proměnný kurzor. Pro deklarovanou tabulku je parametrem objnum jméno tabulky, pro nedeklarovanou tabulku je nutné zjistit její číslo pomocí funkce Find_object. U otevřeného pevného i proměnného kurzoru je parametrem objnum přímo proměnná typu cursor.

Parametr categ určuje kategorii objektu. Používají se tyto kategorie:

kategorie	objekt

CATEG_TABLE	tabulka

CATEG_DIRCUR	proměnný kurzor

Parametrem filename specifikujete soubor, do něhož se data vyexportují. Pro zadání jména můžete s výhodou využít funkce Select_file. V případě odesílání dat poštou je v parametru filename řetězec popisující parametry zásilky (adresát, doba odeslání). Tento řetězec lze interaktivně zadat pomocí funkce Mail_parameters.

Parametr format stanoví způsob exportu dat. Hodnoty parametru a jim odpovídající typy exportů jsou v následující tabulce:

hodnota	formát

0	interní formát WinBase602

1	ASCII formát sloupcový

2	CSV formát

3	formát dBase IV

4	formát FoxPro 2

Parametrem recode stanovíte druh kódování češtiny ve výsledném souboru. Hodnoty parametru a jejich význam jsou uvedeny v následující tabulce:

hodnota	kódování

0	Windows EECS (cp 1250)

1	kód Kamenických (KEYBCS)

2	KOI8-CS (Text602)

3	Latin 2 (Text602)

4	Latin 2 (cp 852) MS DOS 5.0

5	ANSI Windows 3.0

Funkce plně nahrazuje starší funkce Save_table a To_xbase.

Hodnota funkce

Funkce při chybě vrátí FALSE, při úspěchu TRUE.

Příklad

table

  TAB1;

var

  ss: string[100];

  pozice : tobjnum;

begin

  ss := 'C:\*.dbf';

  Select_file(0,ss);

  Data_export(TAB1,categ_table,ss,4,4);

end.

Viz

Data_import, Save_table, To_xbase


Funkce Look_up
Look_up

function Look_up(curs : tcurstab; var attrname : string; var res : untyped) : trecnum;

Parametry

curs - otevřený kurzor nebo tabulka - viz parametr tcurstab;

attrname - jméno atributu

res - vstupní parametr - beztypová proměnná obsahující hodnotu, které se má atribut attrname rovnat;

Popis

Funkce prohledá tabulku nebo kurzor curs a nalezne záznamy, v nichž se atribut attrname rovná hodnotě res. Funkce vrátí absolutní číslo prvního záznamu, který této rovnosti vyhovuje. Neexistuje-li takový záznam nebo dojde k chybě, vrátí hodnotu -1.

Hodnota funkce

Funkce vrátí absolutní číslo záznamu vyhovující dané rovnosti nebo -1 v jiném případě.

Příklad

Zjistěte, na jakou částku zní faktura č.4:

table

  Faktury;

var

  u : untyped;

  mo : money;

  zaznam : trecnum;

begin

  u := 4;

  zaznam := Look_up(faktury,"CISLO",u);

  if zaznam <>-1 then begin

    mo := faktury[zaznam].castka;

    Info_box("",Money2str(mo,0));

  end;

end.


Funkce C_Avg
C_Avg

function C_Avg(curs : tcurstab; var attrname, condition : string; var res : untyped) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka - viz parametr tcurstab;

attrname - jméno atributu

condition - dodatečná podmínka na výběr

res - výstupní parametr - hodnota průměru z atributu attrname;  beztypová proměnná

Popis

Funkce vypočítá průměrnou hodnotu atributu attrname v tabulce nebo dotazu curs, případně omezeného navíc podmínkou condition. Je-li parametr condition prázdný řetězec, berou se všechny záznamy z curs.

Atribut musí být buď numerického typu nebo typu Time.

Výsledek bude zapsán do beztypové proměnné res.

Hodnota funkce

Funkce při chybě vrátí TRUE, při úspěchu FALSE..

Příklad

var

  prumer : untyped;

  pr : money;

table

  Faktury;

begin

  if not C_Avg(Faktury,'Castka','druh=1',prumer) then begin

    pr := prumer;

    Info_box('Průměrná částka na faktuře',money2str(pr,1));

  end;

end.

Viz

C_Sum, C_Min, C_Max, C_Count


Funkce C_Count
C_Count

function C_Count(curs : tcurstab; var attrname, condition : string; var res : integer) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka - viz parametr tcurstab;

attrname - jméno atributu

condition - dodatečná podmínka na výběr

res - výstupní parametr - počet záznamů v curs omezeném podmínkou condition

Popis

Funkce spočte záznamy z tabulky nebo kurzoru curs, které vyhovují podmínce condition a v atributu attrname nemají hodnotu NONE. Je-li parametr condition prázdný řetězec, berou se všechny záznamy z curs.

Hodnota funkce

Funkce při chybě vrátí TRUE, při úspěchu FALSE..

Příklad

var

  pocet : integer;

table

  Faktury;

begin

  if not C_Count(Faktury,'CASTKA','',pocet) then

    Info_box('Počet faktur',int2str(pocet));

end.

Viz

C_Sum, C_Min, C_Max, C_Avg


Funkce C_Max
C_Max

function C_Max(curs : tcurstab; var attrname, condition : string; var res : untyped) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka - viz parametr tcurstab;

attrname - jméno atributu

condition - dodatečná podmínka na výběr

res - výstupní parametr - maximální hodnota atributu attrname;  beztypová proměnná

Popis

Funkce zjistí maximální hodnotu atributu attrname v tabulce nebo dotazu curs, případně omezeného navíc podmínkou condition. Je-li parametr condition prázdný řetězec, berou se všechny záznamy z curs.

Atribut musí být buď numerického typu, řetězec, znak typ Time nebo Date.

Výsledek bude zapsán do beztypové proměnné res.

Hodnota funkce

Funkce při chybě vrátí TRUE, při úspěchu FALSE.

Příklad

var

  maxim : untyped;

  mx : money;

table

  Faktury;

begin

  if not C_Max(Faktury,'Castka','druh=1',maxim) then begin

    mx := maxim;

    Info_box('Maximální částka', money2str(mx,1));

  end;

end.

Viz

C_Sum, C_Min, C_Count, C_Avg


Funkce C_Min
C_Min

function C_Min(curs : tcurstab; var attrname, condition : string; var res : untyped) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka - viz parametr tcurstab;

attrname - jméno atributu

condition - dodatečná podmínka na výběr

res - výstupní parametr - maximální hodnota atributu attrname;  beztypová proměnná

Popis

Funkce vypočítá minimální hodnotu atributu attrname v tabulce nebo dotazu curs, případně omezeného navíc podmínkou condition. Je-li parametr condition prázdný řetězec, berou se všechny záznamy z curs.

Atribut musí být buď numerického typu, řetězec, znak typ Time nebo Date.

Výsledek bude zapsán do beztypové proměnné res.

Hodnota funkce

Funkce při chybě vrátí TRUE, při úspěchu FALSE.

Příklad

table

  faktury;

var

  u : untyped;

  mo : money;

  c : cursor;

begin

  if not Open_sql_cursor(c,'select Sum(CASTKA), '

             'FIRMA From FAKTURY Group By FIRMA ')

  then

  if not C_Min(c,'SUM1','',u) then begin

    mo := u;

    Info_box('Nejnižší obrat',money2str(mo,0));

  end;

  Close_cursor(c);

end.

Viz

C_Sum, C_Max, C_Count, C_Avg


Funkce C_Sum
C_Sum

function C_Sum(curs : tcurstab; var attrname, condition : string; var res : untyped) : Boolean;

Parametry

curs - otevřený kurzor nebo tabulka - viz parametr tcurstab;

attrname - jméno atributu

condition - dodatečná podmínka na výběr

res - výstupní parametr - maximální hodnota atributu attrname;  beztypová proměnná

Popis

Funkce vypočítá součet hodnot atributu attrname v tabulce nebo dotazu curs, případně omezeného navíc podmínkou condition. Je-li parametr condition prázdný řetězec, berou se všechny záznamy z curs.

Atribut musí být numerického typu.

Výsledek bude zapsán do beztypové proměnné res.

Hodnota funkce

Funkce při chybě vrátí TRUE, při úspěchu FALSE.

Příklad

var

  suma : untyped;

  pr : money;

table

  Faktury;

begin

  if not C_Sum(Faktury,'Castka','druh=1',suma) then begin

    pr := prumer;

    Info_box('Součet faktur:',money2str(pr,1));

  end;

end.

Viz

C_Min, C_Max, C_Count, C_Avg


Funkce Owned_cursor
Owned_cursors

function Owned_cursors : integer;

Popis

Funkce zjistí, kolik kurzorů je otevřeno v běžícím programu. Otevřené kurzory mohou zabírat paměť potřebnou pro jiné účely.

Je určena na pomoc vývojářům při ladění složitých programů.

Hodnota funkce

Funkce vrací počet otevřených kurzorů.

Viz

Available_memory


Funkce Available_memory
Available_memory

function Available_memory(local : Boolean) : integer;

Parametry

local - rozlišení paměti klienta a serveru ;

Popis

Funkce zjistí, kolik vyhražené volné paměti má WinBase602 zbývá. Přiblíží-li se volná paměť 64 KB, některé operace se již nezdaří a systém může vydat neočekávaná hlášení i v situacích, které předtím proběhly bez chyby.

Nejvíce paměti lze ušetřit zavíráním nepotřebných kurzorů.

Parametr local udává, zda-li se zkoumá volná paměť na serveru (FALSE) nebo na počítači klienta (TRUE). Při lokálním provozu hodnota parametru nemá význam.

Funkce je určena pro vývojáře složitějších aplikací jako pomůcka při ladění.

Hodnota funkce

Funkce vrací počet bytů volné paměti.

Příklad

if Available_memory(false)< 70000 then

  Info_box('Varování,'Paměť poklesla pod 70000!');

Viz

Owned_cursors


Funkce Database_integrity
Database_integrity

function Database_integrity(repair : Boolean; var lost_blocks, lost_dheap, nonex_blocks, cross_link, damaged_tabdef : integer) : Boolean;

Parametry

repair - způsob práce;

lost_blocks - ztracené bloky;

lost_dheap - ztracené kusy diskové paměti;

nonex_blocks - neexistující bloky;

cross_link - dvojnásobné použití diskové paměti;

damaged_tabdef - zničená definice tabulky

Popis

Funkce umožňuje nalézt, příp. opravit chyby konzistence databázového souboru.

Parametr repair určuje způsob provedení: hodnota TRUE znamená nalézt, opravit a informovat, hodnota FALSE pouze nalézt a informovat. Které chyby se budou hledat ovlivňuje šestice následujících parametrů: je-li parametr proměnná, chyba se bude hledat (resp. opravovat) a do proměnné se zapíše počet výskytů chyby, má-li parametr hodnotu NIL, chyba se nebude hledat (ani opravovat).

Podrobný popis jednotlivých druhů poškození databázového souboru naleznete v Manuálu správce databáze.

Funkci lze volat pouze v situaci, kdy na server není přihlášen žádný jiný uživatel.

Hodnota funkce

Funkce při chybě vrátí TRUE, při úspěchu FALSE. Častou příčinou nezdaru může být jiný uživatel přihlášený v téže době do databáze. V takovém případě nastane chyba NOT_LOCKED.


Funkce ODBC_open_cursor
ODBC_open_cursor

function Odbc_open_cursor(connection : integer;  var curs : cursor;  var query : string) : Boolean;

Parametry

connection - číslo spojení na zdroj dat

curs - výstupní parametr - číslo otevřeného ODBC kurzoru

query - zápis příkazu SELECT

Popis

Funkce dostane v parametru connection číslo spojení na ODBC zdroj dat a v parametru query zápis příkazu SELECT jazyka SQL. V parametru curs vrátí číslo otevřeného ODBC kurzoru.

S ODBC kurzorem se pracuje stejně jako s běžným kurzorem s těmito omezeními:

ODBC kurzor lze použít pro čtení a zápis hodnot atributů a pro čtení a zápis celých záznamů. K atributům lze přistupovat pomocí typu záznam uvedeného v deklaraci kurzoru nebo beztypovým způsobem.

ODBC kurzor se dá použít ve funkcích:

- Delete, Insert, Append;

- Rec_cnt, Delete_all_records;

- Restrict_cursor, Restore_cursor, Close_cursor;

- Read_lock_record, Read_unlock_record, Write_lock_record, Write_unlock_record;

- při otevírání a tisku pohledu (pro přesměrování pohledu).

Funkce Write, Delete a Insert mohou nefungovat ve spolupráci s některými staršími ODBC drivery. Drivery, které plně podporují funkci SQLSetPos by neměly činit obtíže.

Funkce pro zamykání záznamů pracují s jediným druhem zámků, který nabízí ODBC, proto funkce Read_lock_record dělá totéž co Write_lock_record.

ODBC kurzor se nedá použít ve funkcích:

- Undelete;

- Read_lock_table, Read_unlock_table, Write_lock_table, Write_unlock_table;

- C_sum, C_max, C_min, C_avg, C_count, Look_up;

- Translate, Super_recnum, Add_record;

- Set_fcursor, Relate_record.

ODBC kurzor se zavírá funkcí Close_cursor. Při skončení běhu programu ve vnitřním jazyce se zavřou všechny neuzavřené ODBC kurzory.

Hodnota funkce

Funkce při úspěchu vrací FALSE, při chybě TRUE.

Příklad:

var

  c : cursor;

  conn, rec, lng : integer;

begin

  conn:=odbc_find_connection('WinBase602: D:\WB3\OBJS');

  if conn=0 then halt;

  if odbc_open_cursor(conn, c, 'SELECT * FROM odbc_table') then halt;

  rec_cnt(c,rec);  info_box('Počet záznamů', int2str(rec));

  rec:=Insert(c);

  c[rec].attr:=56;

  rec_cnt(c,rec);  info_box('Počet záznamů', int2str(rec));

  if Restrict_cursor(c, 'attr > 30') then halt;

  rec_cnt(c,rec);  info_box('Počet záznamů', int2str(rec));

  Restore_cursor(c);

  rec_cnt(c,rec);  info_box('Počet záznamů', int2str(rec));

  close_cursor(c);

end.

Viz

ODBC_find_connection, ODBC_create_connection, ODBC_direct_connection


Funkce ODBC_find_connection
ODBC_find_connection

function Odbc_find_connection(var dsn_name : string) : integer;

Parametry

dsn_name - jméno zdroje dat

Popis

Funkcí lze získat číslo napojení na zdroj dat, které je potřebné pro otevření kurzoru pomocí funkce ODBC_open_cursor.

Funkce se použije k získání čísla zdroje dat, který je připojen do aplikace. Vstupní parametr dsn_name udává jméno zdroje dat. Musí se uvést přesně v té podobě, v níž se vyskytuje ve výčtech zdrojů dat.

Hodnota funkce

Funkce vrací číslo spojení na zdroj dat při úspěchu a nulu při chybě.

Viz

ODBC_open_cursor, ODBC_create_connection, ODBC_direct_connection


Funkce ODBC_create_connection
ODBC_create_connection

function Odbc_create_connection(var dsn_name : string) : integer;

Parametry

dsn_name - jméno zdroje dat

Popis

Funkcí lze získat číslo napojení na zdroj dat, které je potřebné pro otevření kurzoru pomocí funkce ODBC_open_cursor.

Funkce Odbc_create_connection vytvoří spojení na zdroj dat, který není připojen do aplikace. Přitom konverzuje z uživatelem o jeho jménu, heslo a parametrech spojení.

Vstupní parametr dsn_name udává jméno zdroje dat. Musí se uvést přesně v té podobě, v níž se vyskytuje ve výčtech zdrojů dat v Control Panelu Windows.

Hodnota funkce

Funkce vrací číslo spojení na zdroj dat při úspěchu a nulu při chybě.

Viz

ODBC_open_cursor, ODBC_find_connection, ODBC_direct_connection


Funkce ODBC_direct_connection
ODBC_direct_connection

function Odbc_direct_connection(var dsn_name, conn_string : string) : integer;

Parametry

dsn_name - jméno zdroje dat

conn_string - parametry napojení na zdroj dat

Popis

Funkcí lze získat číslo napojení na zdroj dat, které je potřebné pro otevření kurzoru pomocí funkce ODBC_open_cursor.

Funkce Odbc_direct_connection vytvoří spojení na zdroj dat, který není připojen do aplikace, a umožní zadat všechny parametry spojení v řetězci conn_string ve formátu určeném zdrojem dat.

Hodnota funkce

Funkce vrací číslo spojení na zdroj dat při úspěchu a nulu při chybě.

Viz

ODBC_open_cursor, ODBC_create_connection, ODBC_find_connection


Funkce Relist_object
Relist_objects

function Relist_objects : Boolean;

Popis

Funkce zajistí, že v popisu aplikace budou aktuální tabulky. K nesouladu mezi současným stavem a stavem po otevření aplikace (signalizovaném na řídicím panelu) může dojít tehdy, provedete-li z programu funkci SQL_execute s parametrem DROP TABLE nebo CREATE TABLE.

Při interaktivním způsobu práce s tabulkami ve vývojovém prostředí nemůže k tomuto stavu dojít.

Hodnota funkce

Funkce při chybě vrátí TRUE, při úspěchu FALSE.

Příklad

if not Find_object('TAB1',categ_table, pozice) then

  if SQL_execute('DROP TABLE TAB1')

    then Info_box('Chyba', int2str(Sz_error))

    else Relist_objects;

Viz

SQL_execute


Příkazy vnitřního programovacího jazyka

Ve vnitřním programovacím jazyce jsou k dispozici tyto příkazy:

přiřazovací příkaz;

složený příkaz (BEGIN - END);

cyklus REPEAT - UNTIL;

cyklus WHILE - DO;

cyklus FOR;

podmíněný příkaz IF;

příkaz CASE;

volání procedury;

příkaz WITH;

příkaz HALT;

příkaz RETURN.


Přiřazovací příkaz

Přiřazovací příkaz ve vnitřním programovacím jazyce má tento tvar:

proměnná_nebo_atribut := výraz

Tento příkaz nejprve zjistí, o kterou proměnnou resp. který atribut jde, pak vypočte hodnotu výrazu a nakonec přiřadí hodnotu výrazu do proměnné resp. do atributu.

Přiřazení lze vždy provést, pokud proměnná resp. atribut a výraz jsou stejného typu. Mimo to lze také přiřazovat:

- libovolně navzájem hodnoty typů Short, Integer a Money do proměnných resp. atributů těchto typů (při konverzi typu Money na celé číslo se odřízne desetinná část, nezaokrouhluje se);

- typ Short, Integer a Money do typu Real (nikoli naopak);

- hodnoty ukazatelů do typu Integer a naopak;

- všechny řetězce znaků navzájem (typy String, CSString a CSIString);

- hodnotu typu Char do řetězce znaků;

- řetězec znaků do atributu proměnné velikosti (typu Text) a naopak. Na straně atributu musí být tzv. dvojindex, který určuje, s jakou oblastí atributu se pracuje (retezec := Tab[0].Pozn[0,100]).

Pokud s ohledem na typy nelze přiřazení provést přímo, je nutno použít některou ze standardních konverzních procedur (nebo napsat konverzní proceduru vlastní ).

Pokud při přiřazení je na jedné straně beztypová proměnná, pak na druhé straně musí být hodnota resp. proměnná nestrukturovaného typu nebo typu řetězec znaků, popřípadně také beztypová proměnná. Při přiřazení se provede vhodná konverze typu. Pokud se konverze nedá provést (např. konverze řetězce ABC na Integer), pak se přiřadí hodnota NONE.

Při přiřazování hodnot databázových atributů může dojít k chybě - např. tehdy, pokud přiřazením překračujete rozsah přístupových práv. V závislosti na tom, zda chyby jsou "maskovány" pomocí procedury Err_mask, dojde buď k ukončení běhu programu, anebo běh pokračuje a výskyt chyby lze zjistit pomocí funkce Signalize.


Volání procedury a funkce

Procedury a funkce se ve vnitřním programovacím jazyce volají zápisem ve tvaru:

identifikátor_procedury_nebo_funkce ( parametr, parametr, ... parametr)

Parametry musí po řadě odpovídat formálním parametrům uvedeným v deklaraci procedury resp. funkce. Pokud se předávají odkazem, pak skutečným parametrem musí být proměnná téhož typu, jako formální parametr. Pokud se předávají hodnotou, pak skutečným parametrem smí být výraz, jehož hodnota se dá přiřadit do formálního parametru podle pravidel pro přiřazování.

Volání procedury je příkazem. Volání funkce lze použít buď jako příkaz (pak se hodnota funkce ignoruje) nebo jako operand ve výrazu.

Příklad:

funkce (z aplikace Knihovna) je deklarována takto:

function BookTest(who : short) : boolean;

{**************************************}

// ověří, nemá-li rušený čtenář vypůjčené nějaké knihy (z proc DeleteReader)

var

  ct : cursor;

  ss : string[100];

  cntt : integer;

begin

  BookTest := true;

  ss := 'select * from KNIHY where (VYRAZENA = false) and (KDO = '+Int2str(who)+')';

  if not Open_sql_cursor(ct,ss) then begin

    Rec_cnt(ct, cntt);

    if cntt = 0 then BookTest := false;

    Close_cursor(ct);

  end else Signalize;

end;

Funkce se volá z programu např. takto:

...

if BookTest(lidi[rec].cislo) then Info_box('Nelze','Tento čtenář dosud nevrátil všechny knihy!!')

    else begin

...


Složený příkaz a tělo bloku

Složený příkaz ve vnitřním programovacím jazyce má tento tvar:

begin

  příkaz; příkaz; ... příkaz

end

Provedení složeného příkazu znamená postupné provedení všech příkazů mezi begin a end.

Složený příkaz lze v programu použít všude tak, kde má být příkaz. Mimo to složený příkaz tvoří tělo každého bloku, tedy tělo procedury, funkce a hlavního programu.


Cyklus REPEAT - UNTIL

Cyklus REPEAT - UNTIL je příkazem vnitřního programovacího jazyka a má tento tvar:

repeat

 příkaz; příkaz; ... příkaz

until výraz_typu_Boolean

Při provádění tohoto příkazu se cyklicky opakuje postupné provedení všech příkazů uvedených mezi repeat a until a vyhodnocení výrazu typu Boolean, který tvoří podmínku ukončení cyklu. Má-li tento výraz hodnotu TRUE, pak provádění cyklu končí, jinak se provedení všech příkazů a vyhodnocení výrazu opakuje.

Příkazy obsažené v cyklu se tedy při provádění cyklu REPEAT - UNTIL provedou nejméně jednou.

Příklad:

View_open("*POHL1");

repeat Peek_message until not View_state("*POHL1");


Cyklus WHILE

Cyklus WHILE je příkazem vnitřního programovacího jazyka a má tento tvar:

while výraz_typu_Boolean do

  příkaz

Při provádění tohoto příkazu se nejprve vyhodnotí výraz typu Boolean, který tvoří podmínku cyklu. Pokud má tento výraz hodnotu FALSE, provádění cyklu tím končí. Jinak se provede příkaz obsažený v cyklu a pokračuje se opakovaným vyhodnocením výrazu.

Není-li podmínka cyklu splněna při vstupu do cyklu, příkaz obsažený v cyklu se tedy neprovede ani jednou.

Příklad:

Open_view("*POHL1", no_redir,0,0,0,id_p);

while (id_p <> 0) do Peek_message ;


Podmíněný příkaz IF
Podmíněný příkaz

Podmíněný příkaz je příkazem vnitřního programovacího jazyka a má jeden z těchto tvarů:

if výraz_typu_Boolean then příkaz1

nebo

if výraz_typu_Boolean then příkaz1 else příkaz2

Při provádění podmíněného příkazu se nejprve vyhodnotí výraz typu Boolean. Pokud má hodnotu TRUE, pak se následně provede příkaz1. Pokud má hodnotu FALSE, provede se příkaz2 resp. neprovede se žádný příkaz, pokud příkaz2 není uveden.

Při vnořování podmíněných příkazů do sebe je nutno pamatovat na to, že příkaz ve tvaru:

if v1 then if v2 then p1 else p2

se provede jako kdyby byl zapsán:

if v1 then

   begin if v2 then p1 else p2 end

a nikoli:

if v1 then

   begin if v2 then p1 end

else p2

Příklad:

if idc=0 then Open_view('*Superlid',no_redir,0,0,0,idc)

  else Pick_window(idc);


Příkaz CASE

Příkaz CASE slouží k rozvětvení programu do mnoha větví na základě celočíselné hodnoty. Má tento tvar:

case výraz of

  konstanta, ... konstanta : příkaz;

  konstanta, ... konstanta : příkaz;

  ...

  else : příkaz;

end;

Větev začínající slovem ELSE se může vyskytnout na libovolném místě mezi ostatními větvemi, ale nejvýše jednou. Její výskyt není povinný. Každá konstanta smí být v příkazu CASE použita nejvýše jednou.

Při provádění příkazu CASE se nejprve vyhodnotí výraz. Jeho hodnota se porovná s uvedenými konstantami. Pokud se některá konstanta rovná hodnotě výrazu, pak se provede příkaz následující na touto konstantou. Pokud žádná konstanta nemá stejnou hodnotu jako výraz, pak má-li příkaz větev ELSE, provede se příkaz v této větvi, pokud větev ELSE schází, neprovede se nic.

Příklad

var

  i : integer;

  str : string[1];

  b : Boolean;

begin

  b := true;

  repeat

    b := Input_box("cislo",str,1);

    i := str2int(str);

    if b then

      case i of

        1    : Info_box("","JEDNA");

        2,3  : Info_box("","DVA a TRI");

        else : Info_box("","else");

      end;

  until not b;

end.


Cyklus FOR

Cyklus FOR je příkazem vnitřního programovacího jazyka a má jeden z těchto tvarů:

for řídící_proměnná := výraz1 to výraz2

   do příkaz

for řídící_proměnná := výraz1 downto výraz2

   do příkaz

Při provádění cyklu se nejprve přiřadí řídící proměnné hodnota výrazu1. Pak se ověří podmínka cyklu: Cyklus končí, pokud v tvaru s to je hodnota řídící proměnné větší než hodnota výrazu2, resp. pokud v tvaru s downto je hodnota řídící proměnné menší než hodnota výrazu2. V opačném případě se provede příkaz obsažený v cyklu a hodnota řídící proměnné se zvětší (to) resp. zmenší (downto) o jedničku. Pokračuje se novým testováním podmínky cyklu.

Řídící proměnná i oba výrazy musí být typu Integer. Počet opakování cyklu je roven rozdílu hodnot obou výrazů plus jedna. Je-li ve tvaru s to výraz1 menší než výraz2, resp. je-li ve tvaru s downto vyraz1 větší než výraz2, pak se příkaz obsažený v cyklu neprovede ani jednou.

Příklad:

if not Rec_cnt(MailMerge, pocetmm) then begin

  for i := 0 to pocetmm-1 do begin	//cyklus přes všechny záznamy z dotazu

    Set_status_text('Zapisuji do tabulky kontaktů...');

    Set_status_nums(i,pocetmm);

    Start_transaction;

      reck := Insert(Tschuzky); Signalize;

      if reck <> -1 then begin

         cis := MailMerge[i].cislo;

         ...


Příkaz WITH

Příkaz WITH má ve vnitřním programovacím jazyce tento tvar:

with tabulka_nebo_kurzor [ číslo_záznamu ]

   do příkaz

Provedením příkazu WITH způsobí vyhodnocení čísla záznamu a provedení příkazu, který je v něm obsažen. Ve vnitřním příkazu mohou být použity identifikátory atributů výše uvedené tabulky resp. kurzoru - tyto identifikátory pak označují atributy záznamu, jehož číslo je uvedeno v hranatých závorkách.

Jsou-li a a B atributy tabulky TAB a REC číslo záznamu této tabulky, pak místo:

TAB[REC].A := 2 * TAB[REC].B;

lze psát:

with TAB[REC] do A := 2 * B;

Příkaz WITH tedy umožňuje zkrátit zápis přístupu k atributu v programu a navíc (nepatrně) zrychluje běh programu.


Příkaz RETURN

Příkaz RETURN má ve vnitřním programovacím jazyce tvar:

return celočíselný_výraz

Příkaz RETURN při svém provedení předá programu zprávu, jejíž číslo se rovná hodnotě výrazu uvedeného v příkazu. Tato hodnota musí ležet v rozmezí 1001 až 60000 nebo -1.

Příkaz RETURN je určen přednostně pro použití v návrzích pohledu pro zadání akce, která se provede např. po stisku tlačítka, resp. v návrzích menu pro akce, které se provedou po vybrání položky menu. Vygenerovanou zprávu může program získat voláním funkce Get_ext_message.


Příkaz HALT

Příkaz HALT způsobí ukončení běhu programu (nebo vnořeného programu). Zapíše se prostě:

Halt

Příklad:

...

if not TestPrav then Halt;


Systémové tabulky

V systému jsou dvě služební tabulky, pojmenované TABTAB a OBJTAB. V první z nich jsou uloženy definice všech tabulek, v druhé definice všech objektů (kromě tabulek). Každá tabulka má číslo typu ttablenum (short), které je současně jejím indexem v tabulce TABTAB, každý objekt má číslo typu tobjnum (short), které je současně jeho indexem v tabulce OBJTAB.

Nedoporučujeme pracovat přímo s těmito tabulkami. Pro vytvoření resp. smazání tabulky využijte funkci SQL_execute s parametrem CREATE TABLE resp DROP TABLE. Z historických důvodů lze použít i funkci Define_table a pro zrušení tabulky nebo objektu funkci Delete. Jako první parametr ji předejte číslo TAB_TABLENUM resp. OBJ_TABLENUM, jako druhý číslo rušené tabulky resp. rušeného objektu získané funkcí Find_object.

Existují některé výjimky, kdy se práce přímo se systémovými tabulkami ukazuje výhodná. Zápisem do záznamu o objektu lze objekt přejmenovat nebo přepsat jeho definici přímo z prohramu, bez pomoci řídicho panelu. Čtením záznamu lze získat jeho definici apod. V kombinaci s funkcí Insert_object lze z programu (tj. i v aplikaci šířené pouze s provozním systémem) zakládat nové objekty v aktuální aplaikaci aj.

Při práci se systémovými tabulkami budete potřebovat tyto jejich atributy:

TAB_NAME resp. OBJ_NAME	jméno objektu, CSIString délky 10

CATEGORY	kategorie objektu, Char

DEFIN	definice objektu v textové podobě, typ Nospec

APL_NAME	jméno aplikace, CSIString délky 10


Popis typu pole (ARRAY)
Popis typu pole

Popis typu pole má ve vnitřním programovacím jazyce tento tvar:

array [ dolní_mez .. horní_mez ] of typ_složek

array [ dolní_mez .. horní_mez ] of array [ dolní_mez .. horní_mez ] of typ_složek

Dolní mez a horní mez jsou konstanty typu Integer, přičemž dolní mez nesmí být větší než horní mez. Rozsah mezí určuje, jaké hodnoty indexu lze použít při indexování proměnné tohoto typu. Typ složek je identifikátorem nebo popisem libovolného typu kromě typu file a cursor.

Proměnná typu pole nesmí zabírat více paměti než 64 KB.

Příklad

var

  pole1 : array[1..10] of short;

  pole2 : array[1..10] of array[1..10] of short;

begin

  pole[1] := 1;

  pole[1][1] := 2;

  ...

end.


Popis typu záznam (RECORD)
Popis typu záznam

Popis typu záznam má ve vnitřním programovacím jazyce tento tvar:

record

  skupina; skupina; ... skupina

end

kde skupina má tento tvar:

identifikátor, ... identifikátor : typ

Identifikátory ve skupinách označují složky záznamu - každé dva identifikátory složky v rámci jednoho typu záznam se musí navzájem lišit. Typ je buď identifikátorem typu nebo popisem typu a smí to být libovolný typ kromě typů file a cursor.

Proměnná typu záznam nesmí zabírat více paměti než 64 KB.

Příklad

type rec = record

      del : boolean;

      datum : date;

      obs : array[1..28] of boolean;

      kdo : array[1..28] of string[16];

      co : array[1..28] of string[30];

end;


Typ soubor (FILE)
Typ soubor

Typ soubor se ve vnitřním programovacím jazyce označuje klíčovým slovem:

file

Lze pracovat pouze s textovými soubory, proto se typ složek souboru nespecifikuje.

Příklad

var

 f : file;

procedure Zapis(ss : string[50]);

begin

 Reset(f,"C:\wb602\test.txt");

 Seek(f,FileLength(f));

 WriteLn(f,ss," ",Now);

 Close(f);

end;

begin

 ...

 Zapis("Provedeno OK");

 ...

end.


Typy řetězec znaků
Typy "řetězec znaků"

Typy "řetězec znaků" se ve vnitřním programovacím jazyce popisují takto:

string [ délka ]

csstring [ délka ]

csistring [ délka ]

Řetězce těchto tří typů se neliší svými hodnotami, ale pouze tím, jak se mezi sebou porovnávají.

Délka je celočíselná konstanta označující maximální počet znaků řetězce. Délka řetězce je omezena hodnotou 64 KB. Pouze však některé funkce umí pracovat s řetězci delšími než 255 znaků. Také operátor + pro spojování řetězců ořezává řetězce na 255 znaků.


Nespecifikovaný typ

Ve WinBase602 existuje zvláštní předdefinovaný tzv. nespecifikovaný typ označený identifikátorem Untyped. Slouží k operacím s objekty, jejichž typ není při překladu programu znám.

Deklarujete-li proměnnou nespecifikovaného typu (říkáme ji také beztypová proměnná), pak může nabývat hodnot všech nestrukturovaných typů a typů řetězec znaků. Beztypová proměnná je například parametrem funkce C_max, která hledá v databázových záznamech maximální hodnotu atributu a vrací ji, aniž by v programu musel být znám její typ.

Použití:

...

if C_max(Tfirma,'cislo','',unt) then Signalize;

else begin

  poslCislo := unt;

...


Jednoduhé typy jazyka
Jednoduché typy jazyka

Integer  Hodnotami typu  Integer jsou celá čísla v rozsahu hodnot od -2147483647 do 2147483647. Hodnota typu Integer zabírá 4 bajty paměti.

Short Hodnotami typu Short jsou celá čísla v rozsahu od -32767 do 32767. Hodnota zabírá pouze 2 bajty paměti, typ Short tedy umožňuje ušetřit polovinu operační paměti při práci s malými celými čísly.

Money Typ Money má hodnoty se dvěma desetinnými místy. Jeho rozsah hodnot je od - 1.4*10^12 do 1.4*10^12. Hodnota zabírá 6 bajtů.

Char Hodnotami typu Char jsou znaky. Hodnota typu Char zabírá 1 bajt.

Boolean Typ Boolean má pouze dvě hodnoty, a to  TRUE a  FALSE (nepočítáme-li "nedefinovanou'' hodnotu NONEBOOLEAN). Hodnota zabírá jeden bajt.

Date Hodnotou typu Date je datum. Tato hodnota zabírá 4 bajty. Datum musí být po začátku našeho letopočtu.

Time Hodnotou typu Time je čas. Tato hodnota zabírá 4 bajty. Čas se měří s přesností na tisíciny sekundy.

Real Typ Real zahrnuje reálná čísla v rozsahu absolutních hodnot přibližně 1.7E-308 až 1.7E308, kladná i záporná. Přesnost výpočtů je přibližně 15 desetinných míst. Hodnota zabírá 8 bajtů paměti.

flexint  Speciální typ zavedený při přechodu na 32 bitovou verzi, flexibilní velikost podle OS.

trecnum Typ trecnum slouží pro absolutní čísla záznamů a je totožný s typem Integer

window_id Typ window_id se používá pro identifikace oken a je totožný s typem Short v 16 bitových Windows, s typem Integer ve 32 bit. Windows.


Deklarace procedury

Procedura se ve vnitřním programovacím jazyce deklaruje zápisem ve tvaru:

procedure identifikátor

   (skupina_par; ... skupina_par);

blok;

kde skupina_par je skupina parametrů ve tvaru:

identifikátor, ... identifikátor : identifikátor_typu

nebo

var identifikátor, ... identifikátor : identifikátor_typu

V prvním případě se parametry předávají hodnotou, v druhém referencí (odkazem). Databázové atributy nelze předávat referencí. Blok procedury je tvořen případnými deklaracemi konstant, typů a proměnných a tělem procedury, kterým je složený příkaz.

Příklad:

procedure ReCard(idx : window_id; rec : integer);

{*************************************}

// znovuzařazení dříve vyřazené knihy zpět

var

  cx : cursor;

  trec : integer;

begin

  if YesNo_box('Otázka','Opravdu si přejete znovu zařadit knihu mezi ostatní?') then

    if Get_fcursor(idx,cx,nil) then

      if not Translate(cx,rec,0,trec) then begin

         Knihy[trec].vyrazena := false;

         Knihy[trec].dat_vyr := nonedate;

         Reset_view(id_vyr,-1,reset_deletions+reset_cursor);

         if idk > 0 then Reset_view(idk,-1,reset_deletions+reset_cursor);

      end;

end;


Deklarace funkce

Funkce se ve vnitřním programovacím jazyce deklaruje zápisem ve tvaru:

function identifikátor

  (skupina_par; ... skupina_par) : typ;

blok;

kde skupina_par je skupina parametrů ve tvaru:

identifikátor, ... identifikátor : identifikátor_typu

nebo

var identifikátor, ... identifikátor : identifikátor_typu

V prvním případě se parametry předávají hodnotou, v druhém referencí (odkazem). Databázové atributy nelze předávat referencí. Blok funkce je tvořen případnými deklaracemi konstant, typů a proměnných a tělem funkce, kterým je složený příkaz.

Typ funkce musí být buď nestrukturovaný, nebo typ řetězec znaků.

Příklady:

function Rand : real;

{**************************************}

// vrátí pseudonáhodné číslo

const

  c1 = 13849;

  c2 = 27181;

  c3 = 65536;

begin

    seed := (c1+(c2*seed)) mod c3;

    Rand := seed/c3;

end;

function Exists(kod:string[8];var cisloVTab:integer) : boolean;

{**************************************}

// zjistí, existuje-li kniha s kodem kod

// jestliže ano, vrátí v cisloVTab cislo záznamu z tabulky Knihy

var

  ck : cursor;

  podm2 : string[100];

  pocet : integer;

begin

  podm2 := "select * from KNIHY where (VYRAZENA = false) and (KOD="""+kod+""")";

  if Open_sql_cursor(ck,podm2) then Exit;

  Rec_cnt(ck,pocet);        // zjistí počet

  if pocet = 1 then begin   // to je ta pravá

    Translate(ck,0,0,cisloVTab);

    Exists := true              {OK}

  end

  else begin                // dva a víc nemůže nastat

    Info_box("Upozornění","Zadaný kód nebyl nalezen!");

    b := true;

    Exists := false;

  end;

  Close_cursor(ck);

end;


Deklarace proměnných

Deklarace proměnných má ve vnitřním programovacím jazyce tvar:

var identifikátor, ... identifikátor : typ;

   ...

   identifikátor, ... identifikátor : typ;

Typem může být buď identifikátor, nebo popis typu.

Příklad:

const

  MAX = 3000;

var

  f : file;

  retezec : string[MAX];

  delka : short;


Definice typů

Definice typů má ve vnitřním programovacím jazyce tento tvar:

type identifikátor = popis_typu;

     ...

     identifikátor = popis_typu;

Definice typu označí typ specifikovaný popisem typu identifikátorem.

Popisem typu může být např. popis typu pole, popis typu záznam, popis typu soubor, popis typu řetězec znaků nebo popis jednoduchých typů.

Příklad:

type

  pole = array[1..4] of integer;

var

  id : window_id;

  hodnota,barva : pole;


Definice konstanty
Definice konstant

Definice konstant má ve vnitřním programovacím jazyce tento tvar:

const identifikátor = konstanta;

       ...

      identifikátor = konstanta;

Definicí konstanty se zavádí identifikátor, který označuje stejnou hodnotu, jako konstanta uvedená v definici. Lze definovat pouze konstanty typu Integer, Real, Money, Date, Time a Char.

Příklad:

const

// Konstanty označující zprávy z menu:

  MN_TEMPLATE = 1001;

  MN_EDIPARS  = 1002;

  MN_UNVERS   = 1003;

  MN_INF_PARS = 1004;

  MN_INSTTEST = 1005;

  MN_EXIT     = 1006;

// Interní limity:

  MAX_SEL_RECS = 200;

  MAX_TABLES   = 50;


Deklarace tabulky

Tabulka se v programu deklaruje takto:

table jméno_tabulky;

Jméno tabulky musí být stejné, pod jakým je tabulka uložena v databázi. S tabulkami, které v programu nejsou takto deklarovány, lze pracovat pouze prostřednictvím kurzorů.

Příklad:

table

  Lidi, Knihy, Rezervace, Obory, Parametry;

cursor

  Vyrazene, Rezerv_Dat;


Deklarace kurzoru

Kurzory lze v programu deklarovat dvojím způsobem:

Pevný kurzor, tj. kurzor, jehož definice je uložena v databázi, se deklaruje zápisem:

cursor jméno_kurzoru;

Proměnný kurzor, tedy kurzor, jehož definice bude vytvořena až při běhu programu,

se deklaruje zápisem:

var identifikátor : cursor popis_typu_záznam;

Při otevření proměnného kurzoru je nutno zadat stejné složky kurzoru, jaké jsou uvedeny v popisu typu záznam. Popis typu záznam lze v deklaraci kurzoru vynechat, pak ale jeho složky jsou beztypové (častější případ).

Příklad:

cursor

  Vyrazene, Rezerv_Dat;

var

  c_pom : cursor;


Deklarace externích procedur a funkcí

Vnitřní programovací jazyk WinBase602 umožňuje volat i procedury a funkce implementované v externích knihovnách typu DLL (příp. EXE). Lze volat pouze ty funkce, které vyhovují pascalské volací konvenci (v jazyce C musí být označeny klíčovým slovem _pascal).

Všechny takovéto procedury a funkce musí být v programu před místemsvého prvního použití deklarovány. Deklarace má tento tvar:

hlavička;

EXTERNAL 'jméno_knihovny' NAME 'jméno_funkce_v_knihovně';

přičemž pokud je jméno funkce v programu a v knihovně stejné, lze NAME a jméno_funkce_v_knihovně vypustit.

Příklad: (zvuková signalizace)

procedure Beep( i : short);

external 'USER' name 'MessageBeep';

Standardní pípnutí je pro i = -1.

Deklarace mnoha užitečných externích procedur z knihoven Windows jsou připraveny v souboru WINAPI.PGM v adresáři, kde je instalována WinBase602.


Deklarace v programech

Program může obsahovat tyto deklarace:

Definice konstant

Definice typů

Deklarace proměnných

Deklarace procedur

Deklarace funkcí

Deklarace externích procedur a funkcí

Deklarace tabulek

Deklarace kurzorů

Deklarace je možno uvádět v libovolném pořadí. Každý identifikátor musí být deklarován dřív, než je poprvé použit.

Deklarace konstant, typů a proměnných mohou být i lokální uvnitř procedury nebo funkce.


Výrazy a operátory

Výrazy se ve vnitřním programovacím jazyce vytvářejí spojováním operandů pomocí operátorů a kulatých závorek ( a ). Každý operátor se dá použít pouze pro operandy určitých typů a určuje, jaký bude typ výsledku. Jsou k dispozici tyto operátory:

+, -, *, /  pro sčítání, odečítání, násobení a dělení. Operandy mohou být libovolné kombinace typů Short, Integer a Real, při tom pokud některý operand je typu Real nebo pokud se použije operátor /, pak výsledek je typu Real, jinak je výsledek typu Integer.

div a mod jsou operátory pro výpočet celočíselného podílu resp. zbytku po dělení. Oba operandy musí být celočíselné (tedy typu Short nebo Integer), výsledek je typu Integer. Pozor, nelze dělit nulou!

or, and a not jsou operandy pracující s logickými operandy, tedy s typem Boolean. Výsledek je téhož typu. Operátory počítají po řadě disjunkci, konjunkci a negaci.

Relační operátory < (menší než), <= (menší nebo rovno), > (větší než), >= (větší nebo rovno), = (rovno), <> (nerovno) mají výsledek typu Boolean. Jejich pomocí lze porovnávat čísla typu Integer, Short, Real a Money v libovolných kombinacích. Lze také spolu porovnávat ukazatele, hodnoty typu Char, Boolean a v libovolných kombinacích String, CSString a CSIString.

Pro porovnávání řetězců lze také použít relačních operátorů .= (má prefix), .=. (obsahuje v sobě) a ~ (podobá se, liší se pouze diakritikou, velikostí písmen a mezerami).

Operátory +, -, *, / se dají také použít pro operand(y) typu Money. Pokud je jedním z operandů hodnota typu Real nebo pokud se použije operátor /, je výsledek typu Real, jinak je typu Money. Není dovoleno násobit a dělit dva operandy typu Money.

Operátor  + se dá použít též ke spojování řetězců.

K hodnotě typu Date nebo Time lze přičíst nebo odečíst celé číslo. Výsledek je stejného typu, jako první operand, hodnota druhého operandu se v těchto operacích chápe jako počet dní resp. počet tisícin sekundy. Dvě hodnoty typu Date nebo Time lze od sebe odečíst. Výsledkem je celé číslo vyjadřující počet dnů resp. tisícin sekundy mezi hodnotami obou operandů.

Viz také vyhodnocování výrazů a výraz typu Boolean.


Vyhodnocování výrazů a priorita operátorů

Výraz se vyhodnocuje v pořadí daném těmito kritérii (seřazeno od nejvýznamnějšího):

1. Struktura výrazu vyjádřena uzávorkováním

2. Priorita operátorů

3. Zleva doprava

4. Nepotřebná hodnota se nevyhodnocuje (má-li první operand operace and hodnotu FALSE nebo má-li první operand operace or hodnotu TRUE, druhý operand se nevyhodnotí).

Priorita operátorů je:

1. not

2. *, /, and, div, mod

3. +, -, or

4. <, <=, >, >=, =, <>, .=, .=., ~


Výraz typu Boolean (podmínka)
Výraz typu Boolean

Výraz typu Boolean je speciálním případem výrazu. Používá se všude tak, kde dle syntaxe vnitřního programovacího jazyka má být podmínka, tedy např.:

- v příkazech REPEAT - UNTIL, WHILE - DO, IF- THEN;

- jako podmínka viditelnosti nebo podmínka aktivity složky pohledu, jako integritní omezení v pohledu, dále při definování položek menu.

Hodnota výrazu musí být typu Boolean. Takovouto hodnotu mají:

- konstanty FALSE a TRUE;

- všechny proměnné a atributy typu Boolean;

- výsledky operací or, and a not;

- výsledky relací   <,  <=,  >,  >=,  =,  <>,  .=,  .=.,  ~;

- hodnoty funkcí typu Boolean, ať už definovaných uživatelem nebo standardních (např. funkce Odd).

Výraz typu Boolean se vyhodnocuje dle všeobecně platných priorit operátorů. Vzhledem k tomu, že operace and a or mají vyšší prioritu než relace rovnosti a nerovnosti, nelze ve výrazech jako:

(A < 5) and (B >= 17)

vynechat žádné závorky!


Struktura programu ve vnitřním jazyce

Program ve vnitřním jazyce se skládá z deklarační části a těla.

Deklarační část je posloupnost deklarací konstant, typů, proměnných, tabulek, kurzorů, procedur a funkcí uvedených v libovolném pořadí. Tělo je složeným příkazem a je ukončeno tečkou. Za touto tečkou již nesmí nic následovat

viz	Deklarace 	Složený příkaz.

V procedurách a funkcích lze deklarovat jejich lokální konstanty, typy a proměnné, ale nelze v nich deklarovat tabulky, kurzory ani (na rozdíl od Pascalu) lokální procedury a funkce.

Mezi kterýmikoliv dvěma symboly programu lze umístit komentář. Komentář začíná levou složenou závorkou ( { ) a končí pravou složenou závorkou ( } ). Komenář může být také označen dvěma lomítky ( // ) - vše, co se nachází od lomítek do konce řádku, je komentář.


Vnitřní programovací jazyk

Programovací jazyk WinBase602 je vyšší strukturovaný programovací jazyk velmi podobný Pascalu. Hlavní odlišnosti od Pascalu spočívají v:

- přidání prostředků pro komunikaci s databází;

- přidání prostředků pro snadné vytváření uživatelského interface a spolupráci s Windows;

- vypuštění některých rysů, které by našly jen malé uplatnění při programování databázových aplikací.

Nové schopnosti jazyka mají většinou podobu nových standardních funkcí a procedur. Jen v nečetných případech je rozšířena i syntaxe jazyka.

Nápověda obsahuje informace k těmto tématům:

Struktura programu ve vnitřním jazyce

Deklarace v programu

Příkazy

Výrazy

Standardní konstanty

Encyklopedie funkcí a procedur


Konstanty označující hodnoty NONE
Konstanty označující hodnotu NONE

Pokud proměnná nebo databázový atribut mají hodnotu NONE, pak se v textové podobě na obrazovce nebo v sestavě objevují jako prázdné pole. Hodnotu NONE můžete zapsat tak, že smažete obsah složky a stisknete klávesu Enter.

Ve vnitřním programovacím jazyce se hodnota NONE zapíše v závislosti na typu jedním z těchto standardních identifikátorů konstant:

NONEBOOLEAN  (typ Boolean)

NONECHAR  (typ Char)

NONESHORT  (typ Short)

NONEINTEGER  (typ Integer)

NONEMONEY  (typ Money)

NONEREAL  (typ Real)

NONEDATE  (typ Date)

NONETIME  (typ Time)

NONEPTR  (typy ukazatel: Pointer a Biptr)

Pro řetězce znaků se NONE zapíše jako prázdný řetězec (dvě uvozovky za sebou).


Standardní konstanty vnitřního jazyka
Standardní konstanty vnitřního programovacího jazyka

Ve vnitřním programovacím jazyce jsou předdefinovány tyto konstanty:

FALSE a TRUE: hodnoty typu Boolean;

NO_REDIR: konstanta, která při otevírání pohledu nebo tisku sestavy nahrazuje kurzor, pokud se neprovádí přesměrování pohledu;

NIL: konstanta, která může nahradit parametr předávaný referencí u některých standardních procedur;

NO_MOVE, NO_EDIT, NO_DELETE, NO_INSERT, COUNT_RECS, DEL_RECS, AUTO_CURSOR, MODAL_VIEW, PARENT_CURSOR: konstanty, které lze předat jako parametr flags při otevírání pohledu - viz Parametry otevření pohledu.

RESET_VISIBILITY, RESET_CONTROLS, RESET_DELETIONS, RESET_CACHE, RESET_CURSOR: konstanty specifikující rozsah činnosti procedury Reset_view.

NONE...: označení "prázdné" hodnoty, viz konstanty NONE.

CATEG_TABLE, CATEG_VIEW, CATEG_CURSOR, CATEG_MENU, CATEG_PGMSRC, CATEG_PGMEXE, CATEG_USER, CATEG_APPL, CATEG_PICT, IS_LINK: kategorie objektů WinBase602.

RIGHT_READ, RIGHT_WRITE, RIGHT_INSERT, RIGHT_DEL, RIGHT_GRANT: konstanty určující jednotlivá práva


Parametry otevření pohledu

Při otevírání pohledu pomocí funkcí Open_view, Select_records nebo Bind_records lze mu předat jako parametr flags některé z níže uvedených konstant. Konstanty ovlivňují chování otevřeného pohledu. Pokud zadáváte více než jednu z těchto konstant, spojte je operátorem plus (+). Pokud nechcete zadat žádnou, hodnota parametru flags bude 0.

Hodnotu těchto parametrů lze v otevřeném pohledu zjistit pomocí funkce Get_fcursor nebo změnit pomocí funkce Set_fcursor.

NO_EDIT - znemožňuje editaci v pohledu;

NO_INSERT - znemožňuje vkládání nových záznamů do pohledu;

NO_DELETE - znemožňuje rušení záznamů v pohledu;

NO_MOVE - znemožňuje přechody mezi záznamu v pohledu.

AUTO_CURSOR - způsobí, že po uzavření pohledu bude automaticky uzavřen kurzor, na nějž je pohled přesměrován (pomocí parametru base).

DEL_RECS - způsobí, že v pohledu do tabulky budou i zrušené záznamy z tabulky a v pohledu do kurzoru budou i záznamy, které byly zrušeny za dobu práce s kurzorem, a jejich složky budou přepsány slovem Zrušeno.

COUNT_RECS - zajistí, že WinBase602 ihned po otevření pohledu spočte jeho záznamy a díky tomu bude schopna správně umístit táhlo na jeho pravém okraji.

MODAL_VIEW - otevře pohled jako modální okno, všechna ostatní okna WinBase602 včetně lišty s tlačítky jsou blokována až do uzavření tohoto pohledu.

PARENT_CURSOR pohled použije kurzor pohledu, předaného jako parametr "parent" a nastaví se při otevření na stejný záznam.


Číselník chyb WinBase602

Provádění každé operace může být buď úspěšné, nebo neúspěšné. Neúspěšné provádění budeme také nazývat chybou. Kromě chyb může jádro při provádění některých operací ohlásit také varování.

Chyby jsou očíslovány. Číslo chyby vypovídá o příčině. Výskyt a číslo chyby při provádění poslední operace lze zjistit zavoláním funkce Sz_error nebo získat slovní popis chyby zavoláním funkce Signalize.

V tabulce je uvedeno: jméno chyby, číslo, kterou vrací funkce Sz_error a popis chyby.

NO_ERROR 	(0) 	operace proběhla bez chyby;

NOT_ANSWERED 	(255)	operace dosud není provedena;

BAD_MODIF 	(128)	záznam v parametru access udává neproveditelný krok;

NO_RIGHT 	(129)	uživatel nemá dostatek práv na provedení operace;

BAD_ELEM_NUM 	(130)	chybné číslo atributu;

OUT_OF_TABLE 	(131)	číslo záznamu je mimo tabulku resp. kurzor;

TABLE_FULL 	(132)	tabulka je přeplněná;

CURSOR_MISUSE 	(133)	chybné číslo kurzoru (pokus o použití cizího kurzoru);

BAD_OPCODE	(134)	chybný kód služby;

CANNOT_APPEND 	(135)	k tomuto kurzoru nelze přidávat další záznamy;

NOT_LOCKED 	(136)	nelze zamknout;

NOT_A_POINTER 	(137)	atribut není ukazatel, nelze přejít;

INDEX_OUT_OF_RANGE

(138)	index mimo rozsah daný počtem složek multiatributu;

NOT_A_RECORD 	(139)	interní chyba;

EMPTY 	(140)	nelze obnovit záznam, který neexistoval;

NO_OBJECT	(141)	objekt neexistuje;

BAD_PASSWORD	(142)	chybné heslo;

PTR_TO_DELETED	(143)	ukazatel ukazuje na zrušený záznam;

NIL_PTR 	(144)	ukazatel nikam neukazuje;

OUT_OF_KERNEL_MEMORY

(145)	vyčerpána operační paměť;

TOO_MANY_CURSORS(146)	příliš mnoho současně otevřených kurzorů;

IS_DELETED 	(147)	zápis do zrušeného záznamu;

BAD_CURDEF 	(148)	chyba v definici kurzoru;

OBJECT_NOT_FOUND(149)	objekt nenalezen;

OUT_OF_APPL_MEMORY

(150)	vyčerpání paměti na straně aplikace;

BAD_DATA_SIZE 	(151)	chybná délka zapisovaných dat;

UNREADABLE_BLOCK	(152)	nečitelný diskový blok;

DEMO_VERSION 	(153)	pracujete s demonstrační verzí, maximální počet záznamů v tabulce je 200;

OUT_OF_BLOCKS 	(154)	vyčerpána disková paměť;

REQUEST_BREAKED 	(155)	operace zrušena uživatelem;

OS_FILE_ERROR 	(157)	chyba v souboru;

INCOMPATIBLE_VERSION

(158)	nekompatibilita verzí WinBase602;

REJECTED_BY_KERNEL

(159)	jádro odmítá splnit požadavek (např. proto, že uživatel není přihlášen);

PROGRAM_ERROR 	(160)	pokus o zapsání hodnoty NONE atributu, který to nemá povoleno;

NO_BITAB 	(161)	tabulka, do níž vede obousměrný ukazatel, neobsahuje ukazatel zpět;

NO_MY_RIGHT	(162)	poskytované právo uživatel nemá;

TABLE_DAMAGED	(168)	definice tabulky je vážně poškozená.

CANNOT_LOCK_KERNEL

(169) 	nelze uzamknout server pro provedení operace, na server jsou připojení uživatelé;

DEADLOCK	(171)	deadlock, vzájemné zablokování klientů;

KEY_DUPLICITY	(172)	duplicita klíčů v jedinečném indexu.

BAD_VERSION 	(173)	nesouhlasí číslo verze klienta a serveru

CHECK_CONSTRAIN 	(174)	porušeno integritní omezení v tabulce

REFERENTIAL_CONSTRAIN

(175)	porušena referenční integrita mezi tabulkami

UNPROPER_TYPE 	(176)	typ atributu není vhodný pro agregovanou funkci

OUTER_JOIN_TOO_COMPLEX

(177)	příliš složité vnější relační propojení

REQUEST_NESTING	(178)	vnoření požadavku klienta na server

CANNOT_FOR_ODBC	(179)	operace není vhodná pro ODBC kurzor

ERROR_IN_FUNCTION_ARG

(180)	chyba v argumentu funkce

ODBC_CURSOR_NOT_OPEN

(181)	zadaný ODBC kurzor není otevřen

DRIVER_NOT_CAPABLE

(182)	ODBC driver není schopen požadované operace

Čísla chyb větší než 1000 znamenají chyby při překladu SQL příkazu (např. chybu v definici kurzoru apod). Funkce Signalize i v těchto případech promítne vysvětlující text k chybě.

Čísla chyb větší než 2200 znamenají běhové chyby při provádění SQL příkazu.


Chyby při překladu

Do verze 3.0 byly syntaktické chyby SQL příkazů (např. otevírání kurzoru apod.) oznamovány při běhu programu jedinou souhrnnou chybou Chyba v syntaxi SQL příkazu. Vzhledem k tomu, že se od doby, kdy tato chyba byla zavedena, značně rozšířila nabídka SQL příkazů a zvýšila se jejich složitost, jsou nyní jednotlivé druhy chyb hlášeny samostatně. Jejich čísla (vrácená funkcí Sz_error) jsou v rozmezí 1000 až 2000.

Příkazy SQL, zadávané jako řetězec, jsou překládány (a tudíž i syntakticky kontrolovány) až při běhu programu stejným kompilátorem, který předtím překládal vlastní program. Proto číselná řada obsahuje některé chyby, které se nemohou při překladu SQL příkazu vyskytnout, a jsou zde uvedeny pouze pro úplnost.

V tabulce je uvedeno vždy číslo chyby a její popis:

1003	Neuzavřený komentář

1004	Řetězec znaků přesahuje řádku

1005	Řetězec znaků je příliš dlouhý

1006	Očekávám typ

1007	Očekávám levou hranatou závorku

1008	Očekávám pravou hranatou závorku

1009	Očekávám dvě tečky

1010	Očekávám celé číslo

1011	Očekávám 'of'

1012	Chyba v mezích pole

1013	Pole je příliš velké

1014	Očekávám identifikátor

1015	Očekávám rovnítko

1016	Nepřípustný znak v textu programu

1017	Očekávám čárku

1018	Očekávám středník nebo 'end'

1019	Očekávám středník

1020	Očekávám deklaraci nebo 'begin'

1021	Podprogramy nelze vnořovat

1022	Očekávám levou závorku

1023	Očekávám pravou závorku

1024	Očekávám dvojtečku

1025	Identifikátor označuje nepřípustný objekt

1026	Výraz musí být typu boolean

1027	Očekávám 'do'

1028	Očekávám ':='

1029	Zde musí být číslo

1030	Musí být celočíselného typu

1031	Nepřípustná operace

1032	Typy nejsou kompatibilní

1033	Peníze nelze navzájem násobit

1034	Není typu záznam

1035	Není to ukazatel

1036	Není typu pole

1037	Identifkátor není deklarován

1038	Očekávám identifikátor složky záznamu

1039	Index musí být celočíselného typu

1040	Očekávám 'then'

1041	Očekávám čárku nebo dvojtečku

1042	Příliš mnoho parametrů

1043	Očekávám tečku

1044	Číslo je příliš velké

1045	Očekávám příkaz

1046	Příliš rozsáhlé proměnné

1047	Příliš velká proměnná

1048	Chyba na konci

1049	Identifikátor deklarován dvakrát

1050	Funkce musí vracet jednoduchý typ nebo řetězec

1051	Chyba ve výstupu kódu - není dost paměti?

1052	Chyba na konci

1053	Vnořený přístup do databáze

1054	Chybná délka

1055	Chybný index

1056	Typ není strukturovaný

1057	Pohled neexistuje

1058	Chyba při čtení definice z databáze

1059	Není dost paměti

1060	Očekávám 'to' nebo 'downto'

1061	Nedefinovaný atribut

1062	Očekávám faktor

1063	Dotaz neexistuje

1064	Nepřípustný argument agregační funkce

1065	Chyba v konstantě typu TIME

1066	Chyba v konstantě typu DATE

1067	Chybné databázové přiřazení

1068	Není to atribut proměnné velikosti

1069	Tabulka neexistuje

1070	Chybný argument příkazu ACTION

1071	Očekávám obrácené lomítko

1072	Očekávám klíčové slovo UNTIL

1073	Nesprávný projekt

1074	Očekávám klíčové slovo END

1075	Nespecifická chyba v definici pohledu

1076	Očekávám řetězec znaků

1077	Nespecifická chyba

1078	Číslo mimo povolený rozsah

1079	Příliš složitý pohled

1080	Očekávám klíčové slovo definice

1081	Špatný identifikátor

1082	Chybné pořadí skupin

1083	Příliš mnoho složek pohledu

1084	Očekávám složku pohledu

1085	Chyba v definici dotazu

1086	Příliš mnoho složek menu

1087	Include neexistuje

1088	Příliš mnoho vnořených include

1089	Duplicita identifikací složek pohledu

1091	Příliš mnoho atributů

1092	Příliš mnoho indexů k tabulce

1093	Není definován žádný atribut

1094	Pro tento typ atributu nelze použít []

1095	Dva atributy se jmenují stejně

1096	Index má příliš mnoho částí, maximum je 8

1097	V indexu je atribut nepřípustného typu nebo multiatribut

1098	Klíč indexu je příliš dlouhý

1099	Chyba v syntaxi definice tabulky resp. indexu

1100	Index je příliš složitý

1101	Příliš mnoho tabulek v dotazu

1102	V dotazu chybí FROM

1103	Očekávám jméno tabulky

1104	Chyba v syntaxi dotazu

1105	Chyba v predikátu

1106	Očekávám SELECT

1107	Očekávám FROM nebo čárku

1108	Klauzule WHERE ani GROUP BY nesmí obsahovat agregovanou funkci

1109	Nelze vnořovat agregované funkce

1110	Hvězdičku lze použít pouze ve funkci COUNT(*)

1111	Chybná syntaxe dotazu v jazyce SQL

1112	Po BETWEEN očekávám slovo AND

1113	Očekávám OUTER

1114	Očekávám JOIN

1115	Chyba v klauzuli FROM

1116	Po ORDER resp. GROUP očekávám slovo BY

1117	Chybné jméno typu

1118	Syntaktická chyba v popisu tabulky

1119	Po PRIMARY resp. FOREIGN očekávám slovo KEY

1120	Struktura kurzoru není známa

1121	Očekávám REFERENCES

1122	Atribut nenalezen

1123	Po DOUBLE očekávám slovo PRECISION

1124	Po NOT očekávám slovo NULL

1125	Toto není příkaz jazyka SQL

1126	Očekávám TO

1127	Očekávám ON

1128	Očekávám INTO

1129	Očekávám VALUES

1130	Argument agregované funkce je nepřípustného typu

1131	Očekávám SET

1132	Kurzor není editovatelný nebo vznikl z více tabulek.\nNelze rušit záznamy.

1133	Kurzor není editovatelný\nNelze modifikovat jeho obsah

1134	Uvedeno příliš mnoho hodnot v příkazu INSERT

1135	Dotazy spojené UNION mají nekompatibilní klauzule SELECT

1136	Dotazy spojené UNION mají příliš rozdílné klauzule SELECT

1137	Neplatné číslo pozice v klauzuli ORDER BY

1138	Agregované funkce nelze použít v ORDER BY, nahraďte jménem atributu (AS)

1139	Očekávám UPDATE

1140	Tento kurzor není editovatelný

1141	Cílová tabulka neobsahuje vhodný index

1142	Duplicita jmen atributů v popisu tabulky

1143	Tabulka nemůže mít dva primární klíče

1144	Očekávám INDEX

1145	Očekávám AS

1146	K atributu nemáte právo čtení

1147	Tabulka neobsahuje vhodný index

1148	Chyba v příkazu SELECT ve složce combo

1149	Podprogram je příliš velký

1150	Kurzor není editovatelný nebo vznikl z více tabulek. Nelze do něj vkládat.

1151	Chyba v implicitní hodnotě atributu


Běhové chyby

Ve výjimečném případě se mohou při provádění složitých SQL příkazů (INSERT, UPDATE apod.) vyskytnout i běhové chyby (např. aritmetická chyba aj.). Jejich čísla jsou větší než 2200.

2200	Nedefinovaná instrukce (poškozený kód)

2201	Přetečení zásobníku (příliš složitý výraz)

2202	Funkce nenalezena v DLL

2203	DLL knihovna nebyla nalezena

2204	Atribut neexistuje

2205	Vyčerpána běhová paměť

2206	Aritmetická chyba

2208	Tabulka/dotaz/pohled neexistuje

2209	Nemáte právo spustit program

2210	Typy nelze konvertovat

2211	Překročena horní mez pole


Seznam varování

Význam varování pro programátory není velký. Varování signalizuje, že některá speciální operace byla provedena za nezvyklých podmínek. Varování samo o sobě není chybou, operaci lze považovat za úspěšně provedenou. Číslo varování vrací funkce Sz_warning.

V následující tabulce je uvedeno: jméno varování, číslo, kterou vrací funkce Sz_warning a popis varování.

NO_WARNING	(0)	bez chyby a bez varování

WAS_IN_TRANS 	(1)	operace provedena uvnitř transakce

NOT_IN_TRANS 	(2)	operace provedena mimo transakci

IS_NOT_DEL	(4)	záznam není zrušený

IS_DEL	(8)	záznam je zrušený

IS_EMPTY	(16)	záznam je prázdný

SOMEBODY_LOGGED	(32)	na WinBase602 je někdo přihlášen

INDEX_OOR	(64)	index mimo počet hodnot multiatributu

DUPL_KEY	(96)	duplicita klíčů při vytváření jedinečného indexu

IS_ERROR	(128)	nastala chyba, varování se nehlásí


Encyklopedie funkcí a procedur

 viz také Seznam funkcí a procedur, seřazený do skupin podle významu.

-- a --

Abs - absolutní hodnota reálného čísla

Active_view - vrátí číslo aktivního pohledu

Add_index - přidání indexu do tabulky

Add_record - přidání záznamu do kurzoru

Alogin - zadání jména uživatele, hesla a Login

Append - přidání záznamu na konec tabulky

Arctan - funkce arkus tangens

Available_memory - zjištění velikosti volné paměti

-- B --

Bind_records - přivazování záznamů k ukazateli

-- C --

Chr - konverze celých čísel na znaky

Close - uzavření souboru

Close_all_views - zavření všech otevřených oken s pohledy

Close_cursor - uzavření kurzoru

Close_view - uzavření pohledu

Commit - potvrzení a ukončení transakce

Commit_view - uložení změn v pohledu do databáze

Cos - funkce kosinus

Create_group - vytvoření skupiny uživatelů

Create_link - vytvoření spojovacího objektu

Current_item - vrátí číslo složky pohledu, na níž stojí kurzor

C_Avg - zjištění průměrné hodnoty atributu v kurzoru

C_Count - zjištění počtu záznamů v kurzoru

C_Max - zjištění maximální hodnoty atributu v kurzoru

C_Min - zjištění minimální hodnoty atributu v kurzoru

C_Sum - zjištění součtu hodnot atributu v kurzoru

-- D --

Database_integrity- kontrola a případně oprava poškozené databáze

Data_export- obecná exportní funkce

Data_import- obecná importní funkce

Date2str - konverze data na řetězec znaků

Day - extrakce dne z data

Day_of_week - zjištění čísla dne v týdnu

Define_table - vytvoření nové tabulky

Delete - zrušení záznamu

Delete_all_records - vymazání všech záznamů tabulky nebo kurzoru

Delete_file - smazání soubor DOSu

Draw_line - nakreslení úsečky v okně

-- E --

Edit_text - editace atributu typu Text

Enable_index - povoluje/zakazuje použití indexů

Eof - zjištění konce souboru

Err_mask - nastavení reakce na databázové chyby

Exec - souběžné spuštění dalšího programu

Exp - exponenciála (přirozená)

-- F --

Filelength - zjištění délky souboru

Find_object - zjištění čísla objektu

Free_deleted - uvolnění zrušených záznamů v tabulce

From_Xbase - import DBF dat do tabulky

-- G --

Get_data_rights - zjištění práv uživatele k datům

Get_ext_message - čekání na událost a vrácení čísla došlé zprávy

Get_fcursor - zjištění kurzoru a parametrů pohledu

Get_item_value - zjištění hodnoty ve složce pohledu

Get_message - čekání na událost a vrácení čísla došlé zprávy

Get_object_rights - zjištění práv uživatele k objektům

Get_view_item - zjištění obsahu složky pohledu

Get_view_pos - zjištění čísla vybraného záznamu v pohledu

-- H --

Help_file - nastavení souboru nápověd

Hours - extrakce hodin z časového údaje

-- i --

Iabs - absolutní hodnota celého čísla

Info_box - sdělení uživateli prostřednictvím modálního okna

Input_box - okno pro zadání řetězce

Insert - vložení záznamu do tabulky

Insert_object - vytvoření nového objektu

Int2str - konverze celého čísla na řetězec znaků

Isqr - druhá mocnina celého čísla

-- L --

Like - podobnost řetězců

Ln - přirozený logaritmus

Login - přihlášení se uživatele

Look_up - vyhledání záznamu podle hodnoty v atributu

Logout - odhlášení se uživatele

-- M --

Mail_parameters - nastavení parametrů poštovní zásilky

Main_menu - přidělení uživatelem definovaného menu hlavnímu oknu aplikace

Make_date - vytvoření data z dne, měsíce, roku

Make_directory - vytvoření adresáře

Make_time - vytvoření časového údaje

Memcpy - kopírování obsahu proměnných

Minutes - extrakce minut z časového údaje

Money2str - konverze částky peněz na řetězec znaků

Month - extrakce měsíce z data

-- N --

Now - běžný čas

-- O --

ODBC_create_connection - interaktivní vytvoření dočasného zdroje dat

ODBC_direct_connection - přímé vytvoření dočasného zdroje dat

ODBC_find_connection - získání čísla napojení na zdroj dat v aplikaci

ODBC_open_cursor - otevření proměnného kurzoru v ODBC zdroji dat

Odd - zjištění parity čísla

Open_cursor - otevření pevného kurzoru z databáze

Open_sql_cursor - otevření proměnného kurzoru zadáním dotazu

Open_sql_parts - otevření proměnného kurzoru zadáním dotazu po částech

Open_view - otevření pohledu na obrazovce

Ord - konverze znaků na celá čísla

Owned_cursors - zjištění počtu otevřených kurzorů

-- P --

Peek_message - zjištění, došla-li nějaká zpráva

Pick_window - vytažení pohledu nad ostatní okna

Pref - relace 'prefix' mezi řetězci

Print_copies - nastavení počtu kopií při tisku

Print_margins - nastavení okrajů stránky při tisku

Print_opt - interaktivní nastavení parametrů tisku sestav

Print_view - tisk sestavy

Printer_dialog - volba tiskárny

Printer_select - nastavení parametrů tiskárny

Put_pixel - nakreslení bodu v okně

-- Q --

QBE_state - zjištění, není-li v pohledu položen QBE dotaz

Quarter - zjištění čísla čtvrtletí z data

-- R --

Read - čtení z textového souboru

Read_lock_record - uzamknutí záznamu pro čtení

Read_lock_table - uzamknutí tabulky nebo kurzoru pro čtení

Read_unlock_record - odemknutí záznamu pro čtení

Read_unlock_table - odemknutí tabulky nebo kurzoru pro čtení

Real2Str - konverze reálného čísla na řetězec znaků

Rec_cnt - zjištění počtu záznamů v tabulce nebo kurzoru

Register_key - definování reakce na stisk klávesy

Register_rec_syn - synchronizování dvou pohledů na stejný záznam

Relate_record - vložení hodnoty z relačně provázané tabulky

Relist_objects - zajistí, že v aplikaci jsou pouze nesmazané tabulky

Remove_index - zrušení indexu v tabulce

Reset - otevření existujícího souboru

Reset_view - aktualizace obsahu pohledu

Restore_cursor - návrat k původnímu obsahu zúženého kurzoru

Restore_table - načte obsah tabulky ze souboru

Restrict_cursor - zúžení kurzoru

Rewrite - vytvoření a otevření nového souboru

Roll_back - zrušení transakce

Roll_back_view - odvolání změn v záznamově synchronizovaném pohledu

Round - zaokrouhlení reálného čísla na celé číslo

-- S --

Save_table - uloží celý obsah tabulky do souboru

Sec1000 - extrakce tisícin sekundy z časového údaje

Seconds - extrakce sekund z časového údaje

Seek - nastavení pozice v souboru

Select_directory - výběr adresáře

Select_file - výběr souboru

Select_records - výběr množiny záznamů z pohledu

Send_message - zaslání zprávy oknu

Set_cursor - nastavení tvaru kurzoru

Set_data_rights - nastavení práv k datům

Set_ext_pos - vybrání záznamu v pohledu dle absolutního čísla

Set_fcursor - nastavení kurzoru a parametrů pohledu

Set_int_pos - vybrání záznamu v pohledu dle pořadového čísla

Set_item_value - zápis hodnoty do složky pohledu

Set_object_rights - nastavení práv k objektům

Set_password - nastavení hesla

Set_printer - nastavení parametrů tisku sestav

Set_status_nums - zápis do status baru

Set_status_text - zápis do status baru

Set_view_item - nastavení obsahu složky pohledu

Show_help - otevření stránky nápovědy

Signalize - ošetření chyb

Sin - funkce sinus

Sql_execute - provedení SQL příkazu

Sqr - druhá mocnina reálného čísla

Sqrt - druhá odmocnina

Start_transaction - zahájení transakce

Str2date - konverze řetězce znaků na datum

Str2int - konverze řetězce znaků na celé číslo

Str2money - konverze řetězce znaků na částku peněz

Str2real - konverze řetězce znaků na reálné číslo

Str2time - konverze řetězce znaků na čas

Strcat - spojení dvou řetězců (zřetězení)

Strcopy - vybrání podřetězce z řetězce

Strdelete - zrušení podřetězce v řetězci

Strinsert - vložení řetězce dovnitř řetězce

Strlength - zjištění délky řetězce

Strpos - hledání podřetězce v řetězci

Strtrim - ořezání mezer řetězce

Substr - relace ``obsažen'' mezi řetězci

Super_recnum - převod čísla záznamu v subkurzoru na číslo téhož záznamu v superkurzoru

Sz_error - zjištění čísla chyby

Sz_warning - zjištění čísla varování

-- T --

Time2str - konverze času na řetězec znaků

To_Xbase - export dat do souboru DBF

Today - dnešní datum

Translate - konverze čísla záznamu z kurzoru do tabulky

Trunc - seříznutí reálného čísla na celé číslo

-- U --

Undelete - obnovení zrušeného záznamu

Uninst_table - uvolnění paměti zabrané tabulkou

Upcase - konverze řetězce na velká písmena

User_in_group - zjištění, je-li uživatel členem skupiny

User_to_group - zařazení uživatele do skupiny

-- V --

View_close - uzavření pohledu

View_open - otevření pohledu

View_print - vytištění pohledu

View_state - zjištění, zda je pohled otevřen

View_toggle - otevření nebo uzavření pohledu

-- W --

Who_am_I - zjištění jména přihlášeného uživatele

Write - zápis do textového souboru

Writeln - zápis do textového souboru a odřádkování

Write_lock_record - uzamknutí záznamu pro zápis

Write_lock_table - uzamknutí tabulky nebo kurzoru pro zápis

Write_unlock_record - odemknutí záznamu pro zápis

Write_unlock_table - odemknutí tabulky nebo kurzoru pro zápis

-- Y --

Year - extrakce roku z data

Yesno_box - dotaz uživateli prostřednictvím modálního okna


Seznam funkcí a procedur podle okruhů

VNITŘNÍ PROGRAMOVACÍ JAZYK WinBase602

Konverzní procedury

Chr - konverze celých čísel na znaky

Day - extrakce dne z data

Date2str - konverze data na řetězec znaků

Hours - extrakce hodin z časového údaje

Int2str - konverze celého čísla na řetězec znaků

Make_date - vytvoření data z dne, měsíce, roku

Make_time - vytvoření časového údaje

Minutes - extrakce minut z časového údaje

Money2str - konverze částky peněz na řetězec znaků

Month - extrakce měsíce z data

Ord - konverze znaků na celá čísla

Quarter - zjištění čísla čtvrtletí z data

Real2Str - konverze reálného čísla na řetězec znaků

Round - zaokrouhlení reálného čísla na celé číslo

Sec1000 - extrakce tisícin sekundy z časového údaje

Seconds - extrakce sekund z časového údaje

Str2date - konverze řetězce znaků na datum

Str2int - konverze řetězce znaků na celé číslo

Str2money - konverze řetězce znaků na částku peněz

Str2real - konverze řetězce znaků na reálné číslo

Str2time - konverze řetězce znaků na čas

Time2str - konverze času na řetězec znaků

Trunc - seříznutí reálného čísla na celé číslo

Year - extrakce roku z data

Aritmetické funkce

Abs - absolutní hodnota reálného čísla

Arctan - funkce arkus tangens

Cos - funkce kosinus

Exp - exponenciála (přirozená)

Iabs - absolutní hodnota celého čísla

Isqr - druhá mocnina celého čísla

Ln - přirozený logaritmus

Odd - zjištění parity čísla

Sin - funkce sinus

Sqr - druhá mocnina reálného čísla

Sqrt - druhá odmocnina

Práce se soubory

Close - uzavření souboru

Eof - zjištění konce souboru

Filelength - zjištění délky souboru

Read - čtení z textového souboru

Reset - otevření existujícího souboru

Rewrite - vytvoření a otevření nového souboru

Seek - nastavení pozice v souboru

Write - zápis do textového souboru

Writeln - zápis do textového souboru a odřádkování

Práce se znakovými řetězci

Like - podobnost řetězců

Pref - relace "prefix" mezi řetězci

Strcat - spojení dvou řetězců (zřetězení)

Strcopy - vybrání podřetězce z řetězce

Strdelete - zrušení podřetězce v řetězci

Strinsert - vložení řetězce dovnitř řetězce

Strlength - zjištění délky řetězce

Strpos - hledání podřetězce v řetězci

Strtrim - ořezání mezer řetězce

Substr - relace ``obsažen'' mezi řetězci

Upcase - konverze řetězce na velká písmena

Práce s obsahem databáze

Add_index - přidání indexu do tabulky

Add_record - přidání záznamu do kurzoru

Append - přidání záznamu na konec tabulky

Close_cursor - uzavření kurzoru

Commit - potvrzení a ukončení transakce

Create_group - vytvoření skupiny uživatelů

Create_link - vytvoření spojovacího objektu

Database_integrity- kontrola a případně oprava poškozené databáze

Define_table - vytvoření nové tabulky

Delete - zrušení záznamu

Delete_all_records - vymazání všech záznamů tabulky nebo kurzoru

Enable_index - povoluje/zakazuje použití indexů

Err_mask - nastavení reakce na databázové chyby

Find_object - zjištění čísla objektu

Free_deleted - uvolnění zrušených záznamů v tabulce

Insert - vložení záznamu do tabulky

Insert_object - vytvoření nového objektu

Login - přihlášení se uživatele

Logout - odhlášení se uživatele

Look_up - vyhledání záznamu podle hodnoty v atributu

Open_cursor - otevření pevného kurzoru z databáze

Open_sql_cursor - otevření proměnného kurzoru zadáním dotazu

Open_sql_parts - otevření proměnného kurzoru zadáním dotazu po částech

Rec_cnt - zjištění počtu záznamů v tabulce nebo kurzoru

Relist_objects - zajistí, že v aplikaci jsou pouze nesmazané tabulky

Remove_index - zrušení indexu v tabulce

Restore_cursor - návrat k původnímu obsahu zúženého kurzoru

Restrict_cursor - zúžení kurzoru

Roll_back - zrušení transakce

Sql_execute - provedení SQL příkazu

Start_transaction - zahájení transakce

Super_recnum - převod čísla záznamu v subkurzoru na číslo téhož záznamu v superkurzoru

Sz_error - zjištění čísla chyby

Sz_warning - zjištění čísla varování

Translate - konverze čísla záznamu z kurzoru do tabulky

Undelete - obnovení zrušeného záznamu

Uninst_table - uvolnění paměti zabrané tabulkou

Napojení a práce s ODBC kurzory

ODBC_create_connection - interaktivní vytvoření dočasného zdroje dat

ODBC_direct_connection - přímé vytvoření dočasného zdroje dat

ODBC_find_connection - získání čísla napojení na zdroj dat v aplikaci

ODBC_open_cursor - otevření proměnného kurzoru v ODBC zdroji dat

Kurzorové agregační (souhrnné) funkce

C_Avg - zjištění průměrné hodnoty atributu v kurzoru

C_Count - zjištění počtu záznamů v kurzoru

C_Max - zjištění maximální hodnoty atributu v kurzoru

C_Min - zjištění minimální hodnoty atributu v kurzoru

C_Sum - zjištění součtu hodnot atributu v kurzoru

Export a import dat

Data_export- obecná exportní funkce

Data_import- obecná importní funkce

From_xbase - import DBF dat do tabulky

Restore_table - načte obsah tabulky ze souboru

Save_table - uloží celý obsah tabulky do souboru

To_xbase - export dat do souboru DBF

Zamykání záznamů

Read_lock_record - uzamknutí záznamu pro čtení

Read_lock_table - uzamknutí tabulky nebo kurzoru pro čtení

Read_unlock_record - odemknutí záznamu pro čtení

Read_unlock_table - odemknutí tabulky nebo kurzoru pro čtení

Write_lock_record - uzamknutí záznamu pro zápis

Write_lock_table - uzamknutí tabulky nebo kurzoru pro zápis

Write_unlock_record - odemknutí záznamu pro zápis

Write_unlock_table - odemknutí tabulky nebo kurzoru pro zápis

Práva a uživatelé

Get_data_rights - zjištění práv uživatele k datům

Get_object_rights - zjištění práv uživatele k objektům

Set_data_rights - nastavení práv k datům

Set_object_rights - nastavení práv k objektům

Set_password - nastavení hesla

User_in_group - zjištění, je-li uživatel členem skupiny

User_to_group - zařazení uživatele do skupiny

Who_am_I - zjištění jména přihlášeného uživatele

Ostatní procedury a funkce

Day_of_week - zjištění čísla dne v týdnu

Memcpy - kopírování obsahu proměnných

Now - běžný čas

Today - dnešní datum

Ladící funkce

Available_memory - zjištění velikosti volné paměti

Owned_cursors - zjištění počtu otevřených kurzorů

PREZENTAČNÍ VRSTVA WinBase602

Informační a dotazovací okna

Info_box - sdělení uživateli prostřednictvím modálního okna

Input_box - okno pro zadání řetězce

Select_directory - výběr adresáře

Select_file - výběr souboru

Set_status_nums - zápis do informační řádky

Set_status_text - zápis do informační řádky

Signalize - informace o chybě

Yesno_box - dotaz uživateli prostřednictvím modálního okna

Práce s pohledy

Active_view - vrátí číslo aktivního pohledu

Close_all_views - zavření všech otevřených oken s pohledy

Close_view - uzavření pohledu

Commit_view - uložení změn v pohledu do databáze

Current_item - vrátí číslo složky pohledu, na níž stojí kurzor

Get_fcursor - zjištění kurzoru a parametrů pohledu

Get_item_value - zjištění hodnoty ve složce pohledu

Get_view_pos - zjištění čísla vybraného záznamu v pohledu

Get_view_item - zjištění obsahu složky pohledu

Open_view - otevření pohledu na obrazovce

Pick_window - vytažení pohledu nad ostatní okna

QBE_state - zjištění, není-li v pohledu položen QBE dotaz

Register_rec_syn - synchronizování dvou pohledů na stejný záznam

Reset_view - aktualizace obsahu pohledu

Roll_back_view - odvolání změn v záznamově synchronizovaném pohledu

Select_records - výběr množiny záznamů z pohledu

Set_ext_pos - vybrání záznamu v pohledu dle absolutního čísla

Set_fcursor - nastavení kurzoru a parametrů pohledu

Set_int_pos - vybrání záznamu v pohledu dle pořadového čísla

Set_item_value - zápis hodnoty do složky pohledu

Set_view_item - nastavení obsahu složky pohledu

Zjednodušená práce s pohledy

View_open - otevření pohledu

View_close - uzavření pohledu

View_toggle - otevření nebo uzavření pohledu

View_print - vytištění pohledu

View_state - zjištění, zda je pohled otevřen

Tisky

Print_copies - nastavení počtu kopií při tisku

Print_opt - interaktivní nastavení parametrů tisku sestav

Print_margins - nastavení okrajů stránky při tisku

Printer_select - nastavení parametrů tiskárny

Print_view - tisk sestavy

Printer_dialog - volba tiskárny

Set_printer - nastavení parametrů tisku sestav

Řídící funkce

Get_ext_message - čekání na událost a vrácení údajů o došlé zprávě

Get_message - čekání na událost a vrácení čísla došlé zprávy

Peek_message - doručení čekajících služebních zpráv a zjištění přítomnosti zprávy pro program

Register_key - definování reakce na stisk klávesy

Send_message - zaslání zprávy oknu

Main_menu - přidělení uživatelem definovaného menu hlavnímu oknu aplikace

Grafické procedury a funkce

Put_pixel - nakreslení bodu v okně

Draw_line- nakreslení úsečky v okně

Akce volané z pohledu

Bind_records - přivazování záznamů k ukazateli

Edit_text - editace atributu typu Text

Relate_record - vložení hodnoty z relačně provázané tabulky

Ostatní procedury a funkce

Alogin - zadání jména uživatele, hesla a Login

Exec - souběžné spuštění dalšího programu

Set_cursor - nastavení tvaru kurzoru

Show_help - otevření stránky nápovědy

Help_file - nastavení souboru nápověd


Konstanty kategorií objektů

Tyto konstanty označují jednotlivé kategorie objektů WinBase602. Jsou to konstanty:

CATEG_TABLE	- tabulka

CATEG_VIEW	- pohled

CATEG_CURSOR	- kurzor (dotaz)

CATEG_MENU	- menu

CATEG_PGMSRC	- zdrojový program

CATEG_PGMEXE	- přeložený program

CATEG_USER	- uživatel

CATEG_APPL	- aplikace

CATEG_PICT	- obrázek

IS_LINK	- příznak spojovacího objektu

Tyto konstanty se používají v programovacím jazyce jako parametry funkcí Find_object, Insert_object, Set_object_rights a Get_object_rights.


Konstanty označující přístupová práva

Jednotliví uživatelé mají k tabulkám a objektům WinBase602 určité množiny práv. Práva se nastavují interaktivně pomocí položky hlavního menu Práva vývojového prostředí.

V programovacím jazyce se tato práva se označují konstantami:

RIGHT_READ	(1)	- právo číst objekt nebo data

RIGHT_WRITE	(2)	- právo přepisovat objekt nebo data

RIGHT_INSERT	(4)	- právo přidávat záznamy do tabulky

RIGHT_DEL	(8)	- právo rušit záznamy v tabulce

RIGHT_GRANT	(128)	- právo poskytovat vlastní práva

K objektům (tedy i k definici tabulky) lze přidělit práva RIGHT_READ, RIGHT_WRITE a RIGHT_GRANT. Děje se tak pomocí funkce Set_object_rights. Stav práv k objektu vrací funkce Get_object_rights.

Práva se sdružují operací sjednocení (konstanty se sčítají).

K obsahu tabulky lze přidělit všechna práva uvedená v přehledu (vztahují se ke všem atributům tabulky) a navíc ještě selektivní práva k jednotlivým atributům - tzv. rozšiřující práva.

Rozšiřující práva jsou reprezentována šestnáctibitovým číslem, jehož prvních 15 bitů odpovídá prvním patnácti atributům v definici tabulky a poslední bit odpovídá všem ostatním atributům. Pokud bit má hodnotu 1, je právo přiděleno.

Příklad:

Právo nastaveno pro první, třetí a čtvrtý atribut.

Binární číslo je 0000000000001101.

Desítkový ekvivalent je 13.

Práva k obsahu tabulky se přidělují pomocí funkce Set_data_rights. Stav práv k obsahu tabulky vrací funkce Get_data_rights.


Tabulky a kurzory jako parametry procedur a funkcí

Při programování WinBase602 je nutno věnovat mimořádnou pozornost tomu, jak se standardním funkcím předávají tabulky a kurzory. V této oblasti může dojít k řadě chyb, protože:

- některé funkce vyžadují kurzor, některé tabulku, a jiné akceptují kurzor i tabulku;

- některé funkce vyžadují předání otevřeného kurzoru, jiné uzavřeného kurzoru, některé pracují s pevným kurzorem, jiné s proměnným.

Informace o tom, co smí být parametrem které funkce, jsou obsaženy nejen v jejím popisu, ale také v typech parametrů.

Ve WinBase602 je možno použít tyto parametry:

a) parametr typu ttablenum

b) parametr typu tcursnum

c) parametr typu tcurstab

d) parametr typu cursor


Parametr typu ttablenum

Je-li typ formálního parametru ttablenum, pak skutečným parametrem smí být číslo tabulky získané funkcí Find_object. Ve vnitřním programovacím jazyce lze také předat jako parametr identifikátor tabulky deklarované v programu (tento identifikátor je shodný se jménem, pod nimž je tabulka uložena v databázi).

Parametr tohoto typu mají procedury a funkce: Free_deleted, Get_data_rights, Set_data_rights, Restore_table, Save_table, Undelete a Uninst_table.


Parametr typu tcursnum

Je-li typ formálního parametru tcursnum, pak skutečným parametrem je otevřený kurzor, tedy pevný kurzor dříve otevřený funkcí Open_cursor nebo proměnný kurzor dříve otevřený voláním funkce Open_sql_cursor, Open_sql_parts nebo získaný od pohledu funkcí Get_fcursor;

Vstupní parametr tohoto typu mají procedury a funkce: Close_cursor, Open_view, Select_records, Bind_records, Set_fcursor, Translate, Super_recnum, Add_record, Restrict_cursor a Restore_cursor. Poslední dvě z těchto funkcí předaný kurzor pozmění

Výstupní parametr tohoto typu má funkce Get_fcursor.

Některé funkce připouštějí, aby skutečným parametrem tohoto typu byla konstanta NO_REDIR.


Parametr typu tcurstab

Formální parametr tohoto typu připouští stejné skutečné parametry jako formální parametry ttablenum a tcursnum dohromady. Smějí to být tedy deklarované tabulky, čísla tabulek a otevřené deklarované pevné i proměnné kurzory.

Takový parametr mohou mít funkce Append, Insert, Rec_cnt, Delete, Delete_all_records , Data_export, všechny funkce, které zamykají a odemykají záznamy a tabulky (Read_lock_record apod.), kurzorové agregované funkce a funkce Look_up.


Parametr typu cursor

Je-li typ formálního parametru cursor, pak skutečným parametrem smí být kurzor deklarovaný v programu, který není dosud otevřen. Může jít jak o pevný, tak i o proměnný kurzor.

Parametr tohoto typu mají funkce Open_cursor, Open_sql_cursor, Open_sql_parts a Get_fcursor.

Po úspěšném provedení kterékoli z těchto funkcí se kurzor, deklarovaný v programu, stane otevřeným kurzorem, a může být předáván jako parametr typu tcursnum.


Automaticky generované zprávy

Během práce uživatele s pohledem je automaticky generována řada zpráv. Program na ně může, ale nemusí reagovat.

Každá taková zpráva nese dvojí informaci: handle okna pohledu, kterého se týká, a označení události, k níž v pohledu došlo.

Označení události je dáno tabulkou:

 číslo   událost

    1        pohled byl otevřen

    2        pohled byl uzavřen

    3        uživatel přešel na nový záznam

    4        uživatel změnil obsah složky

    5        vybraný záznam se překresluje

    6        celý pohled se překresluje

    7        pohled přechází k subkurzoru

    8        pohled se vrací k superkurzoru

    9        otevřen závislý pohled

   10       uzavřen závislý pohled

   11       otevřen textový editor

   12       uzavřen textový editor

   13       otevřeno okno pro prohlížení obrázku

   14       uzavřeno okno pro prohlížení obrázku

Příklad použití: Chce-li program zachytit okamžik, kdy uživatel změní obsah některé složky v pohledu ID, pak analyzuje docházející zprávy takto:

Get_ext_message(msg, handle, nil);

IF (handle = ID) AND (msg = 4)

  THEN ...  { reakce na změnu obsahu složky }

ELSE ...    { zpracování ostatních zpráv }


Režim řízený událostmi

Interakce uživatele s aplikací nejsou přímo řízeny během programu, ale naopak běh programu se podřizuje akcím uživatele. Uživatel si může vybrat, se kterým objektem přístupným na obrazovce se rozhodne komunikovat, a tím udává směr činnosti aplikace.

Akce uživatele vyvolávají v systému tzv. události . Typický aplikační program pak má ve svém jádru cyklus, v němž čeká na událost, a jakmile nastane, provede v závislosti na její povaze určité akce. Pak čeká na další událost a tak dále až do skončení aplikace.

Do pracovního režimu řízeného událostmi aplikace přechází tak, že vstoupí do cyklu, v němž volá funkci Get_ext_message nebo Peek_message a reaguje na zprávy, které od uživatele prostřednictvím funkce Get_ext_message obdrží. Tyto zprávy mohou vznikat různým způsobem:

  1)  výběrem položky z (uživatelem definovaného) menu, která zasílá programu zprávu;

  2)  stiskem tlačítka pohledu, které provádí příkaz Return;

  3)  stiskem tlačítka na liště obsahující soukromá tlačítka.

  4)  provedením akce v pohledu, která automaticky generuje standardní zprávu;

  5)  stiskem klávesy, které je přiřazena zpráva pomocí funkce Register_key.

Každá zpráva (kromě automaticky generovaných) je označena číslem v rozsahu od 1001 do 60000 nebo číslem -1. Zpráva s číslem -1 má vyhrazený význam - je to žádost o ukončení aplikace. Tato zpráva sice běžící aplikaci sama neukončí, ale způsobí, že funkce Get_ext_message po jejím přijetí vrátí hodnotu FALSE, na níž může program reagovat ukončením své činnosti.

Čísla zpráv v rozsahu od 0 do 1000 a větší než 60000 jsou rezervována pro WinBase602 a není dovoleno jich používat.

Pokud aplikace chce v určitém okamžiku dát uživateli možnost, aby pracoval s pohledem či pohledy otevřenými na obrazovce, musí zavolat funkci Get_ext_message nebo Peek_message a volat ji v cyklu opakovaně po dobu, po kterou má mít iniciativu uživatel manipulující s pohledem.


Podmíněný výraz

Vnitřní jazyk WinBase602 obsahuje také tzv. podmíněný výraz převzatý z jazyka C. Jde o přibližnou

obdobu podmíněného příkazu. Podmíněný výraz má tento tvar:

   výraz_1 ? výraz_2 : výraz_3

kde výraz_1 je nepodmíněný výraz typu Boolean a výraz_2 je nepodmíněný výraz stejného typu jako výraz_3. Přitom výraz_3 může být i podmíněný.

Při vyhodnocování podmíněného výrazu se nejprve vyhodnotí výraz_1. Pokud má hodnotu TRUE, vyhodnotí se dále výraz_2, jinak se vyhodnotí výraz_3. Ten z nich, který se vyhodnotil, udává zároveň hodnotu celého podmíněného výrazu.

Příklad:

1) hodnotová složka pohledu:

(druh=1 ? "odeslané" : druh=2 ? "došlé" : "neznámý původ")

2) zapsání absolutního hodnoty čísla x

Absx := (x<0 ? -x : x)


Spojování řetězců
Spojování řetězců pomocí +

Znakové řetězce se dají spojovat pomocí operátoru +. Výsledný řetězec bude mít maximální délku 255 znaků. Pokud je součet délek spojovaných řetězců větší, bude jeho konec přesahující délku 255 znaků odříznut. Ekvivalentní příkaz jazyka je Strcat.

POZOR: Standardním procedurám a funkcím se parametr typu řetězec znaků předává zásadně odkazem. Proto nelze jako skutečný parametr použít výraz obsahující dva řetězce spojené operátorem +. Místo toho je nutno oba řetězce napřed spojit do třetího řetězce a ten pak předat jako parametr.

Příklad:

with TAB[1] do

str := (MUŽ ? "narozen" : "narozena")+date2str(DAT_NAR,1);

Info_box("informace", str);


Symbol označující běžný pohled

V příkazech obsažených v definici pohledu (např. akce vyvolávaná stiskem tlačítka, integritní omezení, akce při chybě) a v procedurách volaných z pohledu lze použít zvláštní symbol !! označující tento pohled. Symbol !! je typu Short a jeho hodnotou je identifikace pohledu, z něhož je zavolán příkaz, v němž je symbol obsažen.

Díky tomu lze tlačítku v pohledu přiřadit např. příkaz:

Reset_view(!!, -1, 5+512);


Includované části programů

Kdekoliv v textu hlavního programu můžete použít zápis

{$I jméno programu}.

Pokud existuje v aplikaci program tohoto jména, vloží se do hlavního programu na pozici určenou první složenou závorkou. Objekt typu program, který se vkládá do jiného programu, nazýváme includovaný program. Je zřejmé, že program určený k includování nemůže pracovat samostatně - smí obsahovat pouze deklarace a podprogramy hlavního programu.

Include slouží k zpřehlednění delších programů a k prolomení bariéry 64 KB zdrojového textu.

Pokud začíná includovaný program slovem INCLUDE, nepřekládá se při exportu aplikace.


Klíčová slova

Klíčová slova jsou symboly s předem daným významem, který nemůže být v programu nijak změněn.

Klíčovými slovy jsou:

AND	ARRAY	BEGIN	CASE
CONST	CSISTRING	CSSTRING	CURSOR
DIV	DO	DOWNTO	ELSE
END	FILE	FOR	FUNCTION
HALT	IF	INCLUDE	MOD
NOT	OF	OR	PROCEDURE
RECORD	REPEAT	RETURN	STRING
TABLE	THEN	TO	TYPE
UNTIL	VAR	WHILE	WITH

Klíčová slova lze psát jak malými tak i velkými písmeny resp. oba druhy písmen kombinovat. Velikost písmen nemá na význam vliv.


Identifikátory

Identifikátory se tvoří z písmen, číslic a znaku _ (podtržítko), přičemž musí začínat písmenem. Identifikátory se musí lišit od klíčových slov.

Identifikátory jsou například:

ALFA

Cena_zboží

NováCena

ODDĚLENÍ_56

AF17

Pozor !

V identifikátorech se bere v úvahu pouze prvních 14 znaků. Proto dva identifikátory, které se shodují v prvních 14 znacích, budou považovány za stejné. V identifikátorech se nerozlišuje mezi velkými a malými písmeny. Proto:

NOVÁ_CENA_ZBOŽÍ

nová_cena_zboží

Nová_Cena_Zbož

Nová_cena_zboží_v_listopadu

 jsou různé způsoby zápisu téhož identifikátoru!


Čísla

Celá čísla

Celá čísla se zapisují jako posloupnosti číslic, přičemž před zápornými čísly se píše znak - (minus).

Celá čísla musí ležet v rozsahu:

 -2147483647 až 2147483647

Všechna celá čísla se dají přiřadit proměnné (nebo atributu) typu Integer. Proměnné nebo atributu typu Short se dají přiřadit pouze celá čísla z rozsahu:

 -32767 až 32767

Ve specifickém kontextu v programu může být vyžadován menší rozsah hodnot celých čísel.

Reálná čísla

Reálná čísla se skládají z celé části a buď desetinné části za desetinnou tečkou (nikoli čárkou!), nebo desítkového exponentu, případně obojího. Před desítkovým exponentem se uvede písmeno E a případně i znaménko + resp. -.

Správně zapsaná reálná čísla jsou tedy např.:

 1.0

-538.045

 0.02

 56.871E-12

 7e5

Reálná čísla se dají přiřadit proměnné nebo atributu typu Real.

Částky peněz

Čísla vyjadřující peněžní obnosy (jinými slovy: konstanty typu Money) zapisujeme se znakem $ mezi celou a desetinnou částí, tedy např. 120$ nebo 120$50. Kompilátor pak explicitně pozná, že se jedná o typ MONEY a nikoli typ INTEGER nebo REAL.

Zápisy peněžních částek se dají přiřazovat proměnným a atributům typu MONEY. Vzhledem ke konverzím typů se těmto proměnným dají také přiřazovat hodnoty zadané celým nebo reálným číslem.

Zápis data

Číselné konstanty vyjadřující datum, tedy hodnoty typu DATE, se zapisují v programu stejně jako při vkládání hodnot do databáze prostřednictvím pohledu.

Datum se tedy zapisuje ve formátu:

 den.měsíc.rok

Příklad:

27.4.1962

Druhá tečka a rok se mohou vynechat, pak se míní běžný rok. Zápis roku se nesmí zkracovat, rok 96 není totéž co 1996. Celý zápis musí být na jedné řádce, uvnitř zápisu se nesmějí vyskytnout žádné mezery.

Zápis času

Čas, tedy konstanta typu TIME, se zapisuje stejně jako při vkládání hodnot do databáze prostřednictvím pohledu.

Čas se tedy zapisuje ve formátu:

hodiny:minuty:sekundy.tisíciny_sekundy

Příklad:

 17:48:56.908

přičemž tisíciny sekundy resp. i sekundy se smějí vynechat spolu s tečkou resp. dvojtečkou před nimi. Celý zápis musí být na jedné řádce, uvnitř zápisu se nesmějí vyskytnout žádné mezery.


Znakové konstanty

Jednotlivé znaky v textu programu se zapisují v apostrofech.

Příklad:

Znak A zapíšete jako: 'A'.

Znak ' (apostrof) zapíšete jako 4 apostrofy za sebou: ''''.


Řetězce znaků

Řetězcem znaků je libovolná posloupnost znaků začínající a končící apostrofem nebo uvozovkou. Uvnitř řetězce smějí být libovolné znaky. Pokud mají být apostrof nebo uvozovka obsaženy v řetězci, musí se napsat zdvojeně.

Řetězec znaků smí obsahovat jediný znak, což je rozšíření oproti standardnímu Pascalu. Takový řetězec však musí být omezen uvozovkami, aby se dal odlišit od znakové konstanty.

Příklady:

"To je řetězec"

'Reader''s Digest'

""

Syntaxe zápisu řetězce znaků byla dále rozšířena o možnost zapisovat znaky pomocí jejich ASCII-kódu podobným způsobem, jako v Turbo Pascalu. Potřebujete-li mezi znaky '>>' a '<<' v řetězci zapsat znaky s kódy 14 a 232 (dekadicky), napíšete řetězec takto:

'>>'#14#232'<<'

Takto můžete vložit libovolný počet speciálních znaků na libovolné místo řetězce s výjimkou jeho začátku. Na začátku řetězce musí být apostrof nebo uvozovka, proto, chcete-li začít speciálním znakem, předřaďte mu prázdný řetězec např. takto:

 ''#14'Tento řetězec začíná znakem, jehož kód je 14'

Jedno z možných využití je rozdělení řetězce v Info_boxu do více řádků:

 Info_box('','první řádek'#10'druhý řádek');

nebo

 str := Date2str(today, 1)+''#10+Time2str(Now, 1);

 Info_box('Datum a čas', str);

Pokud se řetězec nevejde na jednu řádku, je možno ho na konci této řádky ukončit apostrofem nebo uvozovkou a na začátku další řádky apostrofem nebo uvozovkou pokračovat. Překladač obě takové části řetězce spojí.

'Tento řetězec zde '

'nekončí, nýbrž pokračuje.'


Oddělovače

Jediným významem oddělovačů je to, že od sebe oddělují ostatní symboly. Oddělovači jsou mezery, hranice řádek a komentáře.

Komentáře začínají znakem { a končí znakem }. Uvnitř komentáře smějí být libovolné znaky kromě znaku }. Komentář smí také začínat dvojznakem // a pak končí na konci řádky.

Mezi kterékoliv dva symboly v programu lze vložit libovolný počet libovolných oddělovačů. Dovnitř symbolů se nesmějí vkládat žádné oddělovače. Nejméně jedním oddělovačem je nutno navzájem oddělit identifikátory a čísla, pokud spolu sousedí.


Návrh standardního pohledu

Z nabídky druhů pohledu vyberte standardní pohled

Výsledkem bude pohled podobný tomu, jaký dostanete, když otevřete tabulku nebo dotaz.

Volbou tvaru pohledu přejdete do prostředí pro návrh pohledů.


Prostředí pro návrh standardních pohledů
Prostředí pro návrh standardních pohledů (editor pohledů)

Navrhování pohledu probíhá tak, že do různých oblastí pohledu vkládáte složky pohledu, upravujete jejich šířku je a nastavujete parametry těchto složek. Můžete také nastavovat řadu globálních parametrů pohledu a průběžně testovat, jak by vypadal výsledek návrhu.

Prostředí pro návrh pohledů umožňuje provádět tyto okruhy akcí řízené položkami vlastního menu:

Návrh - uložení a ukončení návrhu, test návrhu, stanovení pořadí složek v návrhu a test návrhu, návrh toolbaru či nálepek apod. -viz Návrh

Editace - manipulace s celými složkami pohledu (kopírování, rušení apod.) - viz Editace

Parametry - nastavení globálních parametrů pohledu a sestav jako celku - viz Parametry

Složka - vložení nové složky - viz Složka

Zdroj dat - možnost změny zdroje dat oproti původnímu návrhu, vypínání nabídkového panelu - viz Zdroj dat

Ovládací lišta obsahuje tato tlačítka:

-  vystřihnout složku do clipboardu

-  zkopírovat složku do clipboardu

-  vlepit složku z clipboardu

-  uložit definici pohledu

-  ukončit návrh

-  otevřít reálný pohled podle návrhu

-  vytisknout sestavu

-  místo pro zobrazení mřížky na pozadí (v prostředí návrhu standardního pohledu nelze použít)

Při návrhu standardního pohledu pamatujte tedy na to, že řádky v návrhu  neodpovídají řádkům -- záznamům v navrženém pohledu. Naopak sloupce návrhu přesně odpovídají sloupcům v navrženém pohledu, a to jak pořadím, tak i šířkou. Při návrhu uvidíte pouze jména atributů, zatímco jejich hodnoty a případné další efekty (nabídka hodnot, zaškrtávací čtverce, tlačítka) se objeví až při použití pohledu.


Oblasti standardního pohledu
Oblasti pohledu

Při návrhu standardního pohledu vidíte na obrazovce okno, které má 15 řádek odpovídajících jednotlivým oblastem. Oblasti jsou rozlišeny v záhlaví řádek takto:

R, r  označují hlavu a patu sestavy;

S, s označují záhlaví sloupců resp. hlavu tištěné stránky a patu stránky;

>> označuje datovou oblast;

A, a, B, b, C, c, D, d, E, e označují hlavy a paty skupin A, B, C, D a E.

Pokud navrhovaný pohled bude používán pouze na obrazovce, pak má smysl vkládat složky pouze do oblastí označených s a >>.

S = hlava okna - objeví se v záhlaví sloupců standardního pohledu.

>> = datová oblast - obsahuje data příslušející jednomu záznamu a objeví se v pohledu pro každý záznam jednou. Jednotlivé výskyty datové oblasti budou pod hlavou stránky seřazené pod sebou.

Pohledy definující tvar tištěné sestavy mohou mít i další oblasti:

R = hlava sestavy - objeví se pouze jednou na začátku sestavy

r = pata sestavy - objeví se pouze jednou na konci sestavy

A až  E = hlava skupiny a až E - objeví se vždy na začátku příslušné skupiny záznamů

a až e = pata skupiny E až a - objeví se vždy na konci příslušné skupiny záznamů

S = hlava stránky - objevuje se v horní části každé vytištěné stránky

s = pata stránky - objevuje se ve spodní části každé vytištěné stránky.


Změny polohy a rozměrů složky při návrhu standardního pohledu
Změny polohy a rozměrů složky

Manipulovat můžete vždy jen s vybranou složkou pohledu. Složka se stane vybranou tak, že na ní stisknete levé tlačítko myši. Vybraná složka má kolem sebe rám. Dříve, než se složkou provedete jakoukoli akci, musíte ji napřed vybrat. Chcete-li, aby se vybranou stala další složka, stiskněte klávesu TAB.

Jediná možná úprava rozměrů standardního pohledu je změna šířky sloupce. Kliknutím na záhlaví sloupce (nebo kombinací Ctrl+mezerník) celý sloupec označíte. Stiskem myši u levého okraje záhlaví se změní kurzor na dvojitou šipku a bez uvolnění tlačítka myši je možno sloupec rozšiřovat. Stejný význam mají i klávesy Ctrl+Shift+šipky.

Chcete-li změnit pořadí sloupců, označte sloupec, který chcete přesunout, a stiskněte tlačítko myši na jeho záhlaví. Kurzor se změní a bez uvolnění myši je možno sloupec umístit na jiné místo.  Stejný význam mají i klávesy Ctrl+šipky.

Přidat sloupec se provede následujícím způsobem: označte celý sloupec a stiskněte klávesu INS.

Pro přemístění složky mezi oblastmi nebo pro vytvoření kopie složky použijte menu Editace.


Menu "Návrh" při navrhování standardního pohledu
Menu "Návrh" při navrhování pohledu

Menu obsahuje tyto položky:

Uložit - uloží návrh pohledu do databáze. Pokud pohled není dosud pojmenován, požádá Vás o zadání jména pohledu.

Test návrhu - otevře na obrazovce pohled popsaný právě editovaným návrhem. Tím získáte možnost ověřit si, jaký je výsledek návrhu, aniž byste opustili prostředí pro návrh pohledů. Pokud je v návrhu chyba, budete o ní informováni a otevře se okno, které obsahuje chybný parametr. Pamatujte na to, že chyba může být způsobena také tím, že není otevřen správný projekt. Pokud chcete ověřit tvar tištěné sestavy, vyberte v pohledu takto otevřeném na obrazovce položku Tisknout z jeho systémového menu.

Obrázky - položka pro vyvolání okna pro správu obrázků v aplikaci - viz Obrázky

Návrh lišty - otevírá zvláštní návrhář pro tvorbu uživatelské lišty (toolbaru), která se objeví na místě standardní lišty pohledu vždy při otevření tohoto pohledu - viz Návrh lišty

Přidat agregáty -  automatické přidání jedné agregované funkce do zvolené oblasti; týká se všech atributů v pohledu - viz Agregáty

Konec - ukončí návrh pohledu a opustíte prostředí pro navrhování pohledů. Pokud návrh nebyl dosud uložen nebo byl od posledního uložení změněn, budete na to upozorněni a dostanete možnost návrh uložit.


Výběr složek z nabídkového panelu (standardní návrh)
Výběr složek z nabídkového panelu (standardní pohled)

U pravého okraje panelu je sloupec tlačítek, které symbolizují jednotlivé druhy složek.

hodnotová složka

nápis

editační složka

tlačítko

složka combo

označovací čtverec

text

Adekvátně tomu, jak měníte obsah editačního pole, se mění nabídka druhů složek. Dokud je editační pole prázdné, jsou k dispozici všechny druhy složek. Poté, co vyberete některý atribut, zůstanou na panelu pouze ty druhy, které jsou pro něj použitelné.

Rozhodnete-li se vytvořit některou složku, pak nejprve její jméno přeneste do editačního pole, a pak stiskněte tlačítko symbolizující vybraný druh složky. Tím vznikne nová složka a umístí se do clipboardu. Ukazovatel myši (kurzor) se změní na symbol složky.  Přenesením na dané místo (u pohledu používaného na obrazovce pouze hlava okna a datová oblast viz Oblasti) a kliknutím se otevře okno pro nastavování parametrů složky.

Složku, vytvořenou takto v clipboardu, můžete před jejím přenesením do některé oblasti zrušit tak, že opakovaným stiskem uvolníte tlačítko, které ji vytvořilo.


Dotazy

Dotazy jsou nástrojem, který dovede z jedné nebo více tabulek vybrat data podle podmínek, které zadáte, seskupit a vypočítat agregované hodnoty a výsledné atributy vhodně uspořádat. Jako odpověď na dotaz, vznikne fiktivní tabulka (kurzor), se kterou lze pracovat podobně jako s tabulkou.

Pevné dotazy, jejich definice jsou uloženy v databázi, se vytvářejí v interaktivním prostředí návrháře dotazů.  Takový dotaz se dá použít jako zdroj dat pro hromadnou operaci s daty nebo pro pohled. Dotaz lze modifikovat i v jeho textové podobě pomocí vnitřního editoru - viz syntaxe definice dotazu.

Práce s dotazy (otevření, vytvoření apod.) se ovládá z řídicího panelu aplikace.


Řídicí panel - DOTAZY

Dotazy jsou nástrojem, který dovede z jedné nebo více tabulek vybrat ta data, která zadáte, a vhodně je uspořádat. Základní operace, které je možno s dotazy provádět, lze vyvolat pomocí tlačítek v pravé části řídicího panelu.

Otevřít -  otevření standardního pohledu do odpovědi na označený dotaz. Změny provedené v tomto pohledu se automaticky přenášejí do tabulek, z nichž je dotaz vytvořen.

Vytvořit - vytvoření nového dotazu - otevře se návrhář dotazů.

Modifikovat - přenesete do prostředí interaktivního návrháře dotazů.

Zrušit - zrušení označeného dotazu. Data ve výchozích tabulkách zůstávají nedotčena.

Přejmenovat - je Vám umožněno změnit jméno označeného dotazu.

Editovat text - otevře se editor pro textovou úpravu definice dotazu.

Duplikovat - vytvoření přesné kopie označeného dotazu.

Připojit - možnost připojení dotazu z jiné aplikace; viz Připojení objektu.

Základní funkce / Další funkce - přepínač základní a rozšířené nabídky funkcí.


Syntaxe definice dotazu v jazyce SQL

Textový zápis dotazu tvoří příkaz SELECT z jazyka SQL:

SELECT [DISTINCT] seznam položek

FROM výčet tabulek

[WHERE podmínka]

[GROUP BY seznam výrazů]

[HAVING podmínka]

[UNION příkaz SELECT bez ORDER BY]

[ORDER BY popis uspořádání]

Při návrhu dotazu pomocí interaktivního návrháře nepracujete přímo s  textovou podobou - do tohoto tvaru se návrh dotazu přeloží podle Vámi zadaných podmínek. Při textové editaci musíte vše zapsat ručně podle těchto pravidel:

   1) Výčet tabulek v části FROM je jméno jedné nebo více tabulek - jména se oddělují čárkami. Za jménem každé tabulky může být tzv. její alias, tedy alternativní jméno, které se použije při odkazech na tento výskyt tabulky.

   2) Seznam položek v části SELECT je seznam atributů tabulek nebo výrazů, které se mají spočítat, oddělených čárkami. Pokud jméno neurčuje atribut tabulky jednoznačně, musí být před ním uvedeno jméno nebo alias tabulky a tečka. Všechny atributy z určité tabulky se zadají tak, že se uvede jméno nebo alias tabulky, tečka a hvězdička. Všechny atributy ze všech tabulek lze zadat tak, že ve výčtu atributů uvedete pouze hvězdičku. Jako výraz zde může být uvedena agregační (souhrnné) funkce (AVG, SUM, MIN, MAX a COUNT) nebo i obecný výraz tvořený atributy, agregačními funkcemi a funkcemi vnitřního programovacího jazyka.

Za každou položkou seznamu může být klíčové slovo AS a identifikátor. Tímto identifikátorem se nahradí jméno atributu tabulky nebo jméno dosazené pro výraz.

   3) Klíčové slovo DISTINCT zajistí, že ve výsledné odpovědi budou pouze odlišné záznamy.

   4) Podmínka za slovem WHERE je výraz typu Boolean, který určuje, jaké záznamy se vyberou do dotazu. Vyberou se právě ty, na nichž má podmínka hodnotu TRUE. Nelze používat proměnné definované v projektu.

   5) Výraz za GROUP BY určí skupiny, do nichž se záznamy roztřídí. Agregační funkce (AVG, SUM, MAX, MIN, COUNT) se počítají právě pro tyto skupiny. Není-li GROUP BY uvedeno, berou se za jedinou skupinu všechny záznamy.

   6) Podmínka za klíčovým slovem HAVING omezí odpověď.

   7) Pomocí UNION můžete sjednotit dvě nezávislé odpovědi se stejnou strukturou.

   8) Popis uspořádání je posloupnost maximálně osmi výrazů oddělených čárkami, podle jejichž hodnot budou záznamy v dotazu uspořádány. Pokud je za výrazem slovo DESC, pak se podle tohoto výrazu uspořádává sestupně.

Příklady definice dotazu:

Vybrat všechny záznamy z tabulky FAKTURY a setřiďte je podle data zaplacení.

SELECT *

FROM FAKTURY

ORDER BY DAT_ZAPL

Vyberte příjmení, plat a název oddělení zaměstnanců, kteří mají větší plat než jejich šéf.

SELECT   ČLOVĚK.PŘÍJMENÍ,  ČLOVĚK.PLAT,  ČÍSLO,  NÁZEV

FROM     ZAM ČLOVĚK,  ZAM ŠÉF,  ODDĚLENÍ

WHERE    (ČLOVĚK.ODDĚL = ŠÉF.ODDĚL) and

         (ČLOVĚK.PLAT > ŠÉF.PLAT) and ŠÉF.JE_ŠÉF and

         (ČLOVĚK.ODDĚL = ČÍSLO)

ORDER BY ČÍSLO DESC,  ČLOVĚK.PŘÍJMENÍ

Vypište seznam odběratelů, průměrnou hodnotu jejich obratu, s vyloučením těch, kteří odebrali zboží pouze jednou.

SELECT FIRMY.NAZEV,  Avg(FAKTURY.CASTKA),Count(*)

FROM FAKTURY,FIRMY

WHERE FAKTURY.FIRMA= FIRMY.CISLO

and (FIRMY>STATUS='O')

GROUP BY FIRMY.NAZEV

HAVING Count(*)>1


Návrhář dotazu
Návrhář dotazů

Dotazy, jejichž definice je (nebo má být) uložena v databázi, se tvoří a modifikují v prostředí návrháře dotazů. Do návrháře se lze dostat tak, že na řídicím panelu vyberete Dotazy a stisknete tlačítko Modifikovat (je-li označen dotaz v seznamu) nebo Vytvořit. Ti uživatelé, kterým připadá jednodušší psát definici dotazu přímo v textové podobě (tj. zapsat příkaz SELECT z SQL), použijí tlačítko Editovat text pro modifikaci nebo v prostředí návrháře zvolí položku menu Text / Editovat.

Po stisku tlačítka Vytvořit se otevře okno pro výběr objektů, v němž vyberete tabulku, která bude použita v dotazu v části FROM.

Okno návrháře dotazů je rozděleno na čtyři části. V každé části se definuje jedna klauzule příkazu SELECT z jazyka SQL. Přechod mezi částmi se provádí klávesou F6 (v části FROM klávesa F6 znamená přechod mezi tabulkami) nebo kliknutím na některé části.

Návrhář je tvořen z upravených standardních pohledů, ve kterých nelze měnit šířku sloupců ani přehazovat sloupce, nicméně ostatní ovládání je shodné s běžným standardním pohledem. Pro rychlé vkládání údajů do pohledu slouží metoda Drag & Drop. Je potřeba uchopit (drag) jméno atributu v seznamu (stisknutím levého tlačítka myši), přesunout na nové místo a upustit (drop). To, že je atribut schopen být přenášet touto metodou indikuje změna myšího kurzoru na podlouhlý obdélník.

Nad oblastí, kam není povoleno vkládat, má kurzor tvar zákazové značky, zatímco nad oblastí, kam je možno vložit atribut, se kurzor opět změní na obdélník.

Pokračování:

menu návrháře	část FROM

lišta návrháře	část SELECT

část WHERE

textová editace	část ORDER BY


Menu návrháře dotazů

Menu, které přísluší k prostředí návrháře dotazů, obsahuje tyto položky:

Návrh

Uložit - uložení definice do databáze;

Test syntaxe - kontrola správného zápisu definice;

Odpověď - otevření standardního pohledu do odpovědi na rozpracovaný dotaz;

Jméno atributu - změna jména atributu

Skupiny - otevře okno pro dodefinování skupin v dotazu

Podmínka na skupiny - otevře okno pro definování podmínky na skupiny

Konec návrhu - ukončení práce v prostředí návrháře.

SQL-příkaz

Ukázat- vypsání definice dotazu jako příkazu SELECT z SQL, zápis není editovatelný.

Editovat - otevře se textový editor, v němž je možno přímo napsat definici příkazu SELECT;

Tabulky

Přidat - přidání tabulku do návrhu dotazu, týká se části FROM dotazu;

Alias - možnost změnit alias (alternativní jméno) tabulky - viz Změna aliasu

Odebrat - odstranění označené tabulky z návrhu dotazu (nikoli z databáze ! ).

Propojení

Propojit tabulky - ručně vytvořit relační propojení dvou tabulek;

Zrušit propojení - zrušit relační vazbu od označeného atributu.

Druh propojení - otevře okno s nabídkou vnitřního nebo vnějšího propojení

Nápověda

  Standardní položky nápovědy.


Ovládací lišta návrháře dotazů

Ovládací lišta návrháře dotazů obsahuje tato tlačítka:

Význam jednotlivých tlačítek (zleva):

Vystřihnout text do schránky

Zkopírovat text do schránky

Vlepit obsah schránky do editačního pole;

Uložit návrh databáze;

Ukončit práci v prostředí návrháře;

Test syntaxe dotazu;

Otevření standardního pohledu do odpovědi na definovaný dotaz z prostředí návrháře;

Vypsání textové definice dotazu  v jazyce  SQL;

Přidat tabulku do části FROM dotazu;

Odebrat tabulku z části FROM dotazu;

Dodefinovat skupiny;

Definovat podmínku na skupiny.


Výběr tabulek pro dotaz
Výběr tabulek do části FROM dotazu

V této části návrháře se vybírají tabulky pro část FROM dotazu, tj. tabulky, jež jsou zdrojem dat pro definovaný dotaz. První tabulka je vybrána již od otevření návrháře a další tabulky lze přidávat. Každá tabulka symbolizována složkou typu seznam v pravé horní části obrazovky. Vodorovný scroll bar umožňuje prohlížení a práci i s tabulkami, které se na obrazovku nevejdou.

Přidání tabulky se provede tlačítkem [image] nebo vybráním položky menu Tabulky / Přidat. V obou případech se otevře okno s nabídkou tabulek aktuální aplikace, z nichž jednu označíte a tlačítkem Vybráno přenesete do návrháře dotazu.  Je možno vybrat až osm tabulek.

Chcete-li nějakou tabulku z definice odstranit, je nutno ji nejprve označit a poté stisknout na liště tlačítko [image] nebo vybrat položku z menu Tabulky / Odebrat. V obou případech označená tabulka zmizí z návrháře.

V každém seznamu jsou vypsány všechny atributy příslušné tabulky. Na prvním místě je navíc výraz 'ALIAS.*', který nahrazuje všechny atributy tabulky.

V této části návrháře je též možno vytvářet relační propojení, které jinak obsahem  patří do částí WHERE.

Pokračování:

Aliasy 	část SELECT

Relační propojení 	část WHERE

část ORDER BY


Relační propojení tabulek

Relační databáze umožňují provedení operace JOIN (neboli spojení, propojení) dvou tabulek (dvou aliasů v případě jedné tabulky). V obou tabulkách je atribut stejného typu, který slouží jako relační klíč. Operací JOIN se vytvoří nová fiktivní tabulka, jejíž záznamy budou složeny z atributů obou tabulek a hodnoty se budou lišit podle druhu spojení.

Při nejčastějším případu - vnitřní propojení na rovnost  se propojují ty záznamy, které mají v relačním klíči stejnou hodnotu (např. ZAMĚSTNAN.ODDĚLENÍ = ODDĚLENÍ.ČÍSLO). Toto propojení se vytvoří velice elegantně pomocí Drag & Drop. V seznamu příslušející první tabulce uchopíte atribut, který tvoří relační klíč a pustíte ho nad atributem (relačním klíčem) z druhé tabulky. Propojení se znázorní čarou spojující oba atributy mezi okraji seznamu. Při listování seznamem se současně s příslušným atributem posouvá i začátek čáry.

Bez myši je propojení trochu komplikovanější. V první tabulce označte zvýrazněním příslušný atribut a v menu zvolte položku Propojení / Propojit atributy. Nyní označte atribut z druhé tabulky a zvolte tutéž položku menu podruhé. Propojení bude znázorněno opět čarou.

Opačným krokem je zrušit propojení. Provádí se ve dvou krocích. Nejprve je nutno vybrat propojení, které chcete zrušit. Myší kliknete na čáru symbolizující příslušné propojení. Čára se zvýrazní (ztloustne). Zrušení provede položka menu Propojení / Zrušit propojení.

Bez myši je i rušení složitější. Zvýrazněte atribut, z něhož vede pouze jedno propojení. Vyberte položku menu Propojení / Zrušit propojení. Čára tohoto propojení se zvýrazní. Druhým vybráním téže položky propojení zmizí.

WinBase602 nabízí i tzv. vnější propojení - použijete tehdy, chcete-li, aby v odpovědi byl zastoupen každý záznam jedné z tabulek nejméně jednou, a to i tehdy, když se v druhé tabulce nenajde žádný záznam, s nímž by se dal propojit. Scházející hodnoty atributů z druhé tabulky budou v odpovědi nahrazeny hodnotami NONE.

Propojení je v návrháři znázorněno šipkou, která vede z tabulky, z níž se berou všechny záznamy do tabulky, která doplní buď odpovídající hodnoty nebo NONE.

Vnější propojení vytvoříte z propojení vnitřního tím, že po zvýraznění spojovací čáry vyberete položku menu Propojení / Druh propojení nebo stisknete na čáře pravé tlačítko myši - viz Druh propojení


Výběr atributů do části SELECT dotazu

V levém horním rohu obrazovky je standardní pohled obsahující dva sloupec nadepsané Agr a  Atribut. Jména atributů tabulek se zapisují do pohledu z klávesnice běžným způsobem. Jednodušším a příjemnějším způsobem je použití myši a metody Drag & Drop. Stiskněte levé tlačítko myši na atributu v seznamu příslušné tabulky. Kurzor myši se změní. Nyní bez uvolnění tlačítka myš přesuňte nad pohled pro zadávání atributů a na vhodné pozici uvolněte tlačítko.

Velice častým případem je, že chcete v dotazu použít všechny atributy z tabulky (odpovídá části SELECT *). Pro tento případ je na první pozici v seznamu tabulky uveden výraz tabulka.*, který můžete přenést do části pro výběr atributů stejným způsobem jako jednotlivé atributy.

Chcete-li v dotazu použít agregační funkci (AVG, SUM, MAX, MIN, COUNT), zapište nebo přeneste její argument do sloupce Atribut a z comba ve sloupci Agr vyberte vhodnou funkci. Symbol {G} u seznamu funkcí znamená, že podle výrazu ve sloupci Atribut se budou vytvářet skupiny a agregační funkce se budou vztahovat k těmto skupinám. Při definování dotazů s agregačními funkcemi přes skupiny platí důležité pravidlo: atribut v pravé části oblasti SELECT musí být buď parametr agregační funkce nebo se přes něj seskupuje. Pokud se zde objeví samotný atribut, návrhář ho bude automaticky brát jako atribut, z jehož hodnot se mají tvořit skupiny. Z toho vyplývá jedno zjednodušení: příznak skupiny ({G} v levé části) se nastaví automaticky u všech atributů a výrazů, které nejsou parametry agregačních funkcí, a není nutné ho explicitně zadávat. Toto pravidlo se neuplatňuje u jednoduchých dotazů bez agregačních funkcí.

Pokračování:

část FROM	okno GROUP BY

část WHERE	okno HAVING

část ORDER BY


Vytvoření podmínky WHERE dotazu
Vytvoření výběrové podmínky WHERE dotazu

Levý dolní roh návrháře slouží k definování podmínek pro výběr záznamů. Podmínky se zapisují do standardního pohledu, který obsahuje šest sloupců. Do sloupce označeného Atribut zapište nebo vložte pomocí Drag & Drop jméno atributu, jehož se bude podmínka týkat. Ve sloupci Vztah vyberte z nabídky operátorů jeden vhodný o do sloupce Omezující výraz zapište výraz nebo hodnotu, ke které podmínku vztahujete. Má-li podmínka pro tento atribut další část, která je s první částí spojena logickou spojkou AND, zapište ji do dalších dvou sloupců (např. DATUM > 1.1.1993 AND DATUM < 1.2.1993 zapíšete do sloupců DATUM | > | 1.1.1993 | < | 1.2.1993 | ).

Vytvoříte-li na druhém řádku druhou podmínku, zpřístupní se nabídka logických spojek, spojujících oba řádky. Vyberte z nabídky A nebo NEBO.

Chcete-li v dotazu vybrat všechny ty záznamy které nevyhovují podmínkám v části WHERE, zaškrtněte čtverec Vybrat komplement.

Nabídka obsahuje tyto operátory:

=	rovno

<	menší než

<=	menší nebo rovno

>	větší než

>=	větší nebo rovno

<>	nerovno

.=	má prefix (pouze pro řetězce znaků)

.=.	obsahuje řetězec (pouze pro řetězce znaků)

 ~	podobá se řetězci (pouze pro řetězce znaků)

..	multiatribut obsahuje (nelze použít na multiukazatele)

Do části WHERE patří ještě podmínky mezi dvěma atributy - relační propojení. Tato propojení se vytváří přímo mezi tabulkami, nikoliv tedy v části WHERE (kde pro to ani není místo). Na tyto podmínky se nevztahuje volba Vybrat komplement.

Pokračování:

Relační propojení 	část FROM

část SELECT

část ORDER BY


Vytvoření podmínky pro třídění ORDER BY dotazu

V pravém dolním rohu návrháře se popisuje část definice dotazu ORDER BY, neboli množina nula až osmi výrazů, podle kterých bude odpověď na dotaz setříděna. Nejčastějším příkladem je samotný atribut, ve složitějších případech může být definován výraz obsahující i více atributů.

Tato část je tvořena standardním pohledem, který má pevné rozměry: 8 řádků a dva sloupce. Do prvního sloupce označeného Hodnota se zapisují výrazy, ve druhém označeném Sestupně se zaškrtává označovací čtverec, má-li se třídit nikoliv vzestupně (tj. od nejmenšího) ale sestupně (tj od největšího k nejmenšímu).

Výrazy je třeba zapsat z klávesnice, zapsání samotného atributu je možno si zjednodušit pomocí Drag&Drop - uchopíte myší atribut ze seznamu a pustíte ho nad příslušnou pozici.

Chcete-li výslednou odpověď setřídit podle výrazu, zapište do pohledu jméno tohoto výrazu: pokud není předefinováno klauzulí AS, tvoří se automaticky podle typu EXPRn, SUMn apod., kde n je pořadí výskytu v odpovědi.

Pokračování:

část FROM

část SELECT

část WHERE


Změna aliasu tabulky v dotazu
Změna alternativního jména (aliasu) tabulky

Alternativní jméno neboli alias se používá v odkazech na výskyt tabulky. Standardně se jako alias bere jméno tabulky, v některých případech však je vhodné alias změnit. Je-li v dotazu použita vícekrát tatáž tabulka, je změna aliasu jedné z nich nutná a program sám při druhém a dalším výskytu mění alias tím, že na konec jména přidává číslice od nuly.

Položka menu Tabulky / Alias otevře dialogové okno, v němž máte možnost alias měnit. V poli Dosavadní alias vidíte jméno, které je tabulce přiřazeno, do pole Nový alias zapište nové jméno. Jméno musí odpovídat podmínkám pro jména objektů (tj. 10 písmen nebo číslic, na prvním místě písmeno).

Tlačítkem OK provedete změnu.


Druh propojení

Stiskem pravého tlačítka na spojovací čáře nebo příkazem Druh propojení z menu Propojení otevřete okno s výběrem druhů propojení.

  a) Normální, vnitřní propojení

  b) Vnější propojení

  c) Vnější propojení opačným směrem

Volíte-li vnější propojení, musíte určit jeho směr. Aby nedošlo k omylu, jsou v okně směry přímo vypsány. Vyberete jednu z možností a stisknete tlačítko OK.

Relační propojení


Podmínka na skupiny v dotazu

Ve složitých dotazech se skupinami se někdy vyžaduje omezit výslednou množinu skupin. Toto omezení (ne příliš časté) se zadává do okna otevřeného tlačítkem na liště  [image] nebo příkazem Podmínka na skupiny z menu Návrh.

Atributy, přes které se neprovádí seskupování, se v podmínce mohou vyskytnout pouze v agregačních funkcích (AVG, SUM, MAX, MIN, COUNT). Typickým použitím této podmínky je výběr pouze těch skupin, na nichž mají agregační funkce určité hodnoty.

Přítomnost definice podmínky na skupiny v dotazu indikuje slovo HAVING! v pravé horní části návrháře.

Příklad: v dotazu zjišťujete průměrnou hodnotu faktury od jednotlivých odběratelů. Chcete však omezit výslednou odpověď pouze na ty odběratele, kteří odebrali již více než jednou.

Do okna HAVING zapište podmínku   Count(cislo)>1.


Dodefinování skupin v dotazu

Definování skupin se většinou vytvoří již při naplnění oblasti SELECT návrháře.

Stiskem tlačítka na liště  [image] nebo provedením příkazu Skupiny z menu Návrh se otevře okno pro zápis definice skupin. Jsou-li již skupiny definovány z části SELECT, v editační řádce okna vidíte příslušnou definici. Praktické použití tohoto příkazu spočívá v tom, že je možné změnit automaticky zjištěné skupiny. Přidáte-li např. do SELECTu, v němž se již nacházejí agregační funkce (AVG, SUM, MAX, MIN, COUNT), obecný výraz, který nemá být ani parametrem agregační funkce ani přes něj nechcete skupinovat, návrhář u něj automaticky doplní definici skupiny. Aby dotaz měl smysl, musíte nyní pomocí příkazu Skupiny definici skupin změnit tím, že nadbytečnou část umažete.

Přítomnost definice skupiny v dotazu indikuje slovo GROUP! v pravé horní části návrháře.


Změna jména atributu dotazu
Změna jména atributu v dotazu

Autor dotazu má možnost jména atributů dotazu předefinovat. V oblasti SELECT  označí atribut, který se má přejmenovat  a provede  příkaz Jméno atributu z menu Návrh. Do okna, které se otevře, zapíše nové jméno atributu. Jméno nesmí obsahovat mezery (jako identifikátor).

Této možnosti se využívá především u dotazů, které v části SELECT mají výrazy. Jména atributů tvořených výrazy se doplňují automaticky, např. EXPRn pro obecný výraz, SUMn pro agregační funkci SUM apod. Místo těchto nic neříkajících jmen si uživatelé mohou vytvořit jména vlastní např. PENÁLE nebo Součet_faktur.

Skutečnost, že atribut má uživatelské jméno, signalizuje slůvko As vlevo od zápisu atributu.


Uživatelské menu

Menu je nabídka akcí pro určitou situaci, z nichž si uživatel může vybrat. Tyto akce mohou být rozčleněny do několika úrovní.

Základní nabídka, které také říkáme hlavní menu, se zobrazuje jako jeden řádek v horní části okna. Skládá se z položek označených svými názvy. Položka menu může buď vyvolávat provedení určité akce, nebo může otevírat  submenu, tedy nabídku akci nižší úrovně. V submenu jsou názvy položek pod sebou a platí o nich totéž, co o položkách hlavního menu: některé z nich vyvolávají akce, zatímco jiné otevírají submenu další úrovně.

Nejčastější případ použití vlastního menu je řízení akcí v rámci jedné aplikace.  Menu, které navrhnete, lze použít dvojím způsobem:

 a) sami si jej otevřete z řídicího panelu

 b) vyvoláte jej z aplikačního programu a tím umožníte jeho uživateli, aby pomocí menu řídil běh programu.

Menu se navrhuje v prostředí návrháře menu, základní operace s menu se provádějí z řídicího panelu.


Řídicí panel - MENU

Pro řízení aplikace si uživatel může navrhnout vlastní menu. Základní operace, které je možno s menu provádět, lze vyvolat pomocí tlačítek v pravé části řídicího panelu.

Otevřít -   na obrazovce se objeví menu označené ve středním seznamu. Nové menu odstraní menu původní. Do původního stavu se vrátíte po vybrání položky Přerušit ze systémového menu hlavního okna.

Vytvořit - vytvoření nového menu probíhá tak, že se přenesete do prostředí pro návrh menu, popíšete jeho strukturu  a akce při vybrání a nakonec přidělíte menu jméno.

Modifikovat - přenesete do prostředí pro návrh menu. Tam budete mít možnost změnit strukturu a činnost označeného menu.

Zrušit - zrušení označeného menu aplikace.

Přejmenovat - je Vám umožněno změnit jméno označeného menu.

Editovat text - prohlížení či úpravy menu v jeho textové podobě - viz Syntaxe menu

Duplikovat - vytvoření přesné kopie označeného menu.

Připojit - možnost připojení menu z jiné aplikace; viz Připojení objektu.

Základní funkce / Další funkce - přepínač základní a rozšířené nabídky funkcí.


Návrh uživatelského menu

Při návrhu menu popisujete:

  1) jak má menu vypadat;

  2) co se má stát, když se z menu zvolí určitá položka;

  3) další doplňující údaje, např. kdy se která položka smí vybrat.

Návrhář menu vypisuje v místě normálního menu (tj. na prvním řádku okna WinBase602) nové, uživatelem právě vytvářené nebo editované menu. Toto menu však během návrhu vypadá poněkud jinak, než jak bude vypadat při svém použití. Hlavní odlišnosti jsou dvě:

  a) na konci menu i na konci každého submenu je tzv. fiktivní položka označená třemi tečkami. Tyto položky se v hotovém menu neobjeví a v návrháři slouží pouze jako pomůcka pro editaci.

  b) případné oddělovací čáry mezi položkami v submenu nesahají až k okrajům a dají se vybrat jako každá jiná položka.

V systémovém menu okna návrháře je nabídka akcí vztahujících se k návrhu, např. uložení nebo ukončení návrhu. Celý postup návrhu menu se řídí pomocí systémového menu návrháře, lišty s ovládacími tlačítky nebo tlačítky v okně návrháře.

Pokračování: 	Vytváření menu

Ovládání návrháře


Vytváření menu

Ve spodní části okna jsou akční tlačítka. Nad nimi je název jedné z položek navrhovaného menu společně s typem položky, např.

Položka otevírající submenu: Adresář

Normální akční položka: Konec

Oddělovač položek v menu .

Této položce které říkáme zvolená položka, má při návrhu zvláštní význam - všechny editační akce se vztahují k ní: akce Modifikovat položku umožní editovat její parametry, Zrušit položku ji zruší a Vložit položku vloží novou položku před zvolenou. Při úpravách menu vždy tedy nejprve zvolíte určitou položku a pak provedete zamýšlenou změnu.

Položka se zvolí vybráním z návrhu menu. Vybíráte-li myší položku otevírající submenu, pak kliknutí  na této položce otevře příslušné submenu a zvolená položka je první položka z tohoto submenu. Aby se tomu zabránilo, je nutno uvolnit tlačítko myši mimo prostor menu. Druhá možnost je vybrat položku pomocí kláves F10 nebo Alt a šipek nebo pomocí již nadefinovaných horkých kláves.

Pokračování: Nová položka menu


Ovládání návrháře menu

Tlačítka na pracovní liště

mají tento význam:

- vložit položku;

- modifikovat položku;

- zrušit položku.

- uložit definici menu;

- ukončit návrh

- test syntaxe návrhu menu;

Návrh menu se také může řídit pomocí položek systémového menu návrháře. V tomto menu, kromě standardních položek, naleznete také položky:

    Zavřít - Uzavře okno návrháře menu. Pokud jste návrh menu po provedení poslední změny neuložili, budete dotázání, zda se návrh má uložit. Pokud editujete nové menu, WinBase602 Vás před uložením vyzve, abyste zadali jeho jméno.

    Uložit návrh - Zapíše současný stav návrhu menu do databáze.

    Test menu - Provede syntaktickou kontrolu návrhu menu. Pokud najde v některé položce chybu, upozorní Vás na ní a otevře dialogové okno s parametry této položky.

    Editovat položku, Zrušit položku - Editační akce platné pro zvolenou položku.

    Vložit položku -  Vložení položky PŘED zvolenou položku

Pokračování: 	Vytváření menu

Návrh menu


Nová položka menu

K přidání nové položky na konec hlavního menu nebo submenu využijete fiktivní položku označenou třemi tečkami. Pokud tuto položku vyberete (ať už z hlavního menu nebo ze submenu), pak se na její místo vloží položka nová a fiktivní položka se posune o pozici dále.

Vložení nové položky (kliknutím na fiktivní položce nebo stiskem tlačítka Vložit položku) začíná dotazem, o jaký druh položky má jít. Na výběr máte tyto tři možnosti:

    Normální akční položka, tedy položka, po jejímž vybrání se provede zadaná akce nebo zašle zpráva programu;

    Položka otevírající submenu, k níž později definujete menu nižší  úrovně;

    Oddělovač položek, tedy vodorovná čára mezi položkami submenu (v hlavním menu se nedá použít).

Pokud z této nabídky vyberete oddělovač položek, vloží se do menu a tím přidávání nové položky končí. Pokud jste si však vybrali jiný druh položky, na obrazovce se objeví okno, v němž zadáte příslušné parametry položky.  Po zadání parametrů buď stisknete klávesu Hotovo, a tím potvrdíte vložení položky, anebo klávesu Zrušit změny a vložení této nové položky odvoláte.

pokračování: Parametry nové položky


Parametry položek uživatelského menu

Okno, v němž nastavujete parametry položky, obsahuje tyto prvky (nápověda je společná pro akční položky i položky otevírající submenu):

Název položky - musíte vždy zadat (zatímco ostatní parametry zadáte podle svého uvážení). V názvu můžete uvést tzv. horkou klávesu, tedy klávesu pro rychlý výběr této položky. Horkou klávesu zadáte tak, že před některý ze znaků názvu umístíte znak &. Tento znak se v menu neobjeví, ale následující znak bude podtržen, a pokud při práci s menu se klávesa s tímto znakem stiskne v kombinaci s klávesou ALT, bude položka menu vybrána.

Pokud je na obrazovce otevřeno menu i pohled, pak platí, že horké klávesy definované v pohledu mají přednost před horkými klávesami definovanými v menu. Doporučujeme na to myslet již při návrhu a pokud víte, že se určitý pohled bude používat současně s určitým menu, použijte v nich pokud možno odlišné horké klávesy.

Do názvu položky menu lze vložit dvouznakovou sekvenci \t (zpětné lomítko+t), která funguje jako tabulátor. Text následující za tímto tabulátorem bude v menu odsazen. Používá se před označením klávesové zkratky, která má stejný význam jako položka.

Okna - přepínač, kterým můžete vytvořit speciální položku hlavního menu aplikace: položku, která se standardně jmenuje Okna a která obsahuje submenu s názvy všech otevřených oken v aplikaci. Chcete-li toto menu mít v aplikaci, zaškrtněte čtverec Okna. Je zvykem, aby submenu Okna obsahovalo také příkazy Mozaika a Kaskáda,  Platí pouze pro položky otevírající submenu.

Akce při vybrání položky je možno zadat pouze pro akční položky. Pokud tuto akci nezadáte, nebude mít položka v menu žádný efekt.

Pro popis akce je k dispozici nabídka akcí. Jednu akci vyberete a doplníte k ní potřebné parametry. V nabídce jsou dvě speciální položky: Provést příkazy - do editačního pole zapište příkazy, které se při vybrání položky mají provést a které nebyly v seznamu položek;

  	if Print_opt(0) then View_print("*POHLED1")

Zaslat zprávu -vyplňte  celočíselný výraz, které se při vybrání položky vypočte a jehož hodnota je předá programu jako zpráva (čísla zpráv musí ležet v rozsahu 1000 až 60000).

Podmínka aktivity položky určuje, ve kterém ze dvou stavů položka je: buď je napsána normálním písmem a reaguje, nebo je napsána šedě a nereaguje na nic. Podmínku zadáte jako výraz typu  Boolean vnitřního programovacího jazyka. V tomto výrazu můžete použít konstant, proměnných a funkcí definovaných v nastaveném projektu.

příklad:	ID_POHLED1 <> 0

Who_am_I = "DB_ADMIN"

Podmínka zatržení položky - Pro položky submenu lze specifikovat, za jakých podmínek se vlevo od položky má objevit značka zatržení. V hlavním menu položky zatrhávat nelze. Podmínku zatržení zadáte jako výraz typu  Boolean vnitřního programovacího jazyka. V tomto výrazu můžete použít konstant, proměnných a funkcí definovaných v nastaveném projektu.

příklad	View_state("*POHLED1")

Vysvětlující text - Do pole vysvětlující text můžete vyplnit libovolný text, který se objeví na informační řádce WinBase602 kdykoli bude tato položka menu zvýrazněna. Použití vysvětlujících textů usnadňuje ovládání aplikací, zvláště pokud mají řadu menu s mnoha položkami. Vysvětlující text zapíšete jako posloupnost libovolných znaků, není třeba jej dávat do apostrofů nebo uvozovek.


Nabídka akcí

Definování akce nebo posloupnosti akcí se provádí ve speciálním okně nadepsaném Akce a jejich parametry.

V levé části okna je seznam možných akcí. Akcí je velký počet a seznam má omezenou velikost, proto jsou akce uspořádány do skupin podle svých podobných vlastností. Skupina akcí je znázorněna tlačítkem. Stisknuté tlačítko značí, že skupina je "rozbalená", tedy jsou vidět všechny příslušné akce.

Mezi akcemi je možné přecházet pomocí kurzorových šipek nebo pomocí myši. Chcete-li nějakou akci vybrat, kliknete na ní myší dvakrát nebo ji označíte a  stisknete tlačítko Vybrat označenou akci. Vybraná akce je znázorněna červenou šipkou vlevo.

Většina akcí vyžaduje doplnění informací  - pro otevření pohledu musíte zadat jeho jméno, pro vypsání zprávy její text apod. K zadání parametrů slouží comba a editační složky pod seznamem akcí. Jejich názvy a aktivita se mění podle druhu akce.

Okno nedovolí akci definovat a uložit, pokud nevyplníte správně její parametry.

Posloupnost akcí

Akce je možno řetězit za sebou, nelze je větvit ani opakovat v cyklu. Posloupnost akcí, jak ji průběžně vytváříte, vidíte v seznamu v pravé horní části okna.

Akcemi v posloupnosti lze libovolně procházet. Kdykoli označíte některou z akcí, ukáže se v nabídce akcí vlevo a zpřístupní se její parametry. Posloupnost končí nápisem -- Dosud žádná akce --.

Přidání akce na konec

Přidání nové akce jako poslední provedete tímto postupem:

  1) posloupnosti označíte řádek -- Dosud žádná akce --;

  2) seznamu vyberete žádanou akci;

  3) doplníte její parametry.

Přidání akce doprostřed

Chcete-li přidat akci mezi již vytvořené akce nebo na začátek, postupujte takto:

  1) v posloupnosti označte akci, před kterou chcete vložit akci novou;

  2) stiskněte tlačítko Vložit akci před vybranou; do posloupnosti se vloží a označí nový řádek s nápisem Bez akce;

  3) pro tento řádek vyberte žádanou akci ze seznamu a doplňte její parametry.

Zrušení akce

Zrušení libovolné akce se provede takto:

  1) označte v posloupnosti akci, která má být zrušena;

  2) ze seznamu vyberte Bez akce; tento nápis se objeví i v posloupnosti;

  3) při příštím otevření okna s nabídkou akcí tento řádek v posloupnosti akcí nebude.

Popis jednotlivých akcí - viz Jednotlivé akce


Nabídka akcí podrobně
Popis vybraných akcí

Bez akce - vybere se tehdy, pokud chceme zrušit dříve vybranou akci.

Otevírání a zavírání pohledu

Otevřít/Zavřít pohled - otevře resp. zavře pohled určený jménem.

Otevřít nebo zavřít pohled - je-li pohled otevřen, zavře ho, není-li otevřen, otevře ho.

Na stejný záznam otevřít pohled - otevře druhý pohled do stejných dat na témže záznamu, (resp. vyhledá odpovídající záznam, je-li jeden pohled do tabulky a druhý do dotazu).

Otevřít modální pohled (na stejný záznam) - otevře pohled modálně, tedy tak, že do uzavření tohoto pohledu nebude možno pracovat s jiným pohledem ani menu WinBase602.

Otevřít relační pohled - otevře pohled do relačně propojené tabulky. Pro relaci 1:N je tím míněn pohled do relačně nadřízené tabulky (číselníku), v němž se označí jeden záznam. Po zavření relačního pohledu se do propojovacího atributu původní tabulky zapíše hodnota z označeného záznamu. Použitá relace 1:N musí být definována v Nákresu schématu aplikace.

Pro relaci M:N se otevře pohled do protější tabulky relace. V něm je možno označit jeden nebo více záznamů. Po zavření relačního pohledu se pro všechny označené záznamy vytvoří nové záznamy ve spojovací tabulce, definované spolu s relacemi v Nákresu schématu aplikace.

Otevřít vázací pohled - standardní akce pro tlačítko, které má otevřít vázací pohled. Vytvoří se v automatickém návrhu pro všechny složky typu ukazatel.

Otevřít standardní pohled do tabulky/dotazu - umožní pracovat s obsahem tabulky nebo dotazu, aniž by byl vytvořen zvláštní pohled do těchto dat.

Editace a změny v pohledu

Vložit záznam do běžného pohledu - vloží do pohledu nový záznam; odpovídá stisku klávesy  v pohledu. Využije se zvláště při vkládání pomocí speciálního pohledu pro vstup dat.

Uložit změny v pohledu - provede zapsání změn v záznamu do databáze; má smysl u záznamově synchronizovaných pohledů.

Odvolat změny v pohledu - odvolá změny dosud nezapsané do databáze; má smysl u záznamově synchronizovaných pohledů.

Editovat text - otevření editačního okna pro atribut typu Text, používá se u složek typu Text.

Překreslit pohled - záznamy v pohledu se překreslí, složky se doplní novými nebo změněnými hodnotami. Nepřebudovává se kurzor.

Přebudovat kurzor a překreslit pohled - kurzor, do něhož vede pohled, se znovu vytvoří a v pohledu se objeví aktuální hodnoty.

Tisky

Vytisknout sestavu - běžné vytištění připravené sestavy

Vytisknout stejný záznam v sestavě - aktuální (jeden) záznam se vytiskne na nastavené tiskárně jako zvolená sestava

Zvolit tiskárnu - umožní změnit či nastavit tiskárnu

Nastavit parametry tisku - otevře standardní WinBase602 dialog pro parametry tisku sestavy. Zavřete-li tento dialog stiskem tlačítka Zrušit akci, přeruší se vykonávání posloupnosti akcí, neboť obvykle po této akci následuje vlastní tisk sestavy, který chtěl uživatel zrušit.

Menu

Otevřít menu - nahradí stávající menu menu novým.

Odstranit menu - zruší uživatelské menu aplikace

Zavřít pohledy a odstranit menu - běžná akce používaná při ukončení pohledově orientované aplikace.

 Zprávy a nápověda

Zobrazit okno se zprávou - otevře modální okno se zadanými informacemi.

Na stavový řádek vypsat zprávu - vypíše textovou informaci na stavový řádek WinBase602.

Zobrazit nápovědu - zobrazí vybranou stránku nápovědy; pouze v případě, že aplikace vlastní nápovědu má.

Tabulky a dotazy

Exportovat/Importovat data z tabulky/dotazu - umožní provést export/import dat ve vnitřním formátu a kódování Windows.

Uvolnit záznamy v tabulce - provede uvolnění smazaných záznamů.

Okno a ikony

Uspořádat okna do mozaiky - rozmístí okna na obrazovce tak, aby rovnoměrně vyplnila celý prostor.

Uspořádat okna do kaskády - rozmístí okna na obrazovce tak, aby bylo z každého vidět alespoň nadpis.

Uspořádat ikony - srovná ikony minimalizovaných oken ve spodní části hlavního okna.

Dotazy a uspořádání

Zadat omezení (QBE) - otevře pohled pro zadání QBE dotazu

Zadat uspořádání (QBE) - otevře pohled pro zadání QBE uspořádání

Zrušit omezení a uspořádání - zruší právě zadaný QBE dotaz či uspořádání

Uplatnit omezení nebo uspořádání - zadaný dotaz či uspořádání se uplatní v pohledu

Zadat omezení ve speciálním okně - otevře speciálně pro tento účel vytvořený pohled, v němž zadáte QBE dotaz jednodušeji než ve standardním dotazovém okně

Setřídit podle atributu - okamžitě setřídí pohled podle atributu zadaného v parametrech.

Pro složitější aplikace s vlastním programem tento seznam akcí nevystačí. Pro tyto případy seznam obsahuje dvě položky:

Zaslat programu zprávu - zpráva, na níž bude program reagovat;

Provést příkaz vnitřního jazyka - zapište přímo příkaz jazyka, který se má provést. Můžete používat i proměnné deklarované v projektu. Této položky se také využije, chcete-li jako akci provést vlastní naprogramovanou proceduru. Lze používat i konstrukci IF … THEN … ELSE, ovšem pouze pro jednotlivé příkazy (nesmí se objevit BEGIN END). Použijete-li příkaz HALT, ostatní akce v posloupnosti se nevykonají.


Syntaxe definice menu

Menu se navrhuje pomocí návrháře menu. Textová podoba se zpřístupní tlačítkem Editovat text z řídicího panelu. Forma je velmi blízká popisu menu ve Windows. Má tuto strukturu:

MENU BEGIN  položka,  ..., položka  END

kde položka je buď:

MENUITEM  "text položky",  příkaz

anebo

POPUP "text submenu"

BEGIN  položka,  ..., položka  END

kde příkaz je jedno ze slov: MENUACTION, ACTIVE, CHECKED nebo INFOTEXT následované výrazem nebo příkazem zadaným v návrhu.

V textu položky nebo submenu můžete umístit znak & před písmeno, kterým se bude tato položka vybírat. Toto písmeno pak bude podtržené.


Příklad definice menu:

MENU

BEGIN

  POPUP "Pohledy do &tabulek"

  BEGIN

    INFOTEXT "Pohledy do tabulek ZAMĚSTNAN a PRÁCE"

    MENUITEM "Zaměstnanci" CHECKED View_state("*ZAM") INFOTEXT "pohled do tabulky ZAMĚSTNAN" MENUACTION View_toggle("*ZAM")

    MENUITEM "Pracovní činnosti" CHECKED View_state("*PRAC_ÚKOLY") INFOTEXT "Pohled do tabulky PRAC_ÚKOLY" MENUACTION View_toggle("*PRAC_ÚKOLY")

  END

  POPUP "&Pohledy do dotazů"

  BEGIN

    INFOTEXT "Pohledy do dotazů DLE_ODDĚL a SEZN_5000"

    MENUITEM "Seznam" CHECKED View_state("*ZAMĚST4") INFOTEXT "Zaměstnanci s platem větším než 5000 Kč" MENUACTION View_toggle("*ZAMĚST4")

    MENUITEM "Oddělení" CHECKED View_state("*ZAMĚST3") INFOTEXT "Relace mezi tab. ZAMĚSTNAN a ODDĚLENÍ" MENUACTION View_toggle("*ZAMĚST3")

  END

  MENUITEM "&Konec" INFOTEXT "Ukončení práce s aplikací" MENUACTION Main_menu(Nil)

END


 Debugger ve WinBase602

Součástí vývojového prostředí WinBase602 je i ladící systém (krátce debugger) usnadňující nalezení a odstranění chyb v programech vytvořených ve vnitřním jazyce.

Spuštění debuggeru

V menu editoru si ze submenu  Překlad/Běh vyberte položku  Ladění, anebo stiskněte na ovládací liště tlačítko [image].

WinBase602 se poté pokusí program přeložit. Pokud se při překladu objeví nějaká chyba, budete na ní obvyklým způsobem upozorněni a k fázi ladění se vůbec nedostanete. Proběhne-li překlad bez chyby, je zahájen ladící běh programu. Tento běh se ovšem hned na první řádce programu zastaví. Objeví se menu debuggeru a na ovládací liště tlačítka řídící debugger. Od tohoto okamžiku máte možnost program ladit.

Během ladění programu nelze přepisovat jeho zdrojový text. Lze v něm ovšem vyhledávat řetězce stejným způsobem, jako při práci s editorem.

Je-li aktivní debugger, je na obrazovce menu a ovládací lišta debuggeru a do popředí se dostalo okno editoru, v němž vidíte barevně vyznačenou řádku programu, která se právě má provést. Laděný program je pozastaven a je možno analyzovat jeho stav.

Po zahájení ladění se běh programu zastaví na své první řádce. Nyní (a také po každém dalším zastavení) můžete volit, jak pokračovat.

Pokračování:	Ovládání debuggeru

 	Práce s debuggerem


 Ovládání debuggeru

Debugger se ovládá pomocí menu, pomocí tlačítek na liště nebo klávesovými zkratkami.

Běh

  Bod zastavení (BP)- na pozici kurzoru vloží nebo odstraní bod zastavení (breakpoint). Ekvivalentem je klávesa F2 nebo dvojklik na řádce programu. Řádek bude barevně označen. Viz Body zastavení.

  Běh - rozběhne program buď do konce nebo do prvního bodu zastavení. Ekvivalentem je klávesa F9.

  Krok přes - vykoná řádek programu, který je barevně označen. Je-li v řádku volání podprogramu, jeho příkazy se provedou, avšak debugger se na nich nezastaví. Ekvivalent  F8. Viz Krokování.

  Krok dovnitř - vykoná řádek programu, který je barevně označen. Je-li v řádku volání podprogramu, debugger se zastaví na prvním řádku podprogramu. Ekvivalent F7. Viz Krokování.

  Běh po kurzor - program se rozběhne od řádku, kde je debugger a skončí na řádku, na který byl umístěn kurzor. Ekvivalent F4.

  Návrat z podprogramu - aktivní jen tehdy, je-li debugger právě v podprogramu. Položka slouží k doběhnutí podprogramu a zastavení debuggeru na první řádce za voláním tohoto podprogramu. Ekvivalent Ctrl+F8.

  Ukončit ladění - konec režimu ladění, zároveň také ukončí běh programu. Při vnořeném běhu (např. podprogram vyvolaný stiskem tlačítka v pohledu) je položka neaktivní.

Data

  Ukázat / Změnit - otevře okno, v němž můžete nejen zjistit hodnotu proměnné či výrazu, ale také tuto hodnotu změnit. Ekvivalent F5. Viz Prohlížení a měnění hodnot.

  Přidat sledovač - přidá do okna se seznamem sledovačů novou položku. Ekvivalent Ctrl+F7. Viz Sledovače.

  Okno se sledovači - otevře nebo zavře okno se seznamem sledovačů.

Podprogramy - otevře okno se seznamem podprogramů - viz Prohlížení zásobníku.

Hledání

  Najít - nalezne v zdrojovém programu zadaný řetězec

  Zopakovat akci - zopakuje poslední hledání řetězce

Moduly - otevře okno se seznamem modulů, z nichž se skládá zdrojový program - viz Includování textů

Pokračování:  tlačítka na liště debuggeru


Tlačítka na liště debuggeru
 Tlačítka debuggeru

Je-li aktivní debugger, lišta hlavního okna se změní a objeví se tlačítka pro nejčastější akce prováděné při ladění.

Význam tlačítek vč. ekvivalentních kombinací kláves:

- běh programu (do konce nebo do prvního bodu zastavení) - F9

- krok přes podprogram - F8

- krok dovnitř podprogramu - F7

- návrat z podprogramu (dokončení podprogramu a zastavení po návratu) - Ctrl+F8

- běh po kurzor - F4

- vložení / odstranění bodu zastavení - F2

- vyhodnocení výrazu, možnost změny hodnoty proměnné - F5

- přidání nového sledovače - Ctrl+F7

- vyhledání řetězce znaků v textu

- zopakování posledního hledání - F3


 Práce s debuggerem

K dispozici je podrobná nápověda k těmto tématům:

- Krokování programu

- Body zastavení

- Prohlížení a měnění hodnot proměnných

- Sledovače

- Prohlížení zásobníku


 Krokování programu

Krokováním se rozumí provádění programu po jedné zdrojové řádce. Pokud na řádce, kterou se zrovna chystáte provést, je volání podprogramu, pak můžete buď vstoupit dovnitř podprogramu, anebo podprogram vcelku provést a zastavit se až po návratu z něj. Při krokování lze tedy buď vstupovat dovnitř podprogramů (angl. trace into) anebo postupovat přes ně (angl. step over).

Krok přes celý podprogram provedete buď tak, že si z menu debuggeru vyberete  Běh / Krok přes, nebo stisknete tlačítko [image], anebo stisknete klávesu F8.

Krok dovnitř podprogramu provedete tak, že si buď z menu debuggeru vyberete  Běh / Krok dovnitř, nebo stisknete tlačítko [image], anebo stisknete klávesu F7.

Během krokování můžete sledovat, jak postupuje vpřed barevně odlišená řádka ukazující na místo, které se bude v dalším kroku provádět. Pokud je program na řádce, na níž není volání podprogramu, pak oba druhy kroků provedou tutéž akci.


Body zastavení (breakpointy)
 Body zastavení

Do laděného programu lze umístit tzv. bod zastavení (angl. breakpoint). Bod zastavení umístíte na některou řádku zdrojového programu. Kdykoli program při svém běhu na tuto řádku vstoupí, běh se přeruší. Poté si může např. prohlédnout hodnoty proměnných v programu a buď pokračovat v běhu programu nebo jej například krokovat.

Řádka, na níž je bod zastavení, je barevně odlišena. Bod zastavení umístíte tak, že na řádce dvakrát kliknete levým tlačítkem myši, anebo tak, že na řádku najedete kurzorem a buď z menu vyberete položku  Běh / Bod zastavení nebo stisknete tlačítko [image], nebo stisknete klávesu F2. Pokud stejnou akci zopakujete, bod zastavení z této řádky odstraníte.

Body zastavení využijete zejména tehdy, pokud hodláte ladit pouze určitou část programu a nechcete krokovat od začátku programu až k ní. Po zahájení ladění umístíte bod zastavení na začátek této oblasti a necháte program volně běžet. Do debuggeru se opět dostanete v okamžiku, kdy program vstoupí na bod zastavení.


 Prohlížení a měnění hodnot proměnných

Debugger umožňuje prohlédnout si hodnotu kterékoli nestrukturované proměnné a případně tuto hodnotu přepsat. Tato funkce se vyvolává položkou Data / Ukázat/Změnit v menu debuggeru, nebo tlačítkem [image], anebo stiskem klávesy F5. Na první řádku dialogového okna napíšete, se kterou proměnnou chcete pracovat, a po stisku klávesy Vyhodnotit obdržíte v okně nadepsaném  Hodnota její hodnotu. Celočíselné hodnoty se vypíšou jak dekadicky, tak i hexadecimálně (např. 100 (0x64)).

Pokud chcete změnit hodnotu proměnné, novou hodnotu zapište do okénka  Hodnota v dialogovém okně (případný obsah okénka předtím smažte) a stiskněte tlačítko Vyhodnotit.

Vyčíslovat lze i hodnoty výrazů, stačí je napsat na první řádku a stisknout tlačítko Vyhodnotit. Výrazu však nemůžete přiřadit novou hodnotu.

Zapisování proměnných a výrazů do dialogového okna pro vyčíslování hodnoty lze urychlit dvojím způsobem. Pokud před otevřením tohoto dialogového okna označíte v textu programu blok, pak se obsah tohoto bloku objeví na první řádce v okně. Pokud žádný blok označen není, ale kurzor je umístěn na proměnné, pak bude tato proměnná po otevření okna zapsána v něm.

V praxi proto postupujeme takto: klikneme na proměnnou, s jejímž obsahem chceme pracovat, a z menu vybereme  Data / Ukázat/Změnit.

Při prohlížení si hodnot proměnných se kurzor musí nacházet v té části programu, v níž je proměnná definována. To je velmi důležité, protože ve dvou podprogramech mohou být dvě stejně pojmenované proměnné a debugger pouze na základě polohy kurzoru pozná, kterou z nich míníte.

Nelze si prohlížet celkový obsah strukturovaných proměnných s výjimkou znakových řetězců. Hodnota strukturované proměnné je nahrazena hvězdičkou. Chcete-li se seznámit s obsahem struktury, musíte si ji prohlížet po jednotlivých složkách.


Sledování hodnot proměnných
 Sledovače

Potřebujete-li po určitou dobu sledovat hodnotu určité proměnné nebo výrazu, debugger nabízí pro tento případ vytvořit tzv.  sledovače, tj. umístit proměnnou či výraz do zvláštního okna a po každém kroku aktualizovat výpis jejich hodnot.

Sledovač vytvoříte pomocí položky menu  Data / Přidat sledovač, tlačítkem [image] nebo stiskem kláves Ctrl+F7. Na obrazovce se objeví dialogové okno, v němž vyplníte identifikátor proměnné nebo výraz, který se má objevit i se svou hodnotou ve sledovači. Zadávání proměnně či výrazu lze urychlit tak, že je předem označíte jako blok nebo na nich umístíte kurzor.

Okno obsahující všechny sledovače je na obrazovce vždy v popředí (i když není aktivní). Pokud jej chcete z obrazovky odstranit nebo na obrazovku vrátit zpět, vyberte z menu debuggeru položku  Data / Okno se sledovači. Zavřením a opětovným otevřením okna se sledovači se jeho obsah neztratí.

V okně se sledovači jsou čtyři tlačítka. První dvě vyžadují, abyste před jejich stiskem označili některý sledovač. Tlačítkem  Modifikovat můžete změnit označený sledovač, např. místo jedné proměnné nechat sledovat jinou. Tlačítkem  Zrušit odstraníte označený sledovač. Tlačítko Přidat umožňuje přidávat nový sledovač a tlačítko  Zavřít zavírá okno se sledovači.

 Sledovače neumožňují měnit hodnoty sledovaných proměnných.

Je-li aktivní okno se sledovači, nelze ovládat debugger klávesovými zkratkami, např. vkládat bod zastavení klávesou F2. Proto buď použijte ovládání debuggeru z menu nebo lišty, anebo klikněte do okna s laděným programem a tím deaktivujte okno se sledovači.


 Prohlížení zásobníku

Pokud ladíte program zahrnující volání podprogramů, pak se během práce s debuggerem můžete podívat, které podprogramy jsou rozpracovány a jaké jsou hodnoty jejich parametrů. K tomu slouží položka  Podprogramy v menu debuggeru.

Tato položka otevře okno obsahující jednu řádku pro každý rozpracovaný podprogram a pro hlavní program. Hlavní program je na první řádce, podprogram, v němž se právě nacházíte, na poslední. Za jménem každého podprogramu jsou uvedeny hodnoty jeho parametrů oddělené čárkami. Parametry předávané referencí (odkazem) mají před hodnotou uvedeno slovo VAR. Pokud se podprogramu předává struktura, je její hodnota nahrazena hvězdičkou.

Chcete-li vidět, na které řádce byl z hlavního programu nebo z podprogramu zavolán podprogram uvedený ve výčtu pod ním, označte jej a stiskněte tlačítko  Ukázat. Kurzor se ve zdrojovém textu programu nastaví na tu řádku, na níž je přerušeno provádění označeného podprogramu.


Příkazy jazyka SQL
 Příkazy jazyka SQL ve WinBase602

Součástí WinBase602 je varianta jazyka SQL (Structured Query Language). Tento jazyk je již delší dobu standardem v oblasti definování schémat databází , zadávání operací nad daty a  formulování dotazů. Jazyk není zcela vhodný pro běžného uživatele databáze, jeho síla však výborně poslouží autorům databázových aplikací - viz Použití příkazů jazyka SQL.

příkaz	význam

CREATE TABLE	vytvoří novou prázdnou tabulku

ALTER TABLE	změní definici tabulky

DROP TABLE	zruší tabulku

CREATE INDEX	vytvoří nový index

DROP INDEX	zruší index

CREATE VIEW	vytvoří dotaz

DROP VIEW	zruší dotaz

DELETE	smaže záznam(y)

INSERT	přidá záznam(y) do tabulky

UPDATE	změní hodnoty atributu(ů) v záznamu(ech)

SELECT	vybere množinu záznamů

GRANT 	přidělí uživateli práva k tabulce

REVOKE	odebere uživateli práva k tabulce


 Použití příkazů jazyka SQL

Interaktivní práce

Při standardním způsobu práce s WinBase602 běžný uživatel přímo příkazy SQL nepoužívá. Vytváření a modifikování tabulek a dotazů sice probíhá prostřednictvím příkazů SQL, nicméně uživatel dává zpravidla přednost práci s návrhářem před zapisováním textové podoby příkazu. Pro kontrolu a zpětnou informaci je na liště návrhářů umístěno tlačítko SQL, které zobrazí textový tvar příslušného příkazu.

Příkaz CREATE TABLE a ALTER TABLE se edituje návrhářem tabulek.

Příkaz SELECT se edituje návrhářem dotazů.

Příkazy UPDATE, INSERT a DELETE se editují formulářem pro hromadnou změnu dat.

Programování

Ve vnitřním programovacím jazyce i v externích jazycích je možné (a někdy výhodné) SQL příkazy používat. K provedení všech těchto příkazů slouží funkce Sql_execute, která má jako parametr textový zápis SQL příkazu. Kromě toho ve funkci Define_table je možné použít SQL příkaz CREATE TABLE a funkce Open_sql_cursor  využívá SQL příkaz SELECT.


 SQL příkaz CREATE TABLE

CREATE TABLE jméno_tabulky (element [, element]…)

element může mít dvě podoby:

- popis_atributu

- popis_vlastnosti_tabulky

•	popis_atributu má tvar:

jméno_atributu typ [[cíl]][PREALLOC=n][EXPANDABLE]

[DEFAULT implic_hodnota]

[vlastnost_atributu [,vlastnost_atributu]…]

[COLLATE uspořádání_řetězce]

vlastnost_atributu je některá vlastnost z následujícího výčtu:

UNIQUE

PRIMARY KEY

INDEX

NOT NULL

REFERENCES jméno_tabulky2 vzdálený_atribut

CHECK (podmínka)

•	popis_vlastnosti_tabulky má tvar je některá vlastnost z následujícího výčtu:

[CONSTRAINT jméno_vlastnosti] UNIQUE

         (výraz [směr][, výraz [směr]]…)

[CONSTRAINT jméno_vlastnosti] PRIMARY KEY

         (výraz [směr][, výraz [směr]]…)

[CONSTRAINT jméno_vlastnosti] INDEX

         (výraz [směr][, výraz [směr]]…)

[CONSTRAINT jméno_vlastnosti] CHECK (podmínka)

[CONSTRAINT jméno_vlastnosti] FOREIGN KEY

        místní_atribut REFERENCES jméno_tabulky2

        vzdálené_atributy

Popis

Příkaz CREATE TABLE vytvoří novou prázdnou tabulku.

Příkaz obsahuje jméno nové tabulky a její popis. Popis tvoří popisy jednotlivých atributů a popis takových vlastností tabulky, které nelze definovat již v popisu atributů (např. index podle výrazu).

•	Popis jednotlivého atributu začíná jménem a typem. Jako datový typ je nutné uvést typ z jazyka SQL a nikoliv z WinBase602. Přehled vzájemně ekvivalentních datových typů z obou dvou jazyků - viz Přehled typů. Definujete-li ukazatel, uveďte za typem cílovou tabulku v hranatých závorkách. Definujete-li multiatribut, musíte uvést za daným typem klíčové slovo PREALLOC s počtem rezervovaných hodnot nebo EXPANDABLE pro překročení rezervovaného počtu hodnot, případně obojí.

Další údaj je nepovinné zadání implicitní hodnoty atributu. Zadaná hodnota musí být stejného typu jako atribut. Implicitní hodnotu nelze zadat pro multiatribut, atributy proměnné velikosti a sledovací atributy.

Pro řetězce lze použít speciální hodnotu USER, který způsobí, že do tohoto atributu se uloží jméno uživatele vkládajícího záznam.

Pro typ Integer lze použít speciální hodnotu UNIQUE, který zzpůsobí, že systém mu bude automaticky přidělovat unikátní hodnoty. Tento mechanismus funguje pouze tehdy, pokud do tohoto atributu nebudete nikdy nic explicitně zapisovat. V opačném případě se může stát, že systém zapíše do nového záznamu stejnou hodnotu, jakou jste ručně zapsali do jiného záznamu.

Vlastnosti atributu mají tento význam:

název	popis

UNIQUE	bude vytvořen unikátní index z hodnot tohoto atributu

PRIMARY KEY	totéž jako unikátní index, může však být v tabulce použit pouze jednou

INDEX	bude vytvořen index s možnými duplicitami hodnot klíče

NOT NULL	atribut nesmí mít hodnotu NONE

REFERENCES	uplatní se referenční integrita - popis a parametry viz návrh tabulky

CHECK	uplatní se integritní omezení atributu - popis viz návrh tabulky

Uspořádání řetězce se smí použít pouze u řetězcových typů. Pokud chcete mít řetězec typu CSSTRING nebo CSISTRING uveďte tento typ za klíčové slovo COLLATE.

•	V popisu vlastností tabulky se definují ty vlastnosti, které se týkají více než jednoho atributu.

název	popis

UNIQUE	bude vytvořen unikátní index podle výrazu nebo skupiny výrazů; za každým výrazem může následovat ASC nebo DESC pro určení způsobu třídění

PRIMARY KEY	totéž jako unikátní index, může však být v tabulce použit pouze jednou

INDEX	bude vytvořen obecný index s možnými duplicitami

FOREIGN KEY …REFERENCES

uplatní se referenční integrita - popis a parametry viz návrh tabulky

CHECK	uplatní se obecné integritní omezení - popis viz návrh tabulky

Příklad:

CREATE TABLE Zamestnan (

cislo INTEGER PRIMARY KEY CHECK (cislo > 0),

jmeno CHAR(12) COLLATE CSISTRING,

prijmeni CHAR(20) INDEX COLLATE CSISTRING,

dat_nast DATE,

plat NUMERIC(2,14) DEFAULT 10000 INDEX,

oddeleni SMALLINT INDEX REFERENCES Oddeleni Cislo_odd,

podobenka VARBINARY,

deti CHAR(12) EXPANDABLE COLLATE CSISTRING,

INDEX (Prijmeni, Jmeno),

INDEX (Plat*0.135 DESC))


Přehled ekvivalentních datových typů WinBase602-SQL
 Přehled ekvivalentních datových typů

V této tabulce jsou uvedeny datové typy WinBase602 a jim odpovídající typy v jazyce SQL, které můžete využít v příkazu CREATE TABLE.

WinBase602	SQL

BOOLEAN	BIT

CHAR	CHAR

SHORT	SMALLINT

INTEGER	INTEGER

MONEY	NUMERIC(2,14)

REAL	REAL

STRING	CHAR(N)

DATE	DATE

TIME	TIME

UKAZATEL	*POINTER

OBOUSMĚRNÝ UKAZATEL	*BIPTR

TEXT	LONG VARCHAR

RASTER	VARBINARY

OLE (NOSPEC)	LONG VARBINARY

AUTORIZACE	*AUTHOR

DATUMOVKA	*DATIM

HISTORIE	*HISTORY

 Typy SQL označené * (hvězdičkou) jsou rozšířením standardní množiny typů SQL.


 SQL příkaz ALTER TABLE

SQL příkaz ALTER TABLE má ve WinBase602 mírně pozměněnou syntaxi. Protože nepředpokládáme jeho použití v programech, nebude  zde popsán.


 SQL příkaz DROP TABLE

DROP TABLE jméno_tabulky [způsob]

způsob je jedna z možností: CASCADE nebo RESTRICT

Popis

Příkaz zruší zadanou tabulku. Je-li použit způsob CASCADE, zruší se i všechny podřízené tabulky v rámci referenční integrity. Použije-li se způsob RESTRICT, tabulku se nepodaří smazat, je-li na ní závislá jiná tabulka v rámci referenční integrity. Viz Referenční integrita

Příklad

DROP TABLE Zamestnan


 SQL příkaz CREATE INDEX

CREATE [UNIQUE] INDEX jméno_indexu

  ON jméno_tabulky (výraz [směr][, výraz [směr]]…)

Popis

Příkaz vytvoří nový index k zadané tabulce. Jméno tabulky lze zadat i se jménem aplikace ve tvaru :

[aplikace.]jméno_tabulky

Klíčové slovo UNIQUE způsobí vytvoření unikátního (jedinečného) indexu.

Každý index musí mít své jméno, na které se lze odkazovat.

Index je popsán množinou výrazů, následujících za klíčovým slovem ON. Každý výraz může být doplněn slovem DESC pro sestupné třídění. Implicitně se používá vzestupné třídění (slovo ASC).

Příklady

CREATE UNIQUE INDEX ind1

   ON Per_agen.Zamestnan (Cislo)

CREATE INDEX penize

   ON Zamestnan (Plat DESC, Prijmeni)


 SQL příkaz DROP INDEX

DROP INDEX jméno_indexu  FROM jméno_tabulky

Popis

Příkaz zruší index zadaný jménem jméno_indexu k tabulce jméno_tabulky. Jméno tabulky lze zadat i se jménem aplikace ve tvaru :

[aplikace.]jméno_tabulky

Konstrukce FROM jméno_tabulky je rozšířením WinBase602 oproti standardu SQL.

Příklady

DROP INDEX ind1 FROM Per_agen.Zamestnan

DROP INDEX penize FROM Zamestnan


 SQL příkaz CREATE VIEW

CREATE VIEW jméno_dotazu [(jméno_atributu,

   jméno_atributu, …)] AS příkaz_SELECT

Popis

Příkaz vytvoří dotaz uložený v databázi. Základem dotazu je příkaz SELECT , který vybere množinu záznamů z jedné nebo více tabulek. Jména atributů v odpovědi na dotaz lze změnit uvedením seznamu jmen v závorkách před klíčovým slovem AS.

Příklady

CREATE VIEW Plat6000 AS

SELECT *

FROM Zamestnan

WHERE Plat<6000

ORDER BY Prijmeni

CREATE VIEW Platy (Suma_Platu, Nazev_Odd) AS

SELECT Sum(Zamestnan.Plat),Oddeleni.Nazev

FROM Zamestnan, Oddeleni

WHERE Oddeleni.Cislo=Zamestan.Oddeleni

GROUP BY Oddeleni


 SQL příkaz DROP VIEW

DROP VIEW jméno_dotazu

Popis

Příkaz zruší dotaz uložený v databázi. Jméno dotazu může být uvedeno i s názvem aplikace ve tvaru:

[aplikace.]jméno_dotazu

Příklad

DROP VIEW Platy


 SQL příkaz DELETE

DELETE FROM jméno_tabulky [WHERE podmínka]

Popis

Příkaz vymaže záznamy z dané tabulky. Není-li použita omezující podmínka, příkaz vymaže všechny záznamy v tabulce, jinak se vymažou pouze záznamy podmínce vyhovující.

Příklad

DELETE FROM Zamestnan WHERE Oddeleni = 1


 SQL příkaz INSERT

INSERT INTO jméno_tabulky [(jméno_atributu [, jméno_atributu]…)] obsah

obsah je právě jedna z těchto možností:

•	VALUES (hodnota [,hodnota]…)

•	DEFAULT VALUES

•	příkaz SELECT

Popis

Příkaz vloží do dané tabulky jeden nebo více záznamů. Jsou-li za jménem tabulky uvedena v závorkách jména atributů, pak se zadané hodnoty zapíší po řadě do těchto atributů, a do ostatních se zapíší implicitní hodnoty. Pokud se jména atributů neuvedou, pak se hodnoty zapisují do všech atributů tabulky postupně počínaje prvním.

•	Použijete-li variantu VALUES, do tabulky se vloží jeden záznam s explicitně zadanými hodnotami. Počet zadávaných hodnot musí být menší nebo roven počtu atributů uvedených za jménem tabulky, resp. všech atributů tabulky.

•	DEFAULT VALUES vloží jeden záznam a vyplní ho implicitními hodnotami definovanými pro tuto tabulku.

•	Chcete-li vložit hodnoty vybrané z jiných tabulek, použijte poslední možnost. Potřebnou množinu záznamů vytvoříte pomocí příkazu SELECT (viz níže). Atributy v první části příkazu SELECT musí typem odpovídat atributům uvedeným za jménem tabulky v příkazu INSERT, resp. všem atributům tabulky.

Příklady

INSERT INTO Zamestnan (cislo, jmeno, prijmeni)

VALUES (55, Jan, Novák)

INSERT INTO Zamestnan DEFAULT VALUES

INSERT INTO Zamestnan

SELECT * FROM Kartoteka WHERE cis_oddel = 1

INSERT INTO Zamestnan (jmeno, prijmeni)

SELECT jmeno_n, prijmeni_n FROM Nabor WHERE prijaty


 SQL příkaz UPDATE

UPDATE jméno_tabulky

SET jméno_atributu=výraz [,jméno_atributu=výraz ]…

[WHERE podmínka]

Popis

Příkaz umožňuje hromadně změnit hodnoty atributů v tabulce. Provedením příkazu se každému uvedenému atributu přiřadí hodnota zadaná výrazem. Akce se provede s každým záznamem vyhovujícím podmínce, resp. se všemi záznamy v tabulce, pokud podmínka není uvedena.

Příklad

Zvýšit všem zaměstnancům z oddělení 1 plat o 10%:

UPDATE Zamestnan

SET Plat = Plat*1.1

WHERE Oddeleni = 1


 SQL příkaz SELECT

SELECT [DISTINCT] položka [AS jméno][, položka [AS jméno],…]

FROM seznam_tabulek

[WHERE podmínka]

[GROUP BY výraz [,výraz]…]

[HAVING podmínka]

[UNION příkaz_SELECT_bez_ORDER BY]

[ORDER BY položka[ DESC][,položka[ DESC]]…]

Popis

Příkaz umožňuje vybrat z jedné nebo více tabulek množinu záznamů. Struktura výsledného záznamu je dána položkami uvedenými za části SELECT. Tyto položky mohou být:

a) jména databázových atributů

b) agregované funkce

c) výrazy.

ad a) Jméno atributu se uvádí ve tvaru tabulka.atribut nebo alias.atribut, nemůže-li dojít k záměně jenom atribut. Je-li místo atributu uvedena hvězdička (*), znamená vybrat všechny atributy ze   všech tabulek, je-li uvedeno tabulka.* resp. alias.*, vyberou se atributy z dané tabulky (aliasu).

ad b) Agregované funkce jsou:

funkce	význam	vhodné typy
Sum	součet hodnot	Short, Integer, Money, Real
Avg	průměrná hodnota	Short, Integer, Money, Real, Time
Max	maximální hodnota	Short, Integer, Money, Real, Time, Date, String, CSString, CSIString, Char
Min	minimální hodnota	Short, Integer, Money, Real, Time, Date, String, CSString, CSIString, Char
Count	počet záznamů	všechny

Parametrem agregované funkce může být buď atribut nebo výraz. U funkce COUNT může být parametrem také hvězdička, výsledkem je pak počet všech záznamů ve skupině. Má-li funkce COUNT za parametr jméno atributu nebo výraz, výsledkem je počet těch záznamů, u nichž nemá parametr prázdnou hodnotu.

ad c) Obecné výrazy tvořené atributy, agregovanými funkcemi a standardními funkcemi jazyka. Agregované funkce nesmí však být do sebe vnořené.

Jméno za klíčovým slovem AS nahradí jméno položky názvem vlastním. Pro výrazy a agregované funkce se tvoří standardní názvy: pro výraz je EXPRn, pro agregované funkce SUMn, AVGn apod, kde n=1,2…n. Vlastní názvy musí splňovat podmínky pro identifikátory.

Klíčové slovo DISTINCT vyloučí z výsledku duplicitní záznamy.

Podmínkou WHERE můžete omezit vstupní množinu záznamů.

Pomocí GROUP BY definujete skupiny záznamů se stejnými hodnotami atributů. Přes takto definované skupiny se počítají agregované funkce. Není-li skupina určena, počítají se agregované funkce přes celou tabulku. Jsou-li v dotazu použity agregované funkce, musí atributy uvedené v  části SELECT být buď v definici skupiny nebo stát jako parametr agregované funkce.

Podmínka za HAVING omezuje výslednou množinu skupin vytvořených s pomocí GROUP BY.

UNION sjednocuje více rozdílných příkazů SELECT do jediného výsledku. U všech SELECTů musí být stejný počet položek stejného typu. Jsou-li v jedné části UNIONu použity agregované funkce ve výrazu, musí být tytéž agregované funkce použity ve výrazech ve stejném pořadí i v ostatních částech. Použití UNION automaticky znamená vybrat do odpovědi pouze rozdílné záznamy bez ohledu na to, zda duplicita vznikne v rámci jednoho SELECTu nebo až výsledným sjednocením.

ORDER BY zajistí setřídění výsledku. Jako položka třídění může stát:

a) jméno atributu pro atributy;

b) standardní nebo vlastní název pro výrazy a agregované funkce ze SELECTu,;

c) pořadové číslo položky z části SELECT pro všechno (nedoporučuje se, může poněkud zpomalit vytváření odpovědi).

Uvede-li se klíčové slovo DESC, setřídění bude od nejvyšších hodnot k nejnižším.

Podrobnější příklady příkazu SELECT najdete v kapitole Dotazy.

Příklad

Zjistěte průměrný plat za oddělení, do úvahy neberte ty zaměstnance, kteří nastoupili po začátku roku 1994. Dále je třeba vyloučit ta oddělení, která mají pouze jediného pracovníka:

SELECT DISTINCT Oddeleni, AVG(Plat) AS Prům_plat

FROM Zamestnan

WHERE Dat_nast <= 1.1.1994

GROUP BY Oddeleni

HAVING Count(Oddeleni) >1

ORDER BY Oddeleni


 SQL příkaz GRANT

GRANT výčet_práv

ON jméno_tabulky

TO seznam_uživatelů

výčet_práv může mít dvě podoby:

- ALL

- jednotlivé_právo [,jednotlivé_právo]…

jednotlivá_práva jsou:

DELETE

INSERT

SELECT

UPDATE[(seznam_atributů)]

REFERENCES[(seznam_atributů)]

seznam_uživatelů může mít dvě podoby:

- PUBLIC

- jméno_uživatele[,jméno_uživatele]…

Popis

Příkaz GRANT  nastaví práva k tabulce jméno_tabulky pro uživatele a skupiny určené v seznamu_uživatelů.

Ve výčtu_práv definujete, jaká práva se mají nastavit. Použijete-li slovo ALL, nastaví se všechna možná práva k tabulce. Chcete-li nastavit pouze některá práva, jednotlivě je vypíšete a oddělíte čárkami. K dispozici jsou tato práva:

DELETE - právo rušit záznamy;

INSERT - právo vkládat záznamy;

SELECT - právo číst všechny atributy;

REFERENCES - právo číst pouze některé atributy specifikované v seznamu_atributů. Není-li seznam_atributů uveden, právo číst platí pro všechny atributy (totéž co SELECT);

UPDATE - právo přepisovat jednotlivé atributy specifikované v seznamu_atributů. Není-li seznam_atributů uveden, právo přepisovat platí pro všechny atributy.

V seznamu_uživatelů určujete, koho se nastavení práv týká. Použijete-li slovo PUBLIC, práva se nastaví pro skupinu EVERYBODY. V jiném případě se nastaví těm uživatelům nebo skupinám, kteří jsou uvedeni jmenovitě.

Pokud uživatel nebo skupina má již určitá práva, pak práva uvedená v příkazu GRANT se k nim přidají.

Příklad

Dejte uživateli PETR právo mazat záznamy a editovat číslo pracovníka a jeho plat.

GRANT DELETE, UPDATE (Plat, Cislo)

ON Zamestan

TO Petr


 SQL příkaz REVOKE

REVOKE výčet_práv

ON jméno_tabulky

TO seznam_uživatelů

výčet_práv může mít dvě podoby:

- ALL

- jednotlivé_právo [,jednotlivé_právo]…

jednotlivá_práva jsou:

DELETE

INSERT

SELECT

UPDATE[(seznam_atributů)]

REFERENCES[(seznam_atributů)]

seznam_uživatelů může mít dvě podoby:

- PUBLIC

- jméno_uživatele[,jméno_uživatele]…

Popis

Příkaz REVOKE  odebere práva k tabulce jméno_tabulky uživatelům a skupinám určeným v seznamu_uživatelů.

Ve výčtu_práv definujete, jaká práva se mají odebrat. Použijete-li slovo ALL, odeberou se všechna možná práva k tabulce. Chcete-li odebrat pouze některá práva, jednotlivě je vypíšete a oddělíte čárkami. K dispozici jsou tato práva:

DELETE - právo rušit záznamy;

INSERT - právo vkládat záznamy;

SELECT - právo číst všechny atributy;

REFERENCES - právo číst pouze některé atributy specifikované v seznamu_atributů. Není-li seznam_atributů uveden, právo číst platí pro všechny atributy (totéž co SELECT);

UPDATE - právo přepisovat jednotlivé atributy specifikované v seznamu_atributů. Není-li seznam_atributů uveden, právo přepisovat platí pro všechny atributy.

V seznamu_uživatelů určujete, koho se odebrání práv týká. Použijete-li slovo PUBLIC, práva se odeberou skupině EVERYBODY. V jiném případě se odeberou těm uživatelům a skupinám, kteří jsou uvedeni jmenovitě.

Příklad

Všem uživatelům zabraňte v mazání záznamů a editaci čísla pracovníka a jeho platu.

REVOKE DELETE, UPDATE (Plat, Cislo)

ON Zamestan

TO PUBLIC


Správce databáze
Správní centrum databáze - všeobecná informace

Správní centrum je ovládacím místem WinBase602, do něhož má přístup pouze databázový administrátor (správce databáze). Má ikonu označenou "Správce WinBase602".

Správce databáze má rozhodovací i výkonnou pravomoc v těchto otázkách:

  volba způsobu zabezpečení provozu databáze a výkon činností, které jsou pro zabezpečení nezbytné

  volba provozních parametrů databáze (např. volba vhodného kompromisu mezi rychlostí práce a možností restaurace při poškození databáze)

  provádění údržby databáze (např. realizace kompromisu mezi možností obnovit zrušená data a nutností šetřit místem v databázi)

  rozhodování o právech jednotlivých uživatelů pracovat s určitými daty, s určitými pohledy, tabulkami, programy atd. (část této pravomoci je rozdělena i mezi uživatele)

  rozhodování o právu uživatele předávat sobě přidělená práva jiným uživatelům

  správa hesel uživatelů (část této pravomoci je rozdělena i mezi uživatele)

  převzetí jmen uživatelů a skupin ze sítě Novell NetWare (ve verzi 4.32 dočasně nefunguje)

  obnovování omylem zrušené informace v databázi

  provádění rekonstrukce databáze poškozené např. technickou poruchou

Systém nápověd k Správnímu centru obsahuje tyto hlavní body:

- hlavní menu

- parametry provozu

- ochrana journalem


Hlavní menu
Hlavní menu programu Správce WinBase602

Hlavní menu správního centra nabízí tyto akce:

Server - Globální řízení databázového serveru:

   Přehled uživatelů Zobrazí jména všech uživatelů přihlášených na serveru a umožní odpojit vybraného uživatele - Přehled uživatelů

   Přehled zámků Zobrazí přehled všech zámků umístěných uživateli na záznamech v tabulkách.

   Zámek na serveru Dovoluje zamknout server, tj. znemožnit uživatelům se přihlašovat na tento server, a odemknout server. Zamčený stav serveru je indikován značkou u této položky menu. Server nelze zamknout, pracuje-li s ním nějaký jiný uživatel. Je-li server zamčen, přihlašující se

uživatel obdrží zprávu, že  databázový server odmítá komunikovat.

   Provozní parametry Nastavení provozních parametrů, které mají vliv na rychlost a zabezpečení databáze.

   Opravy databáze Tato položka otevře dialogové okno, které dovoluje kontrolu a opravování struktury databáze (např. nalezení ztracených kusů diskové paměti). Viz Oprava databáze

K provedení posledních dvou akcí je nutné zamčení serveru. Pokud server nebyl dosud zamčen, bude zamčen při vybrání položky. Nelze vybrat, pokud jsou na server připojení jiní uživatelé.

   Konec Ukončení práce ve správním centru.

Tabulky - Toto submenu obsahuje akce vztahující se specificky k určité tabulce. Při volbě tabulky, po níž má být akce provedena, je nutno volit jak jméno aplikace, do níž tabulka patří, tak i jméno tabulky.

   Obnovit zrušené záznamy Umožňuje učinit ze zrušených záznamů v tabulce normální, platné záznamy. Viz Obnovení zrušených záznamů

   Uvolnit zrušené záznamy Dá zrušené záznamy v tabulce k dispozici pro přepsání jinými záznamy. Takto uvolněné záznamy již nelze později obnovit. Viz Uvolnění zrušený záznamů

   Statistika Vypíše počet platných, zrušených a uvolněných záznamů v tabulce.

   Opravit indexy Znovu vybuduje všechny indexy k vybrané tabulce. Viz Rekonstrukce indexů

   Zapomenout historii Vymaže část historie položek v tabulce. Viz Zapomenutí historie

Uživatelé - práce s uživateli WinBase602

   Správa uživatelů - Otevře dialog pro nastavení uživatelů a jejich skupin - viz Uživatelé

   Přidat síťové uživatele - hromadné přenesení jmen uživatelů a jmen skupin uživatelů sítě Novell NetWare do WinBase602. Zároveň lze přenést i vazby mezi uživateli a skupinami, tedy náležení uživatelů do jednotlivých skupin - viz Přidání síťových uživatelů

Journal - práce s journalem (žurnálem) aktualizací databáze - viz Ochrana journalem

   Přehrát journal - aktualizace databáze - viz Přehrání journalu

   Vztah kopie a journalu - informace o tom, z jak staré záložní kopie lze s pomocí journalu obnovit současný stav databáze. Kopie musí být vytvořena dříve, než je datum prvního záznamu v journalu.

Nápověda - Informace o ovládání a stavu databáze.


Přidání síťových uživatelů

Pokud tatáž osoba používá ve WinBase602 i v Novell Netware stejné jméno, pak se po přihlášení do sítě již nemusí přihlašovat do WinBase602. Proto je užitečné po instalaci WinBase602 vytvořit v ní stejnou strukturu uživatelů (a případně i jejich skupin) jaká již existuje v lokální síti.

Dvojice přepínačů Síťoví uživatelé a Síťové skupiny přepíná obsah obou seznamů v dialogovém okně. Nastavíte-li Síťoví uživatelé, v levém okně je seznam všech uživatelů sítě NetWare a pro vybraného uživatele se v pravém okně objeví seznam skupin, jichž je členem. Nastavíte-li Síťové skupiny, v levém okně je seznam všech skupin sítě NetWare, a pro vybranou skupinu se v pravém okně objeví seznam uživatelů, kteří jsou členy této skupiny.

Hvězdička před jménem objektu v seznamu znamená, že ve WinBase602 již je definován uživatel nebo skupina se stejným jménem. Objekty v pravém okně mohou být navíc označeny i druhou hvězdičkou. Ta říká, že označený objekt nejen ve WinBase602 existuje, ale je i ve správném vztahu "náležení" s označeným objektem v levém seznamu.

Tlačítka mají tento význam:

   Přidat - přidat objekt označený v levém okně do WinBase602;

   Vybrat všechny - označit všechny položky seznamu pravého okna, opětovné zmáčknutí naopak zruší označení všech objektů;

   Přidat položky- přidat všechny objekty označené v pravém okně do WinBase602;

   Přidat položky, vytvořit vazby - přidat všechny objekty označené v pravém okně do WinBase602 a okopírovat i vztah náležení mezi uživateli a jejich skupinami na objekt vybraný v levém okně.


Přehled uživatelů

Dialogové okno zobrazí jména všech uživatelů přihlášených na serveru a umožní vybraného uživatele odpojit. Odpojený síťový uživatel obdrží zprávu, že  databázový server odmítá komunikovat a může pouze ukončit svoji aplikaci. Odpojování pracujících uživatelů patří mezi hrubé zásahy, které by se za normálních okolností neměly příliš používat.

K dispozici jsou tato tlačítka:

   Aktualizovat - zjištění aktuálního stavu připojených uživatelů - při síťovém provozu se mohli další uživatelé přihlásit či odhlásit v době od otevření tohoto dialogu;

   Zavřít seznam - zavření okna a ukončení práce;

   Odpojit - odpojení vybraného uživatele - nelze odpojit uživatele DB_ADMIN který spustil program Správce.


Přehled zámků

Dialogové okno zobrazí přehled všech zámků umístěných uživateli na záznamech v tabulkách ve tvaru:  JMÉNO_TABULKY: Číslo záznamu, JMÉNO UŽIVATELE (druh zámku).

Při zamčení objektu se též zamkne příslušný záznam tabulky objektů (tabulek).

Umožňuje také zrušit vybraný zámek, ale takovou akci by ani správce neměl za normálních okolností provádět.

K dispozici jsou tato tlačítka:

   Aktualizovat seznam - zjištění aktuálního stavu umístěných zámků - při síťovém provozu mohly být další zámky umístěny v době od otevření tohoto dialogu;

   Zavřít seznam - zavření okna a ukončení práce;

   Odstranit zámek - zrušení vybraného zámku.


Parametry provozu
Parametry provozu WinBase602

Položka  Druh provozu v menu správního centra otevírá okno, v němž lze nastavit tyto parametry:

Použití journalu - volba, mají-li se aktualizace mají zapisovat do journalu; způsobí malé zpomalení provozu serveru - viz ochrana journalem

Jištění transakcí - volba, zda je jištěno uzavírání transakce (dvoufázový commit); způsobí zpomalení serveru - viz transakční režim

Zápis změn na disk při uzavření transakce - má-li se vynutit po každé transakci zápis na pevný disk z cache; způsobí značné zpomalení běhu serveru

Nastavené parametry se zaznamenají do databáze a zůstanou v platnosti až do další změny.

K provedení této akce je nutné zamknutí serveru. Pokud server nebyl dosud zamčen, bude zamčen při vybrání této položky. Parametry nelze nastavit, pokud jsou na server připojení jiní uživatelé.


 Obnovení zrušených záznamů

Záznamy zrušené v pohledech nejsou stále ještě ztraceny.  Tyto záznamy existují do té doby, dokud se neprovede jejich globální uvolnění. Uvolněné záznamy  již NELZE bez záložní kopie obnovit.

Pro obnovení omylem zrušených záznamů vyberte v hlavním menu správního centra položku Tabulky / Obnovit zrušené záznamy a z nabídky tabulek označte tu, jež obsahuje záznamy, které chcete získat zpět a stiskněte tlačítko Vybráno.

Otevře se  pohled na obsah vybrané tabulky. Na rozdíl od běžných pohledů jsou v tomto pohledu také zrušené záznamy. Každý záznam začíná atributem typu  Boolean zobrazeným jako označovací čtverec se slovem Zrušeno?. Pokud je tento čtverec zatržen, pak je záznam zrušený, pokud není zatržen, pak záznam zrušený není. Záznam lze obnovit tak, že zatržení odstraníte (např. stiskem tlačítka myši na příslušném čtverci). Pokud je označovací čtverec šedý, pak je záznam již uvolněný. Šedý čtverec nelze nijak přepsat.

Obnovovat lze i zrušené definice objektů. Definice tabulek jsou v tabulce TABTAB, definice všech ostatních objektů jsou v tabulce OBJTAB. Nelze však takto obnovit data ze zrušené tabulky. Nelze také obnovit objekty poté, co je zrušena celá aplikace!.


Uvolnění zrušených záznamů

Místo, které zabíraly záznamy zrušené uživatelem, je v každé tabulce rezervováno do té doby, dokud se všechny takové záznamy neuvolní. Provede-li se operace uvolnění, pak hodnoty atributů proměnné délky se oddělí od pevné části záznamu (a mohou být přepsány čímkoli jiným) a pevná

část se může přidělit některému nově vznikajícímu záznamu.

Uvolnění zrušených záznamů se provádí vždy na všechny záznamy z určité zvolené tabulky. Velikost této tabulky se tím zmenší o zrušené záznamy, které byly na jejím konci. Zrušené záznamy, které mají za sebou v tabulce nějaké nezrušené záznamy, vytvoří volné místo uvnitř tabulky, využitelné operací Insert.

Pokud vyvíjíte nové databázové aplikace, je záhodno občas uvolňovat záznamy i ve služebních tabulkách TABTAB a OBJTAB. Např. každým předefinováním tabulky vzniká zrušený záznam v TABTAB. Vysoký počet záznamů v těchto tabulkách by mohl trochu (ne příliš) snížit rychlost WinBase602.

Uvolnění se provede po vybrání položky Tabulky / Uvolnit zrušené záznamy z hlavního menu správního centra. V dialogovém okně vyberte tabulku, jež obsahuje zrušené záznamy, které chcete uvolnit, a stiskněte tlačítko Vybráno.

Uvolnění záznamů v tabulkách své aplikace může provádět i kterýkoli uživatel WinBase602 přímo z hlavního menu WinBase602 a lze jej provést také z kterékoli aplikace pomocí funkce Free_deleted.


Oprava poškozené databáze

Při provozu databáze může dojít z různých příčin k jejímu poškození. Kupříkladu ke ztrátě malého množství (nevyužité) diskové paměti dochází pokaždé, když je server nekorektně ukončen (např. resetováním počítače za běhu).

Proto je WinBase602 vybavena nástroji, které dokážou nalézt a odstranit některé druhy chyb ve struktuře databáze.

   a) Je-li zatržen čtverec Ztracené bloky nebo Ztracené kusy diskové paměti, vracejí se tyto objekty do správy volné diskové paměti.

   b) Je-li zatržen čtverec Dvojí využití diskové paměti, pak pokaždé, když dva databázové objekty sdílejí stejný kus diskové paměti, každý z nich obdrží vlastní kopii. Je nutno ovšem počítat s tím, že pouze jeden z těchto objektů bude mít v této diskové paměti správná data.

   c) Je-li zatržen čtverec Zničené definice tabulek, pak se z databáze odstraní ty tabulky, s nimiž nelze dělat vůbec nic. Tato akce se netýká tabulek, které pouze obsahují poškozená data.

   d) Je-li zatržen čtverec Odkazy na neexistující bloky, pak se z tabulek a indexů odstraní odkazy vedoucí do prázdna. Po této akci by měl být odblokován export poškozených tabulek a práce s nepoškozenými částmi informace.

Hledání chyb v rozsáhlé databázi i jejich opravování může být časově náročné.

Z hlavního menu správního centra vyberte položku Server / Opravy databáze. Otevře se dialogové okno, v němž pomocí označovacích čtverců zvolíte, které druhy chyb vás zajímají. Poté stisknete tlačítko Zjistit počet chyb nebo Opravit chyby.

Tlačítkem Zjistit počet chyb zahájíte kontrolu obsahu databáze. Poté, co kontrola skončí, se vedle zatržených položek objeví počty zjištěných chyb příslušných druhů.

K provedení této akce je nutné zamčení serveru. Pokud server nebyl dosud zamčen, bude zamčen při vybrání této položky. Databázi nelze opravovat, pokud jsou na server připojení jiní uživatelé.


Rekonstrukce indexů

Nedokončení aktualizační operace může mít za následek poškození indexových souborů (může k tomu dojít, pokud se nepracuje transakčním způsobem). Pokud se zjistí, že se chyby omezují pouze na indexy, pak je lze nechat znovu vytvořit.

To je podstatně rychlejší i bezpečnější akce, než obnovování obsahu databáze ze záložní kopie a její aktualizování z journalu.

Z hlavního menu správního centra vyberte položku Tabulky / Opravit indexy . V dialogovém okně vyberte tabulku, jež obsahuje poškozené indexy a stiskněte tlačítko Vybráno. Přebudování indexů může u větších tabulek trvat nějaký čas. o průběhu indexace jste informováni v informační řádce.


Zapomenutí historie

Při aktualizacích určitých atributů se (v souladu s definicí tabulky) může zapamatovat přepisovaná hodnota. Minulým hodnotám atributů se říká historie. Rozsah této historie neustále roste, a proto je občas žádoucí její část "zapomenout''.

Do historie nelze explicitně zasahovat, existuje však jedna výjimka. Správce databáze může vyvolat "zapomenutí" části historie pro zadanou tabulku. K tomu slouží položka  Tabulky / Zapomenout historii v hlavním menu  správního centra.

Dialogové okno nabízí dvě možností, jak historii omezit:

   Omezit počet záznamů v historii, tedy z historie každého atributu ponechat pouze stanovený počet nejnovějších hodnot.

   Zapomenout záznamy pořízené před určitým datem, tedy dále si pamatovat pouze historii novější než určité zadané datum.

Správce ze seznamu vybere tabulku, které se tato akce týká. Dále zvolí jednu z možností omezení a podle toho zadá buď počet záznamů nebo datum a stiskne tlačítko Provést akci.


Ochrana journalem

WinBase602 může pracovat tak, že se vede  journal všech aktualizací. To znamená, že pro každou aktualizaci obsahu databáze se nová hodnota zapsaná do databáze zaznamenává navíc na určité vyhrazené místo. Těmto záznamům se říká journal.

Existence journalu má vliv na spolehlivost databáze  pouze v kombinaci s pořizováním záložních kopií. Kopie dovoluje obnovit obsah databáze v tom stavu, v němž byl při vytvoření kopie. Na základě obsahu journalu lze pak zopakovat všechny aktualizace, které byly provedeny od pořízení kopie až do zadaného okamžiku (např. do okamžiku zhroucení databáze).

Pro journal je rezervován zvláštní soubor. Je umístěn ve stejném adresáři jako konfigurační soubor databáze a jmenuje se JOURNAL.FIL. Tento soubor při aktualizacích v databázi neustále roste - přidávají se do něj informace o nových a nových změnách. Po vytvoření nové záložní kopie můžete journal smazat.

K tomu, abyste stav databáze obnovený ze záložní kopie mohli pomocí journalu aktualizovat, musíte v něm mít všechny záznamy od doby, kdy byla záložní kopie vytvořena.

Pokud po vytvoření záložní kopie journal nesmažete, pak lze databázi obnovit i ze záložních kopií staršího data. Tím se zvětšuje míra zabezpečení. Ve správním centru WinBase602 lze zjistit, z jak staré záložní kopie lze s pomocí journalu obnovit současný stav databáze.

Na rozdíl od transakčního zpracování dokáže journal čelit podstatně širší třídě katastrof, ale vyžaduje složitější restauraci (restaurace není automatická). Obnovení se provede po vybrání položky menu Journal / Přehrát journal - viz Přehrání journalu.


Přehrání journalu

Akce  Přehrání journalu opakuje aktualizace zaznamenané v journalu. Přitom přeskakuje akce provedené vyloučeným uživatelem a skončí na zadaném časovém limitu nebo po projití všech záznamů v journalu.

Dialogové okno se skládá ze tří částí:

   needitovatelného okna s časovým údajem, který odpovídá současnému stavu databáze;

   skupiny složek Omezení časem pro časový limit aktualizace - viz Omezení času;

   skupiny složek Vyloučení uživatele pro vynechání aktualizací některého uživatele - viz Vyloučení uživatele.

Po přehrávání se na obrazovku vypíše počet provedených aktualizací, počet chyb při provádění aktualizací a počet neprovedených akcí vyloučeného uživatele. Není-li k dispozici journal nebo nesouhlasí časové údaje journalu a kopie, vypíše se Journal neobsahuje platné záznamy.


Omezení času při aktualizaci
Omezení času

Během aktualizace databáze se neustále opakuje tento proces:

  1. z journalu se vybere nejstarší aktualizace, která je novější než stav databáze;

  2. tato aktualizace se provede;

  3. stav databáze se posune kupředu na okamžik, který je zapsán ve vybrané aktualizaci.

Lze zadat omezení, do jakého času má tento proces pokračovat. Databázi lze aktualizovat po krocích: lze postupně zvyšovat časový limit a přehrávat určitý interval aktualizací. Omezením času lze ve spolupráci s vyloučením určitého uživatele vynechat např. akci, která vedla ke ztrátě důležitých dat.

Do příslušných polí zadáte datum a čas, kdy se má aktualizace zastavit. Tlačítkem Zrušit omezení tuto podmínku zrušíte.


Vyloučení uživatele z aktualizace

Z aktualizací lze vyloučit akce, které byly provedeny určitým uživatelem. Jméno tohoto uživatele lze vybrat ze seznamu v dialogovém okně. Při zadávání jména uživatele musí být databáze v takovém stavu, že vylučovaný uživatel v ní existuje.

Aktualizace s vyloučením některého uživatele může ovšem vést k chybám, pokud akce jiných uživatelů navazují na vyloučené akce, například pokud jiní uživatelé chtějí zapisovat do záznamů, které vyloučený uživatel vytvořil. Proto doporučujeme používat vyloučení pouze v krajních případech: např. K "odzrušení" zrušené tabulky apod.


Ochrana transakcemi

Transakční způsob provozu databáze je metoda ochrany proti vzniku nekonzistencí způsobených nedokončením série navzájem souvisejících aktualizací.

Databázové jádro je schopno sdružovat operace do tzv. transakcí. V transakčním režimu práce jádro zaručuje, že za každých okolností se transakce provede buď celá, nebo se neprovede vůbec. To platí i tehdy, pokud uprostřed provádění transakce vypadne napájení počítače!

Uživatel má  možnost v aplikačním programu prohlásit skupinu aktualizací  za jednu transakci tak, že na začátku zavolá funkci Start_transaction a na konci funkci Commit. Je tím zaručeno, že pokud tyto aktualizace např. přenášejí peníze z jednoho účtu na druhý, nemůže se stát, že by se z prvního účtu odečetly, ale na druhý nepřičetly.

Pro svoje interní operace si WinBase602 definuje transakce sama, nelze je vypnout.

Při jištění transakce se používá tzv. dvoufázový commit, který zajistí konzistenci databáze i v případě, že by k výpadku došlo během provádění funkce Commit. Na rozdíl od použití transakcí jištění transakcí zapíná a vypíná správce ve správním centru WinBase602. Nic nebrání tomu, aby se transakční režim zapínal a vypínal podle okamžitých okolností. Například během importu většího množství dat, což je časově náročná operace, je rozumné transakční zpracování vypnout.

Zatímco použití transakcí snižuje počet zápisů na disk v aktualizacích a zrychluje činnost databáze, jištění transakcí vyžaduje přibližně dvojnásobek diskových operací při každé transakci oproti stavu bez jištění. Na rychlost čtení a vyhledávání nemají transakce žádný vliv.

Ve Windows je často použit program program typu diskové cache, který odkládá zápisy na disk na pozdější dobu, čímž značně zrychluje běh aplikace, nicméně znemožňuje programům mít kontrolu nad tím, jsou-li data zapsána na disku nebo pouze v paměti. Ve WinBase602 je proto možno transakce zapisovat přímo na disk - zapíná se ve správním centru WinBase602 (menu Server / Parametry provozu).


Program Berle

Program BERLE slouží k záchraně databáze, které se dostala do takového stavu, že na ní nelze spustit program WB602.EXE (chybové hlášení "Poškozen databázový soubor" případně i "Chybná verze serveru").

K této situaci může dojít například tehdy, pokud nějaký program přepíše část obsahu databázového souboru.

I v této situaci mohou však některé části dat v databázi být nepoškozené. Program BERLE se pokusí uvést databázi do takového stavu, abyste z ní mohli nepoškozená data exportovat.

POZOR: Nepoužívejte program BERLE v situaci, kdy se databáze spustit sice dá, ale některá její část je poškozená nebo některá data scházejí.

Viz Spuštění Berle a Použití Berle


Spuštění programu Berle

Program BERLE spustíte pod Windows ve Správci programů pomocí položky menu Soubor / Spusť. Program BERLE zcela záměrně nemá vlastní ikonu, aby se tak zvýraznila výjimečnost jeho použití. Jako parametr příkazové řádky musíte uvést znak & a cestu k adresáři, který obsahuje konfigurační soubor poškozené databáze.

Příklad: Je-li program BERLE v adresáři C:\ WB602 a konfigurační soubor databáze je tamtéž, zadáte:

C:\WB602\BERLE.EXE  &C:\WB602

Program BERLE nelze použít, pokud není k dispozici konfigurační soubor databáze.

Viz Použití Berle


 Použití programu Berle

Po úspěšném provedení programu BERLE spusťte program WB602.EXE s parametrem /B. Tento parametr zabrání případné kompilaci programu ve vnitřním jazyce při otevírání aplikace a tím i zápisu na disk.

Dále pak pracujte s WinBase602 obvyklým způsobem a proveďte export definic objektů a dat z tabulek do souborů. Data doporučujeme exportovat ve vnitřním formátu WinBase602.

Je jistější exportovat jednotlivé komponenty každé aplikace než aplikaci jako celek, protože jedna poškozená komponenta zabrání exportu dalších komponent aplikace.

Nepokoušejte se do databáze podepřené programem BERLE cokoli zapisovat !!

Po exportu všech objektů a dat, která se dají zachránit, vytvořte databázi znova. Jsou-li programy WinBase602 nepoškozeny, nemusíte ji instalovat z distribučních disket, ale stačí vytvořit databázi pomocí ikony ``Instalace WinBase602''. Z menu tohoto programu si vyberete položku  Vytvoření databáze.

Po novém vytvoření je databáze prázdná a můžete do ní importovat data zachráněná z poškozené databáze.


Instalační program verze
Program Instalace WinBase602

Součástí dodávky WinBase602 je program pro správu instalací a databází.  Program je dostupný pod jménem WBINST.EXE a je spustitelný pomocí ikony s názvem "Instalace WinBase602".

Tento program nemá vlastní menu či lištu, ze kterého by šlo vyvolat nápovědu, naopak v pětadevadesátkovém duchu obsahuje nápovědné tlačítko v záhlaví okna, kterým můžete ukázat na libovolnou složku okna a dostat tak konkrétní nápovědu.

Podstata správy WinBase602 spočívá v tom, že se odděleně spravují instalace (kompletní soustavy programů a knihoven zajišťujících chod WinBase602) a databáze.

Narozdíl od dřívějších verzí, 32 bitová WinBase602 neumožňuje instalovat databázi do oddílu (partition).


Provozní systém (runtime) WBR602.EXE
Provozní systém (runtime)

Provozní systém (runtime) WBR602.EXE je program, který umožní spuštění připravené aplikace, nepovolí však žádné její úpravy.

Šíření nesíťových aplikací WinBase602 s runtime modulem nepodléhá žádné registrační ani oznamovací povinnosti vůči distributorovi. V případě aplikace pro provoz v síti se na podmínky informujte u prodejce.

Instalace aplikací WinBase602

K tomu, aby aplikace mohla sama pracovat, musí na počítači proběhnout instalace provozního systému (resp. vývojového prostředí). Součástí instalace provozního systému je (na závěr) import aplikace do databáze a vytvoření ikony, která umožní její spuštění.

Viz také

- Menu provozního systému

- Ovládání provozního systému

- Vytvoření disket a instalace runtime systému

- Popis parametrů WBR602


Provozní systém - ovládání

Provozní systém WinBase602 obsahuje redukované menu, které slouží k nastavení parametrů, jež mohou ovlivnit běh aplikace, a řídicí panel aplikací, obdobný jako ve vývojovém prostředí.

Řídicí panel má aktivní pouze tato tlačítka:

    Spustit - vybraná aplikace se spustí (startovním objektem);

    Importovat - po výběru definičního APL souboru naimportuje aplikaci do databáze;

    Zrušit (přes tlačítko Další funkce) - vymaže všechny komponenty aplikace z databáze.

Je -li aplikace spuštěna z řídicího panelu, po skončení aplikace se opět objeví řídicí panel. Je-li však aplikace spuštěna ikonou, řídicí panel se neobjeví a po skončení aplikace skončí i provozní systém.


Provozní systém - menu

Menu provozního systému WinBase602 obsahuje pouze několik položek:

Aplikace

   Odhlásit se - umožní přihlásit se jinému uživateli;

   Konec - ukončení práce s provozním systémem;

Práva

    Uživatelé - společný dialog pro správu uživatelů a jejich hesel - viz Správa uživatelů

Nástroje

    Parametry - nastavení globálních parametrů WinBase602 - viz Parametry WinBase602;

Nápověda - položky pro práci s nápovědou


Vytvoření disket instalace provozního systému
Vytvoření instalačních disket a instalace provozního systému

Instalace aplikace na počítač, kde dosud není nainstalována WinBase602, bude probíhat v těchto krocích:

  1) Přenesení souborů provozního systému na cílový počítač

  2) Vytvoření prázdné databáze na cílovém počítači

  3) Import aplikace do databáze a vytvoření ikony, která spouští aplikaci

Postup při vytváření instalačních disket provozního systému je následující:

viz soubor CTI-MNE

- Parametry programu WBR602.EXE


Parametry volání programu
 Parametry volání programu WBR602.EXE

Programu WBR602.EXE (provoznímu systému) i WB602 (vývojovému prostředí) lze na příkazové řádce předat některé parametry. Jsou to:

& (&*) -  výběr serveru

jméno aplikace - volba aplikace, která se automaticky spustí

/Csoubor EXX - spuštění přeloženého programu

/Z - hlavní okno programu se otevře v maximalizované podobě (přes celou obrazovku);

/D - bude blokováno uzavření programu ze systémového menu (dvojím kliknutím i položkou Konec).


Výběr serveru
Výběr serveru při spuštění klienta

V parametru příkazové řádky začínajícím znakem & doporučujeme uvádět místo cesty k databázi pouze jméno zaregistrované databáze.

Následuje-li na příkazové řádce klienta za znakem & hvězdička nebo hvězdička a jméno serveru, WinBase602 se chová stejně jako ve starších verzích - buď nabídne jména běžících serverů v síti anebo se pokusí připojit na zadaný server. Je-li za znakem & pouze jméno serveru, postupuje se takto:

•	pokud server tohoto jména běží na lokálním počítači, klient se připojí na něj;

•	pokud na lokálním počítači běží jiný server, klient se pokusí najít běžící server tohoto jména v síti;

•	pokud na lokálním počítači neběží žádný server, pak:

•	pokud jméno serveru není registrováno, ohlásí se chyba;

•	pokud jméno serveru je registrováno spolu s cestou ke konfiguračnímu souboru, klient spustí server (takto spuštěný server skončí po odpojení posledního klienta);

•	pokud jméno serveru je registrováno bez cesty ke konfiguračnímu souboru, klient se pokusí najít běžící server tohoto jména v síti.

Výsledkem je, že uvedení hvězdičky za & vynucuje síťové připojení na server, zatímco jméno serveru bez hvězdičky způsobí hledání serveru napřed lokálně, a pak v síti.


Volba aplikace na příkazové řádce

Na příkazové řádce programu WBR602.EXE je možno uvést jméno aplikace. Pokud je tato aplikace v databázi, pak je automaticky spuštěna (předpokládá se, že má označený startovní objekt).

Příklad:

WBR602.EXE &SERVER_1 KNIHOVNA


Spuštění kódu programu

Na příkazové řádce programu WBR602.EXE lze specifikovat, že se má spustit program, který je v souboru v přeloženém tvaru. Takový požadavek vyjádříte parametrem /C soubor. Tento parametr se smí použít pouze v kombinaci s parametrem udávajícím jméno spouštěné aplikace. Pokud aplikace obsahuje startovní objekt, ten se ignoruje.

Příklad:

 WBR602.EXE &SERVER_1 SKLAD /CC:\APLIKACE\INVENTUR.EXX

Této varianty se používá tehdy, není-li k dispozici zdrojový text programu


Program Záloha
 WinBase602 Záloha

Program WinBase602 Záloha slouží k vytvoření záložní kopie databáze nebo k obnovení obsahu databáze ze záložní kopie.

Nepodceňujte význam vytváření záložních kopií - v součinnosti s Journalem aktualizací to je jediný spolehlivý způsob ochrany před ztrátou dat.

Menu programu má (mimo nápovědu) pouze dvě akční položky

  Vytvořit záložní kopii databáze - viz Vytvoření

  Obnovit databázi ze záložní kopie - viz Načtení

Pokud byla databáze zcela smazána (smazány soubory WINBASE.FIL nebo WB.CNF), takže není kam načíst obsah záložní kopie, musíte před použitím programu Záloha znovu databázi vytvořit instalačním programem Instalace WinBase602.


Načtení záložní kopie
Načtení záložní kopie (Obnovení databáze)

Pro načtení kopie programem Záloha je třeba zadat umístění kopie (zda je na disketách nebo v souboru na pevném disku) a v druhém případě také jméno souboru. Akce se spustí tlačítkem Přečíst kopii. Poté program přečte obsah kopie a nahradí jím dosavadní obsah databáze. Je-li záložní kopie na disketách, program si postupně říká o jednotlivé diskety.

 Úspěšné načtení ohlásí program hláškou Kopie byla přečtena.

Došlo-li při čtení k chybě (nejčastěji hardwarové - špatné diskety), obnovování skončí a program vypíše informaci  Databáze je v nedefinovaném stavu. Nyní se můžete pokusit spustit WinBase602 a vyexportovat důležité aplikace, není však zaručeno, že se to podaří.


Vytvoření záložní kopie
Vytvoření záložní kopie databáze

Program Záloha WinBase602 umožňuje vytvoření záložní kopie celého obsahu databáze dvojím způsobem:

   na diskety; při vytváření kopie na diskety musíte mít k dispozici dostatek zformátovaných disket. Lze použít jak 5 1/4 palcové, tak i 3 1/2 palcové diskety. Doporučujeme označit archivní diskety datem pořízení kopie a pořadovým číslem diskety v rámci kopie.

   do souboru na pevném disku pod správou operačního systému; v tomto případě je nutno zadat jméno souboru, do něhož se záloha provede, včetně plné cesty.

Vlastní vytváření zálohy se spustí tlačítkem Vytvořit kopii. Pokud se záloha zapisuje na diskety, budete průběžně informováni o nutnosti vložení nové diskety.

Alternativní cestou je archivovat soubory WB.CNF a WINBASE.FIL .


 Server WinBase602

 Databázový server WinBase602 (program WBSERVER.EXE) je program, který spravuje data a poskytuje služby databázovým klientům.

Spustit server samostatně pomocí ikony vzniklé instalací (WinBase602 Server) je možno pouze na počítači zapojeném do lokální sítě. Po spuštění serveru se na něj mohou připojovat z ostatních stanic v síti databázoví klienti. Programy a aplikace, které se mohou přihlašovat ke vzdálenému serveru v rámci sítě, mají na své příkazové řádce parametr &*(např. ikona WinBase602 Net ). Na jednom počítači je možno spustit pouze jeden server.

Nepodaří-li se WinBase602 navázat síťové spojení, oznámí Nelze inicializovat komunikaci v síti a ukončí program.

Spouštíte-li vývojové prostředí (ikonou WinBase602) nebo jakéhokoli jiného klienta, který má na příkazové řádce parametr &jméno_serveru, na počítači, na němž je instalován server, server se spustí, ale pouze pro tohoto klienta. Chcete-li, aby i ostatní mohli s daty pracovat, je nutné spustit nejprve program SERVER.EXE s parametrem /n (ikona WinBase602 Server).

Přepnete-li se (např. pomocí Ctrl+Escape) do úlohy WinBase602 Server, otevře se pouze okno s informací o verzi serveru, o počtu v tomto okamžiku přihlášených a maximálním počtu klientů a o protokolech, kterými se klienti mohou připojovat.

POZOR! Servery se liší maximálním počtem současně přihlášených uživatelů! Server pro pět uživatelů nepovolí připojení klienta šestého.

Ukončení činnosti samostatně spuštěného serveru se provede položkou Zavřít v menu ikony běžícího serveru nebo klávesami Alt+F4 v době, kdy je ikona aktivní (např. po uzavření okna s informacemi o počtu přihlášených klientů). Jsou-li v okamžiku uzavření serveru ještě připojeni nějací klienti, server Vás při zavírání upozorní.


Klient WinBase602
 Síťoví klienti WinBase602

   Ikony označené slovem NET spouští programy v síťovém prostředí. Na rozdíl od spuštění týchž programů ikonou bez slova NET se prohledá lokální počítačová síť a vypíší se všechny spuštěné databázové servery. Uživatel se přihlásí k jednomu z nich.

Nepodaří-li se WinBase602 navázat síťové spojení, ještě před vyhledáním serverů oznámí Nelze inicializovat komunikaci v síti a ukončí program.

Za databázového síťového klienta WinBase602 se považuje program, který má na své příkazové řádce parametr &*. Jako klient se mohou použít  programy WB602.EXE, WBADMIN.EXE a WBR602.EXE. Ikony s vhodnými parametry pro spouštění programů v síti vzniknou při síťové instalaci. Od ikon, které spouštějí programy lokálně, se odlišují popisem ikony (slovem NET) a i vizuálně.

Pokusíte-li přihlásit na server více klientů, než povoluje licence, server vydá hlášku Další instance WinBase602 není povolena a klient se nespustí.

Na jednom počítači je možno spustit i více klientů, maximálně však 20 (více, než je rozumné zkoušet). Při pokusu o překročení tohoto počtu vydá server hlášku Překročen maximální počet instancí.

Ukončení práce s klientem neukončí běh serveru.


 Architektura klient - server

WinBase602 je založena na tzv. modelu klient-server. Podstata tohoto modelu spočívá v tom, že program, který poskytuje služby v určité oblasti, je oddělen od programu, který těchto služeb využívá.

Programu poskytujícímu služby říkáme server, v našem případě databázový server. Server umí například uchovávat data v databázi, vyhledávat je podle různých kritérií, třídit je, zajišťovat jejich integritu a zálohování. Programu, který těchto služeb využívá, říkáme databázový klient. Klient může například ukazovat data z databáze v oknech na obrazovce, tisknout sestavy, umožňovat vkládání dat pomocí formulářů, konvertovat data do jiných formátů, provádět výpočty nad daty atd. Jeden server je schopen obsluhovat více klientů.

Plná síla modelu klient-server se projeví při práci v síti počítačů. Server, instalovaný na jednom z počítačů, obsluhuje požadavky přicházející od klientů umístěných na všech počítačích v síti. Díky tomu mohou všichni klienti pracovat nad stejnými daty, využívat navzájem svoje výsledky, sdílet informace.

Model klient-server není jediným způsobem organizace síťových databází. Při alternativní organizaci řada počítačů v síti zasahuje do společných databázových souborů. Praktický rozdíl spočívá (mimo jiné) v tom, že při práci se sdílenými soubory se po síti musí stěhovat značné množství dat, zatímco klient se serverem komunikují ve stručném stylu žádost -- odpověď a práci s velkými objemy dat obstarává server.


 Výběr databázového serveru

Při spuštění síťového klienta WinBase602 je nutné vybrat jeden databázový server, na nějž se přihlásíte.

V dialogovém okně, které se otevře po spuštění klienta, je vypsán seznam jmen všech databázových serverů (databází), které jsou v tomto okamžiku spuštěny v lokální síti. K serveru se připojíte tak, že na vybrané jméno z nabídky dvakrát kliknete nebo jméno označíte a stisknete tlačítko Vybráno.

Tlačítko Zrušit požadavek ukončí běh klienta (nikoliv serveru).

Ve spodní části okna je vypsán protokol, pod kterým klient komunikuje s okolím.

Není-li v síti spuštěn žádný server, v seznamu se neobjeví žádné jméno. V tomto případě je možno vyhledávání ukončit tlačítkem Zrušit požadavek.

Je-li server spušten v jiném segmentu novellovské sítě než klient, informace o spuštění a nabídka služeb se ke klientovi dostane nejdříve za jednu minutu (je-li síť komplikovaná, může to trvat i déle). Tato situace nastane pouze při prvním spuštění serveru a současném spuštění klienta. Klienti spuštění poté budou mít informaci o serveru téměř okamžitě. Zpoždění nenastane, běží-li server non-stop.


Odeslání zásilky

Dialogové okno pro odeslání zásilky obsahuje tyto prvky:

  Komu: tlačítko, které otevře dialogové okno pro výběr adresáta pošty WinMail602. Vybraní adresáti se poté objeví v seznamu pod tlačítkem. Typickým adresátem je jeden vyhražený uživatel na cílovém počítači. Dialog je stejný jako u WinMail602 a je popsán v jeho dokumentaci.

  Parametry: tlačítko, které otevře dialog pro nastavení parametrů dopravy. Dialog je stejný jako u programu WinMail602 a je popsán v jeho dokumentaci.

  Jméno: jméno uživatele v cílové databázi, které použije importovací program (WinBase602 Doručovatel) pro přihlášení do databáze.

  Heslo: heslo tohoto uživatele.

  Aplikace: jméno aplikace, do jejíž tabulky se budou data importovat.

  Tabulka: jméno tabulky, do níž se data odeslaná poštou importují.


 Parametry programu Doručovatel

  Kontrola došlé pošty (v min.): Program Doručovatel zjistí příchod zásilky tak, že periodicky prohlíží schránku. Tento údaj nastavuje periodu tohoto prohlížení v minutách.

  Mazání zpracovaných zásilek: Je-li tato položka nastavena, budou zpracované (tj. úspěšně importované) zásilky vymazány z pošty.

Korektně naimportované zásilky se vymažou a zásilky, u kterých došlo při importu k chybě (např. pro porušení pravidel referenční integrity nebo unikátního indexu v tabulce) nebo se vůbec nezačaly importovat (např. pro nedostatek práv), v seznamu zásilek zůstávají pro další pokusy o import. Pokud tedy používáte automatický import po určité době, je nutné mít přepínač zapnutý. V opačném případě by se zásilka importovala pokaždé znovu.

  Pracovní adresář: Cesta k adresáři, kam  může Doručovatel kopírovat zásilky před jejich importováním do databáze. Všechny takto vzniklé soubory jsou dočasné a po importu budou vymazány. Tento adresář musí být na disku, kde je dost místa na zásilky předpokládané velikosti.

  Přihlášen do schránky: Jméno schránky, kam je Doručovatel právě přihlášen.

  Přihlášení: Tlačítko, které otevře dialog pro přihlášení do poštovní schránky uživatele pošty Mail602. Je nutné se přihlásit jménem toho uživatele, na jehož adresu docházejí zásilky WinBase602.


 WinBase602 Doručovatel

 k příjmu dat přicházejících elektronickou poštou je určen program WinBase602 Doručovatel. Tento program umožňuje přihlásit se na konto určitého uživatele, vybírat z jeho fronty zásilky určené pro WinBase602 a automaticky je zpracovávat.

Chce-li správce databáze umožnit vzdáleným uživatelům, aby mohli posílat své zásilky do databáze, musí v programu WinMail602 určit jednoho uživatele, na jehož adresu budou zásilky docházet. Na některém počítači v síti, z něhož je přístup k poště i k databázovému serveru, spustí Doručovatele a přihlásí ho do pošty určeným jménem. Doručovatel poběží na pozadí a bude periodicky kontrolovat schránku a importovat přijaté zásilky. Může běžet i na počítači, kde je spuštěn Server WinBase602.

Každá zásilka odeslaná z WinBase602 má připojené soubory: definiční soubor a datový soubor. Definiční soubor obsahuje jméno a heslo uživatele WinBase602 a popis obsahu datového souboru. Doručovatel  buď v pravidelných intervalech nebo na přímý pokyn se pod uvedeným jménem přihlásí do databáze, naimportuje data z datového souboru a zase se odhlásí. Je tedy nutné, aby jméno uživatele, které je v zásilce uvedeno, již v databázi existovalo a aby tento uživatel měl přidělena práva dostatečná pro vkládání záznamů a zápis do uvedené tabulky v uvedené aplikaci.

Pro správný běh Doručovatele je nutné ho přihlásit do pošty pod vhodným jménem  a nastavit parametry programu. Přihlášení se provede ihned po spuštění Doručovatele pomocí dialogu Přihlášení uživatele Mail602.

K nastavení parametrů slouží dialogové okno Parametry Doručovatele, který se otevírá příkazem Parametry…  systémového menu - viz Parametry programu Doručovatel.

Program WinBase602 Doručovatel nemá vlastní okno - ovládá se pomocí systémového menu běhové ikony programu. Kromě standardních obsahuje menu tyto položky:

  Načtení zásilek - tato položka prohlédne frontu zásilek přihlášeného uživatele, a pokud nalezne zásilky pro WinBase, pokusí se je naimportovat podle definičního souboru, který je součástí zásilky. Po ukončení všech importů se objeví okno se statistikou - viz níže.

  Statistika - otevře okno, v němž jsou tyto údaje:

Naposledy načteno: kolik importů úspěšně proběhlo při posledním pokusu;

Celkem načteno: kolik importů úspěšně proběhlo od spuštění programu Doručovatel;

Nenačteno: kolik zásilek WinBase602 zůstává v seznamu z důvodu, že nešly naimportovat.

  Parametry - otevře okno, v němž lze nastavit parametry programu a případně se přihlásit do pošty pod jiným jménem.

O provozu Doručovatele se vede záznam v textovém souboru WBMAILER.LOG, který se nachází v témže adresáři jako program WBMAILER.EXE - viz Popis protokolu


 Popis protokolu o běhu Doručovatele

Zde je uveden příklad protokolu Doručovatele, který jednou kontroloval došlou poštu a ve schránce nalezl dvě zásilky: jednu v pořádku a druhou se špatným heslem.

NAČÍTÁNÍ ZÁSILEK 1

Jméno poštovní schránky:	WINBASE

Datum: 	30.11.1994

Čas:   	14:37:1

**********************************************

Vyhledání zásilky:         	0

Odesilatel zásilky:        	NOVAK

Poštovní úřad odesilatele: 	UCTARNA

Datum a čas přijetí:       	27.11.1994 14:00

Načtení z Mail602:         	0

Import do WinBase602:      	0

Vyhledání zásilky:         	0

Odesilatel zásilky:        	MRAZKOVA

Poštovní úřad odesilatele: 	PROVOZ

Datum a čas přijetí:       	28.11.1994 15:12

Načtení z Mail602:         	0

Import do WinBase602:      	142

Vyhledání zásilky:         	255

Odesilatel zásilky:        	NOVAK

Poštovní úřad odesilatele: 	UCTARNA

Datum a čas přijetí:       	27.11.1994 14:00

Výmaz zásilky	0

Protokol začíná hlavičkou, ve které je uvedeno jméno schránky, která je právě prohlížena a datum a čas této kontroly. Následují dva bloky informací, každý pro jednu zásilku. Samostatný řádek (Vyhledání zásilky: 255) znamená, že ve schránce už není žádná další zásilka. Následuje informace o vymazání úspěšně naimportovaných zásilek ze seznamu pošty. Ve výše uvedeném příkladu se vymazala pouze první zásilka, protože import druhé zásilky do WinBase602 skončil s chybou 142 (špatné heslo). Tato zásilka zůstává ve frontě zásilek, a pokud ji správce neodstraní ručně nebo neopraví příčinu chyby, bude se při každém novém načítání zásilek pokoušet naimportovat.

V protokolu o zásilce jsou 3 typy údajů:

  1. Údaje Odesilatel zásilky, Poštovní úřad odesilatele a Datum a čas přijetí lze určit, o kterou

zásilku se jedná a případně si ji ručně prohlédnou v poště.

  2. Řádek Import do WinBase602 udává číslo chyby, které ve WinBase602 vrací funkce

Sz_error - viz číselník chyb . Bezchybné provedení operace = 0.

Dojde-li k chybě při této operaci, Doručovatel pošle odesilateli zásilky dopis s číslem této

chyby a pokračuje v prohlížení fronty zásilek. Stejně se zachová i v případě, kdy k chybě dojde i v průběhu importu do databáze - např. Z důvodu porušení referenční integrity. V tomto případě (který by ovšem neměl v odladěných aplikacích nastávat) musí správce umazat již naimporotované záznamy nebo jinak ručně uvést databázi do správného stavu.

  3. Všechny ostatní údaje jsou čísla chyb Mail602. Dojde-li k takovéto chybě (které by ovšem u odladěných aplikací neměly nastat), prohlížení zásilek se ukončí a ani není odeslána zpráva odesílateli. Nejčastější příčinou chyby Mailu602 při prvních pokusech je nenastavení práv ERASE v Novellské síti k adresáři se schránkou.


 Přihlášení uživatele Mail602

Jméno uživatele, na jehož adresu docházejí zásilky WinBase602 nemusí být shodné se jménem uživatele, který spouští program Doručovatel. Proto při každém spuštění Doručovatele se objeví dialog pro Přihlášení uživatele Mail602. V něm je nutné zadat jméno a heslo toho uživatele pošty, který je adresátem zásilek a v jehož seznamu došlé pošty se budou zásilky nalézat. Při zadání špatného jména nebo hesla budete upozorněni.

Přihlásit se pod jiným jménem lze i při běhu programu. Slouží k tomu tlačítko Přihlášení v dialogu Parametry programu Doručovatel. V témže dialogu je vidět jméno aktuálně přihlášeného uživatele.


 Statistika programu Doručovatel

Okno obsahuje tyto údaje:

  Naposledy načteno: kolik importů úspěšně proběhlo při posledním pokusu;

  Celkem načteno: kolik importů úspěšně proběhlo od spuštění programu Doručovatel;

  Nenačteno: kolik zásilek WinBase602 zůstává v seznamu z důvodu, že nešly naimportovat.

O důvodech neúspěchu importu se dozvíte v textovém souboru WBMAILER.LOG, který se nachází v adresáři, z něhož se spouštějí Windows. Je-li důvod, proč se nepodařilo zásilku naimportovat, v tom, že server odmítá data importovat (špatné heslo, nedostatek práv, duplicita v jedinečném indexu apod.), odešle Doručovatel o tom dopis odesílateli zásilky. V tomto dopisu (nazvaném WinBase602 error report) se odesílatel z čísla chyby WinBase602 dozví, proč k importu nedošlo, a měl by na tuto situaci reagovat.


Nastavení adresáře s konfiguračními soubory Mail602

Do editačního pole je třeba zapsat adresář s konfiguračními soubory pošty Mail602. Nejste-li si jisti, použijte tlačítko Nalistovat a najděte soubor M602.EMI.

Tento dialog se objeví tehdy, není-li v souboru WIN.INI tato informace uvedena (např. nebyla dosud instalována) nebo údaj tam uvedený neodpovídá skutečnosti (např. nejste přihlášeni v síti a konfigurační soubor je na síťovém disku). Po zadání správné cesty se tato informace zaznamená do INI souboru.


 ODBC ve WinBase602

Co vlastně je ODBC? Je to  standard pro komunikaci mezi databázovým serverem a aplikačním programem. Skládá se z programového rozhraní (API), tedy množiny funkcí, které může aplikační program volat, a ze specifikace jazyka SQL, který se při komunikaci používá. ODBC drivery v dnešní době dodávají všichni významní výrobci databázových SQL systémů.

Co vlastně přináší ODBC nového? Pokud aplikační program chtěl vstupovat do databáze (například program vytvářející účetní uzávěrku chtěl číst záznamy z účetních knih), pak musel respektovat to rozhraní, které mu databáze poskytovala, a formát dat, specifický pro databázi. Velká část programu tedy závisela na tom, se kterou databází spolupracuje. Pokud bylo třeba přejít na jiný databázový systém (např. z čistě lokální databáze na databázový server od jiné firmy), bylo nutno přepracovat podstatné části programu.

ODBC si klade za cíl specifikovat univerzální rozhraní, které by umožnilo:

- psát aplikační programy nezávislé na databázi, s jejímiž daty budou pracovat;

- otevřít databáze všem programům jednotným způsobem.

ODBC lze ve WinBase602 využít dvěma způsoby:

- WinBase602 slouží jako ODBC server - poskytuje svá data jiným aplikacím

- WinBase602 slouží jako ODBC klient - pracuje s daty jiných zdrojů (DBF, Btrive, Oracle aj).


WinBase602 jako ODBC klient

Uvažujme nyní případ, kdy WinBase602 vstupuje do cizích databází a tvoří k nim rozhraní nebo umožňuje programovat nad nimi aplikace. K dispozici jsou dva mechanismy:

Za prvé, k aplikaci ve WinBase602 lze připojit libovolné množství cizích databázových tabulek a pracovat s nimi. WinBase602 může například číst data z DBF souboru z dBase, umožnit uživateli je editovat, vypočítat programem nová data a zapisovat výsledky do databáze v Ingresu.

Za druhé, aplikaci lze nejprve vyvinout plně ve WinBase602, a pak realizovat její tabulky v jedné vybrané cizí databázi. Taková databázová aplikace poběží v prostředí WinBase602, ale bude manipulovat s daty uloženými např. pod Oraclem na střediskovém počítači.

V obou případech WinBase602 poskytuje svoje uživatelské rozhraní, tedy možnost používat pohledy, klást v nich dotazy, editovat texty, relačně synchronizovat subpohledy atd. Umožňuje taky psát programy, které s obsahem databází pracují.

Připojit se na cizí zdroj dat (ODBC server) se provede v okně otevřeném zavoláním příkazu ODBC zdroj dat z menu vývojové ho prostředí Aplikace.


WinBase602 jako ODBC server

Databáze, která chce být otevřena pro ostatní ODBC klinty, musí poskytovat tzv. ODBC driver, který do ní přenáší požadavky přicházející od aplikací. Aplikační program, který chce využít ODBC, musí své požadavky na práci s daty formulovat dle této normy. Aplikačním programem může být i univerzální databázový "front-end", tedy program, který umožňuje pracovat s obsahem databáze na obrazovce, tvořit sestavy, grafy atd.

Spolu s WinBase602 jste obdrželi její ODBC driver odpovídající verzi 2.10 tohoto standardu. Tím obsah databáze zpřístupníte řadě programů, které využívají ODBC rozhraní.

Zároveň můžete psát programy, které jsou schopny vstupovat stejně dobře do WinBase602 jako do jiných databází. Rozhodnutí o tom, pod správou kterého databázového systému budou Vaše data, lze tedy odložit na pozdější dobu.


Slovníček základních pojmů WinBase602

agregační funkce	aplikace
atribut	atributy proměnné velikosti
debugger	dotaz
drag & drop	editor
editovatelný dotaz	font
include	index
journal	klient databáze
kurzor	menu
multiatribut	needitovatelný dotaz
NLM	objekty
obrázek	ODBC
OLE	OLE kontejner
OLE server	pohled
pohled standardní	pole
program	programovací jazyk WinBase602
projekt	provozní systém WBR602
přípony souborů	QBE
referenční integrita	runtime modul WBR602
server databáze	sestava
schránka (clipboard)	sledovací atributy
správce databáze	SQL
subpohled	superpohled
tabulka	text
transakce	TrueType
ukazatel	uživatel
vývojové prostředí	záznam


agregační (souhrnné) funkce

Funkce COUNT,  SUM, AVG, MAX  a MIN, jejichž  hodnoty se počítají pro skupiny atributů a dají se použít v dotazech a při generování  sestav;


aplikace

Logický celek tvořený skupinou objektů, které spolu souvisejí (komponentami aplikace), a daty. WinBase602 je schopna exportovat, importovat, otevřít a spustit aplikaci.


atribut

Označení položky (pole) v záznamu.  Je určen svým jménem a typem. Typy  atributu  jsou:  logický,  řetězec  (více druhů), numerický (více  druhů), datum  a čas,  ukazatele, sledovací  atributy, typ text, typ obrázek a typ OLE.


atributy proměnné velikosti

Atributy typu text, obrázek, OLE a sledovací atribut Historie. Jejich velikost je dána až konkrétním obsahem.


debugger

Prostředí pro ladění programů ve vnitřním jazyce. Umožňuje krokování, sledování a měnění hodnot proměnných, sledování zásobníku a další činnosti.


dotaz

Požadavek na výběr a uspořádání dat z tabulek; v pohledech se dotaz klade pomocí  QBE, kromě toho lze definici dotazu vytvořit a uložit jako jeden z objektů WinBase602;


drag & drop

Rychlý způsob přenosu názvů atributů do definice dotazu nebo do formuláře hromadné operace; levým tlačítkem myši se název uchopí, přenese se nad novou pozici a tam se uvolněním tlačítka upustí.


schránka (clipboard)

Systémový nástroj,  jehož pomocí je možno  kopírovat či přesouvat textové i grafické údaje z  různých aplikací ve Windows do jiných (např. obrázek vytvořený v programu Paintbrush lze přes clipboard načíst  do atributu  typu obrázek  ve WinBase602).  Lze využít  i na kopírování a přesuny v rámci jednoho programu či jednoho okna.


editor

Prostředek  pro psaní  textových informací.  Ve WinBase602 používaný pro  editování obsahu  atributu typu  text, pro  psaní zdrojových textů programů apod. Do textu nevkládá žádné řídící znaky (kromě CR LF).


editovatelný dotaz

Dotaz, jehož odpověď obsahuje pouze odkazy na atributy v databázových tabulkách. Pokud v editovatelném dotazu provedete změnu, promítne se do obsahu určité tabulky.


font

Definovaná sada písma, např. Sans Serif; ve Windows3.1 lze používat dva typy fontů: bitmapové a vektorové (tzv. TrueType) fonty.


include

Samostatný objekt typu program v aplikaci obsahující podprogramy hlavního programu; samostatně nepřeložitelný; do hlavního programu se umístí pomocí {$I jméno}.


index

a) na disku uložená datová struktura, která podstatně urychluje vyhledávání záznamů v tabulce podle hodnot určitých  atributů, setřídění obsahu tabulky nebo spojování tabulek.

b) celočíselný údaj, který označuje složku pole nebo multiatributu a uvádí se zpravidla v hranatých závorkách za identifikátorem pole nebo multiatributu;


journal

Speciální datový soubor na disku (JOURNAL.FIL), který obsahuje posloupnost všech aktualizací provedených ve WinBase602. v kombinaci s vytvářením záložních kopií slouží k zajištění bezpečnosti dat.


klient databáze

Každý program komunikující s databází a využívající k tomu služeb SERVERU DATABAZE, např. program WB602.EXE.


kurzor

a)  značka  na  obrazovce  (obvykle  blikající),  která vyznačuje pozici v textu, kde se právě provádějí změny - vkládají nebo ruší znaky;

b) grafická značka na obrazovce spřažená s pohybem myši;

c) v programovacím jazyce je to fiktivní  tabulka, kterou WinBase602  vytvoří jako odpověď  na dotaz položený  uživatelem. s obsahem  kurzoru lze pracovat  jako s obsahem tabulky, přitom změny  prováděné v kurzoru se promítnou do tabulek, z nichž data v kurzoru pocházejí.


menu

Jeden z  objektů WinBase602; nabídka akcí  pro danou situaci. Pro novou aplikaci si uživatel definuje  svá vlastní menu. Obvykle je umístěno v horní části okna.


multiatribut

Atribut,  jenž může  obsahovat v  jednom záznamu  více než  jednu hodnotu.


needitovatelný dotaz

Dotaz, jehož odpověď obsahuje data zkopírovaná z tabulek nebo vypočtená z obsahu tabulek. v needitovatelném dotazu nelze provádět změny.


NLM (Netware Loadable Module) server

server WinBase602 běžící v prostředí operačního systému Novell na file serveru sítě;


objekty

objekty  ve  WinBase602  jsou:  tabulky,  pohledy,  dotazy, menu a programy. Těmto pěti pojmům říkáme kategorie objektů;


obrázek

a) atribut proměnné délky, jehož obsahem může být obrázek v grafickém formátu BMP, PCX, TIFF, GIF nebo WPG;

b) objekt v databázi příslušící k jedné aplikaci;


ODBC

Norma pro programové rozhraní databázového serveru. Umožňuje standardizovaný přístup aplikací k SQL serverům. Server poskytující ODBC přístup (např. WinBase602) tak činí pomocí tzv. ODBC driveru.


OLE

Mechanismus sdílení dat různými programy pod Windows 3.1, např. databáze může obsahovat zvuky, obrázky, videoclipy apod.;


OLE kontejner

Program, který využívá služeb OLE SERVERU a obsahuje data nebo odkazy na data patřící jiným aplikacím. WinBase602 je OLE kontejner.


OLE server

Program, který poskytuje svá data jiným programům prostřednictvím OLE, např. kreslicí program Paintbrush z Windows nebo WinBase602.


pohled

Objekt WinBase602; vstupní i výstupní "formulář", prostředek na zadávání,  rušení  a  třídění  dat,  kladení  dotazů apod. Lze ho vytvořit  nad tabulkou,  nad dotazem  nebo pouze  nad proměnnými programu.


pohled standardní

Jednoduchý  pohled ve stylu tabulek z tabulkových kalkulátorů, rychlý při prohlížení. Používá se např. při otevření  tabulky.


pole

Druh datové struktury ve vnitřním programovacím jazyce WinBase602 (a v jiných jazycích).


program

Posloupnost  příkazů vnitřního  programovacího jazyka WinBase602; hotový  program lze  zkompilovat na  disk a  spouštět i na jiných počítačích s pomocí tzv. Runtime modulu;


programovací jazyk WinBase602

Strukturovaný jazyk pro psaní aplikačních programů vycházející z Pascalu.


projekt

Role, kterou hraje PROGRAM vytvořený ve VNITŘNIM PROGRAMOVACIM JAZYCE WINBASE602, když poskytuje své proměnné, typy, konstanty, procedury a funkce pohledům a menu.


přípony souborů

Vyexportované objekty WinBase602 mají tyto přípony:

 TDF -- definice  tabulky;

 TDT -- obsah tabulky ve vnitřním formátu;

 TXT -- obsah tabulky v textovém formátu se záhlavím;

 CSV -- obsah tabulky v textovém formátu CSV;

 VWD -- definice  pohledu;

 CRS -- definice  kurzoru;

 PGM -- zdrojový text  programu;

 MNU -- zdrojový text  menu.

 WBP -- pevný obrázek v aplikaci

Jiné soubory, které se mohou v souvislosti s WinBase602 vyskytnout:

 EXX --  program zkompilovaný na disk;

 APL -- definiční soubor  aplikace;

 APX -- soubor popisující připojené objekty, ODBC zdroje, relace aj.


QBE (Query by Example)

Názorný způsob dotazování, který se používá interaktivně v pohledech pro vybrání množiny záznamů podle logických podmínek.


referenční integrita

Soubor pravidel zajišťující logickou integritu databáze. Vyjadřuje požadavek, aby určitý atribut určité tabulky mohl nabývat pouze těch hodnot, které má jiný atribut v některém záznamu jiné tabulky.


runtime modul WBR602

Program, který umožní spuštění připravené aplikace, nepovolí však žádné její úpravy.


server databáze

Program spravující data uložená v databázi a poskytující databázové služby klientům; jeden server je schopen obsluhovat více klientů;

Ve WinBase602 existují dva typy serverů

1) Windows server - běží na pracovní stanici pod Windows;

2) NLM server - běží na novellovském file serveru.


sestava

Pohled použitý pro výstup na tiskárnu. v návrhu sestavy mohou být záznamy členěny do skupin podle hodnot atributů, může se využívat i tzv. agregovaných funkcí COUNT, SUM apod.


sledovací atributy

Speciální atributy, které slouží k  automatickému sledování změn v jiných  atributech;  autorizace   sleduje  kdo  provedl  změnu, datumovka kdy byla změna provedena a atribut historie si pamatuje předešlé hodnoty. Uživatel nemá možnost tyto údaje měnit.


správce databáze

a)  osoba,  která  se  stará  o  provoz  programu, provádí údržbu a rozhoduje o  právech ostatních uživatelů;  přihlašuje se jménem DB_ADMIN;

b) jméno programu, který se  spustí společně s WinBase602 (objeví se  ikona  ve  spodní  části  obrazovky,  resp. pod hlavním oknem WinBase602); pomocí něho správce provádí údržbu a jiné činnosti.


SQL

Standardizovaný jazyk umožňující definování struktury databáze (např. vytváření tabulek), provádění změn v obsahu databáze (vkládání a rušení záznamů, přepisování hodnot) a kladení dotazů.


subpohled

Pohled použitý jako jedna složka jiného pohledu,  superpohledu; subpohled může obsahovat např. relačně připojené záznamy z jiné tabulky.


superpohled

Pohled, který obsahuje jako jednu složku  subpohled; subpohled i superpohled jsou navzájem synchronizovány.


tabulka

Objekt WinBase602,  do něhož se  ukládají data; "řádky'' tabulky tvoří záznamy, "sloupce" tabulky tvoří hodnoty atributů.


text

Atribut proměnné délky, jehož  obsahem je textové informace. Při editování tohoto atributu se vyvolá vestavěný editor.


transakce

Mechanismus zaručující, že se určitý sled operací provede buď vcelku nebo se neprovede vůbec a databáze zůstane ve stavu, v jakém byla před započetím transakce; vylučuje provedení pouze části požadavků a tím zajišťuje zachování konzistence databáze.


TrueType

Technologie vytváření písma z jednoho vzoru použitá ve Windows 3.1; tvary vzniklých písmen mají hladké okraje při všech velikostech a bez ohledu na výstupní zařízení.


ukazatel

Typ atributu, umožňující přímé propojení záznamů ve dvou různých tabulkách; propojení lze realizovat jednosměrné i obousměrné ( obousměrný ukazatel).


uživatel

Každý, kdo pracuje s WinBase602. Uživatelé mají práva stanovená správcem databáze. Standardní uživatel DB_ADMIN  (správce databáze) má práva nejvyšší, anonymní uživatel, přihlašující se prázdným jménem má práva standardní skupiny EVERYBODY.


vývojové prostředí

Prostředí programu WB602.EXE sloužící k  vývoji databázových aplikací.


záznam

a) prvek  ("řádek") databázové tabulky; je  složen z jednotlivých atributů;

b)  druh  datové  struktury   ve  vnitřním  programovacím  jazyce WinBase602 (a v jiných jazycích).


V tomto seznamu jsou uvedeny všechny instalace WinBase602 zaznamenané v registrační databázi Vašeho počítače. Do seznamu přibude nová instalace tehdy, když instalujete WinBase602 (programem SETUP.EXE) nebo když pomocí tlačítka Najít existující databázi vyhledáte adresář se síťovou instalací.


Toto tlačítko je neaktivní, protože pro nové instalování WinBase602 musíte použít program SETUP.EXE z první instalační diskety.


Toto tlačítko Vám umožní vyhledat síťovou instalaci WinBase602 a zaznamenat ji do registrační databáze. Pak můžete například vytvořit ikony, které tuto instalaci spouštějí.


Toto tlačítko vymaže instalaci WinBase602 označenou v seznamu vlevo. Doporučujeme opatrnost zejména při mazání síťově sdílených instalací, které mohou být využívány více uživateli. Odinstalování nesmaže obsah databáze, takže s ní lze i nadále pracovat pomocí jiné instalace vhodné verze.


Toto tlačítko dovolí nastavit komunikační protokoly a další provozní parametry pro vybranou instalaci.


V tomto seznamu jsou uvedeny všechny databáze resp. servery WinBase602 zaznamenané v registrační databázi Vašeho počítače. Do seznamu přibude nová položka tehdy, když vytvoříte novou databázi nebo když pomocí tlačítka Zaregistrovat existující server zadáte jméno síťového databázového serveru.


Toto tlačítko Vám umožní vytvořit novou databázi. Po stisku zadáte jméno databáze (bude sloužit jako síťové jméno serveru) a adresář, v němž bude databáze umístěna.


Toto tlačítko Vám umožní zaznamenat do registrační databáze jméno síťového databázového serveru. Po zadáni jména Vám bude nabídnuta možnost zadat také cestu k databázi serveru. Pokud ji zadáte, budete moci spouštět tento server i na svém počítači (pro vzdálené databáze to však není příliš efektivní). V obou případech budete moci na tento server připojovat klienty, ukládat na něm OLE objekty, vstupovat do jeho dat přes ODBC.


Toto tlačítko vyřadí jméno síťového serveru nebo databáze z registrace. Doporučujeme používat tehdy, pokud server resp. databáze již neexistují nebo je nebudete více používat.


Toto tlačítko vymaže celou databázi označenou v seznamu vlevo a odstraní její jméno z registrační databáze. Takto lze smazat i vzdálené databáze síťových serverů, pokud jste při registraci zadali jejich umístění. Vymazáním databáze neodvratně přijdete o všechna data uložená v databázi.


Pro vzdálené servery komunikující protokolem TCP/IP lze zadat jejich IP adresu nebo jméno hostitele a případně i jméno telefonického připojení sítě. Zadání této adresy je nezbytné, pokud se server nachází mimo lokální síť nebo pokud není povolen TCP/IP broadcast.


Je-li tento čtverec zatržen, pak síťový klient osloví při svém spuštění všechny počítače v lokální síti, zda na nich neběží server WinBase602. Pokud čtverec zatržen není, pak se předpokládá, že na příkazové řádce klienta je uvedeno jméno serveru a že pro tento server je v registrační databázi IP adresa. Klient pak přímo osloví server na této adrese. Nejsou-li výše uvedené podmínky splněny, klient server nenajde.


Z této nabídky vyberte tu instalaci, kterou mají ikony spouštět. Nabízejí se instalace uvedené v seznamu na záložku Instalace.


Z této nabídky vyberte jméno databáze resp. serveru, do nichž se pomocí ikon chcete dostanete. Nabízejí se jména uvedené v seznamu na záložce Databáze a servery.


Zde vyberte jméno složky, do níž se mají ikony umístit, nebo zadejte jméno nové složky, která má pro tyto ikony vzniknout.


Zatrhněte, pokud se mají vytvořit ikony vstupující do serveru vybraného výše.


Zatrhněte, pokud se mají vytvořit ikony vstupující do libovolného síťového serveru.


Zatrhněte, pokud se mají vytvořit ikony pro spuštění serveru a jeho zálohování.


Tímto tlačítkem vytvoříte sadu ikon s vlastnostmi specifikovanými v ostatních složkách.


Z této nabídky vyberte tu instalaci, která se má používat pro obsluhu pohledů, sestav a dat WinBase602 vložených nebo připojených do cizích programů. Nabízejí se instalace uvedené v seznamu na záložce Instalace. Pokud zvolíte možnost -- Neobsluhovat OLE -- , nebude možno pracovat přes OLE s pohledy, sestavami ani daty WinBase602 z jiných programů.


Z této nabídky vyberte jméno databáze resp. serveru, do nichž se umístí pohledy a sestavy WinBase602 vytvořené v cizích programech mechanismem OLE. Nabízejí se jména uvedené v seznamu na záložce Databáze a servery. Pokud zvolíte možnost -- Neurčeno --, budete při každém vytvoření pohledu nebo sestavy tázání na jméno serveru. Na aktivaci již vytvořených pohledů a sestav nemá tato volba vliv.


Z této nabídky vyberte tu instalaci, která se má používat pod Windows NT jako trvale pracující databázová služba. Nabízejí se instalace uvedené v seznamu na záložce Instalace. Pokud zvolíte možnost -- Neposkytovat službu , služba nebude v provozu.


Z této nabídky vyberte jméno databáze, kterou bude používat server běžící jako služba pod Windows NT.


V tomto seznamu jsou uvedeny všechny ODBC zdroje dat registrované na Vašem počítači. Ty z nich, které zpřístupňují data z WinBase602, mají uvedeno v druhém sloupci jméno serveru (resp. databáze) a případně v třetím sloupci jméno aplikace. Zdroje dat lze vytvářet a rušit buď tlačítky pod seznamem nebo na řídicím panelu Windows.


Tímto tlačítkem odstraníte registraci ODBC zdroje dat označeného v seznamu nahoře. ODBC klienti poté nebudou moci čerpat data z tohoto zdroje. Vlastní data v databázích nejsou odregistrováním zdroje dat dotčena.


Tímto tlačítkem vytvoříte nový ODBC zdroj dat zpřístupňující WinBase602. Otevře se dialogové okno, v němž zadáte jméno zdroje dat (doporučujeme, aby začínalo WinBase602:), jméno databáze resp. serveru a případně také jméno některé aplikace z této databáze.


Protokol, který bude používat databázový klient při navazování spojení se serverem


Protokoly, s nimiž se na server mohou připojovat klienti


Velikost pracovní operační paměti klienta (počet bloků velikosti 64 KB)


Velikost pracovní operační paměti serveru běžícího na tomto počítači (počet bloků velikosti 64 KB)


Velikost pracovní paměti serveru sloužící pro databázové informace dočasně držené v operační paměti (v KB)


Velikost prostoru pro třídění a budování indexů na serveru (v KB)


Velikost prostoru pro všechna souběžně probíhající třídění a budování indexů na serveru (v KB)


IP adresa serveru, s nímž chcete komunikovat, v tečkové notaci (např. 192.168.0.57) nebo jméno hostitele serveru (např. PUBINFO.TRADEX.CZ) překládané DNS serverem nebo uvedené v souboru HOST. Je-li použito spojení přes SOCKS Firewall, je u adresy značka (FW).


Jméno telefonického připojení sítě sloužícího k dovolání se na server nebo jméno připojení na Internet, je-li server v něm. Vyberte - bez telefonního spojení -, pokud nepotřebujete telefon k připojení na server.


IP adresa tzv. SOCKS Firewall. Použije se tehdy, je-li mezi klientem a serverem instalována tento ochranný prvek. Má-li se klient na server za firewallem přihlásit, musí se uvést na příkazové řádce klienta jméno serveru - jinak se server nenalezne.


Tento čtverec zatrhněte tehdy, má-li se spojení mezi klientem a serverem navazovat přes SOCKS Firewall nacházející se mezi nimi. Není-li zatržen, nebude se IP adresa firewallu při přihlašování brát do úvahy.