Version 9 (modified by jbedlicka, 15 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

Szablony implementują standardowy mechanizm znaczników, znany z innych systemów. Tworzenie szablonu polega więc na tworzeniu dokumentów i wstawianiu w odpowiednie miejsca znaczników. Tak utworzony szablon można bezpośrednio zapisać w systemie do ponownego użycia bezpośrednio z poziomu edytora tekstu.

Dostepne są 3 rodzaje znaczników:

  • zwykłe - bazodanowe
  • helpery
  • utworzone na podstawie cech

Na start dostępna jest lista predefiniowanych znaczników, które należy zaimportować do aktywnej listy. Po instalacji dostępnych jest kilka znaczników których można używać od razu

  • DATA.DZISIAJ
  • SPRAWA.SYMBOL
  • KONTAKT.NAZWA
  • KONTAKT.PESEL
  • KONTAKT.SALDO
  • KONTAKT.NAZWA_I_ADRES (z dopiskiem bloczek w szablonie)
  • KONTAKT.SAM_ADRES (z dopiskiem bloczek w szablonie dla formatowania)

W praktyce wystarczy się posługiwać kilkoma znacznikami aby utworzyć większość szablonów. Takimi znacznikami są np.:

                                                                #JEDNOSTKA.MIASTO# dnia: #DATA.DZISIAJ#
                                                                           Znak sprawy: #SPRAWA.SYMBOL#


#JEDNOSTKA.NAZWA#
#PRACOWNIK.JEDNOSTKA_ORG#
#JEDNOSTKA.ULICA# #JEDNOSTKA.NUMER_DOMU#
#JEDNOSTKA.KOD# #JEDNOSTKA.MIASTO#


                                                                                #KONTAKT.SAM_ADRES=bloczek#


                                         Wezwanie do zapłaty


               Wzywam Pana/Panią #KONTAKT.NAZWA# legitymującego się numerem PESEL: #KONTAKT.PESEL# 
                        do uregulowania zaległej płatności w wysokości:
                                        #KONTAKT.SALDO#


                                                          Z poważaniem
                                                          #PRACOWNIK.STANOWISKO#
                                                          #PRACOWNIK.IMIE_NAZWISKO#}}}

Z powyższego szablony obsługiwanymi znacznikami są :

  • DATA.DZISIAJ
  • SPRAWA.SYMBOL
  • KONTAKT.NAZWA
  • KONTAKT.PESEL
  • KONTAKT.SALDO
  • KONTAKT.NAZWA_I_ADRES (z dopiskiem bloczek w szablonie)
  • KONTAKT.SAM_ADRES (z dopiskiem bloczek w szablonie dla formatowania)

Istnieje możliwość zdefiniowania reszty użytych w powyższym szablonie znaczników przez wdrożeniowca lub programistę.

Oprócz tego istnieje możliwość tworzenia własnych znaczników na podstawie struktury bazy danych i tworzonych cech. Poniżej opisany jest mechanizm tworzenia dla każdego rodzaju znaczników.

Znacznik zwykły - z tabeli

Format takiego znacznika to #NAZWA_TABELI.NAZWA_POLA#. W celu zdefiniowania takiego znacznika należy na oknie "Szablony dokumentów" na zakładce "Znaczniki dokumentów" wybrać z górnego menu przycisk "Nowy znacznik"


Rys. 1

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


Rys. 2

  • Pole "Znacznik:" powinno określać definicje znacznika z uwzględnieniem zasad - kolejne człony nazwy oddzielamy kropką i wszystko piszemy z dużą literą
  • Pole "Opis:" określa opisową definicje znacznika
  • Pole "Tabela:" określa tabelę bazy z której będą pobierane dane przy tworzeniu dokumentu
  • Pole "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
  • Pole "Kolumna danych:" wskazuje na interesujące nas dane które chcemy aby znalazły się w miejscu pojawienia się znacznika w szablonie
  • Pole "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 dla przykłady aby pobrać dane z widoku vindication.vind_proc_view np.: kolumne vat należy wybrać kontekst sprawy windykacyjnej
  • Pole "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


Znacznik tworzony z cechy

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

  • Pole "Cecha:" określa z jakiej cechy (kontaktu/dokumentu) zostaną pobrane dane jeśli wystąpi klucz główny z pola "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 helperem

Definiowania znacznika z pomocnikiem (helperem):
Górna część definicji znacznika pozostaje taka sama jak w poprzednich. Nowością jest lista predefiniowanych pomocnych znaczników (helperów). Jest to najprostszy sposób definiowania znacznika gdyż nie wymaga znajomości tabel jednak ma ograniczenie gdyż pomocnik jest definiowany tylko przez programistę.

  • Pole "Znacznik:" definicja znacznika wraz z ewentualnymi opcjami wyświetlania
  • Pole "Pomocnik:" typ helpera (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.
Znaczniki z helperów mogą (nie wszystkie) 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.

  • Pole "Warunek SQL" definicja zapytania SQL jakie ma pobrać dane
  • Pole "Kontekst:" typ kontekstu z jakiego będą pobrane dane

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:
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łq 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}
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 '#'.


Nowe znaczniki:
WINDYKACJA.DATA.WYMAGALNOSCI.ZOBOWIAZANIA

  • można dodać indeks [1] gdzie 1 oznacza, że będzie brana pod uwagę data 1 zobowiązania z listy (według pola daty mtdate w vindication.obligations_view), jeśli nie będzie indeksu wtedy zostanie brane pod uwagę 1 wpis

KONTAKT.NUMER.NIP

  • numer nip kontaktu

WINDYKACJA.CENA_OBLICZONA

  • Windykacja - cena obliczona - vind_proc_view(cvalue)

WINDYKACJA.CENA_OBLICZONA_SLOWNIE

  • Windykacja - cena obliczona słownie

WINDYKACJA.WIERZYCIEL.NUMER_NIP

  • Windykacja - numer NIP wierzyciela

WINDYKACJA.WYDATKI_TYPY_KOSZTOW

  • Windykacja: Do podsumowania - typy kosztów

WINDYKACJA.WYDATKI_DATY_KOSZTOW

  • Windykacja: Do podsumowania - daty kosztów

WINDYKACJA.WYDATKI_KWOTY_KOSZTOW

  • Windykacja: Do podsumowania - kwoty kosztów

WINDYKACJA.PRZYCHOD_DATY_WPLYWU

  • Windykacja: Do podsumowania - daty wpłat

WINDYKACJA.PRZYCHOD_KWOTY_WPLYWU

  • Windykacja: Do podsumowania - kwoty wpłat

WINDYKACJA.SUMA_ZADLUZENIA_SLOWNIE

  • Windykacja - suma zadłużenia słownie

WINDYKACJA.DLUZNIK_NUMER_KRS

  • Windykacja: numer KRS dłużnika

WINDYKACJA.DLUZNIK_NUMER_NIP

  • Windykacja: numer NIP dłużnika

WINDYKACJA.DLUZNIK_NUMER_REGON

  • Windykacja: numer REGON dłużnika

WINDYKACJA.ZYSK_BRUTTO

  • Windykacja: zysk ze sprawy brutto (tabela: vindication.vind_proc_view, klucz główny: prc_id, kolumna danych: brutto)

WINDYKACJA.ZYSK_NETTO

  • Windykacja: zysk ze sprawy netto( tabela: vindication.vind_proc_view, klucz główny: prc_id, kolumna danych: profit2)

WINDYKACJA.ZYSK_VAT

  • Windykacja: zysk ze sprawy - kwota VAT (tabela: vindication.vind_proc_view, klucz główny: prc_id, kolumna danych: vat)

SPRAWA.SYMBOL_SPRAWY_NADRZEDNEJ

  • Sprawa: symbol sprawy nadrzędnej zdefiniowany jako znacznik SQL

WINDYKACJA.DATA_WYSTAWIENIA_PIERWSZEJ_FAKTURY

  • Windykacja: data wystawienia pierwszej faktury z listy zobowiązań zdefiniowany jako znacznik SQL

WINDYKACJA.DATA_WYSTAWIENIA_OSTATNIEJ_FAKTURY

  • Windykacja: data wystawienia ostatniej faktury z listy zobowiązań zdefiniowany jako znacznik SQL

PISMO.OPIS

  • Pismo: opis dokumentu typu pismo bez nazwy kontrahenta (wszystko co jest po Od: lub Do: jest wycinane)

Załączniki