OpenOffice oraz DBMS kontra Access



Spis treści

1. Wstęp

2. Wprowadzenie

3. Instalacja oprogramowania

3.1. Instalacja serwera baz danych

3.1.1. Użytkownicy Linuksa

3.1.2. Użytkownicy Windows

3.2. Instalacja środowiska Javy

3.2.1. Użytkownicy Linuksa

3.2.2. Użytkownicy Windows

3.3. Sprawdzanie poprawności instalacji Javy

3.4. Ustawianie Java dla OpenOffice.org

3.5. Instalacja sterownika JDBC

4. Ustanawianie połączeń do bazy danych

5. Projekt hurtowni warzywnej

5.1. Tworzenie tabel

5.2. Wprowadzanie danych do tabel

5.2.1. Dodawanie i konfiguracja formularza

5.2.2. Wstawianie i konfiguracja obiektów formularza

5.2.3. Wprowadzanie i modyfikacja danych

5.3. Wyszukiwanie danych oraz generowanie raportów

5.3.1. Tworzenie zestawień

6. Podsumowanie

1. Wstęp

W dokumencie przedstawiono możliwości wykorzystania pakietu OpenOffice.org oraz serwera baz danych MySQL jako alternatywy dla MS Access. W przeciwieństwie do poprzednich opracowań, które można znaleźć w Internecie, autor nie poprzestał tylko na opisie konfiguracji połączenia OOo oraz MySQL. W opracowaniu można odnaleźć również sposób tworzenia tabel, wprowadzania, przeglądania oraz modyfikacji danych. Cały interfejs do bazy danych oparty został na formularzach. Umożliwia to jego wykorzystanie również przez użytkowników nie posiadających wiedzy w zakresie relacyjnych baz danych. Jako podstawa do opisu posłużyło wykonanie projektu systemu zarządzania hurtownią.

2. Wprowadzenie

Jedną z wad wymienianych na niekorzyść programu OpenOffice.org jest brak narzędzi do obsługi baz danych. Z opinią tą można się spotkać przeglądając różnego rodzaju rankingi i porównania zamieszczone na witrynach internetowych. Użytkownicy migrujący do OOo z pakietu MS Office doszukują się oddzielnego modułu na wzór Accessa. Czegoś takiego w OOo nie ma, nie znaczy to jednak, że jest on pozbawiony narzędzi do współpracy z bazami danych. Interakcja z bazami danych zapewniona jest za pomocą obiektów formularza. Obiekty te można wstawić do dokumentów tekstowych, arkuszy kalkulacyjnych oraz stron WWW.

Celem tego opisu jest pokazanie możliwości funkcjonalnych pakietu OpenOffice.org jako narzędzia do tworzenia, modyfikowania i nawigowania danymi. Jest to próba sprawdzenia czy można zastąpić popularnego Accessa OpenOfficem połączonych z relacyjną baza danych. We wcześniejszych wersjach OOo istniały pewne trudności ze skonfigurowaniem połączenia z serwerem baz danych. Wynikały one ze skomplikowanej konfiguracji w przypadku ODBC oraz brak możliwości edytowania bazy danych w przypadku JDBC. Przy tym ostatnim trzeba było uruchamiać odpowiedni moduł w którym wpisywało się polecenia SQL lub korzystać z innego interfejsu niż OOo. Takie rozwiązanie eliminowało w zasadzie użytkowników nie mających podstaw pracy z DBMS-ami. Sytuacja ta uległa poprawie po wprowadzeniu wersji 1.1. oraz po ukazaniu się nowych sterowników do MySQL (MySQL przez swoją prostotę jest chyba najczęściej wykorzystywanym serwerem baz danych).

Aby można było porównać Accessa i OOo trzeba się też znać na tym pierwszym. Sam osobiście nie jestem specjalistą od Accessa więc poprosiłem znajomych używających od lat tego programu i tworzących w nim zaawansowane projekty (tu podziękowania dla Marka Sałasińskiego) o zaprezentowanie mi przykładowego projektu wykonanego w Accessie który ja postaram się wykonać w OOo. Tworzenie tego projektu oraz jego późniejsza obsługa opisana została w poniższym dokumencie.

3. Instalacja oprogramowania

