Pracując z dBASE IV 2.0 (cz. 2)

Podobnie, jak w poprzednich wersjach, należy podać nazwy pól (do 10 znaków), ich typ (numeryczne, znakowe, data, logiczne i "memo"), wielkość i, czego nie było wcześniej, klucz sortowania. Można także, podając "yes" w kolumnie "index", zażyczyć sobie automatycznej generacji zbioru indeksowego wg zadanego pola. Zbiory te nie są zgodne ze zbiorami indeksowymi wcześniejszych wersji, umożliwiają za to znacznie szybsze wyszukiwanie informacji.

Podobnie, jak w poprzednich wersjach, należy podać nazwy pól (do 10 znaków), ich typ (numeryczne, znakowe, data, logiczne i "memo"), wielkość i, czego nie było wcześniej, klucz sortowania. Można także, podając "yes" w kolumnie "index", zażyczyć sobie automatycznej generacji zbioru indeksowego wg zadanego pola. Zbiory te nie są zgodne ze zbiorami indeksowymi wcześniejszych wersji, umożliwiają za to znacznie szybsze wyszukiwanie informacji.

Dużym ułatwieniem dla użytkowników jest możliwość powiązania nazwy tworzonej bazy, która może być co najwyżej 8-znakowa, ze zbiorem nazw opisowych, zawierających dowolne znaki (w tym spacje) do łącznej długości 65 znaków, pozwalających na pełniejsze opisanie zawartości bazy.

Tworzenie wyciągu z baz - View

View jest przekrojem przez jedną lub kilka baz danych. Pozwala utworzyć fikcyjną, "wirtualną" bazę danych, w skład której mogą wchodzić zarówno pola wyselekcjonowane, jak i pola, będące wynikiem działań na polach istniejących.

Prawidłowo zaprojektowany system baz danych unika powtarzania tej samej informacji w różnych zbiorach. Wyjątek stanowi tzw. pole kluczowe, które pozwala łączyć informację zawartą w rekordach dwóch lub więcej zbiorów baz danych poprzez odnalezienie rekordów z tą samą wartością pola kluczowego. W ten sposób, operując wyłącznie wartościami pól kluczowych, można mieć łatwy dostęp do pełnej informacji ukrytej pod tym kluczem. Najczęściej polem kluczowym są numery klientów, numery katalogowe części i kody operacji.

Tworzenie wyciągu polega na otworzeniu zbiorów, z których dane mają się w nim znajdować i połączenie ich poprzez wpisanie słowa "link" w odpowiadające sobie pola kluczowe (rys. 2).

Wyciąg może zawierać pola, które w danym zestawieniu mogą być nieprzydatne. Można je wyłączyć z wyciągu, a kolejność pozostałych ustalić zgodnie z potrzebami.

Nowo powstały zbiór można posortować wg dowolnego pola, także tego, które nie weszło w skład View, wydając komendę Asc lub Desc w polu wg którego baza ma być posortowana (rosnąco lub malejąco). CC utworzy wtedy zbiór indeksowy wyciągu.

Niezmiernie przydatną funkcją CC jest możliwość tworzenia pól obliczeniowych. Jest to fikcyjne pole, nie istniejące w strukturze żadnej z otwartych baz danych, zawartością którego jest wynik pewnych operacji wykonanych na bieżąco dla każdego rekordu, np. wiek pracownika, liczony jako różnica między rokiem bieżącym a rokiem urodzenia. Operacje te mogą oczywiście dotyczyć dwóch lub więcej pól jednocześnie, np. nowe pole "wartość" może być iloczynem wartości pól "cena" i "liczba sztuk" minus "rabat". Skomplikowane wzory obliczeń mogą nieco opóźnić przeglądanie bazy wirtualnej, gdyż wartości są obliczane na bieżąco w momencie wyświetlania danego rekordu na ekranie.

W trakcie tworzenia wyciągu dotychczasowy rezultat pracy można w każdej chwili obejrzeć na ekranie (patrz rys. 3). Baza wirtualna może być wyeksportowana jako nowy zbiór .DBF, zawierający wszystkie wyselekcjonowane pola. Czynność ta "odłącza" ją od baz źródłowych, co z jednej strony uniemożliwia ich automatyczną aktualizację, ale z drugiej znacznie przyspiesza przetwarzanie, gdyż nie ma potrzeby linkowania na bieżąco kilku zbiorów, jak również obliczania danych dla pól obliczeniowych, ponieważ są one tworzone jako fizyczne wartości w strukturze nowego zbioru danych.

