OpenOffice.org/Base
Tato stránka je součástí úložiště: | |
Příslušnost: všeobecná |
OpenOffice.org Base je jednou z komponent kancelářského balíku OpenOffice.org, jejímž smyslem je vytvoření uživatelsky přístupného grafického rozhraní k nějakému existujícímu databázovému zdroji (tj. např. stroji). V tom tkví jeho zásadní rozdíl např. od databázové aplikace Acces kancelářského balíku Microsoft office. Je výhodou, že se OpenOffice.org nesnažil vyrobit nějaký vlastní databázový stroj, ale soustředil se na možnost vytvoření konektivity k řadě jiných, obvyklých a osvědčených databázových zdrojů.
Základní informace
editovatProjekty na Wikiverzitě
editovatInstalace
editovatInstalace OpenOffice.org Base a použitá verze
editovatOpenOffice.org Base je standardní součástí kancelářského balíku OpenOffice.org (tzv. OpenOffice.org suite), proto je její instalace popsána v kursu OpenOffice.org. Protože tento balík je v neustálém vývoji, jeho verze se průběžně mění. V listopadu 2007, kdy byl psán tento článek, je poslední stabilní verzí OpenOffice.org v. 2.3. Vzhledem k tomu, že přístup k databázím byl ve verzi 2.0 oproti předcházejícím verzím 1.x podstatně změněn, měli byste mít nainstalovánu alespoň nějakou verzi 2.x Pokud používáte verzi 2.0, 2.1 nebo 2.2, neměli byste mít vážnější problémy, až na to, že některé možnosti zde popisované ještě nebudou implementovány. Naopak lze předpokládat, že pozdější verze než 2.3 budou disponovat pohatším rejstříkem nabídek.
Konektor
editovatU technických zařízení nazýváme konektorem součástku, sestávající ze dvou rozpojitelných částí, jejichž smyslem je vytvořit snadno rozpojitelné spojení. Protože nejčastější je případ, kdy spojení nastává vniknutím špiček jedné části do dírek druhé části, nazývají se části takového konektoru sameček a samička. Nejznámějším případem takového konektoru je běžná zástrčka, kterou zastrkávme do elektrické zásuvky ve zdi.
Analogickým způsobem, ovšem na softwareové úrovni, funguje propojení OpenOffice.org Base s databázovým strojem, např. MySQL. A tak jako po světě existuje množství různých druhů elektrických zásuvek (zahraniční turista pak může být překvapen), tak existuje i několik možností, jak OpenOffice.org Base k MySQL či jiné databázi (např. PostgreSQL) připojit. Znamená to, že musí existovat nějaké standardizované rozhraní, na jedné straně směrem k databázovému stroji a na druhé straně směrem k aplikaci, jako je např. OpenOffice.org Base.
Asi nejznámějším takovým rozhraním je rozhraní ODBC (Open Database Connectivity), jinou možností je JDBC (Java Database Connectivity). Podle zkušeností uživatelů OpenOffice.org na různých diskusních skupinách jsou lepší zkušenosti s JDBC.
Příslušný konektor je zapotřebí stáhnout z WWW stránek výrobce databázového stroje mysql.org. V horním řádkovém menu hlavní stránky najdeme Products, pod ním se rozvine menu, kde v poslední nabídce najdeme drivers a tím se dostaneme na stránku [1], kde vybereme JDBC Driver for MySQL (Connector/J) s možnostmi Download, Documentation a Discussion, které je občas dobré si přečíst. Po volbě Download je ještě možno vybrat aktuální verzi (nyní v listopadu 2007 je poslední verzí 1.1) a vybrat stažení příslušného balíku (buď tar.gz nebo zip).
I když je možno ovladač stáhnout zdarma, sdružení MySQL nám doporučuje se u nich zaregistrovat, ale kromě toho nám dává možnost stáhnout si ovladači i bez nutnosti registrace (kliknutím na No thanks, just take me to the downloads!). Poté zvolíme nejbližší mirror (Českou republiku tam nenajdeme, zvolil jsem Německo) a stáhneme balík connector-mxj-gpl-1-1-6.tar.gz, příp. connector-mxj-gpl-1-1-6.zip (kde v tomto případě 1-1-6 značí číslo aktuální verze 1.1.6). Soubor je větší než 20 MB, ale po rozbalení zjistíme, že hlavní věc, která nás zde zajímá, je jediný soubor connector-mxj.jar, který najdeme v hlavním adresáři connector-mxj, který se nám po rozbalení vytvořil. Proto stačí, když si na disku ponecháme pouze tento soubor, případně přiložené soubory s dokumentací
Výhodou ovladače ve formátu Java Runtime (.jar) je, že může být použit jeden a tentýž ovladač pro různé platformy. V současné době jsou podporovány operační systémy:
- Linux-i386
- SunOS-sparc
- Mac OS X 10.3
- WindowsXP/2000/NT x86
(Popis instalace konektoru do OpenOffice.org Base zde čeká na doplnění, prozatím použijte dokumentaci k OpenOffice.org)
Připojení OpenOffice.org Database k MySQL
editovatPředpokládáme, že máme dostupnou nějakou databázi, běžící na serveru MySQL, ať už na našem lokálním stroji, anebo přístupnou po síti. Tato problematika je vysvětlena v článku MySQL.
V níže zvoleném vzorovém příkladu jsme použili:
- jdbc - použitý typ konektoru (ovladače) (alternativou by bylo např. odbc)
- mysql - použitý typ databáze (alternativou by byl např. PostgreSQL)
- localhost - název serveru, na kterém běží MySQL server - v našem případě náš stroj, na kterém pracujeme, ale může to být jakýkoliv jiný počítač s běžícím MySQL serverem v síti, na který máme přístup
- mojedatabaze - jmeno naší databáze, ke které máme přístupová práva v autentifikačním systému příslušného MySQL serveru
- mujlogin - naše uživatelské jméno v tomto autentifikačním systému
- Moje_123.Heslo - příslušné heslo (pozor, u každého hesla záleží na velikosti použitých písmen, doporučuje se používat i číslice a další znaky)
Použitý typ databáze, název serveru v síti a název databáse vytváří tzv URL datového zdroje:
mysql://localhost/mojedatabaze
V tomto URL datového zdroje můžeme předat i parametry jdbc konektoru pomocí sytaxe, kterou jsme zvyklí vídat např. u cgi skriptů - tj. za znakem otazníku a navzájem oddělené znakem amersandu &asmp; (žádné URL nemůže obsahovat mezery). Např:
mysql://localhost/mojedatabaze?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull
V tomto případě říkáme konektoru, že:
- má povolit užití Unicode
- skutečně používá kódování UTF-8
- položky, které v databázi obsahují datum 0000-00-00 konvertuje do prázdného pole Null
neboť:
- kódování UTF-8 patří dnes k nejrozšířenějším standardům, avšak v době, kdy vznikla MySQL, bylo jako implicitní kódování definováno Latin-1 se švédským řazením (kolací)
- Při nevyplněné hodnotě data některé apikace ukládají do databáze nulové datum 0000-00-00, což je však nepovolená hodnota v jazyku SQL, která v konektoru jdbc způsobí generování chybové hlášky; tímto parametrem řekneme konektoru, že s těmito poli má zacházet, jako by to byla prázdná pole Null
Spustíme nainstalovaný balík OpenOffice.org (buď z menu anebo z okna terminálu příkazem soffice &) a z jeho menu vybereme:
File -> New -> Database
(Vzhledem k tomu, že k dnešnímu dni jsem ještě u této poslední stabilní verze OpenOffice 2.3 nenašel podporu češtiny, budou uváděné příklady v anglické verzi. Možná je lepší se naučit ovládat OpenOffice.org s anglickými menu, alespoň budeme mít možnost vyzkoušet si ty nejnovější verze a budeme mít větší možnost vyhledat případný problém v anglicky mluvících diskusních skupinách - pokud ovšem zrovna nepůjde o specifický problém s lokalizací).
Tím otevřeme dialogové okno:
Step 1. Select database:
Welcome to the OpenOffice.org Database Wizard What do you want to do? Connect to an existing database: JDBC Next >>
Step 2. Set up JDBC connection:
Set up a connection to a JDBC database JDBC driver class: com.mysql.jdbc.Driver -> Test class The JDBC driver was loaded successfully Datasource URL jdbc: mysql://localhost/mojedatabaze?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull Next >>
Step 3. Set up user authentification :
Set up the user authentification User name: mujlogin x Password required -> Test connection
Log in Password: MojeHeslo x Remember password until end of session -> OK Connection Test: The connection was established successfully -> OK
Next >>
Step 4. Save and proceed:
Decide how to proceed after saving she database Do you want the wizard to register the database in OpenOffice.org? -> Yes, register the database for me After the database file has been saved, what do you want to do? x Open the database for editing x Create tables using the table wizard Finish
Otevře se okno s běžným adresářem, je možno vybrat jiný adresář a zvolit název souboru, ve kterém si bude naši MySQL databázi OpenOffice registrovat. Přípona souboru bude .odb a typ souboru OpenDocument Database
-> Save
Práce s připojenou databází
editovatOtevře se hlavní okno OpenOffice.org Base,
Levý sloupec Database nabízí možnosti:
- Tables: práce s databázovými tabulkami
- Queries: vytváření složitých dotazů
- Forms: vytváření vstupních formulářů
- Reports: vytváření výstupních sestav
Tables: práce s databázovými tabulkami
editovatTasks
editovat- Create Table in Design View ...: Vytvoří tabulku v režimu návrhu
- Use Wizard to Create Table ...: Vytvoří tabulku pomocí "kouzelníka"
- Create View ...: Vytvoří pohled na databázi
Tables
editovatZobrazí existující tabulky a umožní s nimi pracovat.
- Dvojklik levým tlačítkem myši: Otevře okno a zobrazí tabulku
- Klik pravým tlačítkem myši: Otevře menu dalších možností práce
- Copy
- Delete
- Edit - edituje strukturu tabulky
- Open
- Form Wizard
- Report Wizard
- Select All
- Database
Queries: dotazy
editovatTasks
editovat- Create Query in Design View ...: Vytvoří dotaz v režimu návrhu
- Use Wizard to Create Query ...: Vytvoří dotaz pomocí "kouzelníka"
- Create Query in SQL View ...: Vytvoří dotaz v režimu SQL
Queries
editovatZobrazí existující dotazy a umožní s nimi pracovat.
- Dvojklik levým tlačítkem myši: Otevře
- Klik pravám tlačítkem myši: Otevře menu dalších možností práce
Forms: vytváření vstupních formulářů
editovatTasks
editovat- Create Form in Design View ...: Vytvoří formulář v režimu návrhu (umožní maximální kontrolu, ale je složitější se ho naučit ovládat).
- Use Wizard to Create Form ...: Vytvoří formulář pomocí "kouzelníka" (jednoduché pro začátečníky, těžko se ale dá ušít na míru podle potřeb). Obrázkový tutoriál na inpics.net
Forms
editovatZobrazí existující formuláře a umožní s nimi pracovat.
- Dvojklik levým tlačítkem myši: Otevře formulář, takže je možno editovat data
- Klik pravám tlačítkem myši: Otevře menu dalších možností:
Formulář v režimu návrhu
editovatFormulář je v podstatě dokument, vytvořený aplikací OpenOffice Writer, který obsahuje pole, svázaná s poli databázových tabulek tak, že je možno do nich zapisovat, zobrazovat je a editovat je.
Na začátku se otevře prázdný dokument s mřížkou. Ta je většinou moc hrubá. Normálně se dá nastavit v menu: Tools -> Options -> OpenOffice.org Writer -> Grid avšak, pokud pracujeme v OpenOffice.org Base, tak tam položky týkající se OpenOffice Writer docela chybí. Proto je zapotřebí ještě před zahájením režimu návrhu vyvolat OpenOffice Writer pomocí File -> New -> Text Document, tam jít na Tools -> Options -> OpenOffice.org Writer -> Grid a tam nastavit mřížku např. na 0.5 cm. Když potom znova vyvoláme z OpenOffice.org Base režim návrhu, je už mřížka nastavena podle našich potřeb.
Důležité ikonky na lištách (jejich umístění je možno změnit, ale takhle je to defaultně):
- Lišta vlevo (Form Controls toolbar)
- obsahuje ikonky pro ovládací prvky, jako jsou text field, list, combo box and push button
- Dolní lišta (Form Design toolbar)
- Design mode on/off (trojúhelníček s tužkou)
- Form Navigator (obdélníček s kompasem): Zobrazí okénko se seznamem všech prvků, použitých ve formuláři
- Open in design mode (Trojúhelníček s tužtičkou v deskách)
- Display Grid
- Snap to grid
- Display Grid
Klikneme na ikonu Form Navigator, zobrazí se okénko Form Navigator, klikneme pravým tlačítkem myši na zobrazenou ikonu adresáře a zvolíme New → Form. Pravý klik na nový formulář, vybereme Rename a obdaříme formulář nějakým vhodným názvem. Opakujeme pravý klik na nový formulář a tentokrát vybereme Properties. Otevře se tabulka, ve které můžeme podrobně specifikovat vlastnosti formuláře. Na záložce Data ze seznamu Content Type vybereme Table a ze seznamu Content vybereme název naší tabulky, do které chceme formulářem vkládat data (je to název databáze a za ním název tabulky, oddělený tečkou).
Abychom mohli do formuláře přidat nějaké vstupní pole, tak na liště Form Controls klikneme na Text box (ikonka ABC), namalujeme textové pole a dvakrát na něj klikneme. Pod záložkou Data ze seznamu Data field vybereme Entry. Podobným způsobem přidáme do formuláře další pole.
Pokud chceme přidat třeba Combo Box: klikneme na ikonku Combo box a namalujeme Combo box. Dvojklikem na namalovaný Combo Box, objeví se okno Properties: Combo Box, kde pod záložkou Data vybereme, co potřebujeme.
Vytvořený formulář umožňuje přidávat data z různých databázových tabulek. Ta se dělá pomocí podformulářů (subforms), což je jiný formulář vložený do hlavního formuláře. V okénku Form Navigatoru klikneme na název naší tabulky a vybereme New -> Form. Dáme tomuto podformuláři vhodné jménom klikneme na něj pravým a vybereme Properties. Pod záložkou Data ze seznamu Content Type vybereme Table a ze seznamu Content vybereme název tabulky, kterou chceme tímto podformulářem editovat .
Když přidáváme pole do formuláže z relačně svázené tabulky, musíme specifikovat link mezi primárním a sekundárním klíčem. V sekci Data ze seznamu Link master fields vybereme příslušné pole primárního klíče a ze seznamu Link slave fields vybereme pole sekundárního klíče.
Po ukončení návrhu vytvořený formulář uložíme (save) a okno OpenOffice.org Writer zavřeme (close). Dvojkliknem na ikonu nově vytvořeného formuláře a můžeme vkládat nová data.
Kompromisem mezi oběma režimy vytvoření formuláře (kouzelník a design view) je, že si návrh předpřipravíme kouzelníkem a při posledním 8.kroku (Set name) zvolíme možnost editace před použitím formuláře (Modify the form). Editaci provádíme způsobem, který jsme se naučili při vytváření formuláře v režimu návrhu. Pak se po odklepnutí Finish otevře formulář v aplikaci OpenOffice.org Writer v režimu návrhu, ve kterém můžeme provádět požadované změny.
Reports: vytváření výstupních (tiskových) sestav
editovatTasks
editovat- Use Wizard to Create Form ...: Vytvoří formulář pomocí "kouzelníka"
(Možnost vytvoří formuláře v režimu návrhu u stabilní verze OpenOffice v. 2.3 dosud chybí, ale pracuje se na ní)
Reports
editovatZobrazí existující sestavy a umožní s nimi pracovat.
- Dvojklik levým tlačítkem myši: Otevře
- Klik pravám tlačítkem myši: Otevře menu dalších možností práce
Reference, manuály
editovatMySQL
editovat- mysql.org Domovská stránka MySQL
OpenOffice.org
editovat- openoffice.org Domovská stránka OpenOffice.org
- wiki.services.openoffice.org OpenOffice.org wiki
- wiki.services.openoffice.org/wiki/Documentation Documentation Project - Wiki edition
OpenOffice.org Base
editovat- wiki.services.openoffice.org/wiki/Documentation/Database - odkazy na dokumentaci
- articles:ooobaseprimer Tutoriál OpenOffice.org Base primer na serveru nothickmanuals.info
- AndrewBase.pdf Podrobná dokumentace k Basi, 158 stran PDF, autor Andrew Pitonyak