Środowiskiem wykorzystanym do wykonania projektu był system operacyjny Linux PLD . Dlatego też sposób instalacji oprogramowania przedstawiony zostanie zgodnie z tą dystrybucją. Przedstawiono również skrócony opis instalacji i konfiguracji oprogramowania pod system operacyjny Windows. Opis ten jest jednak zaczerpnięty ze źródeł w internecie i nie do końca został przeze mnie przetestowany. Wykorzystano również w projekcie serwer baz danych MySQL. Nie jest jednak obligatoryjne zastosowanie tego serwera. Można skorzystać z innego ot chociażby równie popularnego PostgreSQL czy nawet serwerów komercyjnych. Elastyczność w doborze serwera jest zapewniona dzięki wykorzystaniu interfejsu JDBC. Nie wiem jednak jak przebiega współpraca OOo z innymi serwerami.

3.1. Instalacja serwera baz danych

3.1.1. Użytkownicy Linuksa

Proces instalacji rozpoczniemy od zainstalowania serwera baz danych. W tym celu jako użytkownik root wpisujemy:

[root@mustek krasus]# poldek

a następnie instalujemy pakiety:

poldek> install mysql-3.23.53-1 mysql-client-3.23.53-1 mysql-libs-3.23.53-1

Jeżeli posiadasz nowsze wersje pakietów niż te zamieszczone powyżej nic nie stoi na przeszkodzie aby z nich skorzystać, sam korzystałem z wersji 4.0.

Po opuszczeniu poldka uruchamiamy skrypt inicjujący tabele uprawnień i dostępu w MySQL

[root@mustek krasus]# /etc/rc.d/init.d/mysql init



a następnie uruchamiamy MySQL,

[root@mustek krasus]# /etc/rc.d/init.d/mysql start



Poprawność instalacji można sprawdzić logując się do MySQL. Przed ustawieniem haseł dostępu do bazy danych wystarczy wpisać:

[root@mustek krasus]# mysql -u mysql



Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2 to server version: 4.0.13-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>



Tworzenie tabel i wprowadzanie do nich danych wykonywać będziemy z poziomu OOo. Jednak wymagane jest aby przed próbą nawiązywania połączenia z OOo istniała jakaś baza danych do której będzie można się połączyć. Dlatego teraz utworzymy przykładową bazę danych. Nie wychodząc z MySQL wydajemy polecenie:

mysql>create database hurtownia;

Oraz nadamy użytkownikowi krasus nieograniczone prawa w tej bazie.

mysql>grant all on hurtownia.* to krasus@localhost identified by 'secret'

mysql>grant all on hurtownia.* to krasus@127.0.0.1 identified by 'secret'

Możemy już wylogować się z MySQL i kontynuować instalację oprogramowania.

Jeżeli nastąpiły jakieś problemy z instalacją MySQL pomocy należy szukać na stronie www.mysql.com/documentation/index.html. Ale również czuj się nieskrępowany pisząc do mnie.

3.1.2. Użytkownicy Windows

Binarna wersja MySQL pod Windows zawiera kreatora instalacji który automatycznie przeprowadzi proces instalacji. Po zakończeniu instalacji trzeba jeszcze utworzyć przykładową bazę danych. Jest to wymagane przez OOo aby połączenie wykonywać do istniejącej bazy. Należy więc utworzyć bazę danych o przykładowej nazwie hurtownia i nadać do niej prawa dowolnie wybranemu użytkownikowi.

3.2. Instalacja środowiska Javy

Środowisko Javy wymagane jest do uruchamiania programów Javy. Pliki konieczne do instalacji można znaleźć na stronie firmy Sun. Sun, producent technologii JavaTM udostępnił pliki instalacyjne pod adresem java.sun.com/j2se/1.4.2/download.html.

3.2.1. Użytkownicy Linuksa

Należy pobrać i zainstalować następujące lub nowsze wersje plików:

Instalujemy środowisko Javy wpisując kolejno:

[root@mustek your_download_dir]# ./j2re-1_4_2-linux-i586-rpm.bin

[root@mustek your_download_dir]# rpm -ihv j2re-1_4_2-linux-i586.rpm

[root@mustek your_download_dir]# ./j2sdk-1_4_2-linux-i586-rpm.bin

[root@mustek your_download_dir]# rpm -ihv j2sdk-1_4_2-linux-i586.rpm

Po instalacji należy skonfigurować środowisko systemowe dodając zmienną JAVA_HOME oraz ścieżkę do plików binarnych w pliku $HOME/.bashrc lub globalnie w pliku /etc/prifile.

export PATH=/usr/java/j2sdk1.4.2/bin:$PATH

export JAVA_HOME=/usr/java/j2sdk1.4.2


3.2.2. Użytkownicy Windows

