Version 22 (modified by JP, 13 years ago)

--

Szablony

eDokumenty umożliwiają obsługę szablonów pism. Procedura ich tworzenia jest prosta, a sam system zawiera kilka predefiniowanych szablonów. Szablony dostępne są w każdym miejscu w systemie, w którym możemy stworzyć nowy dokument z menu Nowy / Utwórz z szablonu -> wybór właściwego szablonu.

Praca z szablonami, zarządzanie nimi oraz sposób ich tworzenia opisana jest w sekcji dotyczącej szablonu pisma firmowego?.

Wykorzystanie znaczników w tworzeniu szablonów

W procesie tworzenia szablonów bardzo przydatna jest możliwość wykorzystania znaczników, które to podczas generowaniu dokumentu z szablonu są zamieniane na właściwe dane zarejestrowane w systemie. System zawiera szereg predefiniowanych znaczników. Ich lista widoczna jest w oknie dostępnym ze ścieżki Ustawienia / Panel sterowania/ Szablony dokumentów/ zakładka Import znaczników


Rys. 1

Znaczniki, które uznamy za użyteczne w tworzeniu szablonów należy przenieść do zakładki Znaczniki szablonów poprzez ich zaznaczenie i użycie przycisku Zaimportuj znacznik. Znaczniki znajdujące się w tej zakładce są dostępne dla operatora, z poziomu edytora tekstu, do wykorzystania podczas tworzenia szablonów.


Rys. 2


Rys. 3

W przypadku gdy lista jest pusta lub wymaga aktualizacji należy wykonać operację Pobierz listę , spowoduje to udostępnienie do wykorzystywania wszystkich znaczników znajdujących się we wcześniej opisanej zakładce Znaczniki szablonów z okna Szablony dokumentów . Wstawienie wybranego znacznika do dokumentu następuje poprzez wykonanie operacji Wstaw znacznik . Przykład wykorzystania znaczników :

                                           Nowe Miasto, dnia: #DATA.DZISIAJ#
                                                 Znak sprawy: #SPRAWA.SYMBOL#
Demo Sp. z o.o.
Ul. Turinga 386
01-024 Nowe Miasto


                                               #KONTAKT.NAZWA_I_ADRES=bloczek# 


                               Wezwanie do zapłaty

        Wzywam #KONTAKT.NAZWA# do uregulowania zaległej płatności ….


                                                              Z poważaniem
						              #PISMO.NADAWCA#

Tworzenie własnych znaczników

W przypadku, gdy zdefiniowane w systemie znaczniki, nie wyczerpują potrzeb klienta w tym temacie, istnieje możliwość stworzenia znaczników dodatkowych. W tym celu należy wybrać opcje Nowy znacznik z zakładki Znaczniki szablonów na oknie Szablony dokumentów.


Rys. 4

Znaczniki mogą być tworzone metodami:

  • z pomocnikiem
  • z tabeli
  • jako cecha
  • jako SQL

Znacznik z tabeli

Format takiego znacznika to #NAZWA_TABELI.NAZWA_POLA#. W oknie definicji takiego znacznika mamy do dyspozycji następujące pola:

  • Znacznik - powinno określać definicje znacznika z uwzględnieniem zasad - kolejne człony nazwy oddzielamy kropką i wszystko piszemy z dużą literą
  • Opis - określa opisową definicje znacznika
  • Tabela - określa tabelę bazy z której będą pobierane dane przy tworzeniu dokumentu
  • Klucz główny - odnosi się do nazwy klucza głównego z tabeli na która wskazuje pole Tabela. Jeśli pole tabela wskazuje na widok należy wskazać klucz główny w tym widoku
  • Kolumna danych - wskazuje na interesujące nas dane które chcemy aby znalazły się w miejscu pojawienia się znacznika w szablonie
  • Kontekst - w przypadku wyboru tabel lub widoków które są specyficzne różne od głównych:
    * podmioty
    * documents
    * users
    * organization_units
    * orgtree_view
    * processes
    * vindication.vind_proc
    należy wyspecyfikować kontekst i tak na przykład aby pobrać dane z widoku vindication.vind_proc_view np.: kolumnę vat należy wybrać kontekst sprawy windykacyjnej
  • Formatowanie - w przypadku jeśli chcemy aby wymusić na pobieranych danych formatowanie określonego typu tzn. jeśli pobierana jest data w formacie 2000-01-01 08:00:00 jednak chcemy aby tylko pobrać z tego datę wtedy należy wybierać formatowane. Obecnie jest dostępne tylko formatowanie daty.

Poniżej znajduje się przykład znacznika wyciągającego pole opis z tabeli dokumentów.


Rys. 5

Znacznik tworzony z cechy

Sposób definiowania tego typu znacznika jest bardzo podobny do poprzedniego z różnicą ostatniego pola Cecha

  • Cecha - określa z jakiej cechy zostaną pobrane dane jeśli wartość cechy będzie uzupełniona dla klucza określonego w polu Klucz główny.W przypadku cech kontaktów (contacts) klucz główny to contid natomiast w przypadku dokumentów jest to doc_id.

Znacznik z pomocnikiem

W przypadku definiowania znacznika metodą z pomocnikiem górna część definicji znacznika pozostaje taka sama jak w poprzednich przypadkach. Nowością jest lista predefiniowanych pomocnych znaczników. Jest to najprostszy sposób definiowania znacznika gdyż nie wymaga znajomości tabel jednak ma ograniczenie gdyż pomocnik jest definiowany tylko przez programistę.

  • Znacznik - definicja znacznika wraz z ewentualnymi opcjami wyświetlania
  • Pomocnik - typ pomocnego znacznika z jakiego chcemy korzystać

