HermesSQL

  1. Strona główna
  2. Docs
  3. HermesSQL
  4. Środowisko rozszerzeń SQL
  5. Prologi i epilogi do dokumentów i kartotek

Prologi i epilogi do dokumentów i kartotek

Wydrukuj dokument

Kolejne opcje nie wymagają tworzenia dodatkowych przycisków do ich uruchamiania. Są one powiązane ze zdarzeniami, które zachodzą przy tworzeniu dokumentu. Zwalnia to użytkownika z potrzeby pamiętania, że należy jeszcze uruchomić dodatkową funkcję, lecz zawsze wykonują się przy zatwierdzaniu nagłówka, pozycji lub całego dokumentu.

Opcje te to:

  1. Prolog do dokumentu
  2. Epilog do dokumentu (przed lub po kodzie programu)
  3. Epilog do pozycji dokumentu

Możliwość wypełnianie kodem  każdej z powyższych opcji jest dostępna w definicji dokumentu (Konfiguracja → Definicje dokumentów) i związana z konkretnym rejestrem dokumentu. Na przykład: można inny kod umieścić w rejestrze F /1 faktur sprzedaży, a inny w rejestrze F /2.
Poniżej rysunek obrazujący to dla dokumentu faktury sprzedaży.

5.1. Prolog do dokumentu

Prolog do dokumentu wykonuje się w momencie zatwierdzania nagłówka dokumentu  (np. przy przechodzeniu do wypełniania pozycji). Należy jednak zwrócić uwagę, że w czasie wykonania prologu nagłówek dokumentu nie jest jeszcze zapisany w bazie. Stwarza to pewne możliwości, ale również ograniczenia.
Po pierwsze można sprawdzać, czy dane nagłówkowe spełniają określone kryteria i nie dopuszczać do zapisania nagłówka (dopuszczać warunkowo). Prolog powinien wówczas zwracać wartość .F. (false). Program sprawdza, czy została zwrócona wartość .F. i sterowanie pozostaje w nagłówku dokumentu.
(Uwaga: Aby uzyskać taki efekt należy w kodzie sprawdzającym umieścić instrukcję RETURN .F.)
Po drugie można sterować wartościami wypełnionymi w polach formularza. Wszystkie te dane są w dokumencie dostępne  w zmiennych pamięciowych (np. w zmiennych: m.symbol_ktr, m.termin_pl, m.odbior, itp.) i można zmienić ich wartość przed zapisaniem nagłówka do bazy. Oczywiście zmiana taka musi być dobrze przemyślana przez programistę, ponieważ może rodzić nieprzyjemne konsekwencje, np. blokowanie pracy w dokumencie lub błędne zapisy w bazie.
Po trzecie, to że w czasie wykonywania prologu nagłówek dokumentu nie jest jeszcze zapisany, uniemożliwia zapisanie w nagłówku informacji w dodatkowym polu, które nie jest dostępne fabrycznie – pole użytkownika (dla przypomnienia pola użytkownika dodawane do tabel muszą mieć nazwę rozpoczynającą się od litery Q). Pole takie można wypełnić, np. przy zatwierdzaniu całego dokumentu czyli w opisanym niżej Epilogu do dokumentu.

5.2. Epilog do dokumentu

Epilog do dokumentu wykonuje się, kiedy operator wychodzi z formularza dokumentu (np. po naciśnięciu klawisza OK.) i jest związany z kodem programu zatwierdzającym dokument.

W tym przypadku stworzono dwie możliwości:

  • można umieścić kod epilogu przed kodem programu,
  • można również epilog umieścić po kodzie Programu.

Jest to istotne rozróżnienie szczególnie w przypadku, kiedy chcemy zmieniać wartość fabrycznych pól nagłówka dokumentu.
Przy zatwierdzaniu dokumentu program aktualizuje wartości zapisane w bazie wartościami, które aktualnie są zapisane w zmiennych pamięciowych. Możemy więc modyfikować wartości tych zmiennych i pozostawić systemowi zapisanie ich w bazie. Oczywiście wówczas taki kod musi zostać umieszczony w Epilogu do dokumentu przed kodem programu.
Możemy także modyfikować wartości pól nagłówkowych używając instrukcji przesyłowych (SQLEXEC lub mySQLEXEC), ale wtedy taki kod powinien być umieszczony w Epilogu do dokumentu po kodzie Programu.
W Epilogu do dokumentu, podobnie jak w prologu, można nie dopuścić do wyjścia z dokumentu. Wystarczy w kodzie umieścić instrukcję RETURN .F. program sprawdza, jaką wartość zwraca epilog i jeśli jest to False, nie wychodzi z formularza.