Należy zainstalować pliki j2re-1_4_2_02-windows-i586-p-iftw.exe oraz j2sdk-1_4_2_02-windows-i586-p-iftw.exe lub nowsze. Po instalacji należy jeszcze ustawić zmienne środowiskowe. W Windows 9x, ustawiamy zmienne systemowe przez zmodyfikowanie pliku autoexec.bat, zlokalizowanym na dysku twardym w katalogu głównym. Plik ten jest wykonywany podczas startu systemu. Aby zmiany odniosły skutek, należy uruchomić ponownie system. Należy otworzyć plik autoexec.bat w edytorze tekstowym (użyj prostego edytora, np. notepad) i dodać ścieżkę do katalogu /bin/ znajdującego się w katalogu, gdzie zainstalowałeś JDK.

Np. jeżeli JDK zainstalowano w katalogu c:\jdk1.4\, należy dodać do pliku autoexec.bat linie:

set path=c:\jdk1.4\bin\

Trzeba być ostrożnym aby nie zmienić wcześniejszych ścieżek. Aby temu zapobiec dodaj tak zdefiniowana ścieżkę:

set path=%path%;c:\jdk1.4\bin\

W Windows NT, 2000 zmienną path należy dodać inaczej. Otwieramy Panel Sterowania (Control Panel), System i później wybieramy Environment Variabes, gdzie dodajemy nasze ścieżki do już istniejących zmiennej (Path), lub tworzymy nowe zmienne systemowe Path z naszymi ścieżkami1

3.3. Sprawdzanie poprawności instalacji Javy

W celu sprawdzenia poprawności zainstalowania komponentów Javy można napisać i uruchomić krótki skrypt. W ulubionym edytorze tekstowym należy wyedytować plik Test.java według poniższego wzoru:

public class Test

{

public static void main(String[] args)

{

System.out.println("Hello world");

}

}

Następnie skompilować go przy użyciu:

[prompt]$ javac Test.java

lub

C:\javac Test.java

Oraz uruchomić

[prompt]$ java Test

lub

C:\java Test

W wyniku uruchomienia programu na monitorze powinien się ukazać tekst “Hello world”. W ten sposób można mieć pewność, iż instalacja przebiegła prawidłowo.

3.4. Ustawianie Java dla OpenOffice.org

Jeżeli jeszcze nie zainstalowałeś programu OpenOffice.org możesz pominąć ten punkt. Ponieważ podczas instalacji instalator sam znajdzie twoje JRE i zapyta Cię tylko o potwierdzenie ustawień. Natomiast jeżeli masz już zainstalowany OOo musisz użyć programu który pomoże Ci ustawić środowisko Javy. W tym celu przejdź do katalogu w którym został zainstalowany program OpenOffice.org a następnie wybierz katalog program. Teraz uruchom skrypt jvmsetup wydając komendę:

[krasus@mustek program]$ ./jvmsetup

W windows wystarczy kliknąć dwa razy na ikonie pliku o nazwie jvmsetup.exe.

Po ukazaniu się okna dialogowego wskaż ręcznie, klikając przycisk Szukaj katalog j2sdk1.4.2. U mnie znajduje się on w /usr/java/j2sdk.1.4.2. Zatwierdź wybór naciskając OK. Jeżeli OOo był uruchomiony należy go zamknąć i uruchomić ponownie aby zmiany odniosły skutek.



Rysunek 1. Okno ustawiania środowiska javy w OpenOffice.org.


3.5. Instalacja sterownika JDBC

Sterownik JDBC zapewnia możliwość komunikowania się z bazą danych. Instalacja jego jest prosta co daje mu pewną przewagę nad sterownikami ODBC. Ponadto zapewnia on możliwość współpracy programu OOo z większą ilością baz danych, nawet komercyjnych.

Instalacja sterownika polega na pobraniu odpowiedniego pliku, rozpakowaniu oraz ustawieniu zmiennych środowiskowych. Najnowszy sterownik JDBC do MySQL można pobrać ze strony www.mysql.com/products/connector-j/index.html (nie może to być wersja niższa niż 3.0.9 ponieważ działanie jej jest wadliwe z OOo). Po pobraniu należy rozpakować plik mysql-connector-java-3.0.9-stable.tar.gz lub zip. Najważniejszy z rozpakowanych jest plik mysql-connector-java-3.0.9-stable-bin.jar (jest to właściwy sterownik) można go umieścić w dowolnym miejscu (katalogu) jednak ze względów porządkowych utwórzmy sobie katalog /usr/java/drivers a następnie przenieśmy tam ww. wymieniony plik. Należy również wskazać OOo ścieżkę dostępu do pliku sterownika. W tym celu uruchomiamy OOo i z menu Narzędzia wybieramy Opcje a następnie rozwijamy główną listę OpenOffice.org i zaznaczamy Bezpieczeństwo. W oknie tym przy zmiennej ClassPath naciskamy przycisk Przeglądaj celem wskazania ścieżki sterownika. W oknie Wybierz Archiwa naciskamy Dodaj i wskazujemy plik mysql-connector-java-3.0.9-stable-bin.jar. Zatwierdzamy wybór i po ponownym uruchomieniu OOo możemy już nawiązywać połączenie z bazą danych.




