= 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 [wiki:UserGuide/BasicConfiguration/CompanyTemplateDocument 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'' [[Image(ImportZnacznikow.2.PNG)]][[br]]''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. [[Image(Word_ListaZnacznikow.PNG)]][[br]]''Rys. 2'' [[Image(Word_ListaZnacznikow2.PNG)]][[br]]''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''. [[Image(NowySzablon.PNG)]][[br]]''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ą[[BR]] * "Opis:" określa opisową definicje znacznika[[BR]] * "Tabela:" określa tabelę bazy z której będą pobierane dane przy tworzeniu dokumentu[[BR]] * "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[[BR]] * "Kolumna danych:" wskazuje na interesujące nas dane które chcemy aby znalazły się w miejscu pojawienia się znacznika w szablonie[[BR]] * "Kontekst" w przypadku wyboru tabel lub widoków które są specyficzne różne od głównych: [[BR]] * podmioty [[BR]] * documents [[BR]] * users [[BR]] * organization_units [[BR]] * orgtree_view [[BR]] * processes [[BR]] * vindication.vind_proc [[BR]] należy wyspecyfikować kontekst i tak na przykład aby pobrać dane z widoku vindication.vind_proc_view np.: kolumne vat należy wybrać kontekst sprawy windykacyjnej [[BR]] * 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[[BR]] [[BR]] Poniżej znajduje się przykład znacznika wyciągającego pole ''opis'' z tabeli ''dokumentów''. [[Image(ZnacznikZtabeli.PNG)]][[br]]''Rys. 5'' == Znacznik tworzony z cechy == Sposób definiowania tego typu znacznika jest bardzo podobny do poprzedniego z różnicą ostatniego pola "Cecha:"[[BR]] - 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.[[BR]] [[BR]] == Znacznik z helperem == Definiowania znacznika z pomocnikiem (helperem):[[BR]] 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ę.[[BR]] - Pole "Znacznik:" definicja znacznika wraz z ewentualnymi opcjami wyświetlania[[BR]] - Pole "Pomocnik:" typ helpera (pomocnego znacznika)z jakiego chcemy korzystać[[BR]] w przypadku tego pola znacznik może produkować dowolnie zdefiniowaną treść jak np.: generowanie tabelki z wykazem zadłużenia. [[BR]] 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.[[BR]] * Kontakt: sam adres: wiersz1, wiersz2, wszystko, bloczek.[[BR]] * Sprawa: strona sprawy: strona ?? [[BR]] * Sprawa: wierzyciel: nazwa, adres, wszystko, bloczek.[[BR]] * Sprawa: dłużnik: nazwa, adres, wszystko, bloczek.[[BR]] [[BR]] == Znacznik jako SQL == Znacznik ten daje największe możliwości jeśli chodzi o pobieranie danych z bazy. [[BR]] - Pole "Warunek SQL" definicja zapytania SQL jakie ma pobrać dane[[BR]] - Pole "Kontekst:" typ kontekstu z jakiego będą pobrane dane[[BR]] Przykład wykorzystania tego znacznika [[BR]] Jako przykład niech posłuży pobranie numeru nip jednej ze stron umowy. Zapytanie wygląda następująco: [[BR]] select nip_ _ _ from contacts where contid = (select toctid from contract where ctrcid={CONTEXT}) [[BR]] Kroki tworzenia takiego zapytania są następujące: [[BR]] - fraza pobierająca dane select nip_ _ _ from contacts [[BR]] - fraza warunku where contid [[BR]] - fraza podzapytania (select toctid from contract where ctrcid={CONTEXT}) [[BR]] 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. [[BR]] Aby obsłużyć brak danych i wypisać własny komunikat należy użyć formy np.[[BR]] SELECT COALESCE((SELECT nip_ _ _ FROM contacts WHERE contid=c.toctid)::text , 'brak numeru nip') FROM contract c WHERE ctrcid={CONTEXT} [[BR]] Powodzenia. [[BR]] '''UWAGI'''[[BR]] 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:'''[[BR]] '''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[[BR]] '''KONTAKT.NUMER.NIP''' - numer nip kontaktu[[BR]] '''WINDYKACJA.CENA_OBLICZONA''' - Windykacja - cena obliczona - vind_proc_view(cvalue)[[BR]] '''WINDYKACJA.CENA_OBLICZONA_SLOWNIE''' - Windykacja - cena obliczona słownie[[BR]] '''WINDYKACJA.WIERZYCIEL.NUMER_NIP''' - Windykacja - numer NIP wierzyciela[[BR]] '''WINDYKACJA.WYDATKI_TYPY_KOSZTOW''' - Windykacja: Do podsumowania - typy kosztów[[BR]] '''WINDYKACJA.WYDATKI_DATY_KOSZTOW''' - Windykacja: Do podsumowania - daty kosztów[[BR]] '''WINDYKACJA.WYDATKI_KWOTY_KOSZTOW''' - Windykacja: Do podsumowania - kwoty kosztów[[BR]] '''WINDYKACJA.PRZYCHOD_DATY_WPLYWU''' - Windykacja: Do podsumowania - daty wpłat[[BR]] '''WINDYKACJA.PRZYCHOD_KWOTY_WPLYWU''' - Windykacja: Do podsumowania - kwoty wpłat[[BR]] '''WINDYKACJA.SUMA_ZADLUZENIA_SLOWNIE''' - Windykacja - suma zadłużenia słownie[[BR]] '''WINDYKACJA.DLUZNIK_NUMER_KRS''' - Windykacja: numer KRS dłużnika[[BR]] '''WINDYKACJA.DLUZNIK_NUMER_NIP''' - Windykacja: numer NIP dłużnika[[BR]] '''WINDYKACJA.DLUZNIK_NUMER_REGON''' - Windykacja: numer REGON dłużnika[[BR]] '''WINDYKACJA.ZYSK_BRUTTO''' - Windykacja: zysk ze sprawy brutto (tabela: vindication.vind_proc_view, klucz główny: prc_id, kolumna danych: brutto)[[BR]] '''WINDYKACJA.ZYSK_NETTO''' - Windykacja: zysk ze sprawy netto( tabela: vindication.vind_proc_view, klucz główny: prc_id, kolumna danych: profit2)[[BR]] '''WINDYKACJA.ZYSK_VAT''' - Windykacja: zysk ze sprawy - kwota VAT (tabela: vindication.vind_proc_view, klucz główny: prc_id, kolumna danych: vat)[[BR]] '''SPRAWA.SYMBOL_SPRAWY_NADRZEDNEJ''' - Sprawa: symbol sprawy nadrzędnej zdefiniowany jako znacznik SQL[[BR]] '''WINDYKACJA.DATA_WYSTAWIENIA_PIERWSZEJ_FAKTURY''' - Windykacja: data wystawienia pierwszej faktury z listy zobowiązań zdefiniowany jako znacznik SQL[[BR]] '''WINDYKACJA.DATA_WYSTAWIENIA_OSTATNIEJ_FAKTURY''' - Windykacja: data wystawienia ostatniej faktury z listy zobowiązań zdefiniowany jako znacznik SQL[[BR]] '''PISMO.OPIS''' - Pismo: opis dokumentu typu pismo bez nazwy kontrahenta (wszystko co jest po Od: lub Do: jest wycinane)[[BR]]