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:
- Prolog do dokumentu
- Epilog do dokumentu (przed lub po kodzie programu)
- 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
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.
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.
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)
- Faktura do paragonu
- faktury do wielu paragonów,
- korekty faktury do paragonu
- korekty faktury do wielu paragonów
- 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)
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.
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.
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.
Prologi i epilogi w konfiguracji e-faktur i korekt e-faktur
W związku z pojawiającymi się głosami o możliwość sterowania, dopisywania funkcjonalności reagujących na wysyłkę e-faktury do mechanizmu e-faktur oraz korekt e-faktur od wersji 3.62 została dodana obsługa prologu i epilogu.
Na formularzach definicji e-faktury i korekty e-faktury dodano dwa przyciski: PROLOG oraz EPILOG. Jest to miejsce w którym użytkownik może wprowadzić swój własny kod w języku VFP analogicznie jak w przypadku prologów i epilogów do dokumentów.
Kod wpisany pod przyciskiem PROLOG wykona się tuż przed generowaniem i wysyłką e-faktury natomiast kod pod przyciskiem EPILOG wykona się zaraz po zakończeniu tworzenia (lub i wysyłki) dokumentu.
Dzięki tej funkcjonalności możliwe jest pisanie kodu z wykorzystaniem zmiennej sterującej wzorcem lub każdy inny którym możemy warunkować wysłanie e-faktury lub też dokonujący operacji po wysłaniu takiej e-faktury.