Rysunek 2. Okna dialogowe ustawiania zmiennej ClassPath

4. Ustanawianie połączeń do bazy danych

Uruchamiamy OOo i wybieramy, Narzędzia -> Źródła danych (lub naciskamy po prostu przycisk F4). Następnie klikamy prawym przyciskiem myszki w dowolnym miejscu okna eksploratora źródeł danych i wybieramy Administracja źródeł danych. Naciskamy przycisk Nowe źródło danych i ustawiamy odpowiednio:

Zakładka Ogólne

Nazwa: hurtownia

Typ bazy danych: JDBC

URL źródła danych: bez zmian

Zakładka JDBC

Klasa sterownika JDBC: com.mysql.jdbc.Driver

URL: jdbc:mysql://localhost/hurtownia?useHostsInPrivileges=false

Nazwa użytkownika: nazwa użytkownika zarejestrowanego w MySQL.

Wybieramy OK aby zatwierdzić ustawienia.



5. Projekt hurtowni warzywnej

Jako tło dla pokazania możliwości pracy OOo z bazami danych posłuży hipotetyczna hurtownia warzywna. Hurtownia ma podpisane umowy z dostawcami oraz z pewną grupą klientów. Zaprojektowany system ma posiadać możliwość dodawania do bazy nowych dostawców i klientów. Całość obrotu towarem opiera się na kontroli faktur. Schemat bazy danych zapewniający taką możliwość jest następujący rys 3.




Rysunek 3. Schemat bazy danych hurtownia.


Tabela klienci przechowuje dane klientów zaopatrujących się w naszej hurtowni, dostawcy dane dostawców towaru, natomiast towary zawiera produkty które oferuje nasza hurtownia. Tabele sprzedaz oraz dostawa odpowiadają za kontrolę ruchu w naszej firmie. Ze względu na to, iż celem opisu nie jest stworzenie systemu obsługi hurtowni a zapoznanie użytkowników z funkcjonowaniem OOo w połączeniu z bazami danych, schemat tabel został bardzo uproszczony. Jednak chyba każdy po zrozumieniu idei, bez problemu rozbuduje sobie min. tabelę dostawcy o adres klienta, telefon itp. oraz dostosuje schemat tabel do własnych potrzeb.

Jeżeli nie wiesz do czego potrzebna jest taka ilość tabel oraz co oznaczają strzałki między nimi nie musisz się przejmować. Sposób tworzenia prostej tabeli a później formularza który będzie pobierał i modyfikował dane możesz poznać śledząc opis zawarty w punktach od 5.1 do 5.2.3

5.1. Tworzenie tabel

Oczywiście tabele utworzymy korzystając z programu OOo. W tym celu po jego uruchomieniu wybieramy menu Widok -> Źródła Danych albo po prostu naciskamy klawisz F4. Po otwarciu menu w oknie eksploratora powinny ukazać się nasze źródła danych. Jeżeli wszystko wykonaliśmy prawidłowo powinno ich być co najmniej dwa: Bibliography oraz nasza hurtownia. Klikamy na “plusik” obok hurtowni w celu rozwinięcia jej struktury. Następnie rozwijamy strukturę tabel. W tym momencie program powinien zapytać nas o hasło dostępu do bazy danych. Po wpisaniu hasła powinny ukazać się nam tabele w bazie danych hurtownia. Oczywiście nic się nie pokaże ponieważ tabel tam jeszcze nie ma. Musimy dopiero je dodać.



Rysunek 4. Okno eksploratora źródeł danych

