Znaczenie pojęcia widok dla zwykłego użytkownika programu nie jest tak istotne jak dla osoby sprawującej pieczę nad sprawnym działaniem systemu i nad dostosowaniem go do nietypowych, indywidualnych potrzeb użytkowników. Osoba nie będąca administratorem może opuścić niniejszy rozdział.
Widok należy uważać za wirtualną tabelę. To, co w programie nazywamy tabelami a użytkownik widzi np. tabelę artykułów lub tabelę z dokumentami sprzedaży jest de facto widokiem powstałym w wyniku zapytania instrukcją SELECT SQL. Widoki są obrazem danych z tabeli (lub wielu tabel) znajdujących się fizycznie w bazie na serwerze SQL. Zawartość widoku – pola jakie zawiera – uzyskuje się, odpowiednio formułując polecenie SELECT SQL.
Administrator ani tym bardziej użytkownik programu nie muszą pisać tego polecenia gdyż istnieje w systemie narzędzie do jego konstrukcji polecenia w sposób wizualny. Narzędziem tym jest tzw. Projektant widoków.
1.1. Zarządzanie zapytaniami SQL
Zarządzanie zapytaniami SQL jest opcją która pozwala nam stworzyć bardzo wiele zapytań SQL, na podstawie których można tworzyć nowe widoki. W celu wywołania tej opcji należy na wybranej tabeli kliknąć F11 a następnie Zarządzanie zapytaniami SQL.
Okno Zapytania SQL zawiera listę zapytań fabrycznych oraz utworzonych przez użytkownika. Znaczniki bieżące i fabryczny, pokazują które z zapytań jest fabrycznym oraz które są ustawione jako bieżące.
Opcja Dodaj otwiera Projektanta widoku i umożliwia dodanie nowego zapytania.
Opcja Popraw pozwala edytować zapytania utworzone przez użytkownika. Nie ma jednak możliwości modyfikacji zapytań fabrycznych.
Zapytania utworzone przez użytkownika możemy również usunąć.
Zmień na bieżące pozwala nam zmienić wskazany widok na bieżący.
Zapytania SQL posiadają odrębne uprawnienia. Możemy odebrać dostęp do wskazanych zapytań poszczególnym operatorom lub profilom użytkowników.
Projektanta widoków używamy wtedy, gdy zaistnieje potrzeba wyświetlenia w dowolnej tabeli programu, kolumny która fabrycznie się tam nie znalazła. Jakkolwiek projektant widoków jest narzędziem bardzo ułatwiającym konstrukcję widoku, to do jego prawidłowego i pełnego wykorzystania przydaje się wiedza na temat składni polecenia SELECT SQL.
Aby wywołać projektanta widoku należy na wybranej tabeli wcisnąć F11 a następnie wybrać z listy Zarządzanie zapytaniami SQL.
Screen przedstawia projektanta widoków wywołanego z tabeli artykułów. Górną część okna zajmują trzy tabele z bazy SQL wchodzące w skład widoku. W części środkowej są zakładki będące odzwierciedleniem poszczególnych sekcji polecenia SELECT SQL. Najczęstszą potrzebą użytkownika jest dodanie do widoku pola. Robi się to na pierwszej zakładce Pola gdzie po lewej jej stronie widoczna jest lista dostępnych dla widoku pól tabel a po prawej aktualnie dodane pola. Używając przycisków ze strzałkami trzeba zmodyfikować listę Pola widoku wedle własnych potrzeb.
Przyciski oraz przesuwają wszystkie pola z listy do listy. Należy pamiętać o oszczędnym dodawaniu pól do widoku gdyż zbyt duża ich ilość przyczyni się do spowolnienia wyświetlania tabeli. W widoku powinny być tylko te pola, które są naprawdę potrzebne.
Jeśli zaistnieje potrzeba użycia nie tylko samego pola ale jakiegoś wyrażenia lub funkcji języka TRANSACT SQL, to takie wyrażenie można wpisać do pola Funkcje i wyrażenia a następnie używając przycisku dodać je do pól widoku. Po dodaniu trzeba pamiętać, aby w pole Nazwa wpisać nazwę stworzonego wyrażenia. Przycisk uaktywnia formularz służący łatwiejszej edycji wyrażenia.
Na zakładce Pola znajduje się znacznik . Jego zaznaczenie powoduje, że widok nie będzie zawierał powtórzeń pozycji, przy czym kryterium wykrywania powtórzeń jest pierwsze pole znajdujące się na liście Pola widoku. Przesuwając myszką pozycje listy możemy ustalić, które pole ma się znaleźć na jej początku.
Zawartość listy Dostępne pola zależna jest od tabel, jakie są użyte w widoku. Aby dodać tabelę należy prawym klawiszem myszy kliknąć w górnym obszarze okna projektanta i z menu podręcznego wybrać opcję Dodaj tabelę. Następnie na wyświetlonej liście tabel z bazy programu trzeba wskazać żądaną tabelę i nacisnąć przycisk OK.
Nowo dodana tabela musi mieć relacyjne powiązanie z pozostałymi tabelami w widoku. Powiązanie to należy zdefiniować na zakładkach WHERE lub JOIN.
Na zakładce WHERE dodaje się warunki łączące tabele wchodzące w skład widoku. Po naciśnięciu przycisku pojawi się okienko służące do definiowania warunku łączącego. Należy po lewej i po prawej stronie okienka wybrać łączone tabele, pola względem których połączenie ma nastąpić oraz operator łączenia (najczęściej znak =). Można również samemu wpisać warunek łączący.
Zakładka WHERE służy również do wpisywania warunków innych niż łączące – warunków filtrujących widok, np., gdy chcemy mieć widoczne w tabeli artykuły o określonej symbolice:
artykuly.symbol_art LIKE ‘A-001%’
Wynikiem złączenia zdefiniowanego w sekcji WHERE są wyłącznie te rekordy z tabel nadrzędnej i podrzędnej w których istnieje całkowita zgodność wartości pól użytych w warunku.
Czasami jednak chcemy uzyskać wszystkie rekordy z tabeli, nazwijmy ją głównej mimo że niektóre wartości w polu łączącym mogą puste i nie zajdzie na nie relacja do drugiej tabeli. W takim przypadku warunek łączący definiujemy na zakładce JOIN tak jak na przykładzie:
Zapis: LEFT [OUTER] JOIN oznacza tzw. złączenie zewnętrzne, w wyniku którego widok będzie zawierał wszystkie rekordy z tabeli znajdującej się po lewej stronie klauzuli JOIN i tylko te rekordy z tabeli po prawej stronie, które odpowiadają złączeniu co do wartości klucza łączącego. Przykładem jest tutaj złączenie artykułów (ARTYKULY) z tabelą stanów magazynowych (ART_MAG). W tabeli ART_MAG nie muszą pojawiać się wszystkie symbole artykułów – stąd konieczność złączenia typu LEFT OUTER JON, aby wyświetlić wszystkie artykuły. Przytoczony tu został typowy przypadek, jaki może zajść w programie. Innego typu złączenia JOIN nie występują w fabrycznych definicjach widoków.
Ostatnia zakładka Polecenie SQL pozwala użytkownikom na wpisanie całego polecenia wprost – bez konieczności budowania go później z elementów zdefiniowanych przez użytkownika. Dzięki temu możliwe jest zastosowanie m.in. funkcji napisanych w języku TSQL, zdefiniowanych w bazie danych i zwracających kursor.
Używanie tej zakładki powoduje zwiększenie odpowiedzialności, gdyż zapytanie może być dowolne. Autorzy nie wymuszają zastosowania głównej tabeli, widoku ani tego by widok zawierał pola klucza głównego tabeli (są to elementy niezbędne dla prawidłowego funkcjonowania mechanizmów zastosowanych w programie, np. edycja pozycji może być niemożliwa i powodować wystąpienie błędów).
Więcej szczegółów na temat składni polecenia SELECT prosimy szukać w literaturze dot. administrowania bazami SQL lub pomocy Visual FoxPro.
Aby zakończyć pracę z projektantem widoków należy zamknąć go używając przycisku OK. Program zapisze definicje i pojawi się ona na liście zapytań SQL.
Poprawiona definicja widoku może posłużyć następnie do zmodyfikowania wyglądu i zawartości tabeli (patrz rozdział Manipulowanie zawartością tabel).
1.2. Zarządzanie widokami
Widoki tworzymy na podstawie wcześniej utworzonych zapytań SQL. Każda zmian w widoku tabeli: dodanie lub usunięcie kolumny, rozszerzenie lub jej zwężenie, zmiana kolorów w tabeli, wszystko to możemy zapisać jako nowy widok. Po zmianie w tabeli, którą chcemy zapisać należy kliknąć na przycisk Dokonaną zmianę możemy zapisać dla bieżącego widoku lub zapisać jako nowy widok.
Na pasku narzędzi dostępny jest jeszcze jeden przycisk związany z widokami.
Pozwala on na szybkie przełączanie się pomiędzy widokami.
Opcja dotycząca zarządzania widokami dostępna jest pod przyciskiem F11 a następnie Zarządzanie widokami.
Z tego poziomu możemy zmienić wskazany widok na bieżący, poprawić nazwę widoku oraz go usunąć.
Opcja ta umożliwia również nadanie uprawnień do poszczególnych widoków.
Uprawnienia do widoków działają na takiej samej zasadzie jak uprawnienia do zapytań SQL. Możemy nadać uprawnienia do wskazanego widoku, poszczególnym operatorom lub profilom użytkowników.
1.3. Manipulowanie zawartością tabel
Zawartość tabeli można niemal dowolnie zmieniać dostosowując ją do indywidualnych potrzeb użytkownika. Służą do tego celu opcje Dodaj/Popraw/Usuń kolumnę oraz Właściwości tabeli dostępne w menu Narzędzia F11. Ponadto można zamieniać kolumny miejscami oraz zmieniać ich szerokość.
Dodanie kolumny
Dodając lub edytując kolumnę ustalamy:
- wyrażenie określające zawartość kolumny. Jest to pole widoku zdefiniowanego fabrycznie lub przez użytkownika
⇒ Patrz rozdział: Projektant widoku
- tytułu kolumny i jej czcionki
- wyglądu komórki
- właściwości czcionki
- kolory czcionki i tła komórki
- warunki zastosowania poszczególnych właściwości komórki.
Powyższy przykład zawiera definicje kolumny Nazwa w tabeli Artykuły. Warunek sformułowany jest tak, że towary o zapasie poniżej minimum będą wyświetlane na czerwono.
Nowo dodaną kolumnę należy potem przesunąć w żądane miejsce.
⇒ patrz poniżej Zmiana kolejności kolumn.
Usunięcie kolumny
Opcja ta umożliwia usunięcie kolumny z tabeli.