MiniCorax

  1. Strona główna
  2. Docs
  3. MiniCorax
  4. Edytor wzorców i widoków

Edytor wzorców i widoków

Wydrukuj dokument

Widoki

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.

Edytor widoków i wydruków umożliwia obsługę dwóch zapytań SQL: zapytanie fabryczne i zapytanie użytkownika oraz trzech widoków: widoku fabrycznego i dwóch widoków użytkownika.

Zarządzanie zapytaniami SQL

Zarządzanie zapytaniami SQL jest opcją która pozwala nam stworzyć nowe zapytanie SQL, na podstawie którego można tworzyć nowe widoki. W celu wywołania tej opcji należy na wybranej tabeli kliknąć przycisk Konfiguracja tabeli 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. Wskazane zapytanie możemy zabronić 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.

F-11 – zarządzanie zapytaniami SQL.

Aby wywołać projektanta widoku należy na wybranej tabeli kliknąć przycisk Konfiguracja tabeli a następnie Zarządzanie zapytaniami SQL.

Rysunek 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    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 myszą 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ą być 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).

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

Zarządzanie widokami

Widoki tworzymy na podstawie wcześniej utworzonych zapytań SQL. Każda zmiana 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 Konfiguracja tabeli 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.

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 Konfiguracja tabeli. Ponadto można zamieniać kolumny miejscami oraz zmieniać ich szerokość.

Dodanie kolumn

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ł kolumny i jej czcionki
  • wygląd 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: Zmiana kolejności kolumn.

Usunięcie kolumny

Opcja ta umożliwia usunięcie kolumny z tabeli.

 

 

Generator raportów

Drukowanie w programie realizowane jest za pomocą szablonów nazywanych dalej wzorcami wydruku. Autorzy programu stworzyli pewną ilość wzorców wydruku, wystarczającą do normalnej pracy – są to tzw. wzorce fabryczne. Jeżeli jednak postać wydruku nie zadowala Użytkownika, można stworzyć własne wzorce, dostosowane do indywidualnych potrzeb i wymagań.

Fabrycznych wzorców wydruku nie można zmieniać – można jedynie tworzyć nowe na podstawie fabrycznych.

Wbudowany w system generator raportów (Report Builder) umożliwia edycję wzorców wydruków zwanych dalej, zgodnie z nazewnictwem FoxPro, raportami. Generator raportów jest narzędziem zaawansowanym, aczkolwiek pewne operacje jak zmiana czcionki, wielkości i położenia obiektu, usunięcie obiektu, uzyskuje się dość prosto.

Raport zawiera kompletną definicję wydruku, pozwalając dowolnie zmieniać postać każdego wydruku.

Wzorce wydruku

Jak już wspomniano, wzorce to zaprojektowane szablony, które mówią o tym w jakim miejscu i jakie informacje (teksty, ramki, dane itp.) mają pojawić się na wydruku.

Niezależnie od rodzaju wydruku przed rozpoczęciem drukowania wyświetlane jest okienko dialogowe Wydruk pozwalające na ustalenie parametrów wydruku.

Poza fabrycznymi wzorcami można, korzystając z opcji Dodaj w oknie Wydruk stworzyć własne szablony i korzystać na stałe z nich przy drukowaniu dokumentów czy zestawień.

Każdy nowy wzorzec powstaje na bazie innego wskazanego wzorca. Po wybraniu opcji Dodaj pojawia się okno dialogowe, w którym podajemy dane identyfikujące nowy szablon wydruku. Najpierw wpisujemy symbol wzorca i ewentualny parametr a następnie naciskamy przycisk Dodaj. Uzupełniamy nazwę nowego wzorca, tytuł wydruku, ustawiamy orientację strony po czym naciskamy przycisk Detale w celu przywołania Generatora raportów, który pozwoli na zaprojektowanie wyglądu wydruku.

Symbol
Należy tu podać symbol wzorca (max. 7 znaków). Musi on zaczynać się od litery i może składać się z liter (za wyjątkiem polskich), cyfr i znaków podkreślenia. Po zapisaniu nie można go już zmienić.