W tym celu klikamy prawym przyciskiem na gałęzi Tabele i z rozwiniętego menu wybieramy Nowy projekt tabeli. Otworzy nam się nowe okno projektu tabel. W środku okna znajduję się tabela z nazwami kolumn, w kolejności odpowiednio: Nazwa pola, Typ pola, Opis. Służy ona do budowy tabel w bazie danych. Rozpoczniemy od konstrukcji tabeli klienci (w każdej firmie klient jest najważniejszy). Klikamy w pierwszym wierszu kolumny Nazwa pola i wpisujemy ID_KLI. W kolumnie obok wybieramy poprzez rozwinięcie typ pola i wskazujemy Small Integer [INT](jest to typ liczb całkowitych). Na dole okna projektu tabel w obszarze Właściwości pola wybieramy Wartość automatyczna tak. Opis tej funkcji znajduje się w oknie obok. (Funkcja ta jest odpowiednikiem “mysqlowego” auto_increment jednak z moich doświadczeń nie za bardzo działa w wersji OOo 1.1. Jeżeli się mylę chętnie dowiem się jak należy jej używać). Pole ID_KLI jest wg schematu (rys. 3) identyfikatorem wartości tabeli klienci. Aby było nim rzeczywiście należy zadeklarować go jako klucz główny tabeli. W tym celu klikamy prawym przyciskiem myszki w lewym końcu wiersza ID_KLI (na szarym polu) i wybieramy z menu Klucz główny.

Pierwszą kolumnę tabeli klienci mamy już zdefiniowaną. Klikamy lewym przyciskiem myszki w wierszu poniżej i wpisujemy nazwę następnego pola. Odpowiednio: Nazwa_klienta typ text [VARCHAR], Opis – dowolność, Właściwości pola – dowolność. Pierwsza tabela jest w zasadzie gotowa, trzeba jeszcze ją zapisać. Wybieramy przycisk zapisz i nadajemy jej nazwę klienci.



Rysunek 5. Definiowanie tabeli klienci przy wykorzystaniu Menu projekt tabeli


Pozostałe tabele wykonujemy analogicznie do tabeli klienci zgodnie z rysunkiem nr 3. Pamiętając o tym aby typ pól zaczynających się od ID... był liczbowy (INT), natomiast pola data, tabel dostawa oraz sprzedaz zdefiniowane były jako Date.

Właściwy projekt tabel powinien opierać się również o klucze obce. Np. między kolumną ID_KLI tabeli dostawcy a kolumną ID_KLI tabeli sprzedaz powinna zachodzić integralność referencyjna. Ustawienie tego z poziomu OOo nie jest możliwe. Ponadto warto również włączyć opcję auto_increment we wszystkich kluczach głównych aby się nimi nie zajmować, co również nie jest możliwe z poziomu OOo. Jest jeszcze kilka innych innych szczegółów które należało by zmienić aby projekt był prawidłowy ale pozostawiam to pod rozwagę przyszłych projektantów.

5.2. Wprowadzanie danych do tabel

Skoro projekt tabel mamy już wykonany nie pozostaje nam nic innego niż je wypełnić danymi. Do tego celu stworzymy sobie specjalny interfejs aby zwykły użytkownik OOo nie miał większych problemów z uzupełnieniem tabel.

5.2.1. Dodawanie i konfiguracja formularza

W celu uzyskania miłego widoku naszego interfejsu wprowadzania danych, otwieramy nowy dokument writera a w nim wpisujemy kilka głośnych nagłówków z nazwą naszej firmy oraz rodzajem modułu (moduł zarządzania kontaktami). Zmienimy sobie tło dokumentu na jakiś ładny temat i piszemy na środku klienci. Nasz moduł dodawania i zarządzania klientami będzie bardzo prosty ponieważ mamy tylko jedno okno formularza, ale niech tam, klientów na pewno nam nie zabraknie.

Jak wspomniano wcześniej praca z bazami danych w pakiecie OpenOffice.org opiera się na formularzach. Rozpoczniemy od zdefiniowania formularza. Z menu prawej listwy okna roboczego wybieramy przycisk Formanty formularza. Pojawi się okno Funkcje formularza.




Rysunek 6. Menu Funkcje formularza.

Naciskamy w nim przycisk Nawigator formularza. W nowym oknie które się pojawiło klikamy prawym przyciskiem myszki na przycisku formularze i z rozwiniętego menu wybieramy Nowy oraz Formularz. Nowoutworzonemu formularzowi można nadać własną nazwę formularza np. hurt_kli (to mi akurat przyszło teraz do głowy).



Rysunek 7. Okno nawigatora formularzy.

Po zmianie nazwy klikamy prawym przyciskiem myszki na hurt_kli i wybieramy Właściwości. Przełączamy na zakładkę Dane i rozwijamy pole Źródło danych. Ustawiamy źródło danych na hurtownia. Pozostałe pola zgodnie z rysunkiem poniżej (patrz rysunek nr 8). W trakcie konfigurowania innych pól program zapyta nas o hasło dostępu do bazy danych. Po zdefiniowaniu pól zamykamy okno Właściwości formularza.




