====== Szablony wydruków ======
System Modus dysponuje narzędziem do edycji wydruków, nie ma z góry narzuconego wyglądu dokumentów. W łatwy sposób można zbudować własny szablon dokumentów, raportów, etykiet. Istnieje możliwość samodzielnego zadecydowania, jakie dane ma zawierać każdy dokument, raport i dostosować go do własnych potrzeb.
W programie Modus za pomocą edytora szablonów można tworzyć nowe szablony wydruków dokumentów. Szablony podzielone są na systemowe, (których nie da się edytować ani usunąć) oraz użytkownika (w pełni edytowane).
===== Stworzenie nowego szablonu wydruku =====
Szablon wydruku tworzy się na podstawie już istniejącego szablonu. Wybieramy dokument np. ZO lub PZ, klikamy ikonę „drukuj dokument” otworzy się okno podglądu wydruku tego dokumentu. \\
Po lewej stronie menu pokaże się lista SZABLONY. Zaznacz jeden z istniejących szablonów, wybierz "Zapisz szablon jako" i wpisać nazwę nowego szablonu (kod) oraz zatwierdzić.
\\ \\
**Tworzenie szablonu wydruku**\\
{{ :pl:podrecznik:globalne:szablon_wydruku_nowy.png |}}
\\ \\
Teraz nowy szablon można edytować, zaznacz nowo utworzony szablon na liście i kliknij ikonę „Edytuj szablon”. Otworzy się okno edytora szablonów wydruku FastReport. Zamykając FastReporta pojawi się podgląd zmian, jakie wprowadziliśmy. Żeby zapisać należy rozwinąć przycisk Szablon i wybrać „Zapisz szablon”. Program też przy zamykaniu podglądu wydruku lub zmianie szablonu na inny będzie nas pytał czy zapisać szablon.
\\ \\
{{ :pl:podrecznik:globalne:edytuj_szablon.png |}}
\\ \\
**Okno edytora wydruku**\\
{{ :pl:podrecznik:globalne:edytor_wydruku.png |}}
\\ \\
- Pasek menu głównego;
- Paski narzędzi;
- Obszar roboczy;
- Drzewo z danymi - można przeciągnąć elementy do obszaru roboczego;
- Karty;
- Drzewo obiektów;
- Linijka;
- Pasek narzędzi obiektów;
- Okno właściwości obiektów;
- Pasek statusu.
\\ \\
=== Opcje strony ===
Zmiana ustawień szablonu dostępne jest za pośrednictwem „Plik | Ustawienia strony...” w menu, lub dwukrotne kliknięcie na stronie w puste miejsce.
\\ \\
{{ :pl:podrecznik:globalne:ustawienia_strony.png |}}
\\ \\
W oknie ustawień, można wybrać rozmiar i wyrównanie papieru, jak również ustalić marginesy oraz źródło papieru.
==== Obiekty ====
Wszystkie informacje, które znajdują się na szablonie wydruku to obiekty.
=== Obiekty, dzielą się na: ===
**Obiekt typu dane – zmienna z drzewa danych**\\
{{:podrecznik:globalne:szablony_wydrukow:obiekt_dane.png|}}
\\ \\
Obiekt ten można przeciągnąć za pomocą myszki z drzewa danych.
\\ \\
**Obiekt typu tekst – wpisany tekst**\\
{{:podrecznik:globalne:szablony_wydrukow:obiekt_tekst.png|}}
\\ \\
Po wybraniu z paska narzędzi obiektu przycisku i wskazania miejsca na szablonie można wstawić dowolny tekst.
\\ \\
**Obiekt typu obraz – obraz**\\
{{:podrecznik:globalne:szablony_wydrukow:obiekt_obraz.png|}}
\\ \\
Obraz niewielkich rozmiarów (ok.20 KB) umieścimy wybierając z paska narzędzi obiektu i wskazując miejsce. Następnie trzeba wczytać plik i zatwierdzić zielonym OK. Obraz można powiększyć, zmniejszyć, rozciągać za pomocą czarnych punktów w rogach obrazu.
\\ \\
Aby dodać większy obraz należy postępować tak samo tylko nie wczytywać pliku, a zatwierdzić pusty obiekt, następnie wskazać go myszką i w oknie inspektora -> Szczegóły w polu FileLink wpisać ścieżkę lokalizacji pliku na tym komputerze. Na innych stanowiskach komputerowych nie będzie widoczny w ten sposób dodany obraz, chyba, że u nich też w takiej samej lokalizacji wkleimy obraz.
\\ \\
**Obiekt typu kod kreskowy – kod kreskowy**\\ \\
W szablonie wydruku możesz dodać wiele obiektów z kodami kreskowymi, odpowiadającymi za dowolne pole danych, dostępne w danym szablonie wydruku. Aby dodać taki obiekt:
- Kliknij w ikonkę kodu kreskowego na pasku obiektów
- Wybierz typ kodu kreskowego
- Umieść kod w wybranym przez Ciebie miejscu na szablonie wydruku
- Wybierz dane jakie ma zawierać kod kreskowy klikając ikonkę **//fx//**
- Kliknij dwukrotnie na polu danych i zatwierdź
\\ \\
**Kody kreskowe**\\
{{pl:podrecznik:globalne:kod_kresk.png}}\\ \\
Edytowanie istniejących kodów kreskowych różni się nieco od powyższej instrukcji. Aby zmienić wyrażenie przedstawione na kodzie kreskowym należy:
- Kliknąć na edytowany kod kreskowy
- We właściwościach obiektu wybierz pole **DataField**
- Wyszukaj na liście interesujące cie wyrażenie
\\ \\
**Edycja kodu kreskowego**\\
{{pl:podrecznik:globalne:kod_kresk2.png}}\\ \\
Różne typy kodów kreskowych obsługują wybrane znaki, jeśli na wydruku w miejscu kodu pojawi się czerwony napis z błędem, zmień typ kodu kreskowego.
Pamiętaj, aby obiekty nie wychodziły poza ramy wstęgi, w której się znajdują.
\\ **Przykład**\\ {{podrecznik:globalne:obiekty.2.png}}
==== Formatowanie obiektu ====
Wyrażenie można sformatować poprzez:
* edycję zakładki Format
* stosując następujący zapis [wyrażenie #format]
* formatowanie Daty/Czasu:
* dd.mm.yyyy – data typu '23.12.2003'\\ przykład użycia: ''[specyfikacja."dokument_obcy_data_wystawienia" #dd.mm.yyyy]''
* dd mmm yyyy – data typu '23 Nov 2003'
* dd mmmm yyyy – data typu '23 November 2003'
* hh:mm – format czasu '23:12'
* hh:mm:ss – format czasu '23:12:00'
* dd mmmm yyyy, hh:mm – format daty i czasu '23 November 2003, 23:12'
==== Narzędzia obiektu ====
Wstawianie wstęgi- pozwala na stworzenie projektu strony, na obszarze, który ma określony stosownie do jego rodzaju.
- "Tekst" obiekt wyświetla jeden lub kilka wierszy tekstu w prostokątny obszar;
- "Zdjęcie" obiekt wyświetla plik graficzny w formacie "bmp", "JPEG", "ICO" WMF "lub" EMF ";
- "Linia" obiekt wyświetla poziomą lub pionową linię; prostokąt, zaokrąglony prostokąt, elipsa, trójkąt, i diament);
- "Kod kreskowy" obiekt wyświetla dane w postaci kodu kreskowego.
==== Drzewo z danymi ====
{{:podrecznik:globalne:szablony_wydrukow:drzewo_dane.png|}}
\\ \\
Z drzewa danych z zakładki „Dane” można przeciągać dany obiekt na nasz szablon. Klikając na obiekt będzie widoczna strzałka w dół (jak w otwarciu listy). Za jej pomocą można szybko zmienić obiekt na inny.
\\ \\
{{:podrecznik:globalne:szablony_wydrukow:zmiana_zmiennej.png|}}
\\ \\
Klikając dwa razy otworzy się okno edycji, w którym można dodać tekst, jaki ma być wyświetlany przed zmienną. Np. tekst nazwa.
\\ \\
{{:pl:podrecznik:globalne:memo4.png|}}
\\ \\
**Bandy – wstęgi**\\
Na wstęgach umieszczane są poszczególne obiekty z drzewa danych.
W celu dodania wstęgi:
- Na pasku narzędzi obiektu wybierz Insert band.
- Wybierz odpowiedni typ bandy - na szablonie pojawi się nowa wstęga.
\\ \\
{{:podrecznik:globalne:szablony_wydrukow:wstegi.png|}}
\\ \\
==== Wstęgi ====
Obiekty z poszczególnych gałęzi drzewa należy umieszczać na wstęgach dotyczących tej samej gałęzi (np obiekty z gałęzi dokument specyfikacja należy umieszczać na wstędze dokument_specyfikacja)
\\
**Dodanie nowej wstęgi**\\
{{:podrecznik:globalne:szablony_wydrukow:dodanie_wstęgi.png|}}
\\ \\
**Określenie gałęzi z którą wstęga ma być powiązana**\\
{{:podrecznik:globalne:szablony_wydrukow:wybór_gałęzi.png|}}
\\ \\
**Umieszczenie obiektu na odpowiedniej dla niego wstędze**
{{:podrecznik:globalne:szablony_wydrukow:dodanie_obiektu_na_właściwą_wstęgę.png|}}\\
\\ \\
==== Funkcje ====
Funkcje wykonywane na ciągach znaków (String):\\ ''nr zlecenia zastosowany w przykładach: **ZPR 01297/2017**''
* **[Length(/obiekt//>)]** - zwraca liczbę znaków jaka występuje w wybranym ciągu\\ np: ''[Length()]'' => "14"
* **[Copy(/obiekt//>, //od znaku//, //liczba znaków//)]** - zwraca ciąg o podanej liczbie znaków, zaczynając od podanego znaku \\ np: ''[Copy(, 2, 9)]'' => "''PR 01297/''"
* **[Pos(//"ciąg"//, ////)]** - zwraca pozycje znaku w podanym ciągu \\ np: ''[Pos("/",)]'' => "''10''"
===Wyżej wymienione funkcje mogą być łączone.===
**Przykład:**\\ W polu uwagi do produkcji wpisywane są trzy informacje ale tylko jedna z nich powinna być widoczna na wydruku etykiety produktu:
* Zawartość pola uwagi do produkcji: **Kraków^00012*2017**
* Zawartość pola uwagi widoczna na etykiecie produktu: **00012**
Znak ^ oraz * stanowią separatory, które posłużą do wyświetlenia wybranej części ciągu.
\\
**Łączenie funkcji (przykład)**\\
{{:pl:podrecznik:globalne:substring.png|Łączenie funkcji (przykład)}}
\\ \\
**Rozwiązanie**
W celu wyświetlenia określonego fragmentu z wybranego ciągu należy skorzystać z trzech wyżej wymienionych funkcji:\\ Length(), Copy(), Pos()
**1.)** W celu wyświetlenia fragmentu ciągu z pola **''Uwagi do produkcji''** należy zastosować funkcję\\
**[Copy(/obiekt//>, //od znaku//, //liczba znaków//)]** gdzie:
obiekt - pole zawierające szukany fragment ciągu
od znaku - pozycja znaku od którego ma zostać wyświetlony subciąg (nieznana, do wyliczenia)
jak wiele znaków ma zostać wyświetlone (nieznana, do wyliczenia)
\\
**2.)** W celu wyświetlenia fragmentu ciągu zaczynając od wybranego separatora należy wyliczyć jego pozycję. W podanym przykładzie wyliczana jest pozycja znaku ^. W tym celu należy zastosować poniższą funkcje :\\
od znaku = [Pos("^",)]
wyznaczona wartość to: od znaku = 7
\\
**3.)** W celu wyświetlenia fragmentu ciągu należy określić liczbę znaków które mają zostać wyświetlone. W podanym przykładzie nie jest to stała wartość tylko liczba znaków od separatora ^ do separatora *. W tym celu należy:\\
wyznaczyć długość ciągu do znaku * (z pominięciem znaków separujących subciągi)
dł_ciągu_do_* = Length(/ciąg do separatora *//>)
ciąg do separatora * = Copy(, //pierwszy znak//, //pozycja separatora *//)
pozycja separatora * = Pos("*",)
ciąg do separatora * = Copy(, 1, Pos("*",)))
dł_ciągu_do_* = [Length(Copy(, 1, Pos("*",)))-2]
wyznaczona wartość to: dł_ciągu_do_* = 11
wyznaczyć długość ciągu do znaku ^ (z pominięciem znaków separujących subciągi)
dł_ciągu_do_^ = Length(/ciąg do separatora ^//>)
ciąg do separatora ^ = Copy(, //pierwszy znak//, //pozycja separatora ^//)
pozycja separatora ^ = Pos("^",)
ciąg do separatora ^ = Copy(, 1, Pos("^",)))
dł_ciągu_do_^ = [Length(Copy(, 1, Pos("^",)))-1]
wyznaczona wartość to: dł_ciągu_do_* = 6
odjąć dwie powyższe wartości
liczba znaków = (dł_ciągu_do_*) - (dł_ciągu_do_^)
liczba znaków = [(Length(Copy(, 1, Pos("*",)))-2)- (Length(Copy(, 1, Pos("^",)))-1)]**
liczba znaków = 11-6
liczba znaków = 5
\\
**4.)** W celu wyświetlenia ciągu znaków pomiędzy znakami ^ i * należy podstawić wyznaczone wartości do funkcji głównej:\\
subciąg = [Copy(/obiekt//>, //od znaku//, //długość ciągu//)]** gdzie:
obiekt =
od znaku = Pos(„^”,)+1
długość ciągu= (Length(Copy(, 1, Pos("*",)))-2)- (Length(Copy(, 1, Pos("^",)))-1)
Gotowe rozwiazanie:
[Copy(, Pos("^",)+1,(Length(Copy(, 1, Pos("*",)))-2)-(Length(Copy(, 1, Pos("^",)))-1))]
===== Przykłady:=====
==== Logo na wydruku ====
W konfiguracji globalnej w zakładce System/Drukowanie wprowadzono możliwość wczytania do bazy logo firmy, które będzie dostępne na wszystkich udostępnionych do edycji wydrukach dokumentów. Dostępny jest tam również podgląd wczytanego logo, jednak w tej wersji tylko dla obrazków w formacie .bmp.
Aby wstawić logo na wydruk, należy w edytorze wydruków położyć na szablonie wydruku obiekt typu ‘Obraz’, a gdy pojawi się okno dialogowe ‘Obraz’ - zamknąć je bez wczytywania obrazka. Następnie należy ustawić właściwości nowego
obiektu według poniższych wskazówek:
- DataSet: _firma
- DataField: LOGO
wielkość obrazka zostanie dostosowana do wielkości obiektu na szablonie z zachowaniem proporcji; aby pokazać obrazek w skali 1:1 należy ustawić właściwość AutoSize na wartość ‘true’.
\\ \\
**Logo - wydruk**\\
{{pl:podrecznik:globalne:logo_na_wydruku.png|}}
\\ \\
==== Grafika/Zdjęcie produktu na Karcie produktu lub etykiecie====
Na szablonie wydruku Karty produktu i na etykiecie nr seryjny (Produkcja/Planowanie) istnieje możliwość dodania zdjęcia produktu, które uprzednio zostało dodane w kartotece produktu (Magazyn -> Asortyment/ Zakładka: Zdjęcia).
Aby wstawić zdjęcie na wydruk, należy:
- Szablon do którego ma zostać dodane zdjęcie zapisać pod nową nazwą.
- W edytorze wydruków położyć na szablonie wydruku obiekt typu ‘Obraz’, a gdy pojawi się okno dialogowe ‘Obraz’ - zamknąć je bez wczytywania obrazka.
- Ustawić właściwości nowego obiektu według poniższych wskazówek:
* DataSet: zdjecia
* DataField: ZDJECIE1
wielkość obrazka zostanie dostosowana do wielkości obiektu na szablonie z zachowaniem proporcji; aby pokazać obrazek w skali 1:1 należy ustawić właściwość AutoSize na wartość ‘true’.
\\ \\
**Zdjęcie produktu - wydruk**\\
{{pl:podrecznik:globalne:rysunek_techniczny.png|}}
\\ \\
==== Zmiana liczby miejsc po przecinku ====
W systemie Modus **wartości** na dokumentach zaokrąglane są do dwóch miejsc po przecinku. Na szablonie wydruku można jednak zmienić liczbę drukowanych miejsc po przecinku. W tym celu należy:
- Przejdź do edycji szablonu wydruku.
- Wskaż element (wartość), który powinien być wyświetlany z inną ilością miejsc po przecinku i naciśnij **Enter**.
- Przejdź do zakładki **Format**.
- W polu **Format string** zmień ustawienia z **%2.2n** na **%2.Xn**, gdzie **X** oznacza liczbę miejsc po przecinku jaka ma być drukowana (np **%2.4n**).
- Naciśnij **OK**.
\\
**Edycja szablonu wydruku**\\
{{:podrecznik:sprzedaz:liczna_miejsc_po_przecinku_1.png|}}
\\ \\
**Zmiana liczby miejsc po przecinku**\\
{{:podrecznik:sprzedaz:liczna_miejsc_po_przecinku_2.png|}}
\\ \\
**Szablon po zmianach**\\
{{:podrecznik:sprzedaz:liczna_miejsc_po_przecinku_3.png|}}
\\ \\
Ponieważ formatowanie można definiować również z poziomu zakładki **Text** może się zdarzyć że pomimo, iż w polu **Format string** znajduje się **%2.2n** to zaokrąglenie jest inne niż dwa miejsca po przecinku. W takim wypadku
- Przejdź do edycji szablonu wydruku.
- Wskaż element, który powinien być wyświetlany z inną ilością miejsc po przecinku i naciśnij **Enter**.
- Pozostań w zakładce **Text**.
- W polu zmień ustawienia z **''[dokument_specyfikacja."ilosc" #n%2,4n]''** na **''[dokument_specyfikacja."ilosc" #n%2,Xn]''**,\\ gdzie **X** oznacza liczbę miejsc po przecinku jaka ma być drukowana (np **[dokument_specyfikacja."ilosc" #n%2,0n]**).
- Naciśnij **OK**.
==== Edycja etykiety asortymentu ====
Na etykiecie asortymentu domyślnie kodowany jest kod kreskowy asortymentu, można to jednak zmienić:
- Dla standardowego szablonu wydruku etykiety wybierz 'Zapisz szablon jako...' i podaj nową nazwę.
- Na etykiecie zaznacz kod kreskowy.
- Z lewej strony ekranu w zakładce 'Properties' zawartość pola 'DataField' zmienić z 'kod_kreskowy' na 'kod'.
- Zamknij edytor wydruków FastReport.
- Wybierz 'Zapisz szablon'.
- Na koniec warto nowy szablon ustawić jako domyślny (Lista szablonów/funkcja Edytuj po zaznaczeniu nowego szablonu).
==== Operacje matematyczne ====
W systemie Modus możliwe jest wykonywanie operacji matematycznych na elementach raportu. W celu wykonania np. mnożenia:
- Dodaj element Tekst do raportu.
- W zakładce Text wpisz nazwy nazwy elementów na których chcesz wykonać operacje, zwracając uwagę na nawiasy oraz sympol operacji matematycznej np. w celu pomnożenia masy jednostkowej przez ilość wprowadź:\\ [*]
\\
{{:podrecznik:globalne:szablony_wydrukow:operacje_matematyczne.png|}}
\\ \\
==== Sumowanie wartości ====
Na szablonie wydruku istnieje możliwość sumowania wartości z wybranych kolumn. W celu dodania sumy wybranej kolumny:
- Jeśli na szablonie nie ma wstęgi stopka dodaj ją.
- Jeśli chcesz sumować wartości kolumny której domyślnie nie ma na szablonie dodaj nowy obiekt na odpowiedniej wstędze np. [dokument_specyfikacja."produkt_ilosc_opakowan"].
- W polu stopki pod wybrana kolumną umieścić:[SUM(,specyfikacja)]
- W polu stopki umieść ewentualny opis sumy.
Istnieje również możliwość dodania pola z podsumowaniem do nagłówka. Instrukcja dostępna jest [[pl:podrecznik:globalne:szablony_wydrukow:suma|tutaj]]
==== Sortowanie ====
System Modus umożliwia określenie kolumny, według której dane znajdujące się wydruku mają być sortowane. Możliwe jest również określenie kierunku sortowania. W celu zmiany sortowania:
- Wydrukuj wybrany dokument.
- Kliknij strzałkę znajdującą się obok ikony **Szablony**.
- Wybierz **Edytuj definicję szablonu**.
- Kliknij **Wyczyść** w celu usunięcia dotychczasowych ustawień sortowania.
- Rozwiń listę kolumn dostępnych do sortowania.
- Wybierz kierunek sortowania klikając jedną ze strzałek znajdującą się obok wybranego elementu.
- Kliknij **Zatwierdź**.
\\
**Wydruk przed zmianą sortowania**\\
{{:podrecznik:globalne:szablony_wydrukow:sortowanie1.png|}}
\\ \\
**Zmiana sortowania**\\
{{:podrecznik:globalne:szablony_wydrukow:sortowanie2.png|}}
\\ \\
**Wydruk po zmianie sortowania**\\
{{:podrecznik:globalne:szablony_wydrukow:sortowanie3.png|}}
\\ \\
==== Zastosowanie funkcji IIF (jeżeli) ====
System Modus umożliwia stosowanie różnego rodzaju funkcji. Jedną z nich jest funkcja jeżeli - IIF.
**I przykład zastosowania:**\\
Na zamówieniu do dostawcy określono termin realizacji zamówienia, a dodatkowo dla kilku zamawianych asortymentów określono inne terminy realizacji. W związku z możliwością określenia dwóch terminów realizacji, na szablonie dostępne są również dwa terminy realizacji:
* ''[dokument_specyfikacja."planowany_termin_dostawy"]'' - termin realizacji konkretnej pozycji zamówienia
* ''[dokument."planowany_termin_dostawy"]'' - ogólny termin realizacji zamówienia
\\
**Wydruk z dwiema kolumnami**\\
{{:podrecznik:globalne:szablony_wydrukow:terminy_realizacji_zamówienia.png|Wydruk z dwiema kolumnami }}
\\ \\
Zastosowanie funkcji IIF pozwala uniknąć konieczności umieszczania obu kolumn na szablonie wydruku. Umieszczenie kolumny z następującą funkcją:
[IIF(==0, , )]
spowoduje, że jeśli dla pozycji dokumentu określano indywidualny termin realizacji to zostanie on wyświetlony, a w przeciwnym wypadku wyświetlony zostanie termin realizacji zamówienia.
\\ \\
**Wydruk z zastosowaniem funkcji IIF**\\
{{:podrecznik:globalne:szablony_wydrukow:terminy_realizacji_zamówienia_iif.png|Wydruk z zastosowaniem funkcji IIF }}
\\ \\
**II przykład zastosowania:**\\
Na poglądzie wydruku dokumentu produkt kompletowany nie posiada receptury. Przedstawiona poniżej funkcja:
* sprawdza czy pole ''kod receptury'' jest puste
* jeśli pole ''kod receptury'' __jest__ puste, wyświetlany jest w tym polu ''kod asortymentu''
* jeśli pole ''kod receptury'' __nie jest__ puste, pozostaje jest w tym polu ''kod receptury''
[IIF(=="",,)]
==== Sortowanie na szablonie z agregacją (WZ) ====
W przypadku wydruków zawierających pozycje zagregowane sortowanie należy zdefiniować dla dwóch gałęzi. Sortowanie na drugiej gałęzi odbywa się w ramach drzewa danych partie_specyfikacja. Dla poprawnego działania szablonu agregacja musi odbywać się w obrębie elementów drzewa partie specyfikacja (każdy GroupHeader musi być ustawiony na partie_specyfikacja).
W celu konfiguracji szablonu wydruku:
- Wydrukuj wybrany dokument.
- Kliknij strzałkę znajdującą się obok ikony Szablony.
- Wybierz Edytuj szablon.
- Sprawdź czy wstęgi odpowiadające za agregację są ustawione na partie_specyfikacja oraz których pól dotyczą np. asortyment_kod (GroupHeader: partie_specyfikacja."asortyment_kod") [Ekran: 1]
- Zamknij FastReport.
- Kliknij strzałkę znajdującą się obok ikony Szablony.
- Wybierz Edytuj definicję szablonu.
- Uzupełnij pola dotyczące sortowania danych z gałęzi: partie_specyfikacja.\\
Należy wprowadzić pola po których ma się odbywać sortowanie. Muszą to być te same pola, które zdefiniowano dla agregacji (w punkcie 4) i należy wprowadzić je w tej samej kolejności [Ekran: 2]. Aby uzupełnić pola:
* rozwiń listę kolumn dostępnych do sortowania [Ekran:3]
* wybierz kierunek sortowania klikając jedną ze strzałek znajdującą się obok wybranego elementu.
\\
**Ekran 1: Konfiguracja nagłówka GroupHeader**\\
{{:podrecznik:globalne:szablony_wydrukow:definicja_naglowka_groupheader1.png|Ekran 1: GroupHeader }}
\\ \\
**Ekran 2: Konfiguracja sortowania na szablonie z agregacją**\\
{{:podrecznik:globalne:szablony_wydrukow:specyfikacja_zagregowana.png|Ekran 2: Konfiguracja sortowania na szablonie z agregacją }}
\\ \\
**Ekran 3: Wybór kolumn do sortowania**\\
{{:podrecznik:globalne:szablony_wydrukow:kolumny_do_sortowania.png|Ekran 3: Wybór kolumn do sortowania }}
\\ \\
==== Zmiana wagi brutto na netto (dla dokumentu CMR)====
Pozycje na dokumencie CMR są grupowane, z tego powodu w celu zmiany wagi brutto na netto nie wystarczy wymiana elementu na szablonie wydruku. W celu edycji szablonu dokumentu CMR i zmiany wagi brutto na netto:
- Przejdź do edycji szablonu wydruku dokumentu CMR.
- Edytuj szablon zgodnie z przykładem [Ekran 1].
- Przejdź do zakładki Code.
- Edytuj kod szablonu zgodnie z przykładem [Ekran 2].
- Zamknij edytor wydruków FastReport.
- Wybierz 'Zapisz szablon'.
\\
**Ekran 1: Edycja szablonu wydruku dokumentu CMR**\\
{{:podrecznik:globalne:szablony_wydrukow:edycja_szablonu_cmr.png|Ekran 1: Edycja szablonu wydruku dokumentu CMR}}
\\ \\
**Ekran 2: Edycja kodu szablonu**\\
{{:podrecznik:globalne:edycja_kodu_cmr.png|Ekran 2: Edycja kodu szablonu }}
\\ \\
==== Kod QR ====
Szablony wydruków umożliwiają generowanie wydruków zawierających kody QR. Kod tego rodzaju może zawierać znacznie więcej danych od standardowych kodów kreskowych.
**Przygotowując kod QR na szablonie wydruku należy zwrócić uwagę na:**
* nazwy pól z bazy danych wprowadzane są w nawiasach **<>** (przykład poniżej)
* tekst wprowadzany ręcznie (a nie pole z bazy danych) wprowadzany jest w cudzysłowu **" "**
* znak separacji wprowadzany w cudzysłowu np. **" {"**
* łączenie danych odbywa się za pomocą znaku **+**
* w przypadku łączenia pól liczbowych i tekstowych należy liczbę zmienić na tekst funkcją **FloatToStr()** \\ ''**FloatToStr(****)**+\\ " {"+''
**Przykładowe zastosowanie kodów QR:** \\ Kontrahent dysponuje systemem i narzędziami umożliwiającymi odczyt kodu QR z etykiety produktu (etykieta pozycji dokumentu WZ), w którym oczekuje następujących informacji:
* ilość wydana ''= 150 - pole z bazy danych (specyfikacja."partia_ilosc_wydana") ''
* jednostka miary '' = szt - pole z bazy danych (specyfikacja."jm_bazowa") ''
* kod dostawcy ''= RHO Software - tekst''
* kod asortymentu ''= Modus ERP - pole z bazy danych (specyfikacja."asortyment_kod") ''
* numer partii ''= 610 - pole z bazy danych (specyfikacja."partia_numer") ''
Powyższe dane muszą być odczytywane zgodnie z następującym formatem:
150 {szt {RHO Software {Modus ERP {610
\\
**W celu dodania takiego kodu kreskowego na szablonie wydruku należy:**
* Dodać obiekt obCatBarcode.
* Wybrać DataMatrix.
* W polu Expression wpisać:
FloatToStr()+" {"++" {"+ \\ "RHO Software"+" {"++" {"+
\\
** Wyrażenie dla kodu QR**\\
{{:podrecznik:globalne:szablony_wydrukow:qr_expression.png}}
\\
\\
**W celu przeskalowania kodu QR należy zastosować parametr Zoom:**
* Zaznaczyć obiekt DataMatrix/QRCode.
* W polu Zoom wartość (wartość liczbowa):
* **< 1** - pomniejszenie
* **1** - rozmiar automatyczny
* **> 1** powiększenie
\\
==== Ukrycie usługi transportowej na szablonie wydruku CMR ====
Aby ukryć usługi transportowe na szablonie wydruku CMR, należy:
- Przejść do modułu Transport - Listy przewozowe CMR.
- Kliknąć Drukuj - Szablony - Edytuj Szablon.
- Na szablonie Edycji wydruku dwukrotnie kliknąć w żółte pole 'specyfikacja'.
- W miejscu Filter wkleić wartość: ==0
- Kliknąć OK, wyjść z edycji szablonu i go zapisać.
\\
**Szablon wydruku listu CMR przed zmianami**\\
{{pl:podrecznik:globalne:listcmr.png|Ekran 1: Szablon wydruku listu CMR przed zmianami}}
\\ \\
**Edycja szablonu wydruku**\\
{{pl:podrecznik:globalne:edycjaszablonucmr.png|Ekran 2: Edycja szablonu wydruku}}
\\ \\
**Szablon wydruku listu CMR po zmianach**\\
{{pl:podrecznik:globalne:efektzmiancmr1.png|Ekran 3: Szablon wydruku listu CMR po zmianach }}
\\ \\
==== Filtrowanie danych na wydrukach ====
**Przykład: Ukrycie surowców w tabeli zużycia na Karcie produktu**
Jeśli chcemy, aby na wydruku karty produktu nie pojawiało się zużycie niektórych surowców, należy:
- Przejść do edycji szablonu wydruku Karty produktu.
- Kliknąć w belkę danych "zużycie surowców" i wprowadzić wartości filtra ( po lewej stronie, w "properties→Filter" ).
- Wersja filtra: (=="Tkanina czarna")||(=="Guzik czarny")
- Kliknąć OK, wyjść z edycji szablonu i go zapisać.
\\
**Wydruk przed filtrowaniem**\\
{{pl:podrecznik:globalne:1.png|Ekran 1: Edycja karty produktu}}
\\ \\
**Edycja wartości filtru**\\
{{pl:podrecznik:globalne:2.png|Ekran 2: Edycja wartości filtru}}
\\ \\
**Szablon wydruku po zmianach**\\
{{pl:podrecznik:globalne:3.png|Ekran 2: Szablon wydruku po zmianach}}
\\ \\
Może zdarzyć się że pomimo poprawnej formuły filtrującej pojawia się komunikat typu:\\ \\ The following error(s) have occured:\\ Error in expression '=="Szycie" ': ';' expected\\ \\ W takim przypadku należy przejść do zakładki **Code** i w polu **Language** wybrać ''C+Script''
==== Automatyczne dostosowanie wysokości wierszy ====
Dodając nową wstęgę danych do szablonu wydruku, domyślnie wyłączona jest opcja "Stretched". Jej zadaniem jest poszerzenie naszego wydruku jeśli w którejś komórce znajduje się za duża ilość danych. W przypadku którym nasz wydruk nałożył na siebie jakieś dane, sprawdź czy masz włączoną opcję "Stretched".
\\ \\
**Dostosowanie wysokości wierszy**\\
{{pl:podrecznik:globalne:stretched.png}}
\\ \\
==== Okno wprowadzania danych (Inputbox) ====
Zdarza się że na wydruku niezbędne jest zamieszczenie jakiejś dodatkowej informacji. Zastosowanie funkcji Inputbox sprawia że, podczas generowania wydruku pojawi się okno służące do wprowadzania danych, a następnie wpisana informacja pojawi się na wydruku:
W celu zastosowania funkcji należy:\\
1. Na szablonie dodać nowe pole tekstowe\\
2. Sprawdzić nazwę pola np Memo3\\
4. W zakładce Code wprowadzić np:\\
Memo3.text=InputBox("Etykieta","Data...",); \\
(w oknie służącym do wprowadzania danych pojawi się bieżąca data, którą można zmienić)\\
\\
Memo3.text=InputBox("Etykieta","Data...",""); \\
(okno służące do wprowadzania danych będzie puste, wpisana wartości wyświetli się na wydruku)\\
\\ \\
**Wprowadzanie danych 1**\\
{{pl:podrecznik:globalne:inputbox1.png}}
\\ \\
**Wprowadzanie danych 2** \\
{{pl:podrecznik:globalne:inputbox2.png}}
\\ \\
**Wprowadzanie danych 3**\\
{{pl:podrecznik:globalne:inputbox3.png}}
\\ \\
==== Okno wprowadzania danych - ilość stron ====
W systemie Modus możliwe jest dodanie okna, służącego do wpisania liczby stron danego szablonu wydruku, jakie chcemy wyświetlić.
W tym celu należy:\\
\\
1. Przejść do edycji szablonu wydruku\\
2. W zakładce Kod wprowadzić:
Przykład:
Page1.pagecount = strtoint(InputBox("Ile etykiet","Wpisz ilośc etykiet","1"));
3. Wyjść z szablonu i zapisać go\\
4. Przy próbie otworzenia szablonu pojawi się okno z miejscem służącym do wpisania ilości. System wyświetli taką ilość stron, jaka została tam wprowadzona
\\ \\
**Wprowadzanie kodu**\\
{{:pl:brudnopis:2019-07-16_08h26_06.png}}
\\ \\
**Okno do wprowadzania danych**\\
{{:pl:brudnopis:212321a.png}}
\\ \\
===== Wybór szablonu domyślnego =====
W celu oznaczenia jednego z szablonów jako domyślny:
- Wydrukuj wybrany dokument.
- Kliknij strzałkę znajdującą się obok ikony Lista szablonów.
- Zaznacz szablon, który chcesz oznaczyć jako domyślny.
- Kliknij Edytuj.
- Zaznacz opcje Używaj tego szablonu jako domyślnego.
- Kliknij Zatwierdź.
===== Premie pracowników =====
Jeśli chcemy premiować pracowników na podstawie uzyskanej przez nich średniej wydajności należy:
- Przejść do modułu Analizy i wybrać analizę Czasy realizacji czynności.
- Kliknąć Drukuj i utworzyć nowy szablon wydruku.
- Na szablonie umieścić nowe pole: []
- Jako podsumowanie umieścić nowe pole, obliczające średnią wydajność pracownika: [AVG(,MasterData1)]
- Dodać nowe pole, które będzie obliczać premię, w zależności od uzyskanej wydajności.[IIF(AVG(,masterdata1)<=65,"0zl",
(IIF(AVG(,masterdata1)<=85,"300zl",
(IIF(AVG(,masterdata1)<=86,"500zl","500zl")))))]
- Kliknąć OK, wyjść z edycji szablonu i go zapisać.
\\ \\
**Szablon wydruku po zmianach**\\
{{:podrecznik:globalne:premia.png|Ekran 1: Szablon wydruku po zmianach}}
\\ \\
Aby szablon zadziałał konieczna może być zmiana języka w edycji szablonu wydruku w zakładce **Code** z języka **PascalScript** na **C++Script**.
\\ {{:podrecznik:globalne:pr2.png}}
\\
\\ \\
\\
**>> Wróć do: [[:pl:podrecznik:start|PODRĘCZNIK UŻYTKOWNIKA]]**