Zapytania i filtry

Jedną z większych zalet CC są filtry i zapytania (Queries), proste w tworzeniu i skuteczne w działaniu. Dzięki nim można zaprojektowaną wcześniej bazę wirtualną okroić do koniecznego minimum i wydzielić rekordy spełniające określone warunki.

Dla pól z wartościami numerycznymi można znaleźć: rekord z minimalną (MIN) lub maksymalną (MAX) wartością dla danego warunku, średnią arytmetyczną (AVG), sumę wartości (SUM), czy też obliczyć liczbę rekordów spełniających warunek dla dowolnego typu pola (COUNT). A wszystko to wymaga jedynie wpisania nazwy funkcji w pole, którego operacja ma dotyczyć. Ponadto dostępnych jest wiele funkcji pozwalających operować na polach tekstowych, np. umożliwiających wyszukanie rekordów zawierających podany wycinek słowa, zaczynający się od liter, brzmiących podobnie do podanego słowa, niestety tylko wg fonetyki i pisowni angielskiej. Jeśli użytkownik nie wie np., czy nazwisko pracownika brzmi "Sandy", czy też "Sandi" to wystarczy w pole zapytania wpisać <sounds like "sandi">, aby odszukać wszystkie te rekordy, które zawierają nazwiska o wymowie zbliżonej do "sandi".

Dzięki istnieniu "przykładowych zmiennych" (example variables) wartość jednego pola można podstawiać do warunku poszukiwań w innym polu. Na przykład, jeśli dana jest baza wyrobów, zawierająca pola z ceną bieżącą i poprzednią, można zadać pytanie dotyczące wyrobów, których cena zmieniła się o wartość większą niż podana.

Bardzo wygodna jest również możliwość grupowania danych wg wartości wybranego pola i jednoczesnego obliczania sumy lub średniej dla pól numerycznych oraz liczby rekordów w ramach każdej grupy.

Prosta jest też funkcja zamiany jednej wartości pola na inną. Chcąc dokonać zamiany dla określonej grupy rekordów należy założyć filtr, który wydzieli niezbędne rekordy, podać polecenie zamiany i wpisać we właściwe pole nową wartość lub wyrażenie. W ten sposób można np. zgrupować za pomocą filtru pracowników zajmujących określone stanowisko, których wiek nie przekroczył określonego roku życia, a którym postanowiono podnieść pensje o 10% i za pomocą jednej operacji zamiany dokonać jednoczesnej aktualizacji wysokości ich zarobków w bazie danych.

CC pozwala również na dopisywanie nowych rekordów do bazy poprzez przepisanie wybranych wartości pól z innej bazy. I tu również można zastosować filtr, ograniczający zasięg operacji. Można w ten sposób wyselekcjonowaną bazę pracowników, którzy mają otrzymać premie, uzupełnić w oparciu o główną bazę pracowników o nazwiska tych, którzy pracują w zakładzie dłużej niż 20 lat.

Nowe filtry i optymalizatory zapytań pozwalają jednocześnie na bardzo szybką pracę także w środowisku wielodostępnym.

Możliwość łączenia wszystkich tych operacji zapewnia modułowi Queries ogromną elastyczność i wszechstronność zastosowań.

Formy ekranowe i raporty

Po zaprojektowaniu bazy danych należy przedstawić ją na ekranie w ciekawej i czytelnej formie. Do tego celu służy moduł projektowania form ekranowych. Pozwala on na dowolne rozlokowanie danych jednego rekordu na ekranie. Zamiast skrótowych nazw pól można napisać własne pełne, dopisać nagłówek, otoczyć dane ramką, zdefiniować format wyświetlanych danych np. zamienić małe litery na duże, określić liczbę miejsc numerycznych dla danych liczbowych czy też wyświetlić wartości obliczeniowe. Tak zaprojektowany ekran staje się zrozumiały i czytelny dla każdego pracownika, który chciałby skorzystać z bazy danych, nawet jeżeli siada on po raz pierwszy przed ekranem komputera.