Rysunek 8. Ustawienia pól formularza.

5.2.2. Wstawianie i konfiguracja obiektów formularza

Formularz posiada kilka typów pól. Są to między innymi listy wyboru, pola tekstowe, pola liczbowe itp. Elementy te są widoczne w oknie Formanty formularza. Można do nich dowiązywać polecenia SQL wynik których wyświetlany jest później w danym polu. Nie trzeba jednak wpisywać ręcznie poleceń SQL, tę rolę spełnia za nas AutoPilot. Uruchamia się on zazwyczaj po wstawieniu danego obiektu do dokumentu. Z pomocą AutoPilota można łatwo przyporządkować do pola dane wyciągnięte z bazy danych.

Po takim wstępie można przystąpić do wstawiania pól formularza do dokumentu. Z menu Funkcje formularza (patrz rys. 6) wybieramy przycisk Pole kombi (pole to umożliwia zarówno odczytywanie informacji jak i ich zapis w bazie danych) i przeciągamy po dokumencie aby utworzyć obiekt. Po przeciągnięciu otworzy się okno AutoPilota. Wewnątrz niego lista tabel w bazie danych hurtownia. Wybieramy tabelę klienci i naciskamy Dalej. W następnym oknie AutoPilot pyta się jakie pole ma być wyświetlane w obiekcie lista wyboru. Wybieramy Nazwa_klienta i ponownie naciskamy Dalej. W kolejnym oknie AutoPilota definiujemy czy pole ma służyć tylko do odczytu danych czy również do zapisu. Wybieramy do zapisu i zaznaczmy kolumnę Nazwa_klienta. Poszczególne etapy tworzenia pola kombi pokazane są na oknach poniżej (rys. 9).




Rysunek 9. Przypisywanie danych do obiektu Pole kombi.

Na tym etapie możemy już rozpocząć wprowadzanie danych do tabeli klienci. Należy jeszcze wyłączyć tryb projektu w menu Funkcje formularza. A potem można już oddać się przyjemności wprowadzania dużej liczby klientów. Strona którą ja wykonałem jako moduł zarządzania kontaktami wygląda następująco – rysunek 10.





Rysunek 10. Formularz do zarządzania wpisami tabeli klienci.

5.2.3. Wprowadzanie i modyfikacja danych

Aby wprowadzić nazwę nowego klienta do bazy należy kliknąć w polu formularza wpisać nazwę i zatwierdzić naciskając Enter lub przycisk dyskietki na dolnym pasku narzędziowym okna roboczego. Wprowadzenie kolejnego rekordu rozpoczynamy od naciśnięcia przycisku Nowy rekord i ponownym wpisaniu nazwy w polu kombi. Usuwanie polega na wybraniu z listy “odpowiedniego kandydata” który zbyt późno reguluje płatności i naciśnięciu przycisku usuń. Podobnie z modyfikacją wpisu. Wybieramy z listy interesujący nas rekord i aktualizujemy. Przyciski modyfikacji zawartości bazy danych przedstawione są na rysunku poniżej.



Rysunek 11. Pasek narzędziowy bazy danych.

Jeżeli mamy tak ogromną liczbę klientów, że wyszukiwanie z listy rozwijanej jest uciążliwe możemy zastosować narzędzia do wyszukiwanie rekordu lub założyć filtr. Również te przyciski są umieszczone na pasku narzędziowym bazy danych.

W podobny sposób tworzymy formularze do wypełniania tabeli dostawcy oraz towary. Należy jednak zapamiętać, że w przypadku gdy chcemy zamieścić formularze odwołujące się do różnych tabel w bazie danych w jednym dokumencie musimy dla każdej tabeli stworzyć oddzielny formularz. W oknie Funkcje formularza wybieramy Nawigator formularza -> Dodaj Nowy formularz i odpowiednio ustawić jego parametry do właściwej tabeli.

Innego podejścia wymagają tabele dostawy oraz sprzedaz. W tym przypadku dane w formularzu łączone są z kilku tabel. Otwieramy nowy dokument w którym wykonamy formularz wprowadzania danych do tabeli sprzedaz. Jak w poprzednim przypadku możemy napisać kilka ładnych nagłówków i ustawić tło. Wstawimy również tabelę aby nasze pola formularza (a będzie ich tutaj znacznie więcej niż w poprzednich dokumentach) były równo ustawione w dokumencie. Rozpoczynamy: Menu Funkcje formularza -> Nawigator formularza -> Dodaj nowy formularz -> nazwa hurt_dost -> Właściwości formularza -> zakładka Dane. W oknie tym analogicznie do poprzednich tabel ustawiamy:

Źródło danych: hurtownia

Typ zawartości: Tabela

Zawartość: Dostawa

Pozostałe bez zmian.

Zamykamy okno. W dokumencie we wstawionej tabeli (pierwszy wiersz, pierwsza kolumna) wpisujemy Nazwa dostawcy:. Klikamy w kolumnie obok. Z okna Funkcje formularza wybieramy przycisk Pole listy i przeciągamy w tabeli. Następnie w nowootwartym oknie AutoPilota wybieramy tabelę dostawcy i naciskamy Dalej. W następnym oknie jako wyświetlane pole wybieramy Nazwa_dostawcy i ponownie Dalej. Kolejne okno umożliwia nam łączenie tabel. Połączymy tabele dostawy oraz dostawcy. Celem tego połączenia jest zamiana liczbowego identyfikatora dostawcy (ID_DST) tabeli dostawy na nazwę dostawcy (Nazwa_dostawcy) tabeli dostawcy. Jeżeli połączymy te dwie tabele to zamiast identyfikatora wyświetlana będzie w polu formularza nazwa dostawcy. Podsumowując, z pola Tabela wartości wybieramy ID_DST oraz pola Tabela listy ID_DST i naciskamy przycisk Utwórz. Powyższe kroki ilustruje rysunek nr 12.





Rysunek 12. Etapy przypisywanie danych polu Lista.

Wracamy do naszego dokumentu głównego. W następnym wierszu tabeli wpisujemy Nazwa towaru: i ustawiamy kursor w sąsiedniej kolumnie. Ponownie wybieramy z Menu Funkcje formularza przycisk Pole Lista i wstawiamy go do tabeli. Następnie podobnie jak w przypadku poprzednim przechodzimy przez serię okien AutoPilota ze wyborem w kroku pierwszym tabeli towary następnie w drugim pola nazwa_towaru oraz w trzecim, pól ID_TOW i ID_TOW.

Kolejny wiersz tabeli jest zarezerwowany na wpisywanie numeru faktury. Wpisujemy więc w pierwszej kolumnie Numer Faktury: i obok wstawiamy Pole tekstowe wybrane z okna Funkcje formularza. Tym razem jednak po wstawieniu pola AutoPilot nie zadziałał. Trzeba samemu je zdefiniować. Przy zaznaczonym obiekcie pole tekstowe (wstawione w tabeli) naciskamy przycisk Właściwości formantu. W otwartym oknie wybieramy zakładkę Dane i wierszu Pole danych ustawiamy kolumnę NR_FAKT. Zamykamy okno.

W podobny sposób postępujemy z polem do wprowadzania daty wystawienia faktury. A zatem: Menu Funkcje formularza -> przycisk Pole Daty -> Wstawienie pola w tabeli -> Menu Funkcje formularza -> przycisk Właściwości formantu -> zakładka Dane -> Pole Danych ustawiamy na kolumnę data.

W analogiczny sposób postępujemy z polem ilość. Po wprowadzeniu wszystkich pól możemy wyłączyć w oknie Funkcje formularza tryb projektu i zobaczyć efekty. Formularz sporządzony przeze mnie wygląda następująco.




Rysunek 13. Formularz wprowadzania faktur dostawy towaru.

W jaki sposób teraz należy wprowadzać dane do bazy? Z listy wyboru Nazwa dostawcy wybieramy dostawcę który przywiózł nam towar (zakładam, że ta tabela oraz tabela towary zostały wcześniej wypełnione) Z nazwa produktu wybieramy towar jaki został dostarczony. Wpisujemy numer faktury, datę jeżeli jest inna niż dzisiejsza oraz wypełniamy pole Ilość towaru. Zatwierdzamy wprowadzone dane i tyle.

Pozostaje jeszcze wykonanie w analogiczny sposób formularza do wprowadzania faktur ze sprzedaży i można otwierać hurtownię.

5.3. Wyszukiwanie danych oraz generowanie raportów

Jak już wprowadzimy trochę faktur oraz sprzedamy trochę towaru warto by było się pokusić o pewne podsumowania. Sprawdzić obroty naszej firmy oraz ustalić strategicznych klientów. OpenOffice.org posiada gotowe narzędzia tworzenia różnego rodzaju zestawień oraz raportów.

5.3.1. Tworzenie zestawień

