Instrukcja administratora > Parametryzacja systemu > Makiety dokumentów > Edytor makiet

Drukuj

Edytor makiet

Wzór makiety przygotowujemy w formacie HTML. Oprócz standardowego formatu HTML program wymaga pewnych dodatkowych danych:

21 pierwszych linii przeznaczonych jest na ustawienie konfiguracji wydruku w programie

między znakami # wstawiane są instrukcje interpretowane przez program

Wzór makiety modyfikujemy na zakładce Źródło.

180501

Przy modyfikacji i tworzeniu nowych dokumentów trzymamy się następujących zasad:

wzorujemy się na wcześniej utworzonych lub standardowych makietach

używamy standardowego języka HTML

niestandardowe instrukcje interpretowane przez program (#...#) wstawiamy klikając w zaplanowanym miejscu prawym klawiszem myszy

przechodząc na zakładkę Podgląd możemy od razu zobaczyć efekt swojej modyfikacji

180502

W przygotowywanym wzorze oprócz układu ramek i stałych tekstów chcielibyśmy umieścić dane konkretnego pracownika. W tym celu w wybranym miejscu klikamy prawym klawiszem myszy i wybieramy odpowiednio:

Wstaw dane - podczas wydruku symboliczna dana zastąpiona zostanie faktyczną, np. w miejscu #P_Nazwisko# podstawi się nazwisko konkretnego pracownika.

Szczególne dane z podmenu "Inne":

o#AktualnaData# - bieżąca data z ustawień programu

o#Data_Do# - "data do" z seryjnych dokumentów własnych

o#Data_Od# - "data od" z seryjnych dokumentów własnych

o#NastXx# - podaje datę dnia tygodnia Xx następującego po bieżącej dacie w ustawieniach programu (Xx=Pn,Wt,Śr,Cz,Pi,So,Ni)

o#TytulDokumentu# - podaje tytuł bieżącego dokumentu

Dla zestawień SQL możemy wybrać pola od #SQL_00# do #SQL_99#. Odpowiadają one kolejności pól, jakie pokażą się na zestawieniu.

Wstaw znaki sterujące - podczas wydruku symboliczny znak sterujący ustawi np. kolor systemowy wybrany w programie.

Wykaz znaków sterujących:

o#SON# - Zmienia czcionkę na ARIAL i zmniejsza rozmiar

o#SOF# - Wyłącza #SON#'

o#AON# - Zmień czcionkę na ARIAL i wytłuść

o#AOF# - Wyłącza #AON#'

o#bgBiały# - Zmienny kolor systemowy

o#bgJasny# - Zmienny kolor systemowy

o#bgPośredni# - Zmienny kolor systemowy

o#bgCiemny# - Zmienny kolor systemowy

o#bgCzarny# - Zmienny kolor systemowy

o#_bgBiały# - Stały kolor systemowy (niezależny od ustawień z/bez odcieni szarości)

o#_bgJasny# - Stały kolor systemowy (niezależny od ustawień z/bez odcieni szarości)

o#_bgPośredni# - Stały kolor systemowy (niezależny od ustawień z/bez odcieni szarości)

o#_bgCiemny# - Stały kolor systemowy (niezależny od ustawień z/bez odcieni szarości)

o#_bgCzarny# - Stały kolor systemowy (niezależny od ustawień z/bez odcieni szarości)

o#_KolorRamki# - Tak jak #_bgCiemny#, ale do użycia w stylach

o#KolorRamki# - Tak jak #bgCiemny#, ale do użycia w stylach

o#Pole_wyboru# - Pole wyboru (kwadrat pusty)

o#Pole_wyboru_c# - Pole wyboru (kwadrat czarny)

o#X# - Znacznik (X)

o# # - Znacznik ( )

o#Pole_wyboru_x# - Pole wyboru (zaznaczone)

o#Pole_wyboru_puste# - Pole wyboru (puste)

o#Kontrolka_SQL_0..9# - Kontrolka zestawienia SQL (kolejność odpowiada użytym kontrolkom z zestawienia)

Wstaw pętlę - jeśli we wstawionej pętli wstawimy dane, np.

#LOOP Członkowie rodziny#

#R_Imię#

#ENDLOOP#

otrzymamy listę imion dzieci danego pracownika

Wstaw warunek - używamy, jeśli chcemy umieścić fragment tekstu drukowany tylko wtedy, gdy spełniony zostanie odpowiedni warunek, np.

#IF SYS_Wynagrodzenie_brutto#>0

pracownik otrzymał wynagrodzenie

#ELSE#

pracownik nie otrzymał wynagrodzenia

#ENDIF#

jeśli wynagrodzenie brutto było większe od zera zostanie wydrukowany tekst "pracownik otrzymał wynagrodzenie", a w przeciwnym wypadku tekst "pracownik nie otrzymał wynagrodzenia"

Wstaw funkcję - możemy wykonywać proste operacje na kwotach i wyrazach. Lista dostępnych funkcji:

o$Oblicz{...} - oblicza wyrażenie arytmetyczne np: $Oblicz{#SYS_Wynagrodzenie_brutto#-#SYS_Podatek_dochodowy#-#SYS_Składka_ZUS_prac.#-#SYS_Składka_zdrow.#}. Funkcja musi być zapisana w jednej linii.

o$Słownie - podaje słowną interpretację kwoty np: #SYS_Wynagrodzenie_brutto#$Słownie

o$Dużymi - drukuje dane dużymi literami np: #P_Nazwisko#$Dużymi

o$Suma - podaje sumę dowolnego pola np: #SYS_Wynagrodzenie_brutto#$Suma

o$Abs - podaje wartość bezwzględną kwoty np: #SYS_Wynagrodzenie_brutto#$Abs

o$Znak - podaje i-ty znak dowolnego pola np: #P_Nazwisko#$Znak[1]

o$SQL{...} - wstawia wynik zapytania SQL podanego pomiędzy nawiasami klamrowymi. Jeśli zapytanie zwróci kilka wierszy lub kolumn (np.jakąś tabelę), jego wiersze zostaną opatrzone atrybutami <tr>...</tr>, a kolumny <td>...</td>, dlatego aby poprawnie go wyświetlić należy funkcję objąć atrybutami <table>...</table>. Funkcja musi być zapisana w jednej linii.
Np. funkcja zwraca wiele wartości:
<table>
$SQL{select * from PRACOWNK}
</table>
Funkcja zwraca jedną wartość:
$SQL{select [Nazwisko] from PRACOWNK where [X_I]=12}
W zapytaniu SQL można używać tych samych wyrażeń jak w obiektach użytkownika i w zestawieniach SQL, a w szczególności:

odwoływać się do tabel aplikacji i ich pól (wyrażenie w nawiasach klamrowych np.{PRACOWNICY.X_I})

odwoływać się do zmiennych specjalnych (wyrażenie w nawiasach ostrych np.<USERIDE>)

używać kontrolek {X/nazwa_kontrolki}, co spowoduje, że przed zrobieniem dokumentu program zapyta o wprowadzenie danych do zdefiniowanych kontrolek - patrz rozdział Moduł raportów SQL. Należy przy tym w nagłówku makiety (pierwsze 21 linii) zmodyfikować linię sterującą inne #0 na inne #2

Podczas pisania zapytania SQL w ramach tej funkcji, można dwuklikiem myszy wywołać okno wygodnego edytora zapytań SQL

 

Tworzenie dokumentu wielostronicowego:

1. Należy w nagłówku makiety (pierwsze 21 linii) zmodyfikować linię sterującą liczba stron #... (wpisać ich liczbą po znaku #)

2. Na początku każdej następnej strony (za wyjątkiem pierwszej) wpisać klauzulę <!-- NOWA STRONA -->

 

Użycie kontrolek w funkcji $SQL:

Należy w nagłówku makiety (pierwsze 21 linii) zmodyfikować linię sterującą inne #0 na inne #2

Zmodyfikowaną makietę zapisujemy klikając w przycisk b10_arch.

Makiety można także tworzyć według nowego stylu, gdzie zamiast tradycyjnych tagów (np.#Pole#) używane są pola z tabel aplikacji, tak jak w wyzwalaczach i innych obiektach.

Można utworzyć:

pętle ( zrobi tabelę) np.

{TABELA.^BEGINLOOP}

{TABELA.POLE}

{TABELA.^ENDLOOP}

warunki np.

{^IF}{TABELA.POLE}>0 (lub dowolne wyrażenie warunkowe)

zrób coś

{^ELSEIF}

zrób coś innego

{^ENDIF}

obliczanie wyrażeń np.

{^COUNT}({TABELA.POLE1}+{TABELA.POLE2})/2

zapytanie sql np.

{^SQL} select [jakieś_pole] from jakaś_tabela where jakiś_warunek (dowolny sql)

suma pól tabeli np.

{TABELA.^SUM.POLE}

Pętle i warunki mogą być zagnieżdżane dowolnie.