Nazwa
Nazwa wzorca wydruku, która będzie opisywać tworzony szablon.

Parametr
Dodatkowy parametr do identyfikacji wzorca. Dzięki niemu jest możliwe używanie jednego wzorca wydruku dla wielu różnych dokumentów. Przykładem może być wzorzec o symbolu WZ______. Użyto go zarówno do wydruku dokumentu WZ jak i oferty (OF) oraz zamówienia (ZO).

Wzorzec domyślny
Zaznaczenie tego selektora spowoduje, że tworzony wzorzec będzie proponowany jako pierwszy na liście wzorców. Dla wydruku dokumentów nadrzędne jest tu ustawienie domyślnego wzorca w opcji Konfiguracja -> Definicje dokumentów.

Detale
Przycisk uruchamiający Generator raportów opisany w następnym rozdziale. Pozwala on na zdefiniowanie szczegółów wydruku – schematu, który w czasie wydruku wypełniany będzie konkretnymi danymi.
Przycisk nie jest dostępny dla fabrycznych wzorców wydruku. Aby wprowadzić zmiany do fabrycznego wydruku należy go wybrać z listy wzorców wydruku w okienku Wydruk, dodać nowy na podstawie fabrycznego i w nowym dokonać modyfikacji.

Tytuł wydruku
Wpisany tutaj tekst służy na niektórych wzorcach do zatytułowania wydruku. Pojawia się w pierwszym wierszu wydruku.

Pokaż gdy
Możliwość wyboru warunku do wyświetlania wzorca wydruku.

Informacje dla wydruku
Można tu wskazać drukarkę (sterownik drukarki tekstowej), na którą wysyłany będzie ten wzorzec wydruku oraz orientację strony (wymiary użytego papieru).

Orientacja strony
Wybór układu pionowego lub poziomego strony.

Obsługa generatora raportów

Przykładowy widok generatora ze wzorcem dla tabeli artykułów.

Obszary raportu

Raport podzielony jest na obszary:

Tytułu (Title band) – zawiera informacje, które pojawiają się przed treścią główną raportu

Nagłówek strony (Page Header) – wyświetlany u góry każdej strony

Nagłówek grupy (Group Header) – wyświetlany u góry każdej grupy

Treść raportu (Report Body) – stanowi główną część raportu i zawiera zwykle informacje z pól wybranych baz

Stopka grupy (Group Footer) – wyświetlany na dole każdej grupy

Stopka strony (Page Footer) – wyświetlany na dole każdej strony głównego raportu

Podsumowanie (Summary) – jedna lub więcej stron pojawiających się na końcu głównego raportu

Obiekty raportu

Raport definiujemy umieszczając w odpowiednich obszarach obiekty raportu. Obiekty dostępne są z paska narzędziowego Report Controls, którego wygląd i dostępne obiekty przedstawia rysunek:


Objaśnienia elementów paska narzędziowego Report Controls:

Select Objects – Włącza możliwość zaznaczania obiektów raportu.

Label – Pozwala definiować stałe napisy.

Field – Pozwala definiować pola (pola z bazy danych, wyrażenia itd.). Uaktywnienie przycisku i kliknięcie w wybranym miejscu raportu powoduje przywołanie okna Report Expression, które służy do definiowania zawartości pola  w raporcie.

Line – Pozwala rysować poziome i pionowe linie.

Rectangle – Pozwala rysować prostokąty.

Rounded rectangle – Pozwala rysować okręgi i prostokąty z różnym stopniem zaokrąglania rogów.

Picture/OLE Bound Control  – Narzędzie do umieszczania rysunków zdefiniowanych w zewnętrznych plikach graficznych.

Aby dodać obiekt do raportu trzeba wybrać żądane narzędzie z paska Report Controls i kliknąć w wybranym miejscu raportu.

Wybór obiektu
Kliknąć myszką w obszarze obiektu, Należy dodać, iż dla wybranych obiektów dostępny jest mechanizm schowka. Po wybraniu obiektu lub grupy obiektów można je umieścić w schowku (Edycja -> Kopiuj) a następnie skopiować w inne miejsce raportu lub przenieść do innego raportu (Edycja -> Wstaw).

