Download: KnowhowKnoda

Transkrypt

Download: KnowhowKnoda
Warsztat - Knoda
KNOWHOW
Zarządzanie bazami danych w KDE
DOBRZE UŁOŻONE
Knoda to przyjazny użytkownikowi program
sprawiający, że zarządzanie bazą danych
staje się intuicyjnym doświadczeniem.
W drugiej części naszego warsztatu podejmiemy
się tworzenia formularzy i drukowania raportów
w programie Knoda. MARCEL HILZINGER
W
poprzednim miesiącu nauczyłeś
się formułować zapytania dla wielu tabel. Dziś się dowiesz, jak
w programie Knoda tworzyć tabele, formularze i raporty.
W warsztacie zakładamy, że pracujesz ze
sterownikiem Sqlite2, lecz powinieneś móc
śledzić przykłady na dowolnej bazie danych.
W Ramce 1 znajdziesz przykładową konfigurację Knody, by współpracowała z MySQL.
Użytkownicy Suse Linux 9.1 być może muszą dokonać pewnych napraw. Jeśli uaktualniałeś KDE do wersji 3.3.2, YaST mógł zainstalować jakieś starsze pakiety Knody. W takim przypadku przeinstaluj program.
Tworzenie bazy danych
Uruchom Knodę i w oknie wyboru sterownika wybierz Sqlite2. Wybierz File | New | Database i podaj nazwę bazy danych. Utworzona
baza powinna się pojawić w polu Current database. Jeśli tak się nie stało, musisz wybrać
nową bazę danych z listy rozwijanej. Tabelę
w nowej bazie tworzymy, klikając prawym
przyciskiem Tables i wybierając New. Jeżeli
wolisz, możesz zamiast tego skorzystać z pozycji menu File | New | table.
W zakładce Table – Unamed (Rysunek 1)
kliknij na New Field, żeby dodać kolumny
(pola) do tabeli. Opisywanie szczegółowo
wszystkich typów pól wykracza poza temat
tego warsztatu. Wystarczy rzec, że można
zajść daleko z tekstem, liczbami całkowitymi
i rzeczywistymi. Typ bool używany jest w polach opisujących wartości typu tak/nie albo
PRAWDA/FAŁSZ. MySQL i Postgres obsługują trzy stany w takim polu (np. tak, nie,
nie wiadomo).
Rysunek 1: Wszystko działa: tworzenie nowej tabeli w programie Knoda.
W tym warsztacie utworzymy bazę danych
do zarządzania członkostwem w klubie kręglarskim. W tym celu dodajmy do pierwszej
tabeli bazy pola wymienione w Tabeli 1, począwszy od ID. Ponieważ pole to ma licznik
automatyczny, nie może mieć wartości zero.
Będzie naszym głównym indeksem. Po dodaniu pól wybierz Other Table i zapisz tabelę jako Kręglarze. Zauważ, że Sqlite nie pozwala
na późniejsze zmiany w strukturze tabeli,
więc sprawdź dokładnie, czy pola są takie,
jak zamierzone.
Teraz dodaj kategorie (np. juniorzy, dorośli, seniorzy) do drugiej tabeli nazwanej Kategorie, a do trzeciej różne rodzaje kól do kręgli (LaneMasters, RotoGrip, Ebonite itp.).
Zapisz tę tabelę jako Kule. Te dwie tabele
WWW.LINUX-MAGAZINE.PL
Tabela 1: Przykładowa
tabela – Klub kręglarski.
nazwa pola
typ pola
ID Auto Increment
Nazwisko
Text
Imię
Text
Ulica
Text
Kod
Small Integer
Miasto
Text
Kategoria
Small Integer
Składka roczna
Small Float
Opłacił
Bool
Kula
Small Integer
NUMER 15 KWIECIEŃ 2005
59
KNOWHOW
Warsztat - Knoda
mają po dwie kolumny: identyfikator ID
oraz drugą: Kategoria lub Kula.
Formularze ułatwiają życie
Jeśli czytałeś pierwszą część naszego warsztatu, pamiętasz, że w Knodzie do każdego elementu są dwa tryby. By wypełnić nową tabelę
danymi, przełącz się na tryb widoku i wprowadź dane jak w normalnym arkuszu. Oczywiście, jeżeli dodajesz dane do głównej tabeli, dużo wygodniej będzie utworzyć formularz do wprowadzania danych. Dzięki formularzowi będzie też można połączyć trzy tabele, tj. nie trzeba znać identyfikatorów poszczególnych kategorii podczas określania
wartości Kategoria. Zamiast tego wybierze
się rekord z rozwijanej listy.
Aby utworzyć nowy formularz, kliknij prawym przyciskiem na Forms, albo wybierz
z menu głównego File | New | Form. Gdy
otworzy się edytor formularzy (Rysunek 2),
najpierw trzeba wybrać źródło danych – kliknij na ikonce z trzema kropkami po prawej od
listy rozwijanej. Wybierz wcześniej utworzone trzy tabele i dodaj je jako źródła danych.
Następnie wybierz z listy tabelę Kręglarze.
Gdy uruchomisz edytor formularzy, Knoda automatycznie doda elementy konieczne
do utworzenia formularzy. Jeśli nie wiesz, do
czego służy dana ikona, przytrzymaj nad nią
wskaźnik myszy, a pojawi się pożyteczna
podpowiedź. Kliknij teraz na ikonie Lineeditfield, a potem na (pustym) formularzu. Spowoduje to dodanie pola do formularza. Trzeba poinformować program, jakiego rodzaju
danych ma się spodziewać w tym polu, i jak
mają one być formatowane – przyjrzyj się zakładkom Data, Format, Frame i Actions. Jako
źródło danych w pierwszym polu wybierz tabelę Kręglarze. Powtórz te kroki, dodając po-
Rysunek 2: Praca z edytorem formularzy Knody.
zostałe pola, oprócz pól Kategoria, Kula
i Opłacił. Przejdź teraz do trybu wyświetlania, by przetestować formularz.
Pole Opłacił jest typu logicznego. Albo
członek zapłacił roczną składkę, albo nie.
Dla tego pola kliknij na ikonie Booleanfield
z palety, i powiąż to pole z polem Opłacił
w tabeli Kręglarze. Żeby było wiadomo, do
czego służy ten znacznik, jako etykietę (Label) wpisz Opłacona składka roczna.
Dla pól Kategoria i Kula wybierz Combobox.
Musisz tu określić dwa źródła danych. Najpierw zaznacz pole Kategoria ze źródłem danych Kręglarze. Następnie jako Listdatasource
wybierz pozycję Kategoria; wybierz ID jako
Listcolumn i Kategoria jako kolumnę do wyświetlenia. Powtórz te kroki, by utworzyć
rozwijane menu różnych typów kul do kręgli.
Na końcu dodaj do formularza pasek nawigacyjny. Pasek ułatwia użytkownikowi
przechodzenie do kolejnego rekordu i dodawanie nowych rekordów (Rysunek 3).
Choć każdy formularz może mieć pasek nawigacyjny, nie da się zmienić domyślnego
wyglądu.
Raporty
Jest zrozumiałe, że prezes klubu kręglarskiego chciałby wiedzieć, czy wszyscy opłacili
roczną składkę członkowską. Możesz wykorzystać Knodę do wygenerowania raportu
z tymi cennymi dla prezesa informacjami.
W tym celu wybierz z głównego menu File |
New | Report albo otwórz nowy raport przez
menu kontekstowe pozycji Report. W naszym
Ramka 1: Knoda a MySQL
Oprócz Sqlite, Knoda obsługuje też bazy
danych MySQL i Postgresql. Ponadto ogólny interfejs ODBC umożliwia dostęp do dowolnej bazy danych zgodnej z SQL. Aby
program Knoda mógł rozpoznać te bazy,
przed kompilacją hk_classes musisz doinstalować pakiety deweloperskie do bazy, do
której chcesz uzyskać dostęp. Dzięki temu
hk_classes będzie w stanie skompilować
wymagane sterowniki bazy danych. MySQL
wymaga pakietu mysql-devel, Postgres –
postgres-devel itp.
Gdy skończy się budowanie hk_classes
60
NUMER 15 KWIECIEŃ 2005
i Knody, na wykazie sterowników będzie widać, dla jakich baz danych hk_classes były
w stanie znaleźć pakiety deweloperskie. Powinna tam być pozycja z MySQL. Żeby uruchomić bazę MySQL, wydaj jako root następujące polecenie:
/etc/init.d/mysql start
Podczas ładowania bazy danych powinieneś zobaczyć chociaż jedną linię z tekstem
Done lub OK. Suse Linux dodatkowo poleca ustawić hasło użytkownika root bazy My-
WWW.LINUX-MAGAZINE.PL
SQL. W tym celu wpisz mysqladmin -u root
password nowe hasło. Jeżeli nie ustawisz
hasła, będzie można zalogować się na serwer MySQL bez sprawdzania Twojej tożsamości. Aby się zalogować, wybierz w Knodzie pozycję MySQL w oknie wyboru sterownika. W następnym oknie wpisz root jako nazwę użytkownika i kliknij OK. Podczas
łączenia się ze zdalnym serwerem MySQL
trzeba podać adres IP lub DNS serwera MySQL w polu Host. Zwykle też w takim przypadku trzeba wprowadzić nazwę użytkownika i hasło.
Warsztat - Knoda
pierwszym raporcie w oknie wyboru źródła
danych musimy wybrać tabelę Kręglarze.
Kliknij teraz na ikonce New Field paska narzędzi, następnie na Datasection, by dodać pole. Tak jak w edytorze formularzy, do definiowania właściwości raportu możesz użyć zakładek w prawym panelu. Jako pierwszy element
wybierz pole Nazwisko. Powtórz ten krok dla
pól Imię i Opłacił. Przełącz na tryb widoku, by
obejrzeć zaczątek raportu, wyszczególniający
nazwiska i imiona wszystkich członków, wraz
ze słowem TRUE (prawda), gdy dany członek
klubu opłacił składkę. FALSE (fałsz) oznacza,
że opłaty nie wniesiono.
Oczywiście, w tak prostym formacie dłuższa lista będzie nieczytelna. Wypadałoby dodać sekcję dla opcji Opłacił. Knoda wyświetli
najpierw wszystkich tych, którzy nie zapłacili składki członkowskiej, a następnie tych,
którzy zapłacili. Aby to osiągnąć, kliknij na
pasku na ikonce Sections. W oknie, które się
pojawi, dodaj nową sekcję Opłacił do istniejących i kliknij na Exit.
W edytorze raportu widzimy teraz dwie
nowe pozycje: Sectionheader: paid i Sectionfooter: paid. Dodaj Opłacił do nagłówka sekcji,
Nazwisko i Imię mogą zostać w sekcji szczegółów – gotowe!
Ale taka lista nadal nie jest tym, co chciałby prezes. Aby złożyć mu raport wymieniający tylko nazwiska ludzi, którzy zalegają
z opłatą, trzeba najpierw ułożyć zapytanie,
którego wyniki posłużą jako źródło danych
do raportu. Takie podejście ma jeszcze jedną
zaletę: można ułożyć listę w porządku alfabetycznym.
Aby utworzyć zapytanie, wybierz File |
New | Query, kliknij prawym przyciskiem
myszy na pustym polu źródła danych i wybierz Add datasource. W kolejnym oknie dialogowym dodaj z rozwijanej listy tabelę Kręglarze. Następnie przeciągnij następujące pola do macierzy zapytania:
■ Nazwisko
■ Imię
■ Opłacił
Do kolumny Opłacił dodaj kryterium =0
i ustaw opcję Display na No. Aby uruchomić
zapytanie, przełącz na tryb wyświetlania. Jeśli wszystko zadziała zgodnie z planem, wyświetlona zostanie lista z nazwiskami i imionami członków, którzy nie opłacili składek.
Żeby ułożyć pozycje w porządku alfabetycznym według pola Nazwisko, ustaw opcję Sorting na Ascending (rosnąco) lub Descending
(malejąco).
Teraz zapisz zapytanie i utwórz nowy raport. W oknie z wyborem źródła danych jako
KNOWHOW
Rysunek 3: Ukończone dzieło.
Rysunek 4: Żeby zrobić prosty raport, dodaj potrzebne pola jako szczegóły.
Based on wybierz właśnie zapisane zapytanie.
Możesz wtedy dodać pola Nazwisko i Imię do
sekcji danych, i właśnie ukończyłeś raport
dla prezesa. Aby podrasować wygląd, możesz
wybrać inną czcionkę lub kolor tła.
Mało?
Jeśli ten warsztat wzbudził Twój apetyt,
przejrzyj stronę domową projektu [1], na
której autor prowadzi serwis Wiki. W razie
kłopotów poszukaj wskazówek na liście dyskusyjnej Knody [2]. Bardziej dogłębne infor-
WWW.LINUX-MAGAZINE.PL
macje można znaleźć w samouczkach Knody
pod adresem [3].
■
INFO
[1] Strona domowa Knody:
http://www. knoda. org
[2] hk_classes i lista dyskusyjna Knody:
https://lists.sourceforge.net/lists/listinfo/hk-classes-discuss
[3] Samouczek: http://hk-classes.sourceforge.
net/tutorials/
NUMER 15 KWIECIEŃ 2005
61

Podobne dokumenty