= 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.: kolumnę vat należy wybrać kontekst sprawy windykacyjnej [[BR]] * ''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 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]] * ''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ę.[[BR]] * ''Znacznik'' - definicja znacznika wraz z ewentualnymi opcjami wyświetlania[[BR]] * ''Pomocnik'' - typ 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]] 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.[[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]] === Znacznik jako SQL === Znacznik ten daje największe możliwości jeśli chodzi o pobieranie danych z bazy. [[BR]] W metodzie tej, poza standardowymi, dostępne są pola : [[BR]] * ''Warunek SQL'' - definicja zapytania SQL jakie ma pobrać dane[[BR]] * ''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 '#'.