Wybór obiektu
Kliknąć myszką w obszarze obiektu, Należy dodać, iż dla wybranych obiektów dostępny jest mechanizm schowka. Po wybraniu obiektu lub grupy obiektów można je umieścić w schowku (Edycja -> Kopiuj) a następnie skopiować w inne miejsce raportu lub przenieść do innego raportu (Edycja -> Wstaw).

Usunięcie selekcji
Kliknąć z w puste miejsce raportu.

Przesuwanie obiektu
Kliknąć i przeciągać obiekt za pomocą myszki

Zmiana wymiarów obiektu
Kliknąć na wybranym obiekcie – wokół niego pojawią się małe kwadraciki, kliknięcie myszą na kwadraciku i przesuwanie myszy powoduje zmianę kształtu/rozmiaru obiektu.

Modyfikacja obiektów
Aby zmodyfikować wygląd obiektu lub grupy obiektów zaznacz je (klikając myszą z ewentualnym przyciśnięciem klawisza Shift) a następnie używaj opcji zawartych w menu Format.
Aby zmodyfikować właściwości obiektu kliknij na nim dwukrotnie – pojawi się okienko definicyjne odpowiednie dla danego obiektu:

  • Tekst (Label) – Text. Edycja treści napisu następuje po wybraniu przycisku Label z paska narzędziowego a następnie umieszczeniu kursora myszy w obszarze z tekstem.
  • Pole danych (Field) – Report Expression
  • Linia (Line) i Prostokąt (Rectangle) – Rectangle/Line
  • Zaokrąglony Prostokąt (Rounded Rectangle) – Round Rectangle
  • Rysunek (Picture/ActiveX Bound Control) – Report Picture

Kliknięcie prawym klawiszem myszy na obiekcie powoduje rozwinięcie menu kontekstowego, w którym dostępne są opcje: kopiowania (Copy), usuwania (Cut), wklejania (Paste), edycji właściwości (Properties) obiektów.

Kliknięcie prawym klawiszem myszy w pustym obszarze wzorca powoduje rozwinięcie menu kontekstowego, w którym dostępne są opcje: wklejania (Paste), podglądu wydruku (Preview), drukowania (Print) oraz tworzenie obszarów grupowania (Data Grouping) i tworzenia środowiska danych dla raportu (Data Environment).

Menu Strona

Ustawienia stronywyświetla dialog układu strony Page Setup.

Podgląd wydruku – wyświetla okno podglądu strony. Podgląd wydruku można uzyskać również z menu kontekstowego po kliknięciu prawym klawiszem myszy w pustym obszarze raportu (opcja Preview)

Uwaga: podgląd wydruku wzorca tekstowego uruchomiony z poziomu generatora raportów może odbiegać od wydruku rzeczywistego dlatego radzimy używać przycisku Podgląd w okienku Wydruk.

Menu Format

Menu Format zawiera opcje z paska narzędziowego Layout.

 

Align – opcje wyrównywania obiektów na stronie

Bring to Front
Send to Back – Na wierzch / Pod spód – zmienia porządek nakładania się obiektów (pierwszy na ostatni). Zmienia również kolejność, w której obiekty są dostępne na ekranie.

Group – Grupuj – pozwala zgrupować zaznaczone obiekty a następnie traktować ich jako jeden obiekt

Ungroup – Rozgrupuj – pozwala rozgrupować zaznaczony obiekty

Snap to Grid – włącza/wyłącza przyciąganie obiektów do siatki w czasie ich przemieszczania co ułatwia ich wyrównywanie

Set Grid Scale – ustawienia odstępów siatki

Font – przywołuje okno Czcionka, z którego wybiera się czcionkę dla aktualnie zaznaczonego obiektu lub grupy obiektów

Text Alignment – ustawienie rodzaju usytuowania tekstu w obiekcie: do lewej, do prawej, wyśrodkowany

Fill – ustawienie rodzaju wypełnienia wnętrza zaznaczonego obiektu

Pen – wybór stylu rysowania dla obiektu (szerokość i rodzaj pędzla)