Chcemy zobaczyć jaki towar najlepiej schodzi oraz jaki klient najwięcej od nas zakupił. Do sporządzenia tego zestawienia posłużymy się kwerendą. W dowolnym dokumencie writera otwieramy źródła danych (F4). Rozwijamy źródło hurtownia i klikamy prawym przyciskiem myszki na Kwerendy. Z rozwiniętego menu wybieramy Nowy projekt kwerendy. Do projektowania kwerend OOo posiada specjalne menu. W tym menu klikamy dwa razy przycisk Dodaj tabelę... znajdujący się na pasku narzędziowym. W oknie Dodaj tabelę zaznaczamy sprzedaz a następnie przycisk Dodaj. Czynność powtarzamy dla tabel klienci oraz towary. Rysunek 14 przedstawia menu dodawania tabel.




Rysunek 14. Dodawanie tabel w projekcie kwerendy.

Wstawione tabele należy jeszcze połączyć zależnościami referencyjnymi. W tym celu należy przeciągnąć pole ID_KLI tabeli sprzedaz na ID_KLI tabeli klienci. W ten sam sposób połączyć również ID_TOW tabel sprzedaz i towary. Teraz już można rozpocząć konstruowanie kwerend.

  1. Wyszukiwanie ilości oraz rodzaju sprzedanego towaru.

    1. Graficzny projekt kwerendy

    1. Wpisanie polecenia SQL

  1. Nazwa klienta, rodzaj towaru oraz ilość

    1. Graficzny projekt kwerendy

    1. Wpisanie polecenia SQL

  1. Sprawdzanie ilości towaru w magazynie

    1. Wpisanie polecenia SQL

Mamy zdefiniowanych kilka kwerend możemy generować zestawienia i raporty. Z menu plik wybieramy AutoPilot -> Formularz. W oknie Wybierz bazę danych wybieramy hurtownia a w oknie Tabele i kwerend np. Ilosc_w_magazynie. Wybieramy pola które mają być pokazywane (wszystkie), naciskamy Dalej. Dobieramy wg. własnych upodobań rozmieszczenie pól oraz ich style in naciskamy Utwórz. Zapisujemy plik pod dowolną nazwą i już znamy ilość poszczególnych towarów w magazynie. Możemy teraz wyszukiwać lub zakładać filtry aby odnaleźć interesujące nas produkty.

Wygenerujemy jeszcze raport zestawiający nam ilość oraz rodzaj towaru zakupionego przez poszczególnych klientów. Wybieramy Menu Plik -> AutoPilot -> Raport. Baza danych jak poprzednio - hurtownia kwerenda klienci_towary_ilosc. Wstawiamy wszystkie pola i naciskamy Dalej. Zmieniamy etykiety pól wg. własnych upodobań i naciskamy Dalej. Grupować nie będziemy ponieważ robi to już kwerenda więc naciskamy Dalej. Możemy teraz posortować dane tak jak nam odpowiada i nacisnąć Dalej. Wpisujemy tytuł raportu, wybieramy styl i naciskamy Dalej. W kolejnym oknie wybieramy raport statyczny i naciskamy Utwórz. Raport gotowy.

6. Podsumowanie

Najważniejsze założenia projektu zostały spełnione. Według Marka Sałasińskiego są to:

Poprzez odpowiednio zdefiniowane formularze mamy pewność, że użytkownicy będą mieli dostęp tylko do tych części danych do których powinni. Ponadto ten sposób organizacji dokumentu zapewnia nam, że nawet ci z użytkowników, którzy nie mający pojęcia o bazach danych będą mogli je obsługiwać.

Kolejnym ważnym a zarazem trudnym zadaniem było dostarczenie możliwości sprawdzania ilości towaru w magazynie. Nie udało się stworzyć tej usługi poprzez kwerendę w trybie projektu ale problem został pokonany przez bezpośrednie wpisanie polecenia SQL.

Jak już kilkakrotnie wspomniano projekt nie jest dopracowany aby mógł być wykorzystany w prawdziwej firmie. Odpowiedni poziom bezpieczeństwa danych w bazie nie został osiągnięty. Bardzo łatwo jest usunąć dane podczas pracy z polami typu kombi. Dlatego warto by było rozbić moduł zarządzania kontaktami na kilka podmodułów: wprowadzania, wyszukiwania oraz modyfikacji. Istnieje jeszcze kilka ważnych aspektów które należy zmienić w prawidłowym projekcie. Nie mniej myślę, że zostało pokazane, iż program OpenOffice.org może w pewnym stopniu zastąpić Accessa. W jakim, nie wiem, nie znam się na Accessie. Miłej zabawy.

Adam Krasuski (akrasuski@sgsp.edu.pl)

Licencja GPL


1Informacje zaczerpnięte ze strony http://www.javasoft.pl/java/java_1.html