OpenOffice.org/Base

Jak používat klasifikační nálepkuTato 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í informaceEditovat

Projekty na WikiverzitěEditovat

InstalaceEditovat

Instalace OpenOffice.org Base a použitá verzeEditovat

OpenOffice.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.

KonektorEditovat

U 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 MySQLEditovat

Př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íEditovat

Otevř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 tabulkamiEditovat

TasksEditovat

  • 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

TablesEditovat

Zobrazí 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: dotazyEditovat

TasksEditovat

  • 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

QueriesEditovat

Zobrazí 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ářůEditovat

TasksEditovat

  • 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


FormsEditovat

Zobrazí 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ávrhuEditovat

Formulář 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) sestavEditovat

TasksEditovat

  • 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í)

ReportsEditovat

Zobrazí 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ályEditovat

MySQLEditovat

OpenOffice.orgEditovat

OpenOffice.org BaseEditovat