Mode – włączenie lub wyłączenie przezroczystości obiektu. Opaque – nieprzezroczysty, Transparent – przezroczysty.

Menu Report

Title/Summary – Tytuł / Podsumowanie – włączanie lub wyłączenie sekcji tytułu i podsumowania na raporcie.

Data grouping – Grupowanie danych – zakładanie, edycja grup raportu

Variables – Zmienne – definicja zmiennych dla raportu

Default Font – określenie domyślnej czcionki dla nowo dodawanych napisów (Label) oraz pól danych (Field).

Private Data Session – włączenie prywatnej sesji danych raportu (raczej nie należy korzystać z tej opcji)

Run Report – wydrukowanie raportu (wzorca wydruku).

 

Na dwóch przykładach pokazane zostanie jak modyfikować wzorce wydruku.

Przykład 1 – usunięcie rabatu z wzorca wydruku faktury.
Wybieramy opcję Sprzedaż -> Dokumenty sprzedaży. W opcji Operacje wskazujemy Wydruk jednego dokumentu,  pojawia się okno Wydruk. Wybieramy z selektora wzorzec wydruku, np. F_______ – Faktura VAT. Naciskamy przycisk Dodaj ponieważ nie można poprawiać wzorca fabrycznego. Pojawia się okno Wzorzec wydruku.

Wpisujemy unikalny symbol np. F_NOWA oraz nazwę wzorca.

Naciskamy przycisk Detale. Znaleźliśmy się w oknie generatora raportów.

Klikamy lewym klawiszem myszy  na polu pod napisem Rabat i naciskamy klawisz Delete. Pole znikło.

W analogiczny sposób usuwamy napis Rabat oraz niepotrzebne elementy ramki. Należy teraz wypełnić powstałą lukę, czyli dosunąć resztę ramki i pól. Jak to zrobić?

Zaznaczamy wszystkie obiekty jakie znajdowały się po prawej stronie kolumny Rabat. Wykonujemy to za pomocą klawisza Shift i kliknięcia myszki lub wybierając punkt poza obiektami raportu i poczynając od niego zaznaczamy myszą wybrany obszar. W drugim przypadku zostanie również zaznaczona niepotrzebnie ramka nagłówka i linia pod detalami. Aby je wygasić należy kliknąć na nie przytrzymując klawisz Shift.

Zaznaczone obiekty przesuwamy w lewo za pomocą myszy.

Ramka nagłówka i linia pod detalami są teraz za długie. Klikamy na obiekty i zmieniamy ich rozmiar za pomocą pojawiających się kwadracików.

Aby zapamiętać zmiany we wzorcu wydruku klikamy myszką na krzyżyku znajdującym się w prawym górnym rogu okna. Wyskakuje następujące okienko z komunikatem

Na  pytanie Save changes to Report Designer – …..frx (Zachować zmiany w pliku… ) odpowiadamy Yes.

W oknie Wzorzec wydruku naciskamy przycisk OK i nowy wzorzec pojawia się w selektorze okna Wydruk.

Zakończyliśmy pracę, a efekty możemy obejrzeć na wydruku lub ekranie komputera, po naciśnięciu przycisku Pokaż.

 

Przykład 2 – Dołożenia na wydruku zestawienia dokumentów sprzedaży  miejscowości kontrahenta i uzyskanej marży.

Wybieramy opcję Sprzedaż -> Dokumenty sprzedaży -> Drukuj. Na ekranie Wydruk wskazujemy wzorzec Zestawienie dokumentów. Dodajemy nowy wydruk naciskając przycisk Dodaj. Pojawia się okno Wzorzec wydruku. Podajemy symbol, naciskamy przycisk Dodaj, wpisujemy nazwę wzorca. Naciskamy przycisk Detale. Pojawia się okno generatora raportów.

Z wzorca pozbędziemy się kolumn W cenie zakupu, W cenie brutto i Kwota VAT, a w ich miejsce wstawimy Miejscowość i Marża. Możemy usunąć kolumny podobnie jak w poprzednim przykładzie, ale możemy również zmienić ich zawartość.

Kolumnę W cenie zakupu zmieniamy na Miejscowość.