5.3. Epilog do pozycji dokumentu

Epilog do pozycji dokumentu wykonuje się po opuszczaniu formularza pozycji dokumentu.

Można w tym epilogu umieścić kod własnej funkcji i/lub własnego formularza, który może wykorzystywać dostępność zmiennych opisujących aktualną pozycję dokumentu. Nie można natomiast sterować opuszczeniem formularza pozycji dokumentu. Formularz pozycji zamknie się bez względu na to, czy epilog zwróci wartość False czy True.
Epilog do pozycji w obecnej wersji programu jest dostępny dla poniższych rodzajów dokumentów:

  • Faktura sprzedaży (F)
  • Zamówienie na sprzedaż (ZS)
  • Zamówienia na zakup (ZZ)
  • Wydanie na zewnątrz (WZ)
  • Przyjęcie z zewnątrz (PZ)
  • Przychód (P)
  • Rozchód (R)
  • Oferty dla klientów (OF)

5.4 Epilog do karty kontrahenta

W kartotece kontrahentów, w opcji dostępnej pod F12 – ustawienia dla kontrahenta, mamy możliwość zdefiniowania epilogu, który ma za zadanie zabezpieczać, kontrolować i sprawdzać dodawanie nowych kontrahentów według zapotrzebowania użytkownika.

5.5. Epilog do karty artykułu

Po wejściu w Konfigurację – Ustawienia Globalne – Ustawienia dla artykułów, dodano możliwość zdefiniowania epilogu do karty artykułu. Wprowadzenie tej funkcji umożliwia zabezpieczanie, sprawdzanie i kontrolowanie dodawania artykułów zgodnie z potrzebami użytkownika.

5.6. Prologi i epilogi w dokumentach kasowych i bankowych

Rachunki bankowe

W menu Konfiguracja -> Rachunki bankowe, po wyborze rachunku udostępniony został na formularzu przycisk Prologi/Epilogi, po wybraniu którego dostępna jest lista funkcjonalności:

  • Prolog – Wyciąg bankowy
  • Epilog – Wyciąg bankowy
  • Prolog BP/BW
  • Epilog BP/BW (epilogi wykonują się po kodzie fabrycznym)
  • Epilog do pozycji BP/BW.

Pod przyciskiem Cechy znajdziemy: Cechy do nagłówka BP/BW.

Kasy

Podobnie jest po wybraniu menu Konfiguracja -> Kasy. Po wyborze konkretnej kasy, dostępne są:

  • prolog KP/KW
  • epilog KP/KW (po kodzie fabrycznym)
  • epilog do pozycji KP/KW

Pod przyciskiem Cechy znajdziemy: Cechy do nagłówka KP/KW.

5.7.  Kod użytkownika

5.7.1. Kod użytkownika po zalogowaniu do Hermesa

Analogicznie jak ma to miejsce w przypadku modułów branżowych, w programie można uruchomić dowolny kod użytkownika lub analizę po zalogowaniu się do Hermesa.

Kod uruchamia się automatycznie jeżeli tylko jest uzupełniony zaraz po zalogowaniu się do odpowiedniej bazy ale zanim pojawi się pełne menu systemu. Kod na uruchomienie wprowadzamy w karcie operatora. Po wybraniu opcji Uruchom po zalogowaniu pojawi się okno z domyślnymi analizami Hermesowymi oraz ostatnia opcja Kod użytkownika. Jeżeli wybierzemy którąś z predefiniowanych analiz uruchomi się ona po wejściu do Hermesa zgodnie z zapisanymi parametrami (tak jakbyśmy uruchamiali ją normalnie z menu). Jeżeli wybierzemy opcję Kod użytkownika pojawi się okno edycji funkcji użytkownika, gdzie mamy możliwość wpisania własnego kodu. Po zapisaniu i ponownym zalogowaniu się do Hermesa, na wejście uruchamia się wybrana opcja przy operatorze.

5.7.2. Kody użytkownika w module Zarządzanie Produkcją

Kod wyceny wyrobu

W ustawieniach produkcji dzięki opcji Kod wyceny wyrobu istnieje możliwość zdefiniowania własnej procedury zwracającej cenę jednostkową powstałego wyrobu. Jeżeli kod nie zostanie zdefiniowany przez użytkownika, wówczas wycena wyrobu zostanie wyliczona zgodnie z ustawieniami w opcji Wart. Dok. Przychodowych uwzgl.

Kod wyceny odpadu

W ustawieniach produkcji znajduje się opcję Kod wyceny odpadu. Dzięki niej istniej możliwość zdefiniowania własnej procedury zwracającej cenę jednostkową powstałego odpadu.