Uzyskanie odpowiednich danych na ekranie, to tylko połowa sukcesu. Ukoronowaniem pracy jest wydruk, którego forma winna być pełna i przejrzysta. CC oferuje takie narzędzia w postaci modułu raportów.

Istnieją dwa typy raportów: "Quick Report" i "Custom Report". Pierwszy pozwala w szybki i prosty sposób otrzymać wydruk zawartości bazy danych w takiej postaci, jaka istnieje na dysku lub została zaprojektowana za pomocą modułu View. Wystarczy dopisać numer strony, datę oraz nazwy kolumn.

Zupełnie nowe możliwości w kreowaniu postaci strony wydruku oferuje druga z możliwości. Dostępny jest duży wybór stylów raportu (np. raporty kolumnowe, formularze i typu mail-merge). Raport może być oparty na danych z kilku plików, zawierać podsumowania oraz nagłówki i stopki na każdej stronie. Dopuszczalne jest dowolne rozlokowanie danych na ekranie, co wyraźnie poprawia czytelność wydruku. Wizualne narzędzia pozwalają utworzyć efektowne raporty, wykorzystując bogactwo krojów, czcionek i efektów graficznych.

Naklejki

Moduł drukowania naklejek "Label" nie wnosi wiele nowego w porównaniu z Asystentem w dBASE III+. Powiększono jedynie listę dostępnych zestawów naklejek oraz możliwości rozlokowania na nich danych. Można też zdefiniować format, w jakim będą drukowane dane.

Oczywiście, tak jak w module View, można przed wydrukowaniem połączyć ze sobą niezbędne bazy danych za pomocą pól kluczowych, jak i drukować pola danych. Przed wydrukiem, jego projekt można obejrzeć na ekranie i ewentualnie posortować dane względem dowolnego pola.

Generator Aplikacji

Pewną niedogodnością Control Center są ograniczenia związane z liczbą dostępnych funkcji. Jeśli dla kogoś jest to za mało, to wystarczy skorzystać z bardzo dobrze udokumentowanego Generatora Aplikacji, który po utworzeniu plików danych, formularzy, zapytań i raportów, pozwala na ich połączenie w jeden kompletny system. Utworzony program będzie działał także w środowisku wielodostępnym. Jeszcze bardziej zaawansowani mogą wreszcie skorzystać z kompilatora aplikacji.

Tworzenie aplikacji

Język dBASE już od lat stanowi światowy standard. Polecenia zbliżone są do języka angielskiego, co pozwala na szybkie pisanie efektywnych programów przy minimalnej liczbie linii kodu. Doskonale upraszcza też modyfikacje istniejących programów. Wizualne narzędzia dBASE IV automatycznie generują kod tworzący formularze, raporty czy etykiety, który następnie można edytować i przekształcać tak, jak kod napisany przez programistę. Można też elastycznie łączyć wygenerowany automatycznie kod z własnym, co daje dużą swobodę przy opracowaniu aplikacji. Program uruchomieniowy (debugger) pracujący w wielu oknach, zintegrowany z systemem i edytorem upraszcza eliminowanie błędów i dopasowywanie aplikacji do konkretnych wymagań.

dBASE IV 2.0 udostępnia ponadto dialekt języka SQL zgodny z IBM SAA, wprowadzający zaawansowane narzędzia relacyjne do programów dBASE. Twórcy aplikacji mogą wykorzystać polecenia SQL na równi z poleceniami dBASE.

Naszym zdaniem

dBASE potrzebował zwiększenia szybkości przetwarzania oraz kompilatora i otrzymał je. Czy jest wobec tego godny uwagi, szczególnie dla tych, którzy go porzucili dla Clipper'a? Zależy to od tego, czego potencjalny klient oczekuje. Jeśli błyskotliwego interfejsu i wielu nowych możliwości w porównaniu z poprzednimi wersjami, to będzie zawiedziony. Jeśli z drugiej strony, szybkości i możliwości kompilowania aplikacji, to może czuć się w pełni usatysfakcjonowany. Na pewno nie zawiedzie też początkujących, dla których może być nauczycielem wprowadzającym w zawiłe tajniki przetwarzania baz danych.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200