Aby zmienić nazwę kolumny wybieramy z paska narzędziowego obiekt Label i klikamy na napisie W cenie zakupu. Pojawi się możliwość edytowania napisu. Kasujemy stary, wpisujemy Miejscowość i klikamy poza obszarem pola kończąc jego edycję.

Aby zmienić zawartość pola klikamy podwójnie na polu wart_zak, pojawia się okno Field  Properties.

Wybieramy przycisk edycji pola , otwiera nam się nowe okno.

Kasujemy zawartość wyrażenia dla raportu (wart_zak) a następnie na liście pól wskazujemy MIEJSC (Miejscowość) i potwierdzamy przyciskiem Wybierz pole. W wyrażeniu dla raportu pojawia się miejsc. Zamykamy okno przyciskiem OK.

Uwaga: pole MIEJSC może nie być dostępne gdyż nie zostało ono włączone do fabrycznego widoku tabeli Dokumenty sprzedaży. Aby dodać pole do widoku należy postępować wg wskazówek zawartych w:

⇒ patrz rozdział Widoki

Proponujemy usunąć teraz kolumnę W cenie brutto i w jej miejsce przesunąć kolumnę W cenie netto. Da to więcej miejsca dla pola Miejscowość, które może zawierać aż 20 znaków. Zwiększamy więc wielkość pola miejsc. Przy wykonywaniu tych czynności można skorzystać ze wskazówek w poprzednim przykładzie.

Następnie analogicznie do poprzednich operacji zmieniamy kolumnę Kwota VAT na Marża. Kasując zawartość pola suma_vat wskazujemy odpowiednie wyrażenie:
suma_net – wart_zak
(od wartości sprzedaży netto odejmujemy wartość w cenie zakupu)

Należy pamiętać również o polach w obszarze Summary (Podsumowanie) – niepotrzebne wykasować i zmienić zawartość suma_vat tak jak powyżej. Pola w obszarze podsumowania mają zaznaczone sumowanie wszystkich wartości na końcu kolumny. Wykonuje się to w oknie  Field  Properties dla danego pola pod zakładką  Calculations.

Aby zapamiętać zmiany we wzorcu wydruku klikamy myszką na krzyżyku znajdującym się w prawym górnym rogu okna.

Na  pytanie Save changes to Report Designer – …..frx (Zachować zmiany w pliku… ) odpowiadamy Yes.

W oknie Wzorzec wydruku naciskamy przycisk OK i nowy wzorzec pojawia się w selektorze okna Wydruk.

Zakończyliśmy pracę, a efekty możemy obejrzeć na wydruku lub ekranie komputera, po naciśnięciu przycisku Pokaż.

 

Prolog i epilog wzorca wydruku

Ekran Wzorzec wydruku zawiera między innymi dwa przyciski: Prolog oraz Epilog. Wybór któregoś z przycisków przywołuje okno edytora tekstu.

Prolog jest programem w języku XBase. W prologu można umieszczać wszelkie polecenia i funkcje języka XBase

Można umieszczać również linie komentarza, które poprzedza się znakiem *. Napisanie poprawnego prologu wymaga znajomości podstaw języka XBase. W szczególności w prologu można otwierać zbiory, zakładać relacje, ustalać porządek używać polecenia SQL SELECT. Pozwala to na budowanie własnych raportów i zestawień. Prolog jest kompilowany i uruchamiany przed rozpoczęciem wydruku.

Poszczególne polecenia i funkcje powinny być pisane w oddzielnych wierszach kończonych klawiszem Enter. Jeśli jakiś wiersz polecenia jest dłuższy od szerokości okna edytora, to proponujemy podzielić ten wiersz na kilka linii przy użyciu klawisza ENTER pamiętając o dodaniu średnika po każdej z linii (oprócz ostatniej).

Prolog został użyty między innymi w fabrycznym wzorcu wydruku stanów magazynowych. Na wydruku będą zawarte nazwy artykułów jeżeli kolumna nazwa_art znajdzie się w drukowanym kursorze. W tym celu umieszczono w prologu wiersz, który do otrzymanego z wykonanej analizy kursora (stanymag)  doda pole nazwa_art z tabeli artykuły:

SELECT stanymag.* ,artykuly.nazwa_art FROM  stanymag, artykuly ;
WHERE  stanymag.symbol_art = artykuly.symbol_art ;
INTO CURSOR ‘myCursStanMag’

Dla wydruków fabrycznych prolog jest niepoprawialny. Okno edytora przechodzi w stan Tylko odczyt. W oknie edytora działają funkcje zaznaczania bloków i umieszczania w schowku Clipboard.

Epilog, podobnie jak prolog wydruku jest programem w języku XBase. Epilog uruchamiany jest tuż po wydruku. Epilog pozwala przywrócić pewne ustawienia wynikające z prologu wydruku. Dodać należy, że program automatycznie przywraca stan środowiska sprzed wydruku. Sam zdejmuje założone relacje, porządki tabel, bieżący obszar roboczy, wartości zmiennych. Nie potrafi natomiast przywrócić stanu filtrów ustawionych poleceniem SET FILTER TO.

Użyteczne funkcje i polecenia

Użycie zapytań SQL

SELECT SQL jest jednym z najbardziej zaawansowanych i najczęściej wykorzystywanym w programie poleceniem. Jego użycie wymaga sporej wiedzy. Jednak niesie ogromne możliwości w budowaniu własnych zaawansowanych raportów. Każda operacja w programie wiąże się z użyciem zapytania SELECT. Czasem jest to SELECT (nazwijmy go wewnętrzny) operujący na tabelach i kursorach już otwartych w programie a czasem jest to SELECT (nazwijmy go zewnętrzny) operujący na danych zawartych na serwerze SQL. Składnia przytoczonych wyżej typów polecenia SELECT jest taka sama. Jest jednak różnica w sposobie jego wywołania.

Przykład użycia SELECTA wewnętrznego ilustruje prolog do wzorca ST_MAG (przytoczony w poprzednim rozdziale).

Przykład użycia SELECTA zewnętrznego:

lcComm1="SELECT artykuly.symbol_art, artykuly.nazwa_art, artykuly.symbol_jm, " + ;
rozch.ilosc, przych.cena " + ;
                  "FROM artykuly, poz_dok, rozch,przych " + ;
                  "WHERE poz_dok.klucz_dok LIKE '"+ALLTRIM(nagl_dok.klucz_dok)+"%' " + ;
                "  AND artykuly.symbol_art = poz_dok.symbol_art " + ;
                "  AND poz_dok.klucz_dok = rozch.klucz_roz " + ;
                "  AND poz_dok.symbol_art = rozch.symbol_art" + ;
                "  AND poz_dok.pozycja = rozch.pozycja_r " + ;
                "  AND rozch.klucz_prz = przych.klucz_prz " + ;
                "  AND rozch.symbol_art = przych.symbol_art " + ;
                "  AND rozch.pozycja_p = przych.pozycja"

  mySQLEXEC(lcComm1, .F., "myCurs")

 

Ze względu na to, że SELECT zewnętrzny musi wykonać się po stronie serwera SQL, koniecznym jest użycie tzw. komendy przesyłowej. Implementacją komendy przesyłowej w programie jest funkcja MYSQLEXEC, której parametrami są:
1 – pełny tekst polecenia SELECT
2 – nazwa tabeli po stronie serwera, której zawartość chcemy otrzymać
3 – nazwa kursora wynikowego
Parametr 2 zazwyczaj się opuszcza gdyż podanie pełnego tekstu polecenia SELECT w parametrze 1 jest rozwiązaniem preferowanym.

W powyższym przykładzie polecenie SELECT operujące na trzech tabelach z bazy na serwerze SQL, zapisane jest jako ciąg znaków do zmiennej lcComm1. Zmienna ta wstawiona jest następnie jako parametr do funkcji MYSQLEXEC. Drugim parametrem jest wartość logiczna False (jako, że użyliśmy pełnego zapytania w parametrze 1). Trzecim parametrem jest nazwa kursora (myCurs) jaką chcemy otrzymać w wyniku zadziałania komendy przesyłowej z w/w poleceniem SELECT.
Polecenie:

mySQLEXEC(„”, “artykuly”, “MojKursor”)

powoduje utworzenie kursora o nazwie “MojKursor” na podstawie tabeli „artykuly” ze wszystkimi jej kolumnami i rekordami. Jest to równoważne z wydaniem polecenia:

mySQLEXEC(„SELECT * FROM artykuly”, .F., “MojKursor”)

Polecenie SELECT jak i wszystkie inne polecenia języka TRANSACT SQL (wykonywane po stronie serwera) muszą być z poziomu programu wydawane z użyciem komendy przesyłowej MYSQLEXEC.

Pełny opis polecenia SELECT SQL i innych poleceń SQL znajduje się w pomocy do narzędzia SQL Query Analyzer oraz Visual FoxPro.

Ustalanie porządku

Aby ustalić porządek jakiejś tabeli użyj polecenia SET ORDER TO TAG

Przykład:
Aby uporządkować tabelę kontrahentów w porządku symbolu (numeru) kontrahenta napisz:

   INDEX ON symbol_ktr TAG symbol_ktr
SET ORDER TO TAG symbol_ktr

Użycie polecenia INDEX jest konieczne gdyż w programie indeksy znajdują się wyłącznie po stronie serwera i nie mają swojego odzwierciedlenia w kursorach po stronie klienta (programu).

Zakładanie relacji

Do zakładania relacji używaj funkcji programu setrel(). Funkcja ta oprócz założenia samej relacji wyklucza jednocześnie pewne konflikty np. relacje cykliczną.

Przykład:
Aby założyć relację z bieżącej tabeli na tabelę KONTRAH napisz:
setrel(‘symbol_ktr’,’kontrah’)
Uwaga: tabela (a właściwie kursor) kontrah musi być poindeksowany względem kolumny symbol_ktr.

Zmiana aktualnego obszaru

Aby zmienić aktualny obszar użyj polecenia SELECT

Przykład:
Aby zmienić aktualny obszar roboczy na KONTRAH napisz:
SELECT kontrah

Import i eksport wzorców wydruku

Wzorce wydruku można przenosić między firmami w ramach programu między wszystkimi jego wersjami dla Windows. Funkcje eksportu i importu wzorców wywoływane przyciskami Eksport i Import na ekranie Wydruk, umożliwiają przenoszenie wzorców z firmy do firmy, kopiowanie wzorców na dyskietki lub inne nośniki w celu zarchiwizowania ich lub wysłania jako załącznik do listu elektronicznego.

Import wzorców polega na przegraniu, do aktualnej firmy, wzorców wydruku dostarczonych na zamówienie przez producenta programu lub wyeksportowanych z innej firmy.

Selektorem Import z programu  ustalamy, z której wersji systemu pochodzi importowany wzorzec. Pozostałe kontrolki okna importu :

Odczytaj z
Wybór źródła, z którego ma być odczytany plik FRX._LBX.DBF z definicją importowanych wzorców. Do wyboru jest katalog jednej z firm zarejestrowanych w programie, Stacja A, lub inne Dowolne położenie.
Jeśli zostało wskazane Dowolne położenie wyboru pliku FRX_LBX.DBF dokonuje się poprzez dialog wywoływany pod przyciskiem .

Tabela
Tabela zawiera spis przygotowanych we wskazanym pliku do importu wzorców wydruku. Naciśnięcie klawisza SPACJA, lub kliknięcie na znaku  powoduje zaznaczenie/odznaczenie wzorca do importu.

Zaznacz wszystkie
Zaznacza wszystkie pozycje listy wzorców.

Usuń znaczniki
Po uaktywnieniu przycisku żadna z pozycji listy wzorców nie będzie zaznaczona.

Import
Wykonanie importu zaznaczonych wzorców do wskazanej na liście firmy.

Eksport wzorca następuje po jego wybraniu z listy na ekranie Wydruk i naciśnięciu przycisku Eksport. Pojawi się okno Eksport wzorców wydruku, na którym przy pomocy selektora Zapisz do i Plik wskazujemy miejsce docelowe.

Po naciśnięciu przycisku Eksport wzorzec zostanie skopiowany do wybranego miejsca.