w przypadku tego pola znacznik może produkować dowolnie zdefiniowaną treść jak np.: generowanie tabelki z wykazem zadłużenia.
W niektórych przypadkach, znaczniki utworzone metoda z pomocnikiem, mogą udostępniać różne sposoby wyświetlania. Aby spowodować wyświetlenie odpowiedniego formatowania w obrębie znacznika dodajemy odpowiedni token np. #KONTAKT.ADRES=bloczek#

  • Kontakt: dane adresowe: nazwa, adres, wszystko, bloczek.
  • Kontakt: sam adres: wiersz1, wiersz2, wszystko, bloczek.
  • Sprawa: strona sprawy: strona ?? <o co chodzi dokładnie?>
  • Sprawa: wierzyciel: nazwa, adres, wszystko, bloczek.
  • Sprawa: dłużnik: nazwa, adres, wszystko, bloczek.

Znacznik jako SQL

Znacznik ten daje największe możliwości jeśli chodzi o pobieranie danych z bazy. Poza standardowymi polami, dostępne są dodatkowe:

  • Zapytanie SQL - definicja zapytania SQL, które zostanie wykonane
  • Kontekst - typ kontekstu z jakiego będą pobrane dane
  • Źródło danych - jeśli chcemy aby dane były pobierane z innego systemu możemy to zrobić poprzez określenie źródła danych. Aby zdefiniować źródło danych należy przejść do Panelu sterowania -> Pozostałe ustawienia -> Źródła danych
  • Formatowanie - aby określić sposób wyświetlenia pobranych danych należy wybrać odpowiednie formatowanie. Obecnie dostępne sposoby formatowania dla znacznika SQL to:
    • data
    • kwota
    • tabelka (z nagłówkiem i lp)
    • tabelka bez lp (z nagłówkiem)
    • tabelka bez nagłówka (z lp)
    • tabelka bez nagłówka i bez lp

W przypadku jeśli ma być nagłówek wtedy 1 wiersz wyniku jest nagłówkiem

Dodatkowo dla formatowanie typu kwota (MONEY) - zapytanie musi być postaci

SELECT 123, 'PLN'
  • 1 kolumna to kwota
  • 2 kolumna to waluta

Przykład wykorzystania tego znacznika
Jako przykład niech posłuży pobranie numeru nip jednej ze stron umowy. Zapytanie wygląda następująco:

  • Zapytanie SQL: SELECT nip_ _ _ FROM contacts WHERE contid = (SELECT toctid FROM contract WHERE ctrcid={CONTEXT})

Kroki tworzenia takiego zapytania są następujące:

  • fraza pobierająca dane: SELECT nip_ _ _ FROM contacts
  • fraza warunku: WHERE contid
  • fraza podzapytania: (SELECT toctid FROM contract WHERE ctrcid={CONTEXT})

Podzapytanie tworzymy podobnie jak zwykłe zapytanie sql ale jako warunek 'WHERE' wybieramy z listy kontekstów konkretny kontekst. W naszym przypadku będzie to kontekst 'Umowa'.

Po wybraniu tego kontekstu w miejsce kursora w polu zapytania sql pojawi się definicja ctrcid={CONTEXT}. Aby zmienić kontekst usuwamy fragment ctrcid={CONTEXT} i ponownie wybieramy kontekst.

Aby obsłużyć brak danych i wypisać własny komunikat należy użyć formy np.

SELECT COALESCE((SELECT nip_ _ _ FROM contacts WHERE contid=c.toctid)::text , 'brak numeru nip') FROM contract c WHERE ctrcid={CONTEXT} [[BR]]

Powodzenia.

UWAGI
W przypadku szablonów tworzonych w formacie rtf należy pamiętać, iż możliwe jest aby tekst w znaczniku był formatowany tak jak sobie tego życzy użytkownik. Znacznik można standardowo sformatować poprzez pogrubienie itd, jednak formatowaniu musi być poddany cały znacznik wraz z znakami '{{' lub '#'.

Przykłady użytecznych kwerend

-- kwerenda pobiera listę produktów z dokumentu - można wykorzystać do szablonu PZ/WZ
SELECT 'Nazwa' as depnam,  'J.m.' AS unitnm, 'Ilość'::text AS quantm, 'Uwagi' AS commnt
UNION
select depnam, 
replace(replace(replace(replace(replace(replace(replace(unitnm, 'PIECE', 'sztuka'), 'METER', 'metr'), 'METER2', 'mkw'), 'KILOGRAM', 'kilogram'), 'LITER', 'litr'), 'HOUR', 'godzina'), 'KM', 'kilometr') AS unitnm, 
quantm::text, commnt
from fk_elements
where doc_id={CONTEXT}
ORDER BY quantm DESC

-- kwerenda pobiera datę dokumentu który posłużył do wygenerowania aktualnego dokumentu
-- np. procedura zapytania ofertowego tworzy ofertę - w ofercie chcemy pobrać do 
-- szablonu datę z zapytania.
SELECT d2.adddat::date FROM documents d
LEFT JOIN doc_link_doc dld ON d.doc_id = dld.doc_id
LEFT JOIN documents_view d2 ON dld.rel_to = d2.doc_id
WHERE d.doc_id = 905


Załączniki