Funkcje zgromadzone w tym module programu Trawers ERP realizują wiele
zadań: służą do formatowania wydruków i opisów, pobierają dane ze zbiorów,
zapisują dane do zbiorów, wykonuja obliczenia, sterują pracą innych modułów,
np. SOA (API), Alerty, AutoRun.
Patrz szczegóły:
Alerty i raportowanieAutoRun Procesy automatyczneSOA Architektura wymiany danych
Patrz też:
Wzorce Język TrExtLang. Opis ogólny
Funkcje mogą wymieniać dane z innymi komponentami programu Trawers
i tworzyć wielo-funkcyjne ciągi procesów.
Patrz też:
Komponenty technologiczne. Złożenia
Dlatego funkcje zebrane w tym module nazywamy: Funkcje TrExtLangTrawers Extension Language
Tj. Rozbudowany moduł języka formatowania dokumentów i sterowania procesami.
Pierwotnie funkcje tego modułu służyły do formatowania wydruków wg wzorców
i wysyłania gotowych wydruków na urządzenia zewnętrzne: drukowanie, e-maile
Drukowanie
Obecnie zostały znaczenie rozbudowane i zintegrowane z innymi komponentami
programu Trawers ERP: SOA (API), Alerty, AutoRun, TrEmail, IdProces, itd.
Patrz szczegóły:
Komponenty technologiczne. Złożenia
Zadania funkcji TrExtLang
* Formatowanie wydruków i opisów (teksty)
* Formatowanie wzorców wydruku dokumentów, np. faktur
* Formatowanie wzorców wydruków etykiet
* Formatowanie raportów generowanych przez alerty
* Formatowanie opisów w polach memo
* Pobieranie danych z wielu źródeł, np. z kartotek KIM
* Wysyłanie danych do urządzeń zewnętrznych
* Przekazywanie danych do programów zewnętrznych
* Inicjowanie procesów przetwarzania: SOA (API), Alert, RaportyXML
Właściwości funkcji TrExtLang
* Formatowanie tekstu
* Wstawianie elementów graficznych: obrazki, kody kreskowe
* Wstawianie innych wydruków i plików załączników
* Przetwarzenie tabel
* Prowadzenie dialogu z operatorem
* Obliczenia arytmetyczne
* Funkcje logiczne: porównania, pętle programowe
* Czytanie i zapisywanie rekordów do zbiorów danych
* Wykonywanie funkcji programu Trawers (IdProces)
Funkcje TrExtLang formatujące stosuje się w graficznym systemie drukowania (param 0614 [ ]).
NOTE: Tekstowy system drukowania zostanie wyłączony 31.12.2021
Przykłady wydruków
Inne przykłady wydruków:
Wzorce dokumentów PrzykładyWzorce etykiet Przykłady
Opis tworzenia wzorców:
Wzorce dokumentów i etykiet
Funkcje używane do tworzenia wzorców mają prefix ţ...
Służą do formatowania wydruków, dodawania elementów graficznych, np. logo
firmy, wstawiania pól z dodatkowymi obliczeniami, np. podsumowań, także
wykonywanych warunkowo, tworzenia serii wydruków (wydruki kaskadowe), itp.
TrExtLang. Język pisania (formatowania) wydruków i opisów (dokumentów)
Funkcje TrExtLang tworzą swoisty język pisania wydruków dokumentów.
Pozwalają uzyskać elementy graficzne wydruku, np. ramki, podkreślenia, obrazki.
Dają możliwość formatowania danych numerycznych, dat i godzin.
Umożliwiają też kształtowanie treści wydruków, poprzez porównywanie wartości
liczbowych, porównywanie dat, wykonywanie operacji arytmetycznych i logicznych.
Stosowane, aby zachować zgodność z tekstowym systemem drukowania
Np. ţ12 Znak: 12 1B-32-
Funkcje stosowane do definiowania właściwości wydruku w urządzeniach
rodzaju: [Port] i [Plik PRN] (wydruki na drukarkach)
Stosowane, aby zachować zgodność z drukarkami igłowymi.
Funkcje wskazują np. nr czcionki w urządzeniu wyjściowym.
Czcionka o danym numerze będzie użyta podczas wydruku
od momentu napotkania funkcji na wzorcu
Np. ţ24 Font 8
NOTE: Używać tylko w przypadku gdy wydruki są realizowane na
drukarce igłowej. W pozostałych przypadkach lepiej użyć
funkcji ţCzcionka{Arial;8}
Wydruk będzie prawidłowy niezależnie od ustawień urządzenia
wyjściowego
2.1 Funkcje TrExtLang. Zestawienie
Grupy funkcji
Formatowanie tekstu
Data i godzina
Zmienne
Obliczenia
Porównania
Powtórzenia, pętle programowe
Elementy graficzne
Kody kreskowe
Pobieranie danych z kartotek i dokumentów
Rejestrowanie w bazie danych
Dialog z operatorem
Załączanie innych wydruków i plików
Rozmieszczanie na stronie
Funkcje składniowe
Parametry urządzenia wyjściowego
Wykonanie funkcji Trawers
BaseLinker
Funkcje księgowe
Formatowanie tekstu
ţCzcionka - Ustala krój i rozmiar czcionki
ţKolor - Ustala kolor tekstu
ţPogrub - Wytłuszcza tekst
ţPochyl - Pochyla tekst
ţPodkreśl - Podkreśla tekst
ţZawiń - Zawija tekst
ţJustuj - Justuje tekst
ţDoLewej - Równa tekst do lewej
ţDoPrawej - Równa tekst do prawej
ţDoŚrodka - Równa tekst do środka
ţUsuńSpacjeZlewej - Usuwa spacje z lewej
ţUsuńSpacjeZprawej - Usuwa spacje z prawej
ţUsuńSpacje - Usuwa spacje z prawej i lewej
ţFragment - Zwraca fragment tekstu
ţUsuń - Usuwa znaki z tekstu
ţZastąp - Szuka i zamienia fragmenty tekstu
ţSłownie - Zwraca wartość wyrażoną słownie w języku: PL, EN i DE
ţCRLF - Rozdziela tekst znakami nowego wiersza [CRLF]
ţRegex - Zwraca fragment zgodny z wrażeniem regularnym
ţDoRegex - Przekształca tekst na wyrażenie regularne
ţDoXml - Konwertuje znaki &<>" do postaci stosowanej w XML
ţHttpGetParam - Zapisuje w tabeli ţ...[] parametry przekazane w formacie HTTP GET
ţCSV - Pobiera pola linii CSV do tabeli ţ...[]ţIle - Zwraca ilość znaków w tekście albo ilość wystąpień ciągu
ţIleReg - Zwraca ilość ciągów zgodnych z wyrażeniem regularnym
Data i godzina
ţFormatDaty - Formatuje datę
ţRóżnicaDat - Zwraca liczbę dni między datami
ţDzieńTygodnia - Zwraca nr kolejny dnia tygodnia dla podanej daty
ţDzieńMiesiąca - Zwraca nr dnia w miesiącu dla podanej daty
ţMiesiącRoku - Zwraca nr kolejny miesiąca w roku dla podanej daty
ţDzieńRoku - Zwraca nr kolejny dnia w roku dla podanej daty
ţTydzień - Zwraca nr tygodnia w roku dla podanej daty
ţDodaj - Zwraca wynik dodawania
ţOdejmij - Zwraca wynik odejmowania
ţPomnóż - Zwraca wynik mnożenia
ţPodziel - Zwraca wynik dzielenia
ţOblicz - Zwraca wynik wyrażenia matematycznego lub logicznego
ţMax - Zwraca największą wartość
ţMin - Zwraca najmniejszą wartość
ţSuma - Dodaje wartość do wskazanego rejestru
ţInc - Dodaje 1 do wskazanego rejestru i drukuje
ţProcent - Oblicza procent
ţFormat - Formatuje liczbę
ţPowtórz - Powtarza tekst podaną ilość razy
ţFor - Realizuje pętlę programową: for i = X to Y step Z
ţWhile - Realizuje pętlę programową: while !empty(war()) ...
ţPowtórzDopóki - Realizuje pętlę programową: while war() ...
ţUntil - Realizuje pętlę programową: do ... until !empty(war())
ţPowtórzJeżeli - Realizuje pętlę programową: do ... until war()
ţPrzerwijPowtarzanie - Zatrzymuje kolejne iteracje pętli programowej
ţEan128 - Rysuje kod EAN 128 z podaną zawartością
ţCode39 - Rysuje kod Code 39 z podaną zawartością
ţEan13 - Rysuje kod EAN 13 z podaną zawartością
ţDataMatrix - Rysuje kod DataMatrix z podaną zawartością
ţQR - Rysuje kod QR z podaną zawartością
Pobieranie danych z kartotek i dokumentów
ţRekord - Pobiera rekord z bazy danych do tabeli ţ...[]ţIndeks1 - Pobiera wartości pierwszego klucza indeksowego do tabeli ţ...[]ţIndeks1Reg - j.w.; Do wyszukania rekordów pobiera wyrażenie regularne
ţOdbiorca - Pobiera kartę kontrahenta do tabeli ţ...[]ţDostawcaţGmina - Pobiera pozycję z tabeli jednostek terytorialnych
ţPowiatţWojewództwoţNazwaKraju - Zwraca nazwę kraju dla podanego symbolu
ţKIM - Pobiera kartę z KIM do tabeli ţ...[]ţKSOM - Pobiera kartę z KSOM do tabeli ţ...[]ţJm - Pobiera jednostkę miary zapasu (magazynowania)
ţOpak - Pobiera jednostkę opakowania
ţGrupa - Pobiera kartę grupy towarowej
ţCenaSpr - Wstawia cenę z cennika sprzedaży w MI
ţCenaZak - Wstawia cenę z cennika zakupu w ZA
ţIlośćZapasu - Ilość asortymentu w magazynie
ţWartośćZapasu - Wartość asortymentu w magazynie
ţIlośćDostępna - Ilość asortymentu dostępna w magazynie
ţIlośćZarezerwowana - Ilość asortymentu planowana do wydania w przyszłej operacji rozchodu do sprzedaży lub wydania do produkcji.
ţTabelarycznie - Zapisuje do pliku wskazane zestawienie, tu: NZ_ZDM10
ţWykonajFunkcje - Wykonuje funkcję o podanym IdProces
Zapisywanie w bazie danych
ţKontakt - Zapisuje planowany kontakt w terminarzu RK
ţKontaktOK - Zapisuje wykonanie kontaktu (zdarzenia) z rezultatem: OK
ţEmailOznacz - Oznacza e-mail symbolem operatora
ţEmailPrzenieś - Przenosi e-mail do innego folderu
ţEmailUsuńZkosza - Trwale usuwa e-mail
ţSOA - Wykonuje funkcję SOA
ţZałączPlik - Pobiera wskazany plik jako załącznik
ţZałączniki - Załącza pliki załączników powiązane z dokumentem lub kartą
ţTreśćPliku - Wstawia treść z pliku w formacie tekstowym
ţInnyWydruk - Wywołuje wydruk wskazanego dokumentu
ţWstawWydruk - Wstawia inny wydruk w treść aktualnie drukowanego
ţZałączWydrukPDF - Zapisuje wydruk w pliku PDF i załącza do bieżącego wydruku
ţZałączWydrukTxt - Zapisuje wydruk w pliku TXT i załącza do bieżącego wydruku
ţZałączWydrukHtml - Zapisuje wydruk w pliku w HTML i załącza do bieżącego wydruku
Rozmieszczanie na stronie
ţXY - Ustala położenie kolejnego elementu na stronie
ţCofnijWiersz - Cofa kursor o jeden wiersz ţY{-1em}
ţMarginesy - Ustawia marginesy
ţNowaStrona - Przechodzi do kolejnej strony
ţNieDzielNaStrony - Blokuje łamanie wydruku na strony
ţPrzerwij - Przerywa wydruk
ţJestMiejsceNaLinie - Sprawdza czy wystarczy miejsca umieścić N linii na stronie
Funkcje składniowe
ţ - Grupa - umożliwia użycie w parametrze znaków: " ";[]{}
ţ# - Pomija tekst, nie będzie analizowany i drukowany
ţNazwa~ - Definicja funkcji
ţ~ - Wiersz definicji funkcji
ţA02 - Opóźniona analiza składni
ţWyłączParser - Funkcje będą drukowane jak zwykły tekst
ţWłączParser - Wznawia działanie interpretera
ţRaport - Wykonuje RaportyXML i eksportuje go do pliku
ţRaportCSV - Eksportuje RaportyXML w formacie CSV do katalogu trtemp\
ţAlert - Wykonuje alert z Tabeli Alertów
ţTTS - Odczytuje tekst głosem
ţSOA - Wykonuje funkcję SOA
ţZapiszWarchiwum - Zapisuje plik wydruku do e-archiwum
ţUruchom - Uruchamia program
Funkcje stosowane do tworzenia zestawień księgowych wg wzorców.
Np. Rachunek wyników, Bilans
Patrz szczegóły:
Zestawienia w KG Księga GłównaţDekret - Formatuje wydruk pieczątki dekretacyjnej
ţomw - Obroty Wn okresu obliczeniowego
ţomm - Obroty Ma okresu obliczeniowego
ţsmw - Saldo Wn obrotów okresu obli. (może być < 0)
ţsmm - Saldo Ma obrotów okresu obli. (może być < 0)
ţzmw - Saldo Wn obrotów okresu obli. (= 0 gdy < 0)
ţzmm - Saldo Ma obrotów okresu obli. (= 0 gdy < 0)
ţonw - Obroty Wn narastająco (BO i obroty od pocz. roku
ţonm - Obroty Ma narastająco (BO i obroty od pocz roku)
ţsnw - Saldo Wn obrotów narastająco (może być < 0)
ţsnm - Saldo Ma obrotów narastająco (może być < 0)
ţznw - Saldo Wn obrotów narastająco (= 0 gdy < 0)
ţznm - Saldo Ma obrotów narastająco (= 0 gdy < 0)
ţbow - Bilans Otwarcia Wn roku obliczeniowego
ţbom - Bilans Otwarcia Ma roku obliczeniowego
ţsbw - Saldo Wn Bilansu Otwarcia (może być < 0)
ţsbm - Saldo Ma Bilansu Otwarcia (może być < 0)
ţzbw - Saldo Wn Bilansu Otwarcia (= 0 gdy < 0)
ţzbm - Saldo Ma Bilansu Otwarcia (= 0 gdy < 0)
ţrwn - Obroty Wn roku poprzedniego
ţrma - Obroty Ma roku poprzedniego
ţpwn - Obroty Wn roku (planowane)
ţpma - Obroty Ma roku (planowane)
ţw01 - Obroty Wn okresu 01
ţm01 - Obroty Ma okresu 01
ţw02 - Obroty Wn okresu 02
ţm02 - Obroty Ma okresu 02
ţw03 - Obroty Wn okresu 03
ţm03 - Obroty Ma okresu 03
ţw04 - Obroty Wn okresu 04
ţm04 - Obroty Ma okresu 04
ţw05 - Obroty Wn okresu 05
ţm05 - Obroty Ma okresu 05
ţw06 - Obroty Wn okresu 06
ţm06 - Obroty Ma okresu 06
ţw07 - Obroty Wn okresu 07
ţm07 - Obroty Ma okresu 07
ţw08 - Obroty Wn okresu 08
ţm08 - Obroty Ma okresu 08
ţw09 - Obroty Wn okresu 09
ţm09 - Obroty Ma okresu 09
ţw10 - Obroty Wn okresu 10
ţm10 - Obroty Ma okresu 10
ţw11 - Obroty Wn okresu 11
ţm11 - Obroty Ma okresu 11
ţw12 - Obroty Wn okresu 12
ţm12 - Obroty Ma okresu 12
ţw13 - Obroty Wn okresu 13
ţm13 - Obroty Ma okresu 13
ţozw - Obroty Wn zakresu okresów
ţozm - Obroty Ma zakresu okresów
ţszw - Saldo Wn zakresu okresów (może być < 0)
ţszm - Saldo Ma zakresu okresów (może być < 0)
ţsaw - Suma sald po str. Wn narast. od BO do mca
ţsam - Suma sald po str. Ma narast. od BO do mca
ţsww - Saldo sald str. Wn zakresu mc-y - wartość [SsKG(w,Wn)]
ţsow - Saldo sald str. Wn zakresu mc-y - strona [Wn]/[] [SsKG(o,Wn)]
ţswm - Saldo sald str. Ma zakresu mc-y - wartość [SsKG(w,Ma)]
ţsom - Saldo sald str. Ma zakresu mc-y - strona [Ma]/[] [SsKG(o,Ma)]
ţsws - Suma sald zakresu mc-y - wartość [SsKG(w,'')]
ţsos - Suma sald zakresu mc-y - strona [Wn]/[]/[Ma] [SsKG(o,'')]
ţdww - Saldo obrotów Wn zakresu mc-y - wartość [SzKG(w,Wn)]
ţdow - Saldo obrotów Wn zakresu mc-y - strona [Wn]/[] [SzKG(o,Wn)]
ţdwm - Saldo obrotów Ma zakresu mc-y - wartość [SzKG(w,Ma)]
ţdom - Saldo obrotów Ma zakresu mc-y - strona [Ma]/[] [SzKG(o,Ma)]
ţdws - Saldo obrotów zakresu mc-y - wartość [SzKG(w,'')]
ţdos - Saldo obrotów zakresu mc-y - strona [Wn]/[]/[Ma] [SzKG(o,'')]
2.2 Funkcje TrExtLang. Opis funkcji
[***] Pogrubienie - ţPogrub{ tekst } lista[***] Pogrubienie WŁ - ţPogrubiajlista[***] ţ33lista[***] Pogrubienie WYŁ - ţNiePogrubiajlista[***] ţ34lista[***] Pochylenie - ţPochyl{ tekst } lista[***] Pochylenie WŁ - ţPochylajlista[***] ţ35lista[***] Pochylenie WYŁ - ţNiePochylajlista[***] ţ36lista[***] Podkreślenie - ţPodkreśl{ tekst } lista[***] Pochylenie WŁ - ţPodkreślajlista[***] ţ37lista[***] Pochylenie WYŁ - ţNiePodkreślajlista[***] ţ38lista
Przykłady: ţPogrub{Razem: ţRazemBrutto}
ţPogrubiaj |Indeks|Nazwa| ţNiePogrubiajţPodkreśl{ţPogrub{Ogółem:}}
Funkcje formatują wydruk. Np. powodują zmianę czcionki na pogrubioną
(wytłuszczoną), pochyloną lub podkreśloną
NOTE: Na wydrukach standardowych (których wygląd nie może być zmieniany),
pogrubione są napisy w tytułach i nagłówkach zestawień.
[***] Przerwanie wydruku - ţPrzerwijlista[***] ţ41lista
Przykład:
ţPorównaj{s-ACCKod-s;xx;;ţKomunikat{Zamówienie wymaga akceptacji} ţPrzerwij}
Przerywa bieżący wydruk.
W przypadku wydruku wstawianego ţWstawWydruk{}, ţInnyWydruk{} lub ţZałączWydruk{}
przerywa tylko wydruk wstawiany. Wydruk, który wywołał bieżący wydruk będzie
kontynuowany.
Jeżeli bieżący wydruk wywołał inne wydruki ţInnyWydruk{} to zostaną anulowane.
Przerwanie wydruku anuluje także zapis do e-archiwum ţZapiszWarchiwum{}
Przerwanie wydruku umożliwia drukowanie tylko dokumentów spełniających
określone kryteria.
Przerwanie wydruku ma także zastosowanie w przypadku alertów.
Pozwala np. zgłosić alert tylko gdy łączna suma zaległości kontrahentów
przekracza określoną kwotę.
[***] Czy wystarczy miejsca umieścić linie - ţJestMiejsceNaLinielista
Parametry:
* Ilość linii
* wartość zwracana gdy wystarczy miejsca na linie (opcjonalny)
* wartość zwracana gdy nie wystarczy miejsca aby umieścić linie (opcjonalny)
Przykład:
ţJestMiejsceNaLinie{2;ţCofnijWiersz;ţ{ţEnd}ţNowaStrona;ţCofnijWiersz}
ţJestMiejsceNaLinie{5;Razem: ş-Ilosc wydana-ş;|||||}
Program spradza czy wystarczy wystarczy miejsca między
kursorem a marginesem dolnym strony
[***] Wysuw strony WYŁ - ţNieDzielNaStronylista[***] ţ46lista
Program nie wysunie strony po wydrukowaniu dokumentu
Funkcja umożliwia wydruk kilku dokumentów na jednej stronie
Pozwala utworzyć zestawienie z zakresu dokumentów
[***] Funkcje TrExtLang WŁ - ţWłączParserlista[***] ţ47lista[***] Funkcje TrExtLang WYŁ - ţWyłączParserlista[***] ţ48lista
Wyłącza przetwarzanie funkcji
Funkcje zostaną wydrukowane jak zwykły tekst
Można zastosować do wydrukowania treści wzorca.
Polecenie wyłączenia parsera będzie ostatnim przetworzonym i nie zostanie
umieszczone na wydruku.
Innym praktycznym zastosowaniem jest opóźnienie przetwarzania do momentu
odczytania alertu.
Np. alert sprawdza warunki i przygotowuje raport. W raporcie umieszczone
są funkcje dialogu z operatorem - ţOkno{}.
Parser wyłączany jest przed definicją dialogu aby funkcje zostały zapisane
w raporcie. Odebranie komunikatu z alertem spowoduje przetworzenie funkcji
zapisanych w raporcie, które przeprowadzą dialog z operatorem.
Przykład:
Wysyłka wezwań do zapłaty z potwierdzaniem przez operatora
Alerty i raportowanie. Przykłady[***] Wstaw obrazek - ţ49{plik.bmp; [szerokość];[wysokość]} lista[***] ţObrazek{plik.bmp; [szerokość];[wysokość]} lista[***] ţWstawObraz{plik.bmp; [szerokość];[wysokość]} lista
Przykłady: ţObrazek{../adtres/logo.bmp; 30; 15}
ţObrazek{../adtres/tlo.png;;}
ţObrazek{file:///C:/katalog_z_grafiką/ţUsuńSpacje{s--indeks--s}}
ţObrazek{https://www.tres.pl/themes/tres/assets/images/logo.png}
ţObrazek{ftp://login:hasło@adres.serwera/ścieżka/obraz.jpg}
ţObrazek{ţStronaZeZdjęciamiProduktówţUsuńSpacje{s--indeks--s}.jpg}
Grafika z internetu
Wstawienie obrazka (grafiki) znajdujących się w Internecie:
ţWstawObraz{https://www.tres.pl/themes/tres/assets/images/logo.png}
Działanie: Wstawia obrazek (element graficzny)
Parametry:
* ścieżka i nazwa do pliku z obrazkiem, rysunkiem, zdjęciem
* szerokość obrazka w milimetrach na wydruku (opcjonalny)
* wysokość obrazka w milimetrach na wydruku (opcjonalny)
Jeżeli obrazek znajduje się na zewnętrznym serwerze to program pobierze go
podczas każdego wydruku. W przypadku gdy drukowanych jest wiele grafik
warto rozważyć zainstalowanie serwera pośredniczącego (proxy), który
będzie buforował drukowane grafiki.
[***] Położenie - ţ50{[pozycja X]; [pozycja Y]} lista[***] ţXY{[pozycja X]; [pozycja Y]} lista[***] ţX{[pozycja X]} lista[***] ţY{[pozycja Y]} lista
Przykłady:
ţXY{;-1em} - cofnie kursor o jeden wiersz
ţXY{20;25}
ţXY{15}
ţXY{;30.5}
ţXY{+100}
ţXY{-20.3;+30.5}
ţX{-20.3} ţY{+30.5}
ţCofnijWiersz{}
ţCofnijWierszţCofnijWiersz{3}
ţCofnijWiersze{3}
Działanie: Przemieszcza kursor do wskazanej pozycji
Parametry:
* położenie na osi X w prawo (opcjonalny)
* położenie na osi Y w dół (opcjonalny)
[***] Czcionka - ţ51{[nazwa]; [rozmiar]} lista[***] ţCzcionka{[nazwa]; [rozmiar]} lista[***] ţRozmiarCzcionki{rozmiar} lista
Przykład: ţCzcionka{Arial; 15} ţCzcionka{Times New Roman} ţCzcionka{;5}
ţRozmiarCzcionki{5}
Działanie: Zmienia krój i rozmiar czcionki
Parametry:
* nazwa czcionki (opcjonalny)
* rozmiar w punktach typograficznych (opcjonalny)
W systemie Windows podstawowe czcionki są zainstalowane.
W systemie Linux, zależnie od dystrybucji, może powstać konieczność
zainstalowania brakujących czcionek.
Gdy brak wskazanych czcionek, to program wybierze automatycznie inne,
najbardziej zbliżone. Może to spowodować, że wydruk wg wzorca będzie
wyglądać inaczej niż planowano, np. napisy będą wychodzić poza pola
danych lub poza marginesy. Trzeba zainstalować czcionki wskazane
w funkcji ţCzcionka{}
[***] Kolor tekstu - ţ52{[kolor];[tło];[przezroczystość]} lista[***] ţKolor{[kolor];[tło];[przezroczystość]} lista[***] ţKolorTła{tło} lista[***] ţPrzezroczystość{przezroczystość} lista
Przykład: ţKolor{#FF0000} ţKolor{#0F0} ţKolor{blue} ţKolor{czarny}
ţKolor{#777;#FFF;0.3} ţKolor{żółty;;0.5}
ţKolorTła{szary}
ţPrzezroczystość{0.5} = ţTransparentność{0.5}
Działanie: Zmienia kolor tekstu
Parametry:
* kolor tekstu
* kolor tła
* przezroczystość od 0 (pełna) do 1 (brak)
Rozpoznawane nazwy kolorów: aqua (błękitny), black (czarny),
blue (niebieski), fuchsia (fuksja), gray (szary), green (zielony),
lime, maroon, navy (granatowy), olive (oliwkowy), purple (purpurowy),
red (czerwony), silver (srebrny), teal, white (biały), yellow (żółty)
Parametr przezroczystość działa z urządzeniami wyjściowymi rodzaju:
cups, plik PDF i email PDF
Parametr przezroczystości (en: Transparency) pozwala wstawić na dokumencie
cyfrowy znak wodny (en: Digital watermark).
[***] Styl linii - ţ53{[styl]; [szerokość]; [kolor]} lista[***] ţStylLinii{[styl]; [szerokość]; [kolor]} lista[***] ţSzerokośćLinii{szerokość} lista[***] ţGrubośćLinii{szerokość} lista[***] ţKolorLinii{kolor} lista
Przykład: ţStylLinii{solid; 0.1; blue}
ţStylLinii{dashdash}
ţStylLinii{brak}
ţStylLinii{..}
ţSzerokośćLinii{0.1} = ţGrubośćLinii{0.1}
ţKolorLinii{niebieski}
Działanie: Ustala styl, szerokość i kolor linii
Parametry:
* styl linii (opcjonalny)
* szerokość linii w mm (opcjonalny)
* kolor linii (opcjonalny)
Rozpoznawane nazwy styli: none (brak), solid (ciągły)(-),
dash (kreski)(--), dot (kropki)(..), dashdot (kreskakropka)(-.),
dashdotdot (kreska2kropki)(-..)
Parametry pominięte przyjmą wartości aktualnie ustawione.
np. ţStylLinii{;1;} zmieni tylko szerokość. Styl i kolor zostaną bez zmian.
[***] Linia - ţ54{[[start X];[start Y];]koniec X; koniec Y} lista[***] ţLinia{[[start X];[start Y];]koniec X; koniec Y} lista[***] ţWstawLinię{[[start X];[start Y];]koniec X; koniec Y} lista
Przykład: ţLinia{10; 15; 20; 25} ţLinia{+50}
Działanie: Rysuje linie
Parametry:
* współrzędna początku linii w osi X (opcjonalny)
* współrzędna początku linii w osi Y (opcjonalny)
* współrzędna końca linii w osi X
* współrzędna końca linii w osi Y
[***] Prostokąt - ţ55{[X1];[Y1];[X2];[Y2];[kolor]} lista[***] ţProstokąt{[X1];[Y1];[X2];[Y2];[kolor]} lista[***] ţWstawProstokąt{[X1];[Y1];[X2];[Y2];[kolor]} lista
Przykłady: ţProstokąt{10; 15; 20; 25; red} ţProstokąt{+10;+15;+20;+25}
Działanie: Rysuje prostokąt z ramką i wypełnia kolorem
Parametry:
* współrzędna lewej krawędzi prostokąta w osi X (opcjonalny)
* współrzędna górnej krawędzi prostokąta w osi Y (opcjonalny)
* współrzędna prawej krawędzi prostokąta w osi X (opcjonalny)
* współrzędna dolnej krawędzi prostokąta w osi Y (opcjonalny)
* kolor wypełnienia (opcjonalny)
Ramkę rysuje linią o aktualnym stylu ustalonym przez --> ţStylLinii{}
Aby narysować tylko obramowanie bez wypełnienia (przezroczyste)
należy pominąć parametr kolor lub podać: none (brak)
np. ţStylLinii{solid;0.2;black} <-- styl linii: czarna ciągła o gr. 0.2mm
ţProstokąt{10;10;100;20;none} <-- czarna ramka o grubości 0.2mm
(wnętrze przezroczyste)
Przykład ramki z kolorowym nagłówkiem:
TţProstokąt{+0.5em;-0.5em;+101em;+1em;Zielony}oţX{+100em}o
Too
T||
Too
[***] nie wykorzystane ţ56lista[***] Treść z [;] - ţ{tekst} lista[***] ţ57{tekst} lista
Przykład:
ţPorównaj{ţ{A;B;C;D};ţ{abcd;efgh};RÓWNE;RÓŻNE}
ţPorównaj{şIndeks towaru ş;ţ{A000;0001};RÓWNE;RÓŻNE}
tţ{Rej[A.1]}
Działanie: Pozwala zastosować znak [;] w parametrze
Pozwala użyć znaków " ";[]{} w nazwie rejestru i tabeli
Parametry:
* tekst - tekst zawierający znak [;]
NOTE: Program każde pole znakowe wpisuje w znak ţ{}
s--...--s = ţ{s--...--s}
[***] Różnica dat - ţRóżnicaDat{[data1];[data2|dni];[format]} lista[***] ţ58{[data1];[data2|dni];[format]} lista
Przykłady:
ţRóżnicaDat{2016-01-10;5;} zwróci: 2016.01.05
ţRóżnicaDat{2016-01-10;-5;} zwróci: 2016.01.15
ţRóżnicaDat{2016-01-10;2016-01-20;} zwróci: -10
ţRóżnicaDat{2016-01-10;2016-01-01;} zwróci: 9
ţRóżnicaDat{2019-01-10;2016-01-01;R} zwróci: 3
ţRóżnicaDat{şTer.plş;;999} dni
ţRóżnicaDat{şRkonczş;şPkonczş;999} dni po terminie
ţRóżnicaDat{şTer.plş;-2;RRRR.MM.DD} wykonać przelew
ţRóżnicaDat{şData dş;-ş-Zş;RRRR.MM.DD} termin płatności
ţPorównajDaty{ţRóżnicaDat{şTer.plş;7};;;Ponad tydzień po terminie !}
ţ>D{ţRóżnicaDat{şTer.plş;7};;Ponad tydzień po terminie !}
Działanie 1: Oblicza liczbę dni między datami: Dni = Data1-Data2
Działanie 2: Wyznacza datę odsuniętą o dni: Data = Data1-Dni
Parametry:
* data1 - domyślnie aktualna data
* data2 - domyślnie aktualna data
* dni - liczba dni przed data1
* format - format drukowanego wyniku np. 999, RRRR.MM.DD, DDD, TTT, RR
Datami i wartościami mogą być pola, wyniki innych funkcji np. różnicy dat,
daty wpisane na stałe.
Jeżeli data1 będzie pusta ' . . ', program nic nie zwróci.
Jeżeli w miejscu data2 będzie wpisana liczba dni, to program odejmie
od data1 podaną liczbę dni. Zwróci datę wcześniejszą o liczbę dni.
Jeżeli parametr dni będzie ujemny lub będzie to pole poprzedzone '-'
to program obliczy datę późniejszą od data1 o podaną liczbę dni.
Okres pomiędzy datami może być wyrażony w jednostkach innych niż dni,
tak samo jak w ţFormatDaty{}.
[***] Porównanie dat - ţPorównajDaty{data1;data2;równe;[później];[wcześniej];[różne]} lista[***] ţ59{data1;data2;równe;[później];[wcześniej];[różne]} lista
Przykłady:
ţPorównajDaty{2016-01-10;2016-01-20;[ROWNE];[POZNIEJ];[WCZESNIEJ];[ROZNE]}
zwróci: [WCZESNIEJ][ROZNE]
ţPorównajDaty{2016-01-10;2016-01-01;[ROWNE];[POZNIEJ];[WCZESNIEJ];[ROZNE]}
zwróci: [POZNIEJ][ROZNE]
ţPorównajDaty{2016-01-10;2016-01-10;[ROWNE];[POZNIEJ];[WCZESNIEJ];[ROZNE]}
zwróci: [ROWNE]
ţPorównajDaty{şTer.plş;;;Przekroczony termin !}
ţPorównajDaty{şRkonczş;şPkonczş;planowo;po terminie;przed terminem}
Działanie: Porównuje daty
Parametry:
* data1 - domyślnie aktualna data
* data2 - domyślnie aktualna data
* równe - wartość zwracana gdy data1 = data2
* później - wartość zwracana gdy data1 jest późniejsza niż data2
* wcześniej- wartość zwracana gdy data1 jest wcześniejsza niż data2
* różne - wartość zwracana gdy data1 różni się od data2
Datami i wartościami mogą być pola, wyniki innych funkcji np. różnicy dat,
daty wpisane na stałe.
Jeżeli któraś z dat będzie pusta ' . . ', program nic nie zwróci.
[***] Porównanie tekstów - ţ60{tekst1;tekst2;równe;[różne]} lista[***] ţPorównajTeksty{tekst1;tekst2;równe[;różne]} lista[***] ţPorównajTekst{tekst1;tekst2;równe[;różne]} lista[***] ţPorównaj{tekst1;tekst2;równe[;różne]} lista[***] ţJeżeliPusty{tekst;gdy pusty[;nie pusty]} lista[***] ţJeżeliNiePusty{tekst;gdy nie pusty[;pusty]} lista[***] ţJeżeliZawiera{tekst;co;gdy zawiera[;nie zawiera]} lista[***] ţJeżeliNieZawiera{tekst;co;gdy nie zawiera[;zawiera]} lista
Przykłady: ţJeżeliNiePusty{ş-nazwa u odb-ş;ş-nazwa u odb-ş;ş-nazwa towaru-ş}
Zwraca nazwę towaru z cennika kontraktowego, gdy podana,
jeżeli nie to z karty KIM
ţPorównaj{şJmsş;Tszt;Each;şJmsş} Zamienia np. Tszt --> Each
ţPorównaj{@SYMBOLW;PLN;1;2} Gdy symbol waluty to PLN wstaw 1,
w przeciwnym przypadku wstaw 2
Działanie: Porównuje dwa teksty
Porównanie tekstu: zwraca wskazany tekst, gdy oba teksty są równe
Porównanie liczb: zwraca wskazany tekst, gdy liczby są równe
lub inny tekst, gdy pierwsza liczba jest różna od drugiej.
Zastosowanie: pokazanie czegoś na wydruku zależnie od czegoś innego,
np.
* zmień kolor na czerwony, gdy wartość jest ujemna
* pokaż 0.000 do wydania, gdy wydano więcej niż zlecono
* pokaż nazwę indeksu z cennika kontraktowego, gdy jest w nim nazwa
albo z KIM, gdy nazwy nie ma w cenniku
Parametry:
* tekst 1
* tekst 2
* równe - wartość zwracana, gdy teksty są takie same
* różne - wartość zwracana, gdy tekst 1 różni się od tekst 2
Porównanie pomija spacje przed i za tekstem oraz nie uwzględnia wielkości
liter. Teksty porównywane są zgodnie z alfabetem
[***] Porównanie liczb - ţPorównajLiczby{liczba1;liczba2;równe;[większa];[mniejsza];[różne]} lista[***] ţ61{liczba1;liczba2;równe;[większa];[mniejsza];[różne]} lista
Przykłady:
ţ61{ş- Ilosc -ş;10;;duża ilość !}
ţ61{10;ş- Ilosc -ş;;mała ilość !}
ţPorównajLiczby{10;ş- Ilosc -ş;;;;różne}
ţPorównajLiczby{ş-Ilosc wydana-ş;ş-Ilosc wyma-ş;ok;wydano więcej}
ţ>L{ş- Ilosc -ş;10;duża ilość !}
ţ<L{ş- Ilosc -ş;10;mała ilość !}
ţ=0{ş- Ilosc -ş;nie podano ilości}
ţ<0{ş- Ilosc -ş;ilość mniejsza od 0}
ţ<=0{ş- Ilosc -ş;za mała ilość}
ţ>0{ş- Ilosc -ş;ş- Ilosc -ş}
ţ>=0{ş- Ilosc -ş;ş- Ilosc -ş}
ţPorównajLiczby{10;ş- Ilosc -ş;;;;różne}
ţPorównajLiczby{ş-Ilosc wydana-ş;ş-Ilosc wyma-ş;ok;wydano więcej}
Działanie: Porównuje dwie liczby
Parametry:
* liczba1
* liczba2
* równe - wartość zwracana gdy liczba1 = liczba2
* większa - wartość zwracana gdy liczba1 > liczba2
* mniejsza- wartość zwracana gdy liczba1 < liczba2
* różne - wartość zwracana gdy liczba1 różni się od liczba2
Liczbami i wartościami mogą być pola, wyniki innych funkcji np. dodawania,
liczby wpisane na stałe.
[***] Tabela * ţNazwa{nazwa[;[klucz][;[+|- kolejność];wartość]]} lista[***] ţ62[klucz;+|- kolejność]{wartość} lista
Przykłady:
ţPozycje[şIndeks towaru ş]{şIndeks towaru ş ş-- Ilosc ---ş}
ţPozycje[;#ş-- Ilosc ---ş]{şIndeks towaru ş ş-- Ilosc ---ş}
ţPozycje[]{şIndeks towaru ş}
ţPozycje[]ţşcWaş={ţDodaj{ţşcWaş;şPozycja-netto wlş}}
ţţ{Razem waluty}[şcWaş]{ţşcWaş şcWaş}
ţţ{Razem waluty}[EUR ]
ţţ{Razem waluty}[PLN ]
ţţ{Razem waluty}[]
Działanie: a) Zapisuje wartość w wierszu tabeli
b) Drukuje zawartość tabeli wg ustalonego porządku
Parametry:
* nazwa - nazwa tabeli
* [klucz] - unikalny symbol wiersza
* [kolejność] - wyrażenie ustalające kolejność wydruku wierszy
* [wartość] - zawartość wiersza
W kolejnych wierszach tabeli można zapamiętać wartości.
Następnie wydrukować we wskazanej kolejności.
Objaśnienie parametrów:
* nazwa
Identyfikuje tabele. Można utworzyć kilka tabel z różnymi nazwami.
* klucz
Identyfikuje wiersze tabeli. Usuwa, nadpisuje i drukuje wiersz.
Gdy klucz jest pusty, to program dodaje automatycznie kolejne
wiersze. Takich wierszy nie można zmienić i usunąć, gdyż nie mają
identyfikatora
* kolejność
Ustala kolejność ułożenia wierszy.
Zawiera wyrażenie, które będzie sortowane alfabetycznie.
Pierwszy znak wyrażenia może zawierać + lub - oznaczające odpowiednio
kolejność rosnącą lub malejącą.
Jeżeli wyrażenie zawiera pola danych z wartościami liczbowymi, to trzeba
przed i za polem wstawić znak # aby program sortował to pole numerycznie.
Można ustalać kolejność wg kilku pól danych jednocześnie.
Trzeba podać je w parametrze jedno za drugim.
Formaty użytych pól muszą być takie same we wszystkich wierszach.
Gdy nie podany, to przyjmuje zawartość parametru: klucz
* wartość
To ciąg tekstu i pól danych, które będą zapisane w wierszu tabeli.
Wartość może zawierać m.in. elementy ramek. Można jednocześnie
wypełnić kilka kolumn tabelki narysowanej z użyciem ramki.
Operacje:
1. Dopisywanie, zamiana wiersza
Przykład:
ţIndeksy[şIndeks towaru ş;#ş-- Ilosc ---ş]{şIndeks towaru ş ş-- Ilosc ---ş}
To polecenie zapisze w tablicy o nazwie 'Indeksy' wiersz, którego
kluczem będzie symbol indeksu. Wiersze będą ułożone w kolejności rosnącej
zgodnie z ilością. Wiersz zawiera dwie kolumny.
W pierwszej są indeksy, w drugiej ilości.
Wiersze którym nadano klucz można usuwać i zmieniać ich zawartość.
Jeżeli w tabeli jest już wiersz o podanym kluczu, to będzie zastąpiony nowym
2. Usunięcie wiersza
Przykład 1
ţIndeksy[şIndeks towaru ş;]
Z tabeli będzie usunięty wiersz z kluczem zgodnym z wartością pola
danych şIndeks towaru ş
Przykład 2
ţIndeksy[INDEKS-1 ;]
Z tabeli będzie usunięty wiersz z kluczem = 'INDEKS-1 '.
3. Deklaracja tabeli
Przykład:
ţIndeksy[;]
ţ62{Indeksy;;}
Te zapisy tworzy pustą tabelę.
Pozwalają uniknąć błędu !Brak tabeli! gdy tabela jest wypełniana warunkowo.
Jest też konieczny gdy wiersze są odczytywane przez ţ62{nazwa;id}
przed ich dopisaniem, np. sumowanie w wierszu tabeli.
Jeżeli tabela już jest, to program nic nie zrobi.
Np.
T ţ62{Suma;;}
P ţ62{Suma;şJSş;; ţ65{ţ62{Suma;şJSş};ş-- Ilosc ---ş;} şJSş}
T ţ62{Suma}
Podsumuje ilości wg jednostek miar w dokumencie
Powyższy zapis można uprościć do:
P ţSuma[şJSş]{ ţDodaj{ţSuma[şJSş];ş-- Ilosc ---ş} şJSş}
T ţSuma[]
W tym przypadku deklaracja tabeli nie jest potrzebna.
4. Wydruk jednego wiersza
Przykład:
ţIndeksy[INDEKS-1 ]
Program zwróci wartość wiersza tabeli z kluczem = 'INDEKS-1 '.
5. Wydruk tabeli
Przykład:
ţIndeksy[]
W kolejnych liniach będą wydrukowane wiersze tabeli w porządku
ustalonym przez parametr: kolejność.
W przykładzie: wg rosnącej ilości.
Przykłady wykorzystania:
* podsumowania
np. suma ilości produktów, stawki VAT z wartościami z dokumentu
* grupowanie
np. lista magazynów, z których będzie wydany towar
* zmiana kolejności
np. wydruk pozycji wg terminów realizacji
* wyszczególnienie
np. w stopce faktury wyszczególnienie numerów zamówień, do których
utworzono pozycje faktury. Patrz przykład w Pytania i odpowiedzi
NOTE: Program przenosi tabelę o nazwie ţTR_MEM[] pomiędzy wydrukiem głównym
i kaskadowym ţInnyWydruk, ţZałączWydruk oraz składanym ţWstawWydruk.
Można ją wykorzystać do przekazywania wartości z wydruku głównego
do wydruku wywoływanego i odwrotnie.
Przykład:
Zapamiętanie wartości:
ţTR_MEM[wartość 1]{wartość do przekazania}
ţTR_MEM[ilość]{s--ilosc--s}
Odczytanie wartości:
ţTR_MEM[wartość 1]
ţTR_MEM[ilość][***] Format daty/czasu - ţFormatDaty{data;format} lista[***] ţFormatujDatę{data;format} lista[***] ţ63{data;format} lista
Przykłady: ţFormatDaty{şData wş;RRRR.MM.DD}
ţFormatDaty{şData wş;DD-MM-RRRR}
ţFormatDaty{şData wş;DD.MM.RRRR}
ţFormatDaty{şData wş;RRRR-MM-DD}
ţFormatDaty{şData wş;RRMMDD}
ţFormatDaty{şData wş;RRRRMMDD}
ţFormatDaty{şData wş;MM.DD.RR}
ţFormatDaty{ş---Data i czas---ş;RRRR.MM.DD GG:MN:SS}
ţFormatDaty{2011.10.20;RRRR} zwróci 2011
ţFormatDaty{2011.10.20;RR} zwróci 11
ţFormatDaty{2011.10.20;MM} zwróci 10
ţFormatDaty{2011.10.20;DD} zwróci 20
ţFormatDaty{12.31;DDd GGg} zwróci 12d 7g
ţFormatDaty{ţRóżnicaDat{şRkonczş;şPkonczş;};MMMmc DDdni po terminie}
ţFormatDaty{ţRóżnicaDat{ş---Data i czas---ş;;};minęło DDDD dni i MNNN.N minut}
ţFormatDaty{ţRóżnicaDat{;ş---Data i czas---ş;};za R lat i TT tygodni}
ţRok{2030.01.15} -> 2030
ţMiesiąc{2030.01.15} -> 01
ţDzień{2030.01.15} -> 15
ţGodzina{2030.01.15 14:23} -> 14
ţMinuta{2030.01.15 14:23} -> 23
ţSekunda{2030.01.15 14:23:02} -> 02
Działanie: Zmienia format wydruku daty lub czasu
Parametry:
* data (pole) albo czas wyrażony w dniach
* format daty
Budowa formatu data:
RRRR - rok
RR - dwie ostatnie cyfry roku
MM - miesiąc
DD - dzień
GG - godzina
MN - minuta
SS - sekunda
.SSS - milisekunda
Budowa formatu czas:
R - cyfry lat
M - cyfry miesięcy
T - cyfry tygodni
D - cyfry dni
.D - części dnia
G - cyfry godzin
.G - części godziny
MN - cyfry minut (N - gdy jedna cyfra)
.N - części minuty
S - cyfry sekund
.S - części sekundy
Rok, miesiąc i dzień mogą być rozdzielane dowolnymi znakami
Patrz też inne funkcje, które zmieniają format wydruku pola: ţFormat i ţFragment[***] Format liczby - ţFormat{liczba;format} lista[***] ţFormatLiczby{liczba;format} lista[***] ţFormatuj{liczba;format} lista[***] ţFormatujLiczbę{liczba;format} lista[***] ţ64{liczba;format} lista
Przykłady: ţFormat{60500;99 999.99} -> 60 500.00
ţFormat{20000;9999.99} -> ****.**
ţ0pad{12;9999} -> 0012
ţ0trim{0012;9999} -> 12
ţNtrim{12;9999} -> 12
ţBez0{0;9999} ->
Działanie: Formatuje zapis liczby
Parametry:
* liczba (pole)
* format wyniku
Budowa formatu wyniku: Składa się on z cyfr 9 reprezentujących cyfry,
kropki wyznaczającej miejsce podziału części całkowitej i dziesiętnej.
Oraz dowolnych innych znaków umieszczonych wprost, bezpośrednio we wzorcu.
Wynik będzie zaokrąglony do podanej liczby cyfr dziesiętnych.
Szerokość formatu określa szerokość wyniku (dopełnianie spacjami).
Gdy wynik nie mieści się w podanej szerokości wyświetlane są ***.
Przykładowe formaty: '9999 999.99', '999tys 999zl. 99 groszy'
Uwaga: Format nie może rozszerzyć pola ponad definicje w tabeli pól.
Zwiększy jedynie szerokość na wydruku. Nie może także
zwiększyć precyzji zapisu wartości.
Patrz też inne funkcje, które zmieniają format wydruku pola: ţFormat i ţFragment[***] Dodawanie - ţ65{składnik;składnik;[format]} lista[***] ţDodawanie{składnik ;składnik;[format]} lista[***] ţDodaj{składnik ;składnik;[format]} lista[***] Odejmowanie - ţ66{odjemna ;odjemnik;[format]} lista[***] ţOdejmowanie{odjemna ;odjemnik;[format]} lista[***] ţOdejmij{odjemna ;odjemnik;[format]} lista[***] Mnożenie - ţ67{czynnik ;czynnik ;[format]} lista[***] ţMnożenie{czynnik ;czynnik;[format]} lista[***] ţPomnóż{czynnik ;czynnik;[format]} lista[***] Dzielenie - ţ68{dzielna ;dzielnik;[format]} lista[***] ţDzielenie{dzielna ;dzielnik;[format]} lista[***] ţPodziel{dzielna ;dzielnik;[format]} lista
Przykłady: ţDodaj{10.5; 15} zwróci 25.5
ţPomnóż{2; 3} zwróci 6
ţOdejmij{20;ţ67{2;3}} zwróci 14
ţPodziel{60500;14;9 999.99} zwróci 4 321.43
ţOdejmij{20000;100;9999.99} zwróci ****.**
ţPomnóż{ ţOdejmij{20;10;9.99}; 10;9999.99} zwróci *.**
Działanie: Zwraca wynik działania matematycznego
Parametry:
* argument 1
* argument 2
* format wyniku (opcjonalny)
Budowa formatu wyniku, patrz: Format
Wykonuje proste operacje, tj. dodawanie, odejmowanie, mnożenie i dzielenie.
Argumentami mogą być wartości, pola i inne funkcje wyliczające.
Składanie wielu funkcji wyliczających pozwala uzyskiwać funkcje o większej
złożoności. Można podać format wyniku.
Funkcji tych można użyć np. do uzyskania na wydruku pozycji ilości do
realizacji w zamówieniu, ponieważ wyniki funkcji mogą być argumentami
innych funkcji.
[***] Obliczanie - ţ={wyrażenie; [format]} lista[***] t={wyrażenie logiczne [;[prawda][;fałsz]]} lista[***] ţOblicz{wyrażenie; [format]}lista[***] ţObliczenie{wyrażenie; [format]}lista[***] ţ69{wyrażenie; [format]} lista
Przykłady: ţ={ 1 + 2 * 3 }
ţ={ (3+4)/((1+2)*(4-2)) }
ţ={ ţRejestr * 3.1415;999 999.99}
ţ={ ş-Ilosc wydana-ş / ş-Ilosc wyma-ş * 100;999.9}%
ţ={ 20 + 1.15 * ş- Ilosc -ş / (ţSuma -5) }
ţ={ ş- Ilosc -ş > 10; dużo; mało}
Działanie: Zwraca wynik obliczenia wyrażenia matematycznego lub logicznego
Parametry:
* wyrażenie matematyczne/logiczne
* format wyniku (opcjonalny)
* wynik gdy prawda (dla wyrażeń logicznych)
* wynik gdy fałsz (dla wyrażeń logicznych)
Oblicza wynik wyrażenia matematycznego lub logicznego z zachowaniem kolejności
działań i uwzględnieniem nawiasów. Zaokrąglenie wyniku można uzyskać przez podanie
odpowiedniego formatu wyniku.
Wynik wyrażenia logicznego bez podanych parametrów dla prawdy i fałszu będzie
.T. lub .F. i może zostać użyty jako parametr innego wyrażenia logicznego.
Wyrażenie może zawierać:
* operatory: * / + -
* operatory logiczne:
koniunkcji: &
alternatywy: |
negacji: !
relacji: < <= >= > = # lub != lub <>
* potęga: ^ lub **
* modulo: %
* nawiasy: ()
* liczby
* pola dla wzorców zawierające wartości
* funkcje zwracające wartości
[***] Rejestr - ţNazwalista[***] ţNazwa={wartość[;]} lista[***] ţ70{nazwa;[wartość[;]]} lista
Przykłady: ţSuma={100.65}
ţSuma={ţDodaj{ţSuma; 20.15}}
ţFormat{ţSuma;9999.99} zwróci: 120.80
Działanie: Zapamiętuje wartość w rejestrze albo
wyświetla zawartość rejestru
Parametry:
* nazwa - nazwa rejestru
* wartość - wartość zapamiętywana w rejestrze (opcjonalny)
* wartość; - wartość zapamiętywana w rejestrze, ale tylko
gdy rejestr jest pusty.
[Nazwa rejestru]: systemowa (patrz niżej) lub użytkownika (dowolna nazwa)
Można utworzyć wiele rejestrów. Nazwy rejestrów nie mogą się powtarzać.
[Zawartość rejestru]: wartość liczbowa albo tekstowa.
[Wartość]: parametr zapamiętuje podaną wartość w rejestrze.
Gdy pominięty, to program zwraca zawartości rejestru.
Można przepisywać zawartość jednego rejestru do drugiego i używać łącznie
z funkcjami działań matematycznych.
[Wartość;]: Dodanie znaku ';' za wartością, nadaje rejestrowi wartość początkową
tylko, gdy rejestr jest pusty. Gdy rejestr ma już zawartość to nie jest wypełniany.
Przykład: zainicjowanie rejestru Lp wartością 1 i zwiększanie go dla każdej pozycji:
P ţLp={1;} ţSuma{Lp;1} ţFormat{ţLp;9999}
NOTE: Powyższą linię można zastąpić prostszym wyrażeniem:
P ţFormat{ţInc{Lp};9999}
lub
P ţInc{Lp;9999}
Rejestry systemowe o stałych nazwach:
ţUrządzenieSymbol - symbol wybranego urządzenia wydruku
ţUrządzenieNazwa - nazwa
ţUrządzenieRodzaj - rodzaj
ţWersja - wersja programu np. Trawers5
ţWersjaNr - nr wersji programu np. 5.00
ţFirma - symbol firmy
ţOddział - symbol oddziału
ţOperator - symbol operatora
ţRola - id roli
ţI - aktualna iteracja pętli ţPowtórzţX - aktualne położenie kursora na stronie w mm: X
ţY : Y
ţStrona - nr strony wydruku
ţIlośćStron - łączna ilość stron wydruku
ţStron - łączna ilość stron wydruku
ţMarginesDolny - rozmiar dolnego marginesu w mm
ţDataSys - aktualna systemowa data i godzina
ţData - data bieżąca z którą pracuje program, np. 2016-04-26
ţCRLF - znak podziału wiersza [CRLF]
ţErrorLevel - wartosć zwrócona przez ostatnie wywołanie ţUruchom{}
Inny przykład: Tłumaczenie nazw jednostek miar:
Potrzeba: na wydruku dokumentu umieścić nazwy jednostek miar w języku angielskim (EN).
W pozycji dokumentu w zbiorze jest nazwa w języku polskim (PL).
PL EN
Wykonać tłumaczenie: para --> pair
szt --> each
lt --> ltr
Rozwiązanie:
Zastosować funkcje: Rejestr.
Zapamiętać w nagłówku dokumentu wartości w rejestrze.
Wykorzystać zapamiętane wartości w linii pozycji
1) definicje PL->EN w nagłówku wzorca
T ţpara={pair}
T ţszt={each}
T ţlt={ltr }
2) tłumaczenie jednostki miary w linii pozycji
P tşJSş
[***] Rejestr stron - ţ71{rejestr;[wartość[;]]} lista[***] ţRejestrStron{[rejestr;[wartość[;]]]} lista[***] ţIlośćStron{[rejestr;[wartość[;]]]} lista[***] ţStron{[rejestr;[wartość[;]]]} lista[***] ţRejestrKońcowy{rejestr;[wartość[;]]} lista[***] ţWartośćKońcowa{rejestr;[wartość[;]]} lista
Przykłady: ţRejestrStron{stron wydruku; ţStrona;} - ilość stron w dok.
ţRejestrStron{şNr dokum. ş;şSş;} - numer ostatniej strony dok.
ţRejestrStron{şNr dokum. şşSş;şLş;} - ostatnia pozycja na stronie
Działanie: Zapamiętuje wartość w rejestrze albo
drukuje końcową zawartość rejestru
Parametry:
* rejestr - nazwa rejestru
* wartość - wartość zapamiętywana w rejestrze (opcjonalny)
* ; - znak ';' za wartością zwraca zawartości rejestru
Nazwa rejestru: dowolna
Zawartość rejestru: wartość liczbowa albo tekstowa. Można utworzyć
wiele rejestrów. Nazwy rejestrów nie mogą sie powtarzać.
Wartość: parametru zapamiętuje wartości w rejestrze.
Gdy pominięty, to program zwraca zawartość rejestru.
[***] Zawijanie - ţZawiń{tekst;[szerokość]} lista[***] ţ72{tekst;[szerokość]} lista
Przykłady: ţZawiń{ş-----opis-----ş; 180}
ţZawiń{ş----- Nazwa platnika -------ş;50}
ţJustuj{ţZawiń{ş----- Nazwa platnika -------ş;50}}
Działanie: Zawija długi tekst w kilku liniach
Parametry:
* tekst - długi tekst, pole
* szerokość - szerokość oczekiwanej szpalty tekstu
Znacznik umieszcza długi tekst w kilku wierszach.
Długi tekst jest automatycznie łamany i zapisywany w kolejnych wierszach.
Argument: szerokość, steruje szerokością szpalty.
Dobre efekty można uzyskać stosując łącznie z funkcją wyrównania:
ţJustuj{ţZawiń{...}} wydrukuje szpaltę z tekstem justowanym
ţCentruj{ţZawiń{...}} wydrukuje szpaltę z tekstem wycentrowanym
Znacznika używa się do umieszczania pól dodatkowego opisu i pól memo oraz
do umieszczania długich pól np. nazw w wąskich kolumnach tabeli.
Pozwala to na umieszczenie pól zawierających tekst dłuższy niż dostępne
miejsce na wydruku np. nazwy indeksów, nazwy firm, opisy dodatkowe, uwagi.
NOTE: Jeżeli zawijany tekst jest otoczony innym tekstem to dla pozostałych
tekstów też trzeba użyć funkcji ţZawiń{} nawet jeżeli mieszczą się na
wydruku. Pominięcie ţZawiń{} spowoduje powtórzenie otaczającego tekstu
w każdym wydrukowanym wierszu.
ţZawiń{s---Indeks---s}ţZawiń{s----- Nazwa indeksu -----s;20em}
[***] Justowanie - ţJustuj{tekst;[szerokość]} lista[***] ţ73{tekst;[szerokość]} lista
Przykłady: ţJustuj{ţZawiń{ş----- Nazwa platnika -------ş;50}}
Działanie: Justuje tekst, utrzymuje szerokość szpalty
Parametry:
* tekst - justowany tekst, pole, zawartość rejestru...
* szerokość - oczekiwana szerokość (opcjonalny)
Znacznik justuje tekst, tj. wyrównuje do prawej i lewej strony.
Wyrównuje szpaltę tekstu. Likwiduje 'postrzępienie' prawej krawędzi
poprzez drobne zmiany odstępów między wyrazami.
Przydatny jest zwłaszcza przy tekstach pisanych czcionką o zmiennej
szerokości.
Używany wraz z zawijaniem ţZawiń{}, pozwala złożyć długi opis dodatkowy
w równą szpaltę o podanej szerokości.
Dodatkowo, po wydrukowaniu, pozostawia kursor zawsze za szpaltą. To pozwala
uzyskać równe kolumny bez użycia tabeli.
Opcjonalny parametr: szerokość, określa oczekiwaną szerokość pola,
w którym ma nastąpić wyrównanie tekstu.
Domyślnie, szerokość pola jest wyliczana proporcjonalnie do liczby
znaków, kroju oraz rozmiaru czcionki.
Np.
Kolumna z nazwą indeksu może mieć do 100 mm.
Na wydruku nie ma miejsca by zmieścić nazwę dłuższą niż 40mm.
Zawijanie tekstu pozwala wydrukować dłuższe nazwy w dwóch lub trzech
wierszach.
Blacha 10mm 18G2A 1500x2500 wydrukuje się w dwóch wierszach:
Blacha 10mm 18G2A
1500x2500
Dodatkowo, używając funkcji centrowania, uzyska się:
Blacha 10mm 18G2A
1500x2500
[***] Do lewej - ţDoLewej{tekst;[szerokość]} lista[***] ţ74{tekst;[szerokość]} lista[***] Do prawej - ţDoPrawej{tekst;[szerokość]} lista[***] ţ75{tekst;[szerokość]} lista[***] Do środka - ţDoŚrodka{tekst;[szerokość]} lista[***] ţCentruj{tekst;[szerokość]} lista[***] ţ76{tekst;[szerokość]} lista
Przykłady: ţDoŚrodka{ Jednostka miary }
ţDoPrawej{ţFormat{ţSuma;999 999 999.99}}
ţDoŚrodka{Ilość; 20}
ţDoŚrodka{Wartość netto; 14em}
ţDoPrawej{ş-- Ilosc ---ş; 40}
ţDoLewej{Wartość netto; 40}
Działanie: Wyrównuje tekst do lewej/prawej/środka
Parametry:
* tekst - wyrównywany tekst, pole, zawartość rejestru...
* szerokość - szerokość pola (opcjonalny)
Znacznik wyrównuje do prawej, lewej, albo wyśrodkowuje tekst.
Przydatny jest zwłaszcza przy tekstach pisanych czcionką o zmiennej
szerokości.
Umożliwia wyrównywanie do prawej wartości numerycznych, wyśrodkowywanie
tekstów w nagłówkach kolumn.
Opcjonalny parametr: szerokość określa szerokość pola, w którym nastąpi
wyrównanie tekstu.
Domyślnie, szerokość pola jest wyliczana proporcjonalnie do ilości
znaków, kroju oraz rozmiaru czcionki.
Jeżeli tekst znajduje się w ramce to domyślna szerokość pola jest
równa pozostałemu miejscu w kolumnie. Jeżeli w kolumnie jest kilka
wyrównywanych tekstów to program wyrówna do kolumny tylko ostatni.
Szerokość ujemna (-) powoduje wypisanie tekstu po lewej stronie
od aktualnego położenia kursora.
[***] Usuń spacje z lewej - ţ77{tekst} lista[***] ţUsuńSpacjeZlewej{tekst} lista[***] ţLtrim{tekst} lista[***] Usuń spacje z prawej - ţ78{tekst} lista[***] ţUsuńSpacjeZprawej{tekst} lista[***] ţRtrim{tekst} lista[***] ţTrim{tekst} lista
Przykłady: ţUsuńSpacjeZlewej{ 000123 } -> '000123 '
ţUsuńSpacjeZprawej{ 000123 } -> ' 000123'
ţUsuńSpacje{ 000123 } -> '000123'
ţTrim{ 000123 } -> '000123'
ţUsuńSpacjeZprawej{şIndeks towaru ş} -> '000123'
ţRtrim{şIndeks towaru ş} ţRtrim{şNumer partii ş}
ţUsuńSpacjeZprawej{ş-Dodatkowy opis 01-ş} ţUsuńSpacjeZprawej{ş-Dodatkowy opis 02-ş}
ţUsuńSpacjeZlewej{ş-- Ilosc ---ş}
Działanie: Usuwa spacje z lewej/prawej strony tekstu
Parametry:
* tekst, z którego usunięte będą spacje z lewej/prawej strony
Usunięcie spacji umożliwia umieszczenie obok siebie dwóch pól,
których zawartość ma zmienną długość.
[***] Fragment - ţ79{tekst;start;[licz]} lista[***] Fragment - ţFragment{tekst;start;[licz]} lista
Przykłady: ţFragment{şNr dokum. ş;1;} -> cały numer
ţFragment{FA0001/02/12;1;} -> FA0001/02/12
ţFragment{FA0001/02/12;1;6} -> FA0001
ţFragment{FA0001/02/12;8;2} -> 02
ţFragment{FA0001/02/12;-5;2} -> 02
ţFragment{FA0001/02/12;-2;} -> 12
ţFragment{FA0001/02/12;;-2} -> 12
ţFragment{FA0001/02/12;11;} -> 12
ţFragment{FA0001/02/12;"/";} -> 02/12
ţFragment{FA0001/02/12;"/";"/"} -> 02
ţFragment{FA0001/02/12;;"/"} -> FA0001
ţFragment{Wartość netto;9;} -> netto
ţFragment{Jan Kowalski;" ";} -> Kowalski
ţFragment{Jan Adam Kowalski;"Jan Adam ";} -> Kowalski
ţFragment{Jan Kowalski;;" "} -> Jan
ţFragmentOdLewej{Jan Kowalski;15} -> "Jan Kowalski"
ţOdLewej{Jan Kowalski;15} -> "Jan Kowalski"
ţFragmentOdPrawej{Jan Kowalski;15}-> "Jan Kowalski"
ţOdPrawej{Jan Kowalski;15} -> "Jan Kowalski"
ţRpad{Jan Kowalski;15} -> "Jan Kowalski "
ţLpad{Jan Kowalski;15} -> " Jan Kowalski"
Działanie: Zwraca fragment tekstu
Parametry:
* tekst, z którego pobrany będzie fragment
* start - pozycja początkowa w tekście lub początkowy ogranicznik tekstu
* licz - liczba znaków do pobrania lub końcowy ogranicznik tekstu
Fragment drukuje lub porównuje fragment pola lub tekstu.
Początek fragmentu wskazuje parametr: start. Jeżeli start
jest liczbą dodatnią, to początek liczony jest od skrajnego lewego znaku.
Jeżeli jest liczbą ujemną, to liczony jest od skrajnego prawego znaku.
Np. -2 to drugi znak licząc od końca.
Jeżeli parametr start jest tekstem w cudzysłowiu "" to program szuka
i przyjmuje za początek fragmentu znaki za znalezionym tekstem.
Parametr: licz pobiera podaną liczbę znaków. Gdy pominięty, to program
pobiera fragment od wskazanej pozycji do końca tekstu.
Jeżeli jest liczbą ujemną, to pobierany jest tekst wskazanej długości
z lewej strony od wyznaczonego początku.
Jeżeli parametr licz jest tekstem w cudzysłowiu "" to program szuka
i przyjmuje za koniec fragmentu znaki przed znalezionym tekstem.
Patrz też inne funkcje, które zmieniają format wydruku pola: ţFormat i ţFormatDaty[***] EAN 128 - ţ80{tekst;[grubość kreski];[wysokość]} lista[***] ţEan128{tekst;[grubość kreski];[wysokość]} lista
Przykłady: ţEan128{şIndeks towaru ş}
ţEan128{şIndeks towaru şşNumer partii şş-- Ilosc ---ş}
ţEan128{şIndeks towaru ş; 0.85; 50}
ţEan128{şIndeks towaru ş;; 30}
Działanie: Rysuje kod EAN 128 z podaną zawartością
Parametry:
* tekst do narysowania w postaci kodu EAN 128
* grubość pojedyńczej kreski w milimetrach (opcjonalny)
* wysokość kodu w milimetrach (opcjonalny)
Funkcja rysuje kod kreskowy EAN 128.
Grubość pojedynczej kreski wpływa na gęstość i szerokość kodu
Zgodnie ze specyfikacją parametr ten powinien zawierać się w zakresie
0.250 - 1.016 milimetra. Domyślnie przyjmowane jest 0.33mm
Domyślnie kod przyjmuje wysokość aktualnego wiersza.
Program drukując kod EAN 128 wykorzystuje zestaw znaków Code C.
Ten zestaw znaków daje krótki wydruk ciągów cyfr.
NOTE: Drukarka etykiet. Wydruk barkodu na drukarce etykiet.
Warto ustalić najpierw rozmiar etykiety potrzebny,
aby pomieścić barkod utworzony dla najdłuższego spodziewanego,
tekstu, np. indeksu KIM.
Warto także sprawdzić, czy standardowy wydruk na A4 jest zgodny
z wydrukiem na etykiecie. Czy barkod mieści się na etykiecie ?.
Czy nie jest obcinany.
Aby drukować na drukarce etykiet (np. typu Zebra), należy upewnić się,
że drukarka ta w systemie operacyjnym jest widoczna jako standardowa drukarka,
i że można niej drukować w standardowy sposób - tak jak na drukarce laserowej.
Że nie wymaga sterowania za pomocą specjalistycznych kodów sterujących.
Patrz też:
Kody kreskowe Opis ogólny[***] Code 39 - ţ81{tekst;[grubość kreski];[wysokość];[sum T/N];[2:1/3:1]} lista[***] ţCode39{tekst;[grubość kreski];[wysokość];[sum T/N];[2:1/3:1]} lista
Przykłady: ţCode39{şIndeks towaru ş}
ţCode39{şIndeks towaru ş;;4em}
ţCode39{şIndeks towaru ş; 0.30; 4em; T}
ţCode39{şIndeks towaru ş; 0.30; 4em; N; 2:1}
ţCode39{şIndeks towaru ş; 0.30; 4em;;3:1}
ţCode39{şIndeks towaru ş; 0.30; 4em;;thin}
ţCode39{şIndeks towaru ş; 0.30; 4em;;wide}
ţCode39{şIndeks towaru ş; 0.30; 4em}
Działanie: Rysuje kod Code39 z podaną zawartością
Parametry:
* tekst do narysowania w postaci kodu Code39
* grubość pojedynczej kreski w milimetrach (opcjonalny)
* wysokość kodu w milimetrach (opcjonalny)
* czy program ma wyliczyć i dorysować dodatkowy znak sumy kontrolnej
domyślnie nie [N]
* stosunek szerokości pasków grubych do cienkich: 2:1, 2.5:1, 3:1
domyślnie 2.5:1
Funkcja rysuje kod kreskowy Code39.
Pozwala kodować 43 znaki:
* wielkie litery alfabetu bez znaków diakrytycznych A-Z
* cyfry 0-9
* znaki -. $/+%
Program zmienia litery w przekazanym tekście na wielkie oraz litery
diakrytyzowane na odpowiedniki ASCII. Jeżeli w tekście znajdą się znaki
niekodowalne, to kod nie zostanie narysowany.
Grubość pojedynczej kreski wpływa na gęstość i szerokość kodu.
Domyślnie przyjmowane jest 0.33mm
Domyślnie kod przyjmuje wysokość aktualnego wiersza. Wysokość powinna
umożliwiać odczyt pod różnymi kątami
Stosunek szerokości pasków grubych do cienkich musi mieścić się
w przedziale od 2:1 do 3:1. Domyślnie program przyjmuje proporcję 2.5:1.
Zmieniając ten parametr można zmienić szerokość kodu kosztem czytelności
W przypadku wydruku do pliku tekstowego, prn, html lub ekran program
wydrukuje ciąg znaków zamiast kodu kreskowego.
NOTE: Bardziej uniwersalne od Code39 są kody i GS1-128 i Gs1-QR
[***] EAN 13 - ţEan13{ean13;[grubość kreski];[wysokość]} lista[***] ţ82{ean13;[grubość kreski];[wysokość]} lista
Przykłady: ţEan13{ş---EAN13---ş}
ţEan13{ş---EAN13---ş; 0.25; 25}
Działanie: Rysuje kod EAN 13 z podaną zawartością
Parametry:
* ean13 - symbol do narysowania w postaci kodu EAN 13
* grubość pojedynczej kreski w milimetrach (opcjonalny)
* wysokość kodu w milimetrach (opcjonalny)
Funkcja rysuje kod kreskowy EAN 13.
ean13 może zawierać 13 cyfr lub 12 bez cyfry kontrolnej.
W przypadku podania 12 cyfr program obliczy 13 cyfrę kontrolną.
Można to wykorzystać do generowania kodów EAN 13
Grubość pojedynczej kreski wpływa na gęstość i szerokość kodu
Zgodnie ze specyfikacją GS1 parametr ten powinien zawierać się
w zakresie 0.264 - 0.660 milimetra. Domyślnie przyjmowane jest 0.33mm
Domyślnie kod przyjmuje wysokość aktualnego wiersza. Taka wysokość
powinna umożliwiać odczyt pod różnymi kątami
Zalecane wymiary kodów można znaleźć na stronach organizacji GS1
W przypadku wydruku do pliku tekstowego, prn, html lub ekran program
wydrukuje ciąg cyfr zamiast kodu kreskowego.
[***] Data Matrix - ţDataMatrix{tekst;[rozmiar]} lista[***] ţ83{tekst;[rozmiar]} lista
Przykłady: ţDataMatrix{TEL:+48586610015;}
ţDataMatrix{şIndeks towaru şşNumer partii şş-- Ilosc ---ş;}
ţDataMatrix{şIndeks towaru ş; 50}
ţDataMatrix{https://www.tres.pl; 3em}
Działanie: Rysuje kod DataMatrix z podaną zawartością
Parametry:
* tekst do narysowania w postaci kodu Data Matrix
* rozmiar kodu (opcjonalny)
Funkcja rysuje 2D (dwuwymiarowy), kwadratowy kod kreskowy DataMatrix.
Rozmiar kodu trzeba dobrać tak aby był czytelny po wydrukowaniu.
Domyślnie kod ma wysokość wiersza.
[***] QR Code - ţQR{tekst;[rozmiar];[korekcja L/M/Q/H]} lista[***] ţQRcode{tekst;[rozmiar];[korekcja L/M/Q/H]} lista[***] ţ84{tekst;[rozmiar];[korekcja L/M/Q/H]} lista
Przykłady: ţQR{TEL:+48586610015;;M}
ţQR{şIndeks towaru ş;5em;H}
ţQR{şIndeks towaru şşNumer partii şş-- Ilosc ---ş;}
ţQR{https://www.tres.pl/produkty/ş---EAN13---ş; 50;}
Działanie: Rysuje kod QR z podaną zawartością
Parametry:
* tekst do narysowania w postaci kodu QR
* rozmiar kodu (opcjonalny)
* poziom korekcji błędów (opcjonalny)
L - 7% (domyślnie)
M - 15%
Q - 25%
H - 30%
Funkcja drukuje 2D (dwuwymiarowy), kwadratowy kod kreskowy QR.
Rozmiar kodu trzeba dobrać tak aby był czytelny po wydrukowaniu.
Domyślnie kod ma wysokość wiersza.
Im wyższy poziom korekcji tym większa odporność kodu na uszkodzenia.
[***] Plik załącznika - ţ85{plik;[katalog]} lista[***] ţZałącz{plik;[katalog]} lista[***] ţZałączPlik{plik;[katalog]} lista[***] ţWstawZałącznik{plik;[katalog]} lista
(załącznik standardowy)
Przykłady: ţZałącz{specyfikacja.pdf}
ţZałącz{instrukcje/Ogólna.doc}
ţZałącz{instrukcje/ţRtrim{şIndeks towaru ş}.pdf}
ţZałącz{goto/ţRtrim{şIndeks towaru ş}.pdf}
ţZałącz{trerror.log;trlog}
Działanie: Wysyła wskazany plik (pliki) razem z dokumentem
Parametry:
* plik - nazwa pliku
* katalog - katalog programu Trawers, w którym znajduje się plik
domyślnie katalog załączników np. /nazal
Parametr: katalog musi wskazywać na katalog programu Trawers
np. /naZal, /mgZal, /zoZal, /trInOut, /trRaporty, /trLog, itp.
Nie może wskazywać na katalog, w którym znajdują się pliki z danymi
tj. /nadane, /mgdane, /zodane, itd.
W podglądzie wydruku na ekran widać, które pliki będą załączone
i wskazane ewentualne problemy z dostępem do plików.
Plik załącznika można wysyłać e-mailem, drukować, przekazać jako parametr
programu
Patrz też: ţZałącznikiDokumenty powiązane (załączniki)[***] Plik załącznika dokumentu - ţZałączniki{[refNo|[zbiór;klucz];[grupa][;plik]]} lista[***] ţZałączPlikiDokumentu{[refNo|[zbiór;klucz];[grupa][;plik]]} lista[***] ţ86{[refNo|[zbiór;klucz];[grupa][;plik]]} lista
(załącznik indywidualny)
Przykłady: ţZałączPlikiDokumentu{}
ţZałączniki{SI-FA0001/11/12}
ţZałączniki{Odbiorca;sPla.s}
ţZałączniki{Dostawca;sDos.s}
ţZałączniki{Pracownik; 1}
ţZałączniki{Pracownik; 1; UM}
ţZałączniki{Pracownik; 1;;Umowa o pracę.pdf}
ţZałączniki{Pracownik; 1; UM; Umowa o pracę.pdf}
ţZałączniki{Zadanie;00000001}
ţZałączniki{Kontakt; 853}
ţZałączniki{KIM;s--- indeks ---s}
ţZałączniki{KSOM;sMss--- indeks ---s}
ţZałączniki{Partia;sMss--- indeks ---ssNumer partii s}
ţZałączniki{LOT;sMss--- indeks ---ssNumer partii s}
ţZałączniki{Seria;sMss--- indeks ---ss------Numer serii------s}
ţZałączniki{SER;sMss--- indeks ---ss------Numer serii------s}
Działanie: Załącza pliki załączników powiązane z dokumentem lub kartą
Parametry: refNo lub zbiór - Nr RefNo dokumentu lub zbiór do którego
załączone są załączniki (domyślnie drukowany dokument)
klucz - identyfikator karty/dokumentu z załącznikami
grupa - symbol grupy z której program załączy pliki
(domyślnie wszystkie grupy)
plik - nazwa pliku do załączenia (domyślnie wszystkie pliki)
Plik załącznika musi mieć wskaźnik: Wysłać = [T] w karcie definicji.
W podglądzie wydruku na ekran widać, które pliki będą załączone
i wskazane ewentualne problemy z dostępem do plików.
Można wysłać jako:
* załącznik e-mail -> urządzenie wyjściowe rodzaju: [Email]
* parametr wykonania programu -> urządzenie wyjściowe rodzaju: [Polecenie]
* wydruk na drukarce -> urządzenie wyjściowe rodzaju: [CUPS] i [Win32]
NOTE: Aby wydrukować plik na drukarce musi on być skojarzony w systemie
operacyjnym z poleceniem wydruku.
W Windows można to sprawdzić klikając prawym klawiszem myszy na pliku
Jeżeli w menu kontekstowym jest pozycja Drukuj, to można drukować
pliki załączników w tym formacie.
Jeżeli nie ma to trzeba zainstalować odpowiedni program,
np. Acrobat Reader dla plików w formacie PDF
Przykład zastosowania do wysłania e-mailem oferty sprzedaży do odbiorcy
z wieloma załącznikami, np. fotografiami produktu:
Dokumenty powiązane (załączniki)
Jeżeli na wzorcu wydruku faktury sprzedaży (w linii T) umieścimy
ţZałaczniki{Odbiorca;sPla.s}, to program załączy załączniki z karty odbiorcy.
Podobnie, jeżeli w linii P umieścimy ţZałączniki{Indeks;s---indeks ---s},
to program załączy załączniki powiązane z kartami indeksów, które są na dokumencie.
Także, na wydrukach dotyczących pracownika ţZałączniki{} umieści
załączniki z karty pracownika.
W połączeniu z ţRekord{} i ew. ţIndeks1{] można załączać z kartotek powiązanych.
Np. umieszczenie załączników z karty pracownika powiązanego z operatorem,
który zarejestrował zlecenie:
ţRekord{241;sOPs} ţZałączniki{Pracownik;ţ...[person]}
Dodatkowo, można zawęzić listę umieszczanych załączników do konkretnej grupy.
Np. ţZałączniki{Indeks;s--- indeks ---s;GW} umieści załączniki z karty indeksu
z grupy GW (np. gwarancja).
Można też zawęzić do załączników o wskazanej nazwie.
Np. ţZałączniki{Dostawca;sKodds;;OWU.pdf}, aby załączyć dokument ogólnych
warunków ubezpieczenia świadczonych przez ubezpieczyciela.
Ubezpieczyciel w tym przykładzie, to główny dostawca KIM rodzaju: usługa.
NOTE: Może być kilka plików OWU.pdf w różnych grupach aby zawęzić trzeba podać grupę jw.
[***] Treść z pliku txt - ţTreśćPliku{plik;[kodowanie]} lista[***] ţ87{plik;[kodowanie]} lista
Przykłady: ţTreśćPliku{/licencje/licencja.txt;cp852}
ţTreśćPliku{../trtres/trinout/opis.txt;utf-8}
Działanie: Wstawia treść z pliku w formacie tekstowym.
Parametry:
* plik - ścieżka i nazwa pliku z treścią do drukowania
* kodowanie- kodowanie liter
domyślnie program próbuje rozpoznać kodowanie znaków
[***] nie wykorzystane ţ88lista[***] nie wykorzystane ţ89lista[***] Dołącz inny wydruk (kaskadowo) - ţInnyWydruk{[drukarka];idProces[;p1][;p2][;p3][;...]} lista[***] ţInnyWydruk{[drukarka];system[;p1][;p2][;p3][;...]} lista[***] ţ90{[drukarka];idProces[;p1][;p2][;p3][;...]} lista
KG: ZK
NA: FA FK FZ FP FQ OF ZL OB FO ZI SR RZ SD LD
NA_DFA50
MG: RO PR Z1 Z2 K1 K2 PM RM R3 R4 O1 O2 P1 P2 NW
PL: P2
PM: PM_ZEX10
RK: KO
SE: WS
ZA: OF OB ZL
ZO: FA FK DA FM ZI SR RZ
ZP: ZL KR RO Z1 PR Z2 KD KN KU SM SO DW KO Z3 SH
Wydruki RaportyXML:
PM: [PM_ZEX10] Raporty XML > Wydruk
Wydruki (raporty) Alertów:
NZ [NZ_ZDS10] Dynamika sprzedaży
NA [NA_DZM58] Zamówienia > Niedobór asortymentu
ZO [ZO_ZRO60] Planowane zapłaty zobowiązań
Ostatnie wybory operatorów
Przykłady: ţInnyWydruk{;NA;FA;TRES01FP;şNr dokum. ş}
ţInnyWydruk{EKRAN0;NA;ZL;TRES0100;şNr zamow. ş}
ţInnyWydruk{EKRAN0;NA;ZL;UWAGA000;şNr zamow. ş}
ţInnyWydruk{;MG;RO;TRES0100;şMş;şBsş;şP.bnş}
ţInnyWydruk{;PM_ZEX10;RAP001}
Działanie: Wywołuje wydruk wskazanego dokumentu
Parametry:
* drukarka - symbol urządzenia wyjściowego
* idProces - symbol wydruku
* p1,p2,p3... - parametry wydruku
system/idProces rodzaj wydruku
-------- ----------------------------------------
KG zestawienia księgowe
p1 - ZK
p2 - symbol wzorca wydruku
p3 - pusty
NA należności wg wzorca
p1 - rodzaj wzorca dokumentu SR,RZ
p2 - symbol wzorca wydruku
p3 - symbol odbiorcy
p4 - data do (domyślnie data bieżąca)
p5 - dni 1
p6 - dni 2
[p7]- ujmij
* W Wszystkie
* O tylko opóźnione
* B tylko bez opóźnień
* 1 opóźnione 1
* 2 opóźnione 2
* 3 opóźnione 3
NA dokument wg wzorca
p1 - rodzaj wzorca dokumentu FA,FK,FZ,FP,FQ,OF,ZL,FO,ZI,SD,LD
p2 - symbol wzorca wydruku
p3 - numer dokumentu
NA_DFA50 zestawienie faktur sprzedaży
[p1] - symbol wzorca wydruku
* pusty - wydruk zestawienia standardowego
* podany - wydruk faktur(y) wg wzorca, np. TRESGR00
program pominie parametry p7 i p8
[p2] - od numeru
[p3] - do numeru
* pominięte p2 i p3: wydrukowane będą wszystkie faktury z okresu
* pominięte p3: wydrukowana będzie tylko faktura: p2
[p4] - rok obliczeniowy albo data wystawienia dokumentu
* pusty - program odczyta z p2
[p5] - miesiąc obliczeniowy
* można pominąć p5 gdy w p4 jest data wystawienia dokumentu
* pusty - program odczyta z p2
[p6] - symbol odbiorcy
* pusty - wszystkie faktury
* podany - tylko faktury odbiorcy
[p7] - Zawiera: Wszystkie pozycje/Sumy zbiorcze (W/S)
* pusty - sumy zbiorcze
[p8] - Ujmij pozycje: Wszystkie/Niezatwierdzone/Zatwierdzone (W/N/Z)
* pusty - wszystkie pozycje
NA_DZM58 zamówienia > niedobór asortymentu
p1 - nazwa zapisu wyborów operatora
NZ_ZDS10 dynamika sprzedaży netto wg odbiorców i grup
p1 - nazwa zapisu wyborów operatora
MG nota wysyłkowa wg wzorca [NW]
(na jednym wydruku znajduje się asortyment z wielu dok rozchodu)
p1 - NW
p2 - symbol wzorca np. TRES0100
p3 - symbol magazynu
p4 - symbol systemu, który rejestrował dokument rozchodu
p5 - od numeru dokumentu
[p6] - do numeru dokumentu
* pominięte p6: Nota wysyłkowa wg dok rozchodu nr p5
* podane p6: Nota wysyłkowa wg dok rozchodu nr od p5 do p6
[p7] - rok albo data wystawienia dokumentu
[p8] - m-c
* można pominąć p8 gdy w p7 jest data wystawienia dokumentu
* można pominąć p7 i p8, gdy numer dok p5 jest 12 znakowy
i zawiera w suffiksie okres, np. FA0001/10/12
* gdy brak okresu, program przyjmie bieżący
p9 - symbol obiorcy
p10 - symbol adresu
[p11]- ułożenie asortymentu wg:
* N - numerów dok rozchodu
* I - indeksów asortymentu
* M - miejsc w magazynie (domyślnie)
PL PIT-11
p1 - P2
p2 - symbol wzorca
p3 - symbol pracownika
[p4] - rok obliczeniowy lub data od (domyślnie rok zamknięty)
[p5] - miesiąc obliczeniowy do lub data do (domyślnie 12)
RK kontakt
p1 - KO
p2 - symbol wzorca np. TRES0100
p3 - id kontaktu
SE wizyta serwisowa
p1 - WS
p2 - symbol wzorca np. TRES0100
p3 - numer wizyty
MG dokument magazynowy
p1 - rodzaj wzorca dokumentu RO,PR,RM,PM,Z1,Z2,...
[p2] - symbol wzorca
* pusty - wydruk zestawienia standardowego
* podany - wydruk dokumentu wg wzorca, np. TRES0100
p3 - symbol magazynu
p4 - symbol systemu, który rejestrował dokument
p5 - od numeru
[p6] - do numeru
* pominięte p6: wydruk dok p5
* podane p6: wydruk dok od p5 do p6
[p7] - rok albo data wystawienia dokumentu
[p8] - m-c
* można pominąć p8 gdy w p7 jest data wystawienia dokumentu
* można pominąć p7 i p8 gdy numer dokumentu p5 jest 12 znakowy
i zawiera w suffiksie okres, np. FA0001/10/12
np. wydruk dok rozchodu wystawionych do faktury:
P ţMagazyny[şMş]{şMş}
T ţWstawWydruk{MG;RO;TRES0100;ţMagazyny[];NA;şNr dokum. ş}
* gdy brak okresu, program przyjmie bieżący
[p9] - zestawienie standardowe
* Zawiera: Wszystkie pozycje/Sumy zbiorcze (W/S)
pusty - sumy zbiorcze
ZA dokument wg wzorca
p1 - rodzaj wzorca dokumentu OF,ZL,OB
p2 - symbol wzorca wydruku
p3 - numer dokumentu
ZO zobowiązania wg wzorca
p1 - rodzaj wzorca dokumentu SR,RZ
p2 - symbol wzorca wydruku
p3 - symbol odbiorcy
p4 - data do (domyślnie data bieżąca)
p5 - dni 1
p6 - dni 2
[p7]- ujmij
* W Wszystkie
* O tylko opóźnione
* B tylko bez opóźnień
* 1 opóźnione 1
* 2 opóźnione 2
* 3 opóźnione 3
ZO dokument wg wzorca
p1 - rodzaj wzorca dokumentu FA,FK,DA,FM,ZI
p2 - symbol wzorca wydruku
p3 - numer dokumentu
ZO_ZRO60 planowane zapłaty zobowiązań
p1 - nazwa zapisu wyborów operatora
ZP dokument produkcyjny
p1 - rodzaj wzorca dokumentu KR,RO,Z1,PR,Z2,...
p2 - symbol wzorca, np. TRES0100
[p3] - symbol systemu, który rejestrował dokument
* domyślnie ZP
p4 - numer dokumentu
[p5] - rok albo data wystawienia dokumentu
[p6] - m-c
* można pominąć p6 gdy w p5 jest data wystawienia dokumentu
* gdy brak okresu, program przyjmie bieżący
[p7] - numer pozycji
* pusty - wszystkie pozycje dokumentu
* podany - tylko pozycja o podanym numerze
ZP specyfikacje do zlecenia
p1 - rodzaj wzorca dokumentu ZL,SM,SO,DW,SH
p2 - symbol wzorca, np. TRES0100
[p3] - symbol zlecenia
* podany - tylko zlecenie o podanym symbolu
[p4] - nr zamówienia
* podany - tylko zlecenia do zamówienia
[p5] - numer pozycji zamówienia
wymagany nr zamówienia [p4]
* podany - tylko zlecenia do pozycji zamówienia
* pusty - zlecenia do wszystkich pozycji
PM_ZEX10 RaportyXML
[p1] - symbol raportu
Funkcja wywołuje wydruk wskazanego dokumentu
Może wywołać kolejkę (kaskadę) wydruków.
Po zakończeniu aktualnie drukowanego może wydrukować inny dokument.
Można wywołać wiele wydruków z jednego wzorca.
Funkcja: ţInnyWydruk{} może wykonać wiele zadań, np.
* Drukuje dwie faktury, z napisem KOPIA, po wydrukowaniu oryginału
* Wysyła wiadomość (ţKomunikat{}) do operatora, po wydrukowaniu dokumentu
* Automatycznie drukuje dok wydania na drukarce w magazynie,
po wydrukowaniu faktury sprzedaży
* Drukuje dok wydania z magazynu a następnie list przewozowy
* Wysyła e-mail z dokumentem po wydrukowaniu dokumentu
* Dodrukowuje zamówienia po wydrukowaniu faktury
Aby uzyskać automatyczny wydruk 2 kopii faktury:
1. Skopiować aktualny wzorzec faktury do np. KOPIAFAK
2. Zmienić w wzorcu kopii faktury napis: Oryginał na: Kopia
3. W wzorcu wydruku oryginału na końcu dopisać:
T ţInnyWydruk{;NA;FA;KOPIAFAK;şNr dokum. ş}
T ţInnyWydruk{;NA;FA;KOPIAFAK;şNr dokum. ş}
Przykłady:
Wydruki kaskadowe i składane[***] Wstaw inny wydruk - ţWstawWydruk{idProces[;p1][;p2][;p3][;...]} lista[***] ţWstawWydruk{system;rodzaj;wzorzec;nr dok]} lista[***] ţ91{idProces[;p1][;p2][;p3][;...]} lista
Wydruki dokumentów:
KG: ZK
NA: FA FK FZ FP FQ OF ZL OB FO ZI SR RZ SD LD
NA_DFA50
MG: RO PR Z1 Z2 K1 K2 PM RM R3 R4 O1 O2 P1 P2 NW
PL: P2
PM: PM_ZEX10
RK: KO
SE: WS
ZA: OF OB ZL
ZO: FA FK DA FM ZI SR RZ
ZP: ZL KR RO Z1 PR Z2 KD KN KU SM SO DW KO Z3 SH
Wydruki RaportyXML:
PM: [PM_ZEX10] Raporty XML > Wydruk
Wydruki (raporty) Alertów:
NZ [NZ_ZDS10] Dynamika sprzedaży
NA [NA_DZM58] Zamówienia > Niedobór asortymentu
ZO [ZO_ZRO60] Planowane zapłaty zobowiązań
Ostatnie wybory operatorów
Przykłady: ţWstawWydruk{NA;FA;TRES01FP;şNr dokum. ş}
ţWstawWydruk{NA;ZL;TRES0100;şNr zamow. ş}
ţWstawWydruk{NA;ZL;UWAGA000;şNr zamow. ş}
ţWstawWydruk{MG;RO;DOK_RO01;şMş;şBsş;şP.bnş;;;;}
ţWstawWydruk{MG;RO;DOK_RO01;@MAG;@NSYST;@NUMER;;;;}
ţWstawWydruk{PM_ZEX10;RAP001}
ţWstawWydruk{NZ_ZDS10;UjmijGrupy}
Działanie: Wysyła wydruk
Wstawia inny wydruk w treść aktualnie drukowanego
Tworzy wydruki składane
Parametry: opis w ţInnyWydruk
Podobnie jak ţInnyWydruk, drukuje inny, nowy dokument (pod-druk).
Pod-wydruk wstawi do aktualnego wydruku. Po zakończeniu wydruku,
program powróci do przetwarzania pierwotnego wydruku
Wywołany wydruk także może zawierać funkcję: ţ91 Wstaw inny wydruk.
Przykłady zastosowań:
Wydruki kaskadowe i składane
* Wybór wzorca zależny od zawartości dokumentu,
w połączeniu z funkcjami ţPorównaj, ţPorównajLiczby, ţPorównajDaty
np. wzorzec w języku angielskim, gdy kraj kontrahenta inny niż PL
Należy przygotować:
- wzorzec w języku angielskim np. FA0000EN
- wzorzec w języku polskim np. FA0000PL
- wzorzec wybierany podczas wydruku np. FA000000
Wzorzec FA000000:
T ţWstawWydruk{NA;FA;ţPorównaj{ş+ş;PL;FA0000PL;FA0000EN};şNr dokum. ş}
Jeżeli wymagany jest wydruk w wielu wersjach językowych, to można
użyć kilku ţPorównaj{}, np.
T ţWstawWydruk{NA;FA;ţPorównaj{ş+ş;PL;FA0000PL;ţPorównaj{ş+ş;DE;FA0000DE;FA0000EN}};şNr dokum. ş}
lub wpisać jako kolejne linie:
T ţPorównaj{ş+ş;PL;ţWstawWydruk{NA;FA;FA0000PL;şNr dokum. ş};}
T ţPorównaj{ş+ş;DE;ţWstawWydruk{NA;FA;FA0000DE;şNr dokum. ş};}
T ţPorównaj{ş+ş;EN;ţWstawWydruk{NA;FA;FA0000EN;şNr dokum. ş};}
T ţPorównaj{ş+ş;SV;ţWstawWydruk{NA;FA;FA0000EN;şNr dokum. ş};}
Jeżeli płatnik jest z innego kraju, to program wysunie pustą kartkę.
* Drukowanie stałych tekstów zapisanych w osobnym wzorcu
* Wydruk w pozycji faktury informacji z zamówienia
* Podział wzorca wydruku na fragmenty, np. nagłówek i treść.
Wzorce wydruku oryginału, kopii i duplikatu różnią się wywołaniem
odpowiedniego wzorca nagłówka.
Wzorzec oryginału:
# nagłówek
T ţWstawWydruk{NA;FA;NAGLOFAK;şNr dokum. ş}
# treść
T ţWstawWydruk{NA;FA;TRESCFAK;şNr dokum. ş}
Wzorzec kopii:
# nagłówek
T ţWstawWydruk{NA;FA;KOPIAFAK;şNr dokum. ş}
# treść
T ţWstawWydruk{NA;FA;TRESCFAK;şNr dokum. ş}
Wzorzec duplikatu:
# nagłówek
T ţWstawWydruk{NA;FA;DUPLIFAK;şNr dokum. ş}
# treść
T ţWstawWydruk{NA;FA;TRESCFAK;şNr dokum. ş}
Patrz też: ţ90[***] Powtórzenie - ţPowtórz{ilość;tekst} lista[***] ţ92{ilość;tekst} lista
Przykłady: ţPowtórz{5;X} -> XXXXX
ţPowtórz{ţOblicz{ş-Ilosc wydana-ş/ş-Ilosc wyma-ş*6};=}
ţPowtórz{3;ţInnyWydruk{;NA;FA;KOPIAFAK;şNr dokum. ş}})
ţPowtórz{6; ţI} -> 1 2 3 4 5 6
ţPowtórz{3;ţa={ţI}} ţPowtórz{4; ţOblicz{ţa * ţI;99}} ţY{+1em}}
-> 1 2 3 4
2 4 6 8
3 6 9 12
Działanie: Powtarza tekst podaną ilość razy
Parametry:
* ilość - ilość powtórzeń
* tekst - powtarzany tekst
Pozwala drukować tekst lub inny wydruk podaną ilość razy.
Numer aktualnego powtórzenia jest pamiętany w rejestrze ţI
Umożliwia realizację pętli programowej.
Zawartość ţI można modyfikować co umożliwia przetwarzanie
do czasu spełnienia określonego warunku, np:
- rób jeżeli (inf: while do, do while)
ţPowtórz{1;ţPorównajLiczby{ţInc{w};5;;;;wyrażenie do przetworzenia ţI={0}}}
Patrz funkcja ţWhile
Patrz funkcja ţPowtórzDopóki
- powtarzaj dopóki (inf: do loop while, repat until)
ţPowtórz{1;wyrażenie do przetworzenia ţPorównajLiczby{ţInc{u};5;;;;ţI={0}}}
Patrz funkcja ţUntil
- powtórz dla i od X do Y (inf: for i=X to Y)
Patrz funkcja ţFor[***] Okno dialogowe - ţOkno{tabela;[tytuł];[opis]} lista[***] ţ93{tabela;[tytuł];[opis]} lista
Przykład 1: ţRząd={ 1}ţKolumna={1}ţSzerokość={50}ţWysokość={30}
ţEtykieta[;01]{Współrzędne pierwszej etykiety:}
ţEtykieta[Rząd;02]{Rząd }
ţEtykieta[Kolumna;03]{Kolumna}
ţOkno{Etykieta;Współrzędne początkowe;Program rozpocznie wydruk od wskazanego miejsca}
ţXY{ţ={ţKolumna*ţSzerokość;};ţ={ţRząd*ţWysokość;}}
Przykład 2: ţPytanie[]{Odbiorca sPla.s s------ Nazwa ----- s}
ţPytanie[]{jest z kraju s+s}
ţPytanie[]{Czy kontynuować wydruk wg wzorca w PL ?}
ţPorównaj{ş+ş;PL;;ţOkno{Pytanie;Kontrola wzorca wydruku}}
Przykład 3: ţInformacja[]{}
ţInformacja[]{Wydruk dokumentu sNr. dokum. s}
ţInformacja[]{z dnia 20sData ws}
ţInformacja[]{}
ţOkno{Informacja;Kontynuować ?}}
Przykład 4: ţWyrażenie={ }
ţWierszOkna{Kalkulator;Wyrażenie;Wyrażenie}
ţWierszOkna{Kalkulator; np. 1+2*3}
ţOkno{Kalkulator;Kalkulator;Wyrażenie do obliczenia}
Wynik: ţ={ţWyrażenie}
Przykład 5: ţWzorzec[ETY]{Wydruk etykiety}
ţWzorzec[ROB]{Wydruk karty robocizny}
ţWzorzec={ROB}
ţWierszOkna{Wybór;}
ţWierszOkna{Wybór;Wzorzec wydruku;Wzorzec}
ţWierszOkna{Wybór;}
ţOkno{Wybór;Wybór wydruku}
Wybrano: ţWzorzec -> ţWzorzec[ţWzorzec]
Działanie: Wyświetla okno dialogowe
Parametry:
* tabela - nazwa tabeli ţ62 z zawartością okna
* tytuł - tytuł okna
* opis - opis wyświetlany w pierwszym wierszu
Funkcja ţOkno{} wyświetla okno dialogowe podczas wydruku i umożliwia pobranie
parametrów od operatora. Umożliwia też przerwanie wydruku.
Wyświetlenie okna z informacją i z możliwością przerwania pokazują przykłady 2,3.
Podanie klucza w tabeli ţ...[] zgodnego z rejestrem ţ... o tej samej nazwie
spowoduje doświetlenie wartości rejestru ţ70. Operator może zmienić wartość rejestru.
Jeżeli jest tabela ţTabela[] o nazwie identycznej z rejestrem ţRejestr to operator wybiera
wartość wpisaną do ţTabela[] (przykład 5).
Początkowa zawartość rejestru ţRejestr określa maksymalną ilość znaków jaką może
wprowadzić operator. Wiersz z rejestrem pustym np. ţNazwa={} nie zostanie
wyświetlony.
Pobieranie z ekranu można wykorzystać np. do umieszczania na wydruku informacji
których nie ma w dokumencie. Umożliwia zmianę postaci wydruku zależnie od
pobranych parametrów.
Pobrane wartości są dostępne od razu za funkcją ţOkno{}.
Możliwe jest wyświetlanie kolejnych okien w celu uszczegółowienia informacji.
[***] Powiadomienie - ţ94{treść;[operator];[priorytet]} lista[***] ţKomunikat{treść;[operator];[priorytet]} lista
Przykłady: ţKomunikat{Wydrukowano WZ;AA;}
ţKomunikat{Faktura şNr dokum. ş ponad ţKwota;DO;7}
ţKomunikat{Inna wartość VAT w Fakt. şNr dokum. ş;;}
Działanie: Wysyła wiadomość do operatora
Parametry:
* treść - treść wiadomości
* operator - odbiorca powiadomienia
* priorytet - 1 niski - 9 wysoki
Funkcja wysyła wiadomość do operatora wykonującego wydruk lub innego.
Np.
* powiadamia magazyniera o wydrukowaniu dokumentu rozchodu
* powiadamia o wydrukowaniu dokumentu o dużej wartości
* powiadamia operatora, że wartości na dokumencie
nie mieszczą się w ustalonych widełkach
Do warunkowego powiadamiania należy użyć funkcji porównujących
ţPorównaj, ţPorównajLiczby, ţPorównajDaty.
Pomocne są także funkcja obliczania wartości i rejestry.
[***] Wysuw strony - ţNowaStronalista[***] ţ39lista
Przykład: ţOdb={sPla.s;}
ţPorównajTeksty{sPla.s;ţOdb;;ţOdb={sPla.s} ţNowaStrona}
Powoduje przejście do nowej strony.
NOTE: Łamanie strony najlepiej robić na początku wydruku aby uniknąć wysuwu
pustej strony po wydruku.
[***] Nowa strona - ţNowaStrona{[pozycja Y]} listaţ95{pozycja Y} lista
Przykłady: ţNowaStrona{150}
ţNowaStrona{+20}
ţNowaStrona{+4em}
Działanie: Warunkowo łamie stronę
Parametry:
* pozycja Y - położenie względem górnej krawędzi kartki
Funkcja grupuje linie tekstu w blok, tak aby tekst nie został
podzielony między dwie strony. Realizacja polega na wcześniejszym,
warunkowym złamaniu strony.
Strona będzie złamana jeżeli:
1. Aktualne położenie Y jest dalsze od podanej pozycji lub
2. Podana pozycja leży poza obszarem wydruku
Łamanie strony w podanych przykładach nastąpi gdy:
ţNowaStrona{150} - kursor przekroczy 150mm
ţNowaStrona{+20} - nie zmieści się 20mm wydruku
ţNowaStrona{+4em} - nie zmieszczą się jeszcze 4 wiersze aktualnej wysokości
ţNowaStrona{} - łamie stronę
NOTE: Funkcja ţNowaStrona{} w większości przypadków powinna być umieszczona
na końcu wiersza.
Tekst i funkcje umieszczone w tym samym wierszu za funkcją ţNowaStrona{}
zostaną wykonane już na nowej stronie ale przed wydrukiem linii typu S.
To oznacza, że zostaną wydrukowane przed nagłówkiem strony co zwykle
nie jest oczekiwanym rezultatem.
[***] Funkcja - ţNazwa{[p1;p2;p3;...]} lista[***] ţNazwa~{definicja} lista[***] ţ96{nazwa;[definicja];[p1;p2;p3;...]} lista
Przykłady:
ţDodaj_1~{
ţ%1={0;}
ţ%1={ţ={ţ%1 + 1}}
ţ%1
}
ţDodaj_1{Licznik} -> 1
ţDodaj_1{Licznik} -> 2
ţDodaj_1{Pozycja} -> 1
ţDodaj_1{Licznik} -> 3
ţProc~{ţ={ %1 / %2 * 100 ;999.9}}
ţProc{1;5} -> 20.0
ţProc{ş-Ilosc wydana-ş;ş-Ilosc wyma-ş}
ţFunkcja{Proc} -> Drukuje definicję funkcji ţProc
Działanie: Definiuje lub wykonuje funkcję
Parametry:
nazwa - nazwa funkcji
definicja - definicja funkcji
p1,p2,p3.. - parametry przekazane do funkcji podczas wykonania
Funkcja to jest zestaw poleceń lub instrukcji programowych
zebranych pod jedną nazwą.
Funkcje TrExtLang ułatwiają tworzenie rozwiązań programowych. Nie trzeba używać ciągu wielu
instrukcji programowych. Wystarczy użyć funkcji z parametrami.
Funkcje TrExtLang umieszcza się w różnych miejscach wzorca.
Po napotkaniu funkcji we wzorcu, program wykonuje funkcję, tzn. wykonuje
zapisane w niej polecenia.
Do wykonywanej funkcji można przekazać parametry. Parametry w definicji
zapisuje się jako %1, %2, %3, %4, itd. Podczas wykonania w miejscu
%.. będzie wartość parametru.
W powyższych przykładach parametrem %1 są słowa Licznik i Pozycja.
Parametrami mogą być teksty, daty, pola, inne funkcje TrExtLang.
Można przekazać listę parametrów:
%... - lista wszystkich parametrów
%.2. - lista parametrów począwszy od drugiego
%.3. - lista parametrów począwszy od trzeciego, itd.
Np. ţFont~{ţCzcionka{%...}}
ţFont{Arial;10}
ţTekstWkolorze~{
ţKolor{%.2.}
%1
ţKolor{czarny;biały;1}
}
ţTekstWkolorze{Trawers;zielony;żółty;0.5}
[***] Wiersz funkcji t~ lista[***] t~{...} lista
Działanie: Cofa kursor o jeden wiersz
Usuwa otaczające spacje z wiersza definicji funkcji
ţ~ ułatwia umieszczanie na wzorcu wierszy, które nie zawierają tekstu do
drukowania. Są to np. wiersze zapisujące w rejstrach wyniki obliczeń,
wywołujące inne wydruki lub definiujące funkcje TrExtLang.
Takie wiersze powodują powstanie pustego wiersza na wydruku i aby temu
zapobiec trzeba cofać położenie kursora.
ţ~ jest alternatywną dla funkcji cofającej kursor
np.
Pţ~ţSuma{Wynik;ţWartości[]}
ţ~ w treści definicji funkcji podowuje usunięcie otaczających spacji.
To umożliwia formatowanie treści funkcji.
np.
Bez użycia ţ~ wierszy definicji funkcji nie można poprzedzać spacjami
ponieważ będą one treścią funkcji i zostaną wydrukowane podczas przetwarzania
funkcji.
TţPorównaj{s--pole-s;XYZ;
TţZróbCoś{arg1;
Targ2};
TţZróbCośInnego{arg3;
Targ4}
T} ţCofnijWiersz
Użycie t~ zwiększa czytelność wzorca. Program usunie spacje z definicji
i nie wydrukuje zbędnego pustego wiersza:
Tţ~ţPorównaj{s--pole-s;XYZ;
Tţ~ţZróbCoś{arg1;
Tţ~ arg2};
Tţ~ţZróbCośInnego{arg3;
Tţ~ arg4}
Tţ~ }
W razie potrzeby wydrukowania spacji można ująć tekst w ţ{...}.
Otoczenie tekstu ţ{...} ułatwia rozpoznanie ile spacji zostanie wydrukowanych.
Tt~ ţZróbCoś{arg1;
Tt~ ţ{ arg2}
Tt~ }
[***] Nazwa pliku - ţ97{nazwa;[.ext][;]} lista[***] ţNazwijPlik{nazwa;[.ext]} lista[***] ţNazwaPliku{nazwa;[.ext]} lista
Przykłady: ţNazwijPlik{Faktura şNr dokum. ş;}
ţNazwijPlik{Faktura şNr dokum. ş z dnia 20şData wş;}
ţNazwijPlik{şPla.ş - FA şNr dokum. ş;}
ţNazwijPlik{şPla.ş - FA şNr dokum. ş;xml}
ţNazwijPlik{Wydruk ş---Data i czas---ş;.xhtml}
ţNazwijPlik{Raport ş---Data i czas---ş;.csv}
ţNazwaPliku{Faktura şNr dokum. ş;} -> Faktura FV0001-09-19.pdf
Działanie: Ustala nazwę tworzonego pliku wydruku
Parametry:
nazwa - nazwa pliku
ext - rozszerzenie nazwy pliku np. xml
Funkcja ţNazwijPlik{} zmienia nazwę tworzonego pliku z losowej na wskazaną.
Można to wykorzystać do np. tworzenia archiwum wydruków faktur w postaci
plików pdf, np. 001234_Firma_Alfa_FV5811-07-10.
Aby po wydrukowaniu na drukarce, dodatkowo utworzyć plik i zapisać
do archiwum, to należy użyć wydruku kaskadowego ţInnyWydruk{} do utworzenia pliku
i urządzenie: Polecenie, aby skopiować plik do katalogu archiwum.
Dodatkowe uwarunkowania:
* W urządzeniu: Plik, należy wybrać: nadawanie nazwy przez program
Jeżeli nazwa jest wpisana przez operatora, to nie będzie zmieniona
* Nazwa pliku powinna być unikalna. Jeżeli plik o podanej nazwie już jest,
to może zostać nadpisany
* Znaki zabronione w nazwie pliku będą zastąpione znakiem '-'
* Jeżeli nie będzie rozszerzenia pliku [ext], to ustali rozszerzenie
wg użytego urządzeniem wyjściowego
* Przy wydruku na drukarkę, ekran itd. funkcja ţNazwijPlik{} jest ignorowana
Przykład zamieszczono w dokumentacji: Trawers_Wzorce.pdf
[***] Nadpisz plik - ţA04{} lista
Funkcja ţNadpiszPlik{} nadpisuje istniejący plik (bez pytania).
[***] Marginesy - ţMarginesy{[górny];[dolny];[lewy];[prawy]} lista[***] ţ98{[górny];[dolny];[lewy];[prawy]} lista
Przykłady: ţMarginesy{10;15;10}
Działanie: Ustala nowe marginesy strony
Parametry:
górny - margines górny
dolny - margines dolny
lewy - margines lewy
prawy - margines prawy (tylko Win32, CUPS, PDF)
Ustala marginesy strony.
Lewy margines określa domyślną niezadrukowaną szerokość od lewej
krawędzi strony.
Górny wyznacza odległość od górnej krawędzi kartki od której będzie
umieszczany tekst na nowej stronie.
Dolny określa odległość od dolnej krawędzi kartki po dotarciu
do której program przejdzie do nowej strony.
Zaleca się użycie tego znaku na początku każdego wzorca graficznego
[***] Komentarz - ţ99{[komentarz]} lista[***] t#{[komentarz]} lista[***] t# [komentarz] lista
Przykłady: ţ#{Nagłówek strony}
sMs ţ# komentarz liniowy
Działanie: Wstawia komentarz
Parametry:
* komentarz
Umieszcza niedrukowany tekst wewnątrz wzorca.
Komentarz liniowy t# traktuje wszystkie znaki do końca linii oraz
spacje przed nim jako tekst do pominięcia.
Przykład:
Tţ{
T Rumia ţ# miejscowość
T Targowa ţ# ulica
T}
Powyższy zapis spowoduje wydruk:
Rumia Targowa
Spacje po słowie Rumia i treść komentarza nie zostaną wydrukowane.
Komentarz może być też całoliniowy. Służy do tego typ linii [#]
Linie typu [#] są całkowicie pomijane podczas wydruku.
Oznacza to, że:
- linia [#] nie jest drukowana. Kursor nie jest przesuwany
- linia [#] nie jest analizowana. Funkcje nie są przetwarzane
Przykład:
T Linia 1 >>>ţ#{Nagłówek strony}ţA={100}ţ#{Zainicjuj rejestr A}<<<
# Ta linia nie pojawi się na wydruku
# ţA={500} tu rejestr nie zostanie zainicjowany
T Linia 2
Powyższa sekwencja spowoduje wydruk:
Linia 1 >>><<<
Linia 2
oraz zainicjowanie rejestru A wartością 100
[***] Opóźniona analiza - ţA02{tekst} lista
Przykłady: ţRejestr={AAA}
ţTabela[]{ţRejestr}
Program wpisze do tabeli AAA
ţRejestr={BBB}
ţTabela[] -> na wydruku AAA
ţRejestr={AAA}
ţTabela[]{ţA02{ţRejestr}}
Program wpisze do tabeli wyrażenie ţRejestrţRejestr={BBB}
ţTabela[] -> na wydruku BBB
ţFormatDaty{123.45;ţA02{ţUsuńSpacjezLewej{GGGGGG godz}}}
Działanie: Odkłada analizę składniową na późniejszy etap
Parametry:
* tekst - wyrażenie z funkcjami
ţA02 pozwala przekazać jako parametr wyrażenie z funkcjami,
które w innym przypadku zostałyby przetworzone przed przekazaniem.
[***] Nie wykorzystane A03 lista[***] ţInc{rejestr[;format]} lista
Dodaje 1 do wskazanego rejestru i drukuje.
Rejestr jest jednorazowo inicjowany przy pierwszym wywołaniu funkcji.
Można np. użyć w linii [P] do numerowania pozycji:
ţInc{Lp}
[***] ţProcent{X;Y} lista
Oblicza procent
ţProcent{ţX;ţY} zwróci (ţX / ţY) * 100 [%]
ţProcent{1;5} zwróci 20.00 [%]
ţProcent{5;1} zwróci 500.00 [%]
[***] ţDekret{ţZawiń{ş----DEKRET----ş;78em}} lista
Formatuje wydruk pieczątki dekretacyjnej
umożliwia wydruk dowolną czcionką np. Arial
ţDekret{ţZawiń{ş----DEKRET----ş;78em}}
[***] ţSuma{rejestr;wartość[;format]} lista
Dodaje wartość do wskazanego rejestru
ţSuma{Razem;ş-Ilosc wydana-ş}
ţRazem[***] ţHttpGetParam{nazwa ţ...[];adres URL} lista
Zapisuje w wierszach tabeli ţ...[]
parametry przekazane w formacie HTTP GET
ţHttpGetParam{Parametry;http://maps.google.pl/?ll=54.518877,18.543476&t=m&z=19}
ţParametry[ll] -> 54.518877,18.543476
ţParametry[t] -> m
ţParametry[z] -> 19
[***] ţRegex{wyrażenie reg;część;tekst} lista
Zwraca fragment tekstu odpowiadający wyrażeniu regularnemu
Dodatkowo pozwala na wskazanie części tekstu wyrażenia,
który będzie zwrócony
ţRegex{\[TR:SI([^\]]+)\];2;Proszę o fakturę [TR:SI?nr=F0001/10/13]}
Zwróci fragment odpowiadający części wyznaczonej nawiasami (): ?nr=F0001/10/13
Poszczególne części przyjmą wartości:
1 -> [TR:SI?nr=F0001/10/13]
2 -> ?nr=F0001/10/13
[***] ţTabelaWrejestr{tabela ţ...[];separator} lista[***] ţ62->70{tabela ţ...[];separator} lista
Przepisuje wiersze tabeli ţ...[] do rejestru ţ...
Pozwala wydrukować zawartość tabeli w jednej linii.
Pierwszy parametr to nazwa tabeli i jednocześnie nazwa rejestru
do którego będzie przepisana tabela.
Drugi parametr to separator, użyty do oddzielenia poszczególnych wierszy.
Przykład:
ţTabelaWrejestr{Zamowienia;, }
ţZamowienia
Jeżeli tabela 'Zamowienia' zawiera:
ZA0001/01/13
ZA0002/01/13
ZA0003/01/13
to program zapisze w rejestrze 'Zamowienia':
ZA0001/01/13, ZA0002/01/13, ZA0003/01/13
[***] ţUsuń{znaki do usunięcia;tekst} lista
Usuwa znaki z tekstu
Pozwala usunąć zbędne znaki, cyfry i litery z tekstu.
ţUsuń{ -;s--NIP--s} -> NIP bez kresek i spacji
ţUsuń{ -;123-45-6789-0} -> 1234567890
ţUsuń{"';s--nazwa--s} -> nazwa bez apostrofów i cudzysłowów
ţUsuń{,. ;s--ilosc--s} -> ilość bez kropek,przecinków i spacji
ţUsuń{,. ; 123,456.78} -> 12345678
[***] ţZastąp{szukany ciąg;wstawiany ciąg;tekst} lista
Szuka i zamienia fragmenty tekstu
Pozwala usunąć lub zamienić literę lub ciąg znaków w tekście.
Pierwszy parametr to szukany znak, litera lub wyraz.
Drugi parametr to wyraz którym zostanie zastąpiony znaleziony.
Wyraz szukany i wstawiany mogą różnić się długością.
Trzeci parametr to przeszukiwany tekst lub pole dla wzorca.
ţZastąp{.;,;ţ64{s--ilosc--s;9 999.99}} -> 1 234,56
ţZastąp{.;;ţ64{s--ilosc--s;9999.99}} -> 123456
ţZastąp{szt;each;şJmsş} kg -> kg
szt -> each
[***] ţCenaSpr{p1;[p2];[p3];[p4];[p5];[p6];[p7];[p8];[p9];[p10]} lista[***] ţCenaZak{p1;[p2];[p3];[p4];[p5];[p6];[p7];[p8];[p9];[p10]} lista
Wstawia cenę z cennika sprzedaży w MI
Wstawia cenę z cennika zakupu w ZA
p1 - Indeks KIM
p2 - nr ceny: 1,2,3,4,5,6 (domyślnie: 1)
p3 - typ cennika: 60,50,40,30,25,20,10
Gdy p3 jest pusty to zwraca aktualną cenę asortymentu
Cenniki sprzedażyCenniki zakupu
p4 - magazyn, np. 01
p5 - waluta, np: EUR (domyślnie: PLN)
p6 - grupa kontrahenta, np. 00
p7 - symbol kontrahenta, np. 000001
p8 - symbol adresu wysyłkowego, np. AD0001
p9 - data, np. 2015-05-22 (domyślnie: dziś)
p10- godzina, np. 12:45 (domyślnie: teraz)
Przykłady:
ţCenaSpr{sIndeks towaru s;4;60}
--> cena 4 z cennika PLN katalogowego
ţCenaSpr{sIndeks towaru s;2;60;;EUR}
--> cena 2 z cennika EUR katalogowego
ţCenaSpr{sIndeks towaru s;1;50,01}
--> cena 1 z cennika PLN dla mag 01
ţCenaSpr{sIndeks towaru s;3;30;;;;şOdb.ş}
--> cena 3 z cennika PLN kontraktowego
ţCenaZak{sIndeks towaru s;5;60}
--> cena 5 z cennika zakupu PLN katalogowego
[***] ţKontakt{p1;p2;[p3];[p4];[p5];[p6];[p7];[p8];[p9];[p10]...[p24]} lista
Zapisuje planowany kontakt w terminarzu RK
[***] ţKontaktOK{p2;[p3];[p4];[p10]...[p24]} lista
Zapisuje wykonanie kontaktu (zdarzenia) z rezultatem: OK
Można wykorzystać do zaplanowania kontaktu z klientem
np. zaplanować wykonanie telefonu po wysłaniu lub przygotowaniu oferty
Można też użyć do odnotowania kontaktu z klientem
np. po wysłaniu dokumentu do przedstawiciela handlowego można zapisać
kontakt w powiązaniu z klientem, którym opiekuje się ten przedstawiciel
Kontakt może być zakończony lub planowany we wskazanym dniu i godzinie.
Kontakt zostanie zapisany po poprawnym zakończeniu wydruku.
Jeżeli wydruk zostanie przerwany, to kontakt nie zostanie zapisany.
ţKontakt{p1;p2;[p3];[p4];[p5];[p6];[p7];[p8];[p9];[p10]...[p24]}
ţKontaktOK{p2;[p3];[p4];[p10]...[p24]}
p1 - jedna z wartości: O,NA,D,ZO
O,NA - odbiorca
D,ZO - dostawca
p2 - symbol kontrahenta, np. 000001
p3 - symbol kontaktu (domyślnie: pusty)
p4 - nazwa kontaktu (domyślnie: pusty)
p5 - symbol operatora (domyślnie: zalogowany)
p6 - data i czas, np. 2016.10.12 11:00 (domyślnie: teraz)
p7 - symbol celu (domyślnie: pusty)
p8 - symbol rezultatu (domyślnie: pusty)
Gdy p8 jest pusty to kontakt zostanie pokazany na liście
planowanych kontaktów
p9 - opis rezultatu (domyślnie: pusty)
p10-p24 - linie opisu (domyślnie: puste)
[***] ţRekord{zbiór;klucz indeksu 1;[nazwa ţ...[]];[rok/data];[mc];[sfirmy]} lista
Pobiera rekord z bazy danych do tabeli ţ...[]
Pozwala wydrukować wartość pola, które jest w bazie danych a nie ma
w tabeli pól dla wzorców. Podczas drukowania program sięga bezpośrednio
do wskazanego rekordu w zbiorze i pobiera wartość pola (pól)
Parametry:
zbiór - symbol zbioru (Słownik danych - opisy zbiorów)
indeks 1 - wartość dla Indeks 1 (Słownik danych - opisy zbiorów)
Program wyszuka pierwszy zgodny rekord
np. zbiór 245 Indeks1 upper(ident+symbol+symop+idrola)
Wartość parametru dla rodzaju opakowania becz: EBECZ
Wielkość liter nie ma znaczenia.
nazwa ţ...[]- nazwa tabeli do której zostaną wpisane pola
(domyślnie pusta [])
rok/data - wymagany dla zbiorów okresowych
Można podać rok obliczeniowy lub datę dokumentu
mc - wymagany dla zbiorów okresowych miesięcznych
Można pominąć jeżeli podano datę dokumentu
sfirmy - symbol firmy (domyślnie firma bieżąca)
Przykłady:
ţRekord{229;sIndeks towaru s;KIM}
--> wczytanie karty indeksu do ţKIM[]ţKIM[OPAKOWAN] --> wydruk symbolu opakowania
ţRekord{245;EţKIM[OPAKOWAN];Opakowanie}
--> wczytanie rekordu z Tab mag, grup, Jm MG
ţOpakowanie[NAZWA] --> wydruk nazwy opakowania
ţOpakowanie[WART1] --> wydruk wagi opakowania
ţRekord{402;sSymbol Q12s;TabelaQ12}
--> wczytanie nazwy symbolu Q12
ţTabelaQ12[nazwa]}
--> wydruk nazwy
[***] ţKIM{indeks[;nazwa ţ...[]]} lista
Pobiera kartę z KIM do tabeli ţ...[]
Przykłady:
1. Wymiary z karty KIM
ţKIM{sIndeks towaru s;KIM}
ţKIM[Wysok] x ţKIM[Szero] --> wydruk wymiarów
2. Ile potrzeba palet ?
ţKIM{şWy-Indeks tow ş;KIM}
ţPalet={ţ={şWy Ilosc ---ş * ţKIM[WSSPRZ] / ţKIM[PLILOSC]}}
ţPalet={ţ>L{ţPalet;ţFormat{ţPalet;99};ţ={ţPalet +1;99};ţFormat{ţPalet;99}}
Ilość na palecie: ţKIM[PLILOSC]ţKIM[JM]
Potrzeba palet : ţPalet[***] ţKSOM{magazyn;indeks[;nazwa ţ...[]]} lista
Pobiera kartę z KSOM do tabeli ţ...[]
Przykład:
ţKSOM{10;sIndeks towaru s;Ksom}
ţKsom[milosc] --> ilość w magazynie 10
[***] ţOdbiorca{symbol[;nazwa ţ...[]]} lista[***] ţDostawca{symbol[;nazwa ţ...[]]} lista
Pobiera kartę kontrahenta do tabeli ţ...[]ţOdbiorca{symbol[;nazwa ţ...[]]}
Przykład:
ţOdbiorca{sPla.s;Płatnik}
ţPłatnik[ODODNUME] -> Wyróżnik - zakładka dane finansowe
[***] ţGrupa{symbol[;nazwa ţ...[]]} lista
Pobiera kartę grupy towarowej
Przykład:
ţGrupa{sQs;Grupa}
ţGrupa[nazwa] --> nazwa grupy towarowej
[***] ţJm{symbol[;nazwa ţ...[]]} lista
Pobiera jednostkę zapasu (magazynowania)
Przykład:
ţJm{szt;Jm}
ţJm[nazwa] --> nazwa jednostki
[***] ţOpak{symbol[;nazwa ţ...[]]} lista
Pobiera jednostkę opakowania
Przykład:
ţOpak{becz;Opakowanie}
ţOpakowanie[nazwa] --> nazwa opakowania o symbolu becz
[***] ţGmina{symbol[;nazwa ţ...[]]} lista[***] ţPowiat{symbol[;nazwa ţ...[]]} lista[***] ţWojewództwo{symbol[;nazwa ţ...[]]} lista
Pobiera pozycję z tabeli jednostek terytorialnych
Przykład:
ţWojewództwo{16;Woj}
ţWoj[nazwa] --> nazwa województwa 16
[***] ţNazwaKraju{symbol} lista
Zwraca nazwę kraju dla podanego symbolu
Przykład:
ţNazwaKraju{PL} --> Polska
ţNazwaKraju{DE} --> Niemcy
ţNazwaKraju{şHş} --> nazwa kraju nabywcy
[***] ţSłownie{wartość[;waluta[;język]]} lista
Zwraca wartość wyrażoną słownie w podanym języku
Dostępne języki to PL, EN i DE
Przykłady:
ţSłownie{şPozycja-nettoş}
ţSłownie{şPozycja-netto wlş;şcWaş}
ţSłownie{şPozycja-netto wlş;şcWaş;EN}
ţSłownie{şPozycja-netto wlş;şcWaş;ş+ş}
ţSłownie{şPozycja-nettoş;PLN;ş+ş}
ţZawiń{ţSłownie{şPozycja-nettoş};60em}
NOTE: Długi tekst [słownie] można podzielić na wiersze: ţZawiń{}
[***] ţCRLF{tekst1[;tekst2[;teskt3...]]} lista
Rozdziela tekst znakami nowego wiersza [CRLF]
Przykłady:
ţZawiń{ţCRLF{şImieş;şNazwiskoş};}
ţQR{ţCRLF{BEGIN:VCARD;FN:ş-Firma-nazwa-ş;TEL:şFirma-tel.1ş;END:VCARD};;}
Występuje też w postaci rejestru ţCRLFţZawiń{şImieşţCRLFşNazwiskoş;30em}
[***] ţFor{X;Y;Z;tekst} lista
Realizuje pętlę programową: for i = X to Y step Z
Aktualny stan [i] zapisuje w rejestrze ţFOR
Przykłady:
ţFor{5;14;3; ţFOR} -> 5 8 11 14
ţFor{14;5;-3; ţFOR} -> 14 11 8 5
[***] ţWhile{warunek;tekst} lista
Realizuje pętlę programową: while !empty(war()) ...
Przykłady:
ţI={0}
ţWhile{ţ<L{ţInc{I};4;;T};ţI} -> 1 2 3
---------------- --
war I < 4 tekst
[***] ţPowtórzDopóki{warunek;tekst} lista
Realizuje pętlę programową: while war() ...
Przykład:
ţLp={0}
ţPowtórzDopóki{ţInc{Lp} < 4; ţLp} -> 1 2 3
------------- ---
war Lp < 4 tekst
[***] ţUntil{tekst;warunek} lista
Realizuje pętlę programową: do ... until !empty(war())
Przykłady:
ţI={0}
ţUntil{ţI;ţ<L{ţInc{I};4;;T}} -> 1 2 3 4
-- ----------------
tekst war I < 4
[***] ţPowtórzJeżeli{warunek;tekst} lista
Realizuje pętlę programową: do ... until war()
Przykład:
ţPowtórzJeżeli{ţWartość > 5; ţOkno{Wybór;Proszę podać wartość <= 5}}
ţLp={0}
ţPowtórzJeżeli{ţInc{Lp} < 4; ţLp} -> 0 1 2 3
ţPowtórzJeżeli{ţLp < 4; ţInc{Lp}} -> 1 2 3 4
------------- ---
war Lp < 4 tekst
[***] ţPrzerwijPowtarzanielista
Zatrzymuje kolejne iteracje pętli programowej
Przykład:
ţPowtórzDopóki{ţInc{Lp} < 4; ţPrzerwijPowtarzanieţLp} -> 1
------------- ---
war Lp < 4 tekst
[***] ţIndeks1{zbiór;[nr indeksu];[fraza];[nazwa ţ...[]];[rok];[mc];[sfirmy]} lista
Pobiera wartości klucza indeksowego z bazy danych do tabeli: ţ...[]
Łącznie z ţRekord{} pozwala wydrukować wiele rekordów z bazy danych,
np. komponenty zestawu z kartoteki zestawów sprzedażnych.
Parametry:
zbiór - symbol zbioru (Słownik danych - opisy zbiorów)
nr indeksu - nr przeszukiwanego indeksu (Słownik danych - opisy zbiorów)
(domyślnie: 1)
fraza - szukana wartość klucza indeksowego
Program wyszuka rekordy, których wartości klucza indeksowego
rozpoczynają się od podanej frazy.
Wielkość liter nie ma znaczenia.
np. W zbiorze 245 indeks 1 ma postać: upper(ident+symbol+symop+idrola)
Wartości kluczy indeksowe mogą być następujące:
G01 AAR1
G02 AAR1
EBECZ
EOPAK
M01
M02
Aby wybrać rekordy dotyczące opakowań należy podać parametr fraza: E
nazwa ţ...[] - nazwa tabeli, do której zostaną wpisane klucze
(domyślnie: TR_INDEKS1)
rok/data - wymagany dla zbiorów okresowych miesięcznych i rocznych
Można podać rok obliczeniowy lub datę dokumentu
mc - wymagany dla zbiorów okresowych miesięcznych
Można pominąć jeżeli podano datę dokumentu
sfirmy - symbol firmy (domyślnie firma bieżąca)
Przykład 1: wydruk nazw komponentów
P ţIndeks1{370;;sIndeks towaru s;Zestaw}
# wczytanie wartości kluczy zestawu sprzedażnego podanego indeksu
# do tabeli ţZestaw[]
P ţRekord{370;ţZestaw[];Pozycja}ţKIM{ţPozycja[COMPONEN];Komponent}ţKomponent[INAZWA]
# wczytanie pól komponentu z KIM do ţKomponenţ...[]
# i wydruk nazwy komponentu
NOTE: Pobranie wartości przez ţRekord{} i ich wydruk musi być zapisany
w jednym wierszu.
Dla zwiększenia czytelności można użyć ţA02{} i zapisu wieloliniowego
stosując ţA02{}
P ţA02{
P ţRekord{370;ţZestaw[];Pozycja}
P ţKIM{ţPozycja[COMPONEN];Komponent}
P ţKomponent[INAZWA]
P }
[***] ţIndeks1Reg{zbiór;[nr indeksu];[regex];[nazwa ţ...[]];[rok];[mc];[sfirmy]} lista
Pobiera wartości klucza indeksowego 1 z bazy danych do tabeli: ţ...[]
Do wyszukania rekordów pobiera wyrażenie regularne.
Parametry:
zbiór - symbol zbioru (Słownik danych - opisy zbiorów)
nr indeksu - nr przeszukiwanego indeksu (Słownik danych - opisy zbiorów)
regex - wartość dla Indeks w formie wyrażenia regularnego
Program wyszuka rekordy, których wartości indeksu [nr indeksu]
rozpoczynają się od podanej wartości
np. zbiór 245 Indeks 1 upper(ident+symbol+symop+idrola)
Wartość parametru dla rodzajów opakowań: E
Wielkość liter nie ma znaczenia.
W celu znalezienia rekordów zawierających tekst trzeba
wyrażenie rozpocząć od .*
nazwa ţ...[] - nazwa tabeli do której zostaną wpisane pola
(domyślnie TR_INDEKS1)
rok - wymagany dla zbiorów okresowych
mc - wymagany dla zbiorów okresowych miesięcznych
sfirmy - symbol firmy (domyślnie firma bieżąca)
Przykłady:
Odszukanie i wydrukowanie zestawów sprzedażnych w których występuje indeks
PţIndeks1Reg{370;;.{16}ţDoRegex{sIndeks towaru s};Zestawy}
--> wczytanie wartości kluczy zestawów sprzedażnych do ţZestawy[]
PţRekord{370;ţZestawy[];Pozycja}ţKIM{ţPozycja[SALESKIT];Zestaw}
--> wczytanie pól zestawu z KIM do ţZestaw[]ţZestaw[INAZWA] --> wydruk nazwy zestawu
[***] ţDoRegex{tekst1;tekst2;tekst3;.... } lista
Przekształca tekst na wyrażenie regularne
Przykłady:
ţDoRegex{ZESTAW-SPRZEDAZNY} -> ZESTAW\-SPRZEDAZNY
ţDoRegex{s--- indeks ---s}
ţDoRegex{ţNazwa;ţMiasto} -> Tres.*Gdynia
[***] ţCSV{linia CSV;nazwa ţ...[]} lista
Pobiera pola linii CSV do tabeli ţ...[]
[;] Separator pól
["] Ogranicznik tekstu
Przykłady:
ţCSV{ţTreśćPliku{plik.csv;};CSV} ţCSV[1]ţCSV[2]ţCSV[3] ...
Aby zmienić separator pól lub ogranicznik tekstu:
ţCSV_REGX={ţZastąp{ţ{;};,;ţCSV_REGX}}
ţCSV_REGX={ţZastąp{";';ţCSV_REGX}}
Rejestr ţCSV_I zawiera odczytaną ilość pól
Kolejne pola można wybierać przez pozycje: ţCSV[1]ţCSV[2][***] ţRaport{symbol;[format];[nazwa pliku];[katalog];[formatCSV]} lista
Wykonuje RaportyXML i utworzony raport eksportuje do pliku.
Zwraca ścieżkę do utworzonego pliku z raportem.
symbol - symbol raportu
format - DBF, CSV, XML (domyślnie wg definicji)
nazwa pliku - ? - unikalna (domyślnie wg definicji)
katalog - (domyślnie wg definicji)
format CSV - tylko dla CSV (domyślnie 0)
0 - Excel PL, Calc
1 - ist@t2
9 - Trawers
Przykłady:
ţRaport{MG0001}
ţRaport{ISTAT2;;;;1}
[***] ţRaportCSV{symbol raportu} lista
Eksportuje RaportyXML w formacie CSV do katalogu trtemp\
Tak utworzony plik można wczytać ţTreśćPliku{} i dalej przetwarzać
w treści alertu lub wydruku.
Przykład:
ţPlik_z_raportem={ţRaportCSV{MG0001}}
ţTreśćPliku{ţPlik_z_raportem}
ţCSV{ţTreśćPliku{ţPlik_z_raportem};CSV} ţCSV[1]ţCSV[4][***] ţAlert{symbol[;powtórz po N dni]} lista
Wykonuje alert z Tabeli Alertów
symbol - symbol alertu
powtórz po dni- po ilu dniach ponownie ująć (domyślnie wg definicji)
już raportowane rekordy
- powtórzy zgodnie z definicją alertu
N - bez powtarzania
T - ponownie ujmie już raportowane rekordy
0 - ponownie ujmie już raportowane rekordy
14 - ponownie ujmie rekody raportowane przed 14 dniami
0.5 - ponownie ujmie rekody raportowane przed 12 godzinami
0.003472 - ponownie ujmie rekody raportowane przed 5 minutami
Przykłady:
ţAlert{AL0001}
ţAlert{AL0001;14}
ţAlert{AL0001;0}
ţAlert{AL0001;T}
ţAlert{AL0001;N}
Alerty i raportowanie[***] ţUruchom{program[;dane wejściowe]} lista
Uruchamia program i zwraca dane wyjściowe (stdout)
program - nazwa programu lub polecenia
dane wejściowe - dane do standardowego strumienia wejścia (stdin)
Przykłady:
ţUruchom{md5sum;Trawers}
ţUruchom{CenaTransportu.bat "ţŁącznaWaga " "ţMaxWymiar "}
ţUruchom{sh -c "ulimit -Sn"}
ţZawiń{ţUruchom{ls}}
ţZawiń{ţUruchom{dir}}
ţUruchom{evince}
ţUruchom{xterm mc}
ţDummy={ţUruchom{Skrypt.sh}} Zwrócono -> ţErrorLevel
Program umieszcza zwrócony kod statusu wyjścia (en: exit status)
w rejestrze ţErrorLevel
W sytuacji gdy wykonywany program nie zwróci nic przez standardowe wyjście
i jednocześnie zakończy pracę ustawiając kod wyjścia różny od 0 to na
wydruku pojawi się informacja o błędzie:
!!! ErrorLevel = NNN
Informację o błędzie można ukryć wpisując wynik do dowolnego rejestru:
ţWersja={ţUruchom{p7zip --version}}
ţ>0{ţErrorLevel; ţKomunikat{Proszę zainstalować 7zip} ţPrzerwij}
[***] ţIle{tekst[;szukany ciąg]} lista
Zwraca liczbę znaków w tekście albo ilość wystąpień ciągu
ţIle{tekst[;szukany ciąg]}
ţIle{Trawers} -> 7
ţIle{Trawers;r} -> 2
ţIle{s--pole memo--s;ţCRLF}
[***] ţIleReg{tekst;regex} lista
Zwraca liczbę ciągów zgodnych z wyrażeniem regularnym
ţIle{Trawers;r} -> 2
ţIle{ţWydruk;^.*Żarówka.*led.*$}
[***] ţIleWierszy{nazwa ţ...[]} lista
Zwraca liczbę pozycji w tabeli ţ...[][***] ţDzieńTygodnia{[data]} lista
Zwraca nr kolejny dnia tygodnia dla podanej daty
Jeżeli nie podano daty, to zwraca aktualny dzień tygodnia
ţDzieńTygodnia{şData wş}
ţDzieńTygodnia{}
[***] ţDzieńMiesiąca{[data]} lista
Zwraca nr dnia w miesiącu dla podanej daty
Jeżeli nie podano daty, to zwraca aktualny dzień
ţDzieńMiesiąca{şData wş}
ţDzieńMiesiąca{}
[***] ţMiesiącRoku{[data]} lista
Zwraca nr kolejny miesiąca w roku dla podanej daty
Jeżeli nie podano daty, to zwraca aktualny miesiąc
ţMiesiącRoku{şData wş}
ţMiesiącRoku{}
[***] ţDzieńRoku{[data]} lista
Zwraca nr kolejny dnia w roku dla podanej daty
Jeżeli nie podano daty, to zwraca aktualny dzień w roku
ţDzieńRoku{şData wş}
ţDzieńRoku{}
[***] ţTydzień{[data]} lista
Zwraca nr tygodnia w roku dla podanej daty
Jeżeli nie podano daty, to zwraca nr aktualnego tygodnia
ţTydzień{şData wş}
ţTydzień{}
[***] ţEmailTemat{[temat]} lista
Zmienia temat wysyłanego e-maila (tylko urządzenie rodzaju: [Email])
Przykłady:
ţEmailTemat{Faktura VAT nr şNr dokum. ş}
ţEmailTemat{ } -> usunięcie tematu; program zapyta o temat
ţEmailTemat{} -> zwróci temat
[***] ţEmailDo{[e-mail]} lista
Zmienia adres e-mail adresata (tylko urządzenie rodzaju: [Email])
Przykłady:
ţEmailDo{biuro@domena7.pl}
ţEmailDo{ţOsoba[KOEMAIL]}
ţEmailDo{ } -> usunięcie adresu; program zapyta o nowy adres
ţEmailDo{} -> zwróci e-mail adresata
[***] ţEmailEdycja{T/N} lista
Zmienia parametr: Edytuj przed wysyłką (tylko urządzenie rodzaju: [Email])
Przykłady:
ţEmailEdycja{T}
ţEmailEdycja{N}
ţEmailEdycja{Tak}
ţEmailEdycja{Nie}
ţEmailEdycja{} -> zwróci wartość parametru T/N
[***] ţEmailSkrzynka{[symbol skrzynki pocztowej]} lista
Zmienia parametr: Skrzynka nadawcza (tylko urządzenie rodzaju: [Email])
Przykłady:
ţEmailSkrzynka{BI}
ţEmailSkrzynka{} -> zwróci wartość parametru
Operator wysyłający wydruk e-mailem musi mieć uprawnienia do skrzynki
[***] ţEmailOdbiorca{[symbol odbiorcy]} lista[***] ţEmailDostawca{[symbol dostawcy]} lista[***] ţEmailPracownik{[symbol pracownika]} lista
Wiąże wysyłany e-mail z kontrahentem (tylko urządzenie rodzaju: [Email])
Przykłady:
ţEmailOdbiorca{sPla.s} -> powiązanie z sPla.s
ţEmailOdbiorca{ } -> usunięcie powiązania
ţEmailOdbiorca{} -> odczyt aktualnego powiązania
[***] ţEmailSystem{} lista
Zwraca symbol systemu z kartą kontrahenta NA,ZO,PL (tylko urządzenie rodzaju: [Email])
Przykłady:
ţEmailSystem{} -> NA
Tylko odczyt wartości parametru.
Zmiana funkcjami ţEmailOdbiorca, ţEmailDostawca, ţEmailPracownik[***] ţEmailOznacz{skrzynka;UID;[operator]} lista
Oznacza e-mail symbolem operatora
skrzynki - symbol skrzynki pocztowej
UID - identyfikator e-maila w bazie danych
operator - symbol operatora (domyślnie bieżący)
Przykłady:
ţEmailOznacz{BI;ţEmail[UID];} -> bieżący operator
ţEmailOznacz{BI;ţEmail[UID];AA}
ţEmailOznacz{BI;ţEmail[UID]; } -> usunięcie oznaczenia
Nie można użyć na aktualnie wysyłanym e-mail
[***] ţEmailPrzenieś{skrzynka;UID;folder} lista
Przenosi e-mail do innego folderu
skrzynka - symbol skrzynki pocztowej
UID - identyfikator e-maila w bazie danych
folder - symbol lub nazwa folderu
Przykłady:
ţEmailPrzenieś{BI;ţEmail[UID];04} -> przenieś do Kosz
ţEmailPrzenieś{BI;ţEmail[UID];Odrzucone} -> przenieś do Odrzucone
Operator musi mieć uprawnienia do skrzynki
Nie można użyć na aktualnie wysyłanym e-mail ponieważ jeszcze
nie jest zapisany
[***] ţPolecenieParametr{nazwa parametru;wartość} lista
Parametr wywołania polecenia systemu operacyjnego (tylko urządzenie rodzaju: [Polecenie])
Przykład przeniesienia pliku z wydrukiem do katalogu odbiorcy:
ţPolecenieParametr{katalog_odbiorcy; W:\archiwum\zamówienia\s--odbdost--s\}
Polecenie:
MOVE /Y &zbior& &katalog_odbiorcy&
lub z położeniem katalogu zapisanym w urządzeniu:
ţPolecenieParametr{odbiorca;s--odbdost--s}
Polecenie:
MOVE /Y &zbior& W:\archiwum\zamówienia\&odbiorca&\
Przykład wywołania procesu odebrania nowej poczty e-mail:
ţPolecenieParametr{operator;AA}
ţPolecenieParametr{firma;MT}
ţPolecenieParametr{proces;RK_PEM12}
Polecenie:
tr5x64.exe --operator=&operator& --firma=&firma& --proces=&proces&
Można przekazać wiele parametrów w jednym:
ţPolecenieParametr{parametry;--operator=AA --firma=MT --proces=RK_PEM12}
Polecenie:
tr5w64.exe ¶metry&
[***] ţTTS{tekst;par1;par2} lista
Odczytuje tekst na głos
tekst - tekst do odczytania
par1 - dodatkowy (domyślnie język operatora)
par2 - dodatkowy (domyślnie symbol operatora)
Przykłady:
ţTTS{Kwota do zapłaty s--brutto--s zł}
ţTTS{Awaria maszyny ţMaszyna;PL;Jacek
ţKomunikat{Awaria maszyny @MASZYNA
ţA02{ţTTS{Awaria maszyny @MASZYNA}};
AA;7}
Parametry par1 i par2 zostaną przekazane do skryptu: tr-powiedz i mogą
być wykorzystane do konfiguracji syntezatora, np. wybór języka.
Operator musi mieć wybraną i skonfugurowaną metodę połączenia TTS
Synteza mowy TTS Text-To-Speech[***] ţSOA{soap} lista
Wykonuje funkcję SOA
soap - funkcja SOA lub komunikat soap do wykonania
Przykłady:
ţZawiń{ţSOA{About};}
ţSOA{<Envelope><Header/><Body><About/></Body></Envelope>}
ţSOA{
<Customers>
<changeSince>ţRóżnicaDat{ţDataSys;7;RRRR-MM-DD}</changeSince>
</Customers>}
Parametr soap może być w formacie SOAP lub zawierać tylko część <Body>.
Funkcje nie wymagające parametrów można wywołać podając tylko nazwę.
NOTE: funkcje SOA można także wywoływać w alertach.
Alerty i raportowanie. Opisy
Przykład wywołania w alercie jest w opisie funkcji [SetARStatus]
SOA Funkcje OutBound i InBound[***] ţDoXml{tekst} lista
Konwertuje znaki &<>" do postaci stosowanej w XML
tekst - tekst do zapisu w XML
Przykłady:
ţDoXml{ A < B } --> A lt; B
ţSOA{<OrderNew>
<CustomerKey>ţDoXML{s--odbiorca--s}</CustomerKey>
<ProductKey>ţDoXML{s---indeks---s}</ProductKey>
</OrderNew>}
[***] ţZałączWydrukPDF{idProces[;p1][;p2][;p3][;...]} lista
Zapisuje wydruk w pliku w formacie PDF i załącza do bieżącego wydruku.
Umożliwia załączenie dodatkowych zestawień lub dokumentów do e-maila
Parametry są identyczne z ţWstawWydruk{}
Przykład:
ţZałączWydrukPDF{NA;FA;KOPIAFAK;şNr dokum. ş}
W odróżnieniu od ţWstawWydruk, tu tworzony jest osobny wydruk podobnie
jak w ţInnyWydruk ale nie jest drukowany tylko załączany jak w ţZałącz.
Pozwala to załączyć do e-maila kilka wydruków zamiast wysyłać
każdy z wydruków osobnym e-mailem.
[***] ţZałączWydrukTxt{idProces[;p1][;p2][;p3][;...]} lista
Zapisuje wydruk w pliku w formacie TXT i załącza do bieżącego wydruku.
Umożliwia załączenie dodatkowych zestawień lub dokumentów do e-maila
Parametry są identyczne z ţWstawWydruk{}
Przykład:
ţZałączWydrukTxt{NA;FA;KOPIAFAK;şNr dokum. ş}
[***] ţZałączWydrukHtml{idProces[;p1][;p2][;p3][;...]} lista
Zapisuje wydruk w pliku w formacie HTML i załącza do bieżącego wydruku.
Umożliwia załączenie dodatkowych zestawień lub dokumentów do e-maila
Parametry są identyczne z ţWstawWydruk
Przykład:
ţZałączWydrukHtml{NA;FA;KOPIAFAK;şNr dokum. ş}
[***] ţZapiszWarchiwum{[nazwa pliku][;katalog]} lista
Zapisuje plik wydruku do e-archiwum.
Program wykona tylko jedną, ostatnią funkcję na wzorcu.
Domyślnie nazwa pliku składa się z okresu obliczeniowego
i identyfikatora dokumentu RefNo. Można podać dowolną inną nazwę,
np. zawierającą symbol operatora, czytelną nazwę rodzaju dokumentu
lub datę i czas wydruku.
Format pliku zależy od rodzaju wybranego urządzenia wyjściowego.
Gdy wydruk skierowany na drukarki, to program zapisze plik w formacie PDF.
Gdy wydruk do pliku, to program zapisze plik o zgodnym formacie.
Rodzaj Format pliku
urządzenia w e-archiwum
----------- ------------
Cups pdf
Win32 pdf
Email PDF pdf
Plik PDF pdf
Plik HTML html
Plik TXT txt
Plik PRN txt
Email zgodnie z formatem treści jw.
Polecenie zgodnie z formatem pliku jw.
NOTE: W wersjach programu bez funkcji zapisu plików PDF program
zapisze plik w formacie TXT.
Plik zostanie zapisany w podkatalogu o nazwie zgodnej z symbolem
systemu wynikającym z RefNo.
Można zmienić katalog, np. zapisać w katalogu innego systemu lub
gromadzić zestawienia w osobnym podkatalogu.
Funkcja podglądu dokumentu w e-archiwum pokaże najnowszy plik, który
w nazwie zawiera RefNo i znajduje się w domyślnym katalogu.
Preferuje pliki z domyślną nazwą.
Pozostałe pliki można przeglądać w funkcji przeglądania e-archiwum.
ţZapiszWarchiwum{[nazwa pliku][;katalog]}
Przykłady:
ţZapiszWarchiwum{}
Zapis wydruku w e-archiwum w domyślnym katalogu z domyślną nazwą
np. Faktura sprzedaży FA0001/10/19
/trarchiwum/ff/na/2019-10-SI-FA0001-10-19.pdf
ţZapiszWarchiwum{;na/şPla.ş}
Zapis wydruków w osobnych podkatalogach dla kontrahentów.
Podgląd pliku nie będzie dostępny w funkcji przeglądania dokumentu
Pliki można oglądać w funkcji przeglądania e-archiwum.
/trarchiwum/ff/na/000001/2019-10-SI-FA0001-10-19.pdf
ţZapiszWarchiwum{ţDataSys - ş- Id dokum. -ş}
Data i czas w nazwie wydruku.
Każde wywołanie wydruku spowoduje zapis nowego pliku w e-archiwum.
Podgląd pliku w funkcji przeglądania dokumentu pokaże najnowszy plik
Pozostałe pliki można oglądać w funkcji przeglądania e-archiwum.
ţZapiszWarchiwum{ş- Id dokum. -ş;na/20ş2ş_ş1ş}
Zapis plików w osobnych podkatalogach dla okresów obliczeniowych.
Pliki można oglądać w funkcji przeglądania e-archiwum.
/trarchiwum/ff/na/2019_10/SI-FA0001-10-19.pdf
RefNo Numery referencyjnee-faktury, e-archiwum[***] ţIlośćZapasu{magazyn;indeks[;Numer partii][;Numer Serii]} lista
Ilość asortymentu, która wg zapisów w programie, znajduje się
w magazynie
Przykład
Łącznie we wszystkich magazynach
ţIlośćZapasu{;şIndeks towaru ş}
KSOM: (ilość w magazynie şMş)
ţIlośćZapasu{şMş;şIndeks towaru ş}
LOT:
ţIlośćZapasu{şMş;şIndeks towaru ş;şNumer partii ş}
SER:
ţIlośćZapasu{şMş;şIndeks towaru ş;;ş------Numer serii------ş}
[***] ţWartośćZapasu{magazyn;indeks[;Numer partii][;Numer Serii]} lista
Wartość pozycji magazynowej
Przykład
Łącznie we wszystkich magazynach
ţWartośćZapasu{;şIndeks towaru ş}
KSOM:
ţWartośćZapasu{şMş;şIndeks towaru ş}
LOT:
ţWartośćZapasu{şMş;şIndeks towaru ş;şNumer partii ş}
SER:
ţWartośćZapasu{şMş;şIndeks towaru ş;;ş------Numer serii------ş}
[***] ţIlośćDostępna{magazyn;indeks[;Numer partii][;Numer Serii]} lista
Ilość dostępna w magazynie
Przykład
Łącznie we wszystkich magazynach
ţIlośćDostępna{;şIndeks towaru ş}
KSOM: Tylko w magazynie şMş
ţIlośćDostępna{şMş;şIndeks towaru ş}
LOT:
ţIlośćDostępna{şMş;şIndeks towaru ş;şNumer partii ş}
SER:
ţIlośćDostępna{şMş;şIndeks towaru ş;;ş------Numer serii------ş}
[***] ţIlośćZarezerwowana{magazyn;indeks[;Numer partii][;Numer Serii]} lista
Ilość, która jest planowana do wydania w przyszłej operacji
rozchodu do sprzedaży lub wydania do produkcji.
Przykład
Łącznie we wszystkich magazynach
ţIlośćZarezerwowana{;şIndeks towaru ş}
KSOM:
ţIlośćZarezerwowana{şMş;şIndeks towaru ş}
LOT:
ţIlośćZarezerwowana{şMş;şIndeks towaru ş;şNumer partii ş}
SER:
ţIlośćZarezerwowana{şMş;şIndeks towaru ş;;ş------Numer serii------ş}
[***] ţTabelarycznie{system;idproces;nazwa pliku;format;nazwa parametrów last user choice} lista
Zapisuje do pliku raport utworzony tabelarycznie
Parametry:
system - System. Dostępne:
NZ
idproces - Idproces funkcji raportu. Dostępne idproces:
NZ_ZDM10
nazwa pliku - Nazwa pliku eksportu (bez rozszerzenia)
format - Format pliku eksportu. Dostępne formaty:
CSV
XLS
nazwa parametrów last user choice - ID Ostatni wybór operatora
Ostatnie wybory operatorów
Przykład
ţTabelarycznie{NZ;NZ_ZDM10;sprzedazwgindeksow;CSV;indeksyogolem}
[***] ţWykonajFunkcje{idproces;nazwa parametrów last user choice} lista
Wykonuje podaną funkcję
Parametry:
idproces - Idproces funkcji. Dostępne idproces:
MI_OC315 Oblicz automatycznie ceny dla cennika: Q_CTYP_60_KATALOGOWY
MI_OC325 Oblicz automatycznie ceny dla cennika: Q_CTYP_50_KATALOGOWY_MAG
MI_OC335 Oblicz automatycznie ceny dla cennika: Q_CTYP_40_GRUPA_KONTRAH
MI_OC345 Oblicz automatycznie ceny dla cennika: Q_CTYP_30_KONTRAKT
MI_OC375 Oblicz automatycznie ceny dla cennika: Q_CTYP_25_KONTRAKT_SHIPTO
MI_OC355 Oblicz automatycznie ceny dla cennika: Q_CTYP_20_PROMOCYJNY
MI_OC365 Oblicz automatycznie ceny dla cennika: Q_CTYP_10_PROMOCYJNY_MAG
nazwa parametrów last user choice - ID Ostatni wybór operatora
Ostatnie wybory operatorów
Przykład
ţWykonajFunkcje{MI_OC315;ParametryDlaCennikaPLN_Netto1}
Obliczy ceny Netto1 w cenniku katalogowym [60]
wg parametrów zapisanych pod nazwą [ParametryDlaCennikaPLN_Netto1]
NOTE: Parametry ustala się w funkcji o podanym IdProces, np. MI_OC315
NOTE: Parametry muszą być zapisane przez operatora wykonującego ţWykonajFunkcje
(np. przez operatora uruchamiającego Alerty w trybie autorun AD_PAL10)
[***] ţMax{arg1[;arg2;...]} lista
Zwraca największą wartość
Przykład:
ţMax{4;2;12;4;7;3} -> 12
ţMax{15.23;5.14} -> 15.23
NOTE: Pusty argument traktowany jest jak 0
ţMax{;-10} -> [ ]
ţMax{-3;-2;;-4;-1} -> [ ]
ţMax{11.10;} -> 11.10
ţMax{1;2;;3;4} -> 4
ţWartośćMax={}
ţWartośćMax={ţMax{s-wartosc-s;ţWartośćMax}}
[***] ţMin{arg1[;arg2;...]} lista
Zwraca najmniejszą wartość
Przykład:
ţMin{4;2;12;4;7;3} -> 2
NOTE: Pusty argument traktowany jest jak 0
ţMin{;10} -> [ ]
ţMin{;3;-2;4;1} -> -2
ţMin{11.10;} -> 11.10
ţMin{4;3;;2;1} -> [ ]
ţWartośćMin={}
ţWartośćMin={ţMin{s-wartosc-s;ţWartośćMin}}
[***] ţWartościKonta{funkcja;konto;rok;miesiąc[;miesiącDo]} lista
Stany i obroty konta w księdze głównej.
Zastosowanie: Zestawienia księgowe wg wzorców:
Zestawienia w KG Księga Główna
Funkcje TrExtLang:
omw - Obroty Wn okresu obliczeniowego
omm - Obroty Ma okresu obliczeniowego
smw - Saldo Wn obrotów okresu obli. (może być < 0)
smm - Saldo Ma obrotów okresu obli. (może być < 0)
zmw - Saldo Wn obrotów okresu obli. (= 0 gdy < 0)
zmm - Saldo Ma obrotów okresu obli. (= 0 gdy < 0)
onw - Obroty Wn narastająco
onm - Obroty Ma narastająco
snw - Saldo Wn obrotów narastająco (może być < 0)
snm - Saldo Ma obrotów narastająco (może być < 0)
znw - Saldo Wn obrotów narastająco (= 0 gdy < 0)
znm - Saldo Ma obrotów narastająco (= 0 gdy < 0)
bow - Bilans Otwarcia Wn roku obliczeniowego
bom - Bilans Otwarcia Ma roku obliczeniowego
sbw - Saldo Wn Bilansu Otwarcia (może być < 0)
sbm - Saldo Ma Bilansu Otwarcia (może być < 0)
zbw - Saldo Wn Bilansu Otwarcia (= 0 gdy < 0)
zbm - Saldo Ma Bilansu Otwarcia (= 0 gdy < 0)
rwn - Obroty Wn roku poprzedniego
rma - Obroty Ma roku poprzedniego
pwn - Obroty Wn roku (planowane)
pma - Obroty Ma roku (planowane)
Odpowiedniki funkcji z modułu KE:
ozw - Obroty Wn zakresu okresów
ozm - Obroty Ma zakresu okresów
szw - Saldo Wn zakresu okresów (może być < 0)
szm - Saldo Ma zakresu okresów (może być < 0)
saw - Suma sald po str. Wn narast. od BO do mca
sam - Suma sald po str. Ma narast. od BO do mca
sww - Saldo sald str. Wn zakresu mc-y - wartość [SsKG(w,Wn)]
sow - Saldo sald str. Wn zakresu mc-y - strona [Wn]/[] [SsKG(o,Wn)]
swm - Saldo sald str. Ma zakresu mc-y - wartość [SsKG(w,Ma)]
som - Saldo sald str. Ma zakresu mc-y - strona [Ma]/[] [SsKG(o,Ma)]
sws - Suma sald zakresu mc-y - wartość [SsKG(w,'')]
sos - Suma sald zakresu mc-y - strona [Wn]/[]/[Ma] [SsKG(o,'')]
dww - Saldo obrotów Wn zakresu mc-y - wartość [SzKG(w,Wn)]
dow - Saldo obrotów Wn zakresu mc-y - strona [Wn]/[] [SzKG(o,Wn)]
dwm - Saldo obrotów Ma zakresu mc-y - wartość [SzKG(w,Ma)]
dom - Saldo obrotów Ma zakresu mc-y - strona [Ma]/[] [SzKG(o,Ma)]
dws - Saldo obrotów zakresu mc-y - wartość [SzKG(w,'')]
dos - Saldo obrotów zakresu mc-y - strona [Wn]/[]/[Ma] [SzKG(o,'')]
Konto można określić z użyciem symboli *,? lub podać zakres kont:
* - zastępuje dowolną liczbę znaków
? - zastępuje dowolny znak
[od-do] - umożliwia podanie zakresu kont
Parametr [miesiąc]
0 = Bilans Otwarcia (dla funkcji z zakresem miesięcy)
01 = miesiąc 01
02 = miesiąc 02, itd..
Parametr [miesiącDo]
Domyślnie przyjmuje wartość parametru [miesiąc]
Tylko dla funkcji z zakresem miesięcy.
Przykłady:
ţomw{700;2020;06}
ţomw{7*;2020;06}
ţomw{70*;2020;06}
ţomw{70[1-5]*;2020;06}
ţomw{701[10-40]*;2020;06}
ţomw{70?[10-40]*;2020;06}
ţsww{70?[10-40]*;2020;0;06} Od B.O. do 06
[***] ţomw{konto;rok;miesiąc} lista
Obroty Wn okresu obliczeniowego
[***] ţomm{konto;rok;miesiąc} lista
Obroty Ma okresu obliczeniowego
[***] ţsmw{konto;rok;miesiąc} lista
Saldo Wn obrotów okresu obli. (może być < 0)
[***] ţsmm{konto;rok;miesiąc} lista
Saldo Ma obrotów okresu obli. (może być < 0)
[***] ţzmw{konto;rok;miesiąc} lista
Saldo Wn obrotów okresu obli. (= 0 gdy < 0)
[***] ţzmm{konto;rok;miesiąc} lista
Saldo Ma obrotów okresu obli. (= 0 gdy < 0)
[***] ţonw{konto;rok;miesiąc} lista
Obroty Wn narastająco
[***] ţonm{konto;rok;miesiąc} lista
Obroty Ma narastająco
[***] ţsnw{konto;rok;miesiąc} lista
Saldo Wn obrotów narastająco (może być < 0)
[***] ţsnm{konto;rok;miesiąc} lista
Saldo Ma obrotów narastająco (może być < 0)
[***] ţznw{konto;rok;miesiąc} lista
Saldo Wn obrotów narastająco (= 0 gdy < 0)
[***] ţznm{konto;rok;miesiąc} lista
Saldo Ma obrotów narastająco (= 0 gdy < 0)
[***] ţbow{konto;rok} lista
Bilans Otwarcia Wn roku obliczeniowego
[***] ţbom{konto;rok} lista
Bilans Otwarcia Ma roku obliczeniowego
[***] ţsbw{konto;rok} lista
Saldo Wn Bilansu Otwarcia (może być < 0)
[***] ţsbm{konto;rok} lista
Saldo Ma Bilansu Otwarcia (może być < 0)
[***] ţzbw{konto;rok} lista
Saldo Wn Bilansu Otwarcia (= 0 gdy < 0)
[***] ţzbm{konto;rok} lista
Saldo Ma Bilansu Otwarcia (= 0 gdy < 0)
[***] ţrwn{konto;rok} lista
Obroty Wn roku poprzedniego
[***] ţrma{konto;rok} lista
Obroty Ma roku poprzedniego
[***] ţpwn{konto;rok} lista
Obroty Wn roku (planowane)
[***] ţpma{konto;rok} lista
Obroty Ma roku (planowane)
[***] ţw01{konto;rok} lista
Obroty Wn okresu 01
[***] ţm01{konto;rok} lista
Obroty Ma okresu 01
[***] ţw02{konto;rok} lista
Obroty Wn okresu 02
[***] ţm02{konto;rok} lista
Obroty Ma okresu 02
[***] ţw03{konto;rok} lista
Obroty Wn okresu 03
[***] ţm03{konto;rok} lista
Obroty Ma okresu 03
[***] ţw04{konto;rok} lista
Obroty Wn okresu 04
[***] ţm04{konto;rok} lista
Obroty Ma okresu 04
[***] ţw05{konto;rok} lista
Obroty Wn okresu 05
[***] ţm05{konto;rok} lista
Obroty Ma okresu 05
[***] ţw06{konto;rok} lista
Obroty Wn okresu 06
[***] ţm06{konto;rok} lista
Obroty Ma okresu 06
[***] ţw07{konto;rok} lista
Obroty Wn okresu 07
[***] ţm07{konto;rok} lista
Obroty Ma okresu 07
[***] ţw08{konto;rok} lista
Obroty Wn okresu 08
[***] ţm08{konto;rok} lista
Obroty Ma okresu 08
[***] ţw09{konto;rok} lista
Obroty Wn okresu 09
[***] ţm09{konto;rok} lista
Obroty Ma okresu 09
[***] ţw10{konto;rok} lista
Obroty Wn okresu 10
[***] ţm10{konto;rok} lista
Obroty Ma okresu 10
[***] ţw11{konto;rok} lista
Obroty Wn okresu 11
[***] ţm11{konto;rok} lista
Obroty Ma okresu 11
[***] ţw12{konto;rok} lista
Obroty Wn okresu 12
[***] ţm12{konto;rok} lista
Obroty Ma okresu 12
[***] ţw13{konto;rok} lista
Obroty Wn okresu 13
[***] ţm13{konto;rok} lista
Obroty Ma okresu 13
[***] ţozw{konto;rok;miesiąc;miesiącDo} lista
Obroty Wn zakresu okresów
[***] ţozm{konto;rok;miesiąc;miesiącDo} lista
Obroty Ma zakresu okresów
[***] ţszw{konto;rok;miesiąc;miesiącDo} lista
Saldo Wn zakresu okresów (może być < 0)
[***] ţszm{konto;rok;miesiąc;miesiącDo} lista
Saldo Ma zakresu okresów (może być < 0)
[***] ţsaw{konto;rok;miesiąc;miesiącDo} lista
Suma sald po str. Wn narast. od BO do mca
[***] ţsam{konto;rok;miesiąc;miesiącDo} lista
Suma sald po str. Ma narast. od BO do mca
[***] ţsww{konto;rok;miesiąc;miesiącDo} lista
Saldo sald str. Wn zakresu mc-y - wartość [SsKG(w,Wn)]
[***] ţsow{konto;rok;miesiąc;miesiącDo} lista
Saldo sald str. Wn zakresu mc-y - strona [Wn]/[] [SsKG(o,Wn)]
[***] ţswm{konto;rok;miesiąc;miesiącDo} lista
Saldo sald str. Ma zakresu mc-y - wartość [SsKG(w,Ma)]
[***] ţsom{konto;rok;miesiąc;miesiącDo} lista
Saldo sald str. Ma zakresu mc-y - strona [Ma]/[] [SsKG(o,Ma)]
[***] ţsws{konto;rok;miesiąc;miesiącDo} lista
Suma sald zakresu mc-y - wartość [SsKG(w,'')]
[***] ţsos{konto;rok;miesiąc;miesiącDo} lista
Suma sald zakresu mc-y - strona [Wn]/[]/[Ma] [SsKG(o,'')]
[***] ţdww{konto;rok;miesiąc;miesiącDo} lista
Saldo obrotów Wn zakresu mc-y - wartość [SzKG(w,Wn)]
[***] ţdow{konto;rok;miesiąc;miesiącDo} lista
Saldo obrotów Wn zakresu mc-y - strona [Wn]/[] [SzKG(o,Wn)]
[***] ţdwm{konto;rok;miesiąc;miesiącDo} lista
Saldo obrotów Ma zakresu mc-y - wartość [SzKG(w,Ma)]
[***] ţdom{konto;rok;miesiąc;miesiącDo} lista
Saldo obrotów Ma zakresu mc-y - strona [Ma]/[] [SzKG(o,Ma)]
[***] ţdws{konto;rok;miesiąc;miesiącDo} lista
Saldo obrotów zakresu mc-y - wartość [SzKG(w,'')]
[***] ţdos{konto;rok;miesiąc;miesiącDo} lista
Saldo obrotów zakresu mc-y - strona [Wn]/[]/[Ma] [SzKG(o,'')]
[***] ţWartościKontaWgZK{funkcja;znacznik;rok;miesiąc[;miesiącDo]} lista
Jak ţWartościKonta{}, ale zamiast numeru konta podaje się znacznik konta
(etykietę przypisaną do kont w Planie Kont) - pozwala przygotować jeden
uniwersalny wzorzec (KB > Zestawienia wg wzorców) dla firm o różnych
planach kont, o ile mają poprawnie ustawione znaczniki.
Funkcje TrExtLang (odpowiedniki funkcji bez sufiksu WgZK - patrz opis ţWartościKonta wyżej):
omwWgZK - Obroty Wn okresu obliczeniowego
ommWgZK - Obroty Ma okresu obliczeniowego
smwWgZK - Saldo Wn obrotów okresu obli. (może być < 0)
smmWgZK - Saldo Ma obrotów okresu obli. (może być < 0)
zmwWgZK - Saldo Wn obrotów okresu obli. (= 0 gdy < 0)
zmmWgZK - Saldo Ma obrotów okresu obli. (= 0 gdy < 0)
onwWgZK - Obroty Wn narastająco
onmWgZK - Obroty Ma narastająco
snwWgZK - Saldo Wn obrotów narastająco (może być < 0)
snmWgZK - Saldo Ma obrotów narastająco (może być < 0)
znwWgZK - Saldo Wn obrotów narastająco (= 0 gdy < 0)
znmWgZK - Saldo Ma obrotów narastająco (= 0 gdy < 0)
bowWgZK - Bilans Otwarcia Wn roku obliczeniowego
bomWgZK - Bilans Otwarcia Ma roku obliczeniowego
sbwWgZK - Saldo Wn Bilansu Otwarcia (może być < 0)
sbmWgZK - Saldo Ma Bilansu Otwarcia (może być < 0)
zbwWgZK - Saldo Wn Bilansu Otwarcia (= 0 gdy < 0)
zbmWgZK - Saldo Ma Bilansu Otwarcia (= 0 gdy < 0)
rwnWgZK - Obroty Wn roku poprzedniego
rmaWgZK - Obroty Ma roku poprzedniego
pwnWgZK - Obroty Wn roku (planowane)
pmaWgZK - Obroty Ma roku (planowane)
w01WgZK - Obroty Wn okresu 01
m01WgZK - Obroty Ma okresu 01
w02WgZK - Obroty Wn okresu 02
m02WgZK - Obroty Ma okresu 02
w03WgZK - Obroty Wn okresu 03
m03WgZK - Obroty Ma okresu 03
w04WgZK - Obroty Wn okresu 04
m04WgZK - Obroty Ma okresu 04
w05WgZK - Obroty Wn okresu 05
m05WgZK - Obroty Ma okresu 05
w06WgZK - Obroty Wn okresu 06
m06WgZK - Obroty Ma okresu 06
w07WgZK - Obroty Wn okresu 07
m07WgZK - Obroty Ma okresu 07
w08WgZK - Obroty Wn okresu 08
m08WgZK - Obroty Ma okresu 08
w09WgZK - Obroty Wn okresu 09
m09WgZK - Obroty Ma okresu 09
w10WgZK - Obroty Wn okresu 10
m10WgZK - Obroty Ma okresu 10
w11WgZK - Obroty Wn okresu 11
m11WgZK - Obroty Ma okresu 11
w12WgZK - Obroty Wn okresu 12
m12WgZK - Obroty Ma okresu 12
w13WgZK - Obroty Wn okresu 13
m13WgZK - Obroty Ma okresu 13
ozwWgZK - Obroty Wn zakresu okresów
ozmWgZK - Obroty Ma zakresu okresów
szwWgZK - Saldo Wn zakresu okresów (może być < 0)
szmWgZK - Saldo Ma zakresu okresów (może być < 0)
sawWgZK - Suma sald po str. Wn narast. od BO do mca
samWgZK - Suma sald po str. Ma narast. od BO do mca
swwWgZK - Saldo sald str. Wn zakresu mc-y - wartość [SsKG(w,Wn)]
sowWgZK - Saldo sald str. Wn zakresu mc-y - strona [Wn]/[] [SsKG(o,Wn)]
swmWgZK - Saldo sald str. Ma zakresu mc-y - wartość [SsKG(w,Ma)]
somWgZK - Saldo sald str. Ma zakresu mc-y - strona [Ma]/[] [SsKG(o,Ma)]
swsWgZK - Suma sald zakresu mc-y - wartość [SsKG(w,'')]
sosWgZK - Suma sald zakresu mc-y - strona [Wn]/[]/[Ma] [SsKG(o,'')]
dwwWgZK - Saldo obrotów Wn zakresu mc-y - wartość [SzKG(w,Wn)]
dowWgZK - Saldo obrotów Wn zakresu mc-y - strona [Wn]/[] [SzKG(o,Wn)]
dwmWgZK - Saldo obrotów Ma zakresu mc-y - wartość [SzKG(w,Ma)]
domWgZK - Saldo obrotów Ma zakresu mc-y - strona [Ma]/[] [SzKG(o,Ma)]
dwsWgZK - Saldo obrotów zakresu mc-y - wartość [SzKG(w,'')]
dosWgZK - Saldo obrotów zakresu mc-y - strona [Wn]/[]/[Ma] [SzKG(o,'')]
Parametr [miesiąc] i [miesiącDo] - jak dla ţWartościKonta{} (patrz wyżej).
Przykłady:
ţomwWgZK{PRZYCHODY-01;2025;06}
ţswwWgZK{KOSZTY-DZIALALNOSCI;2025;0;06} Od B.O. do 06
[***] ţomwWgZK{znacznik;rok;miesiąc} lista
Obroty Wn okresu obliczeniowego wg znacznika
[***] ţommWgZK{znacznik;rok;miesiąc} lista
Obroty Ma okresu obliczeniowego wg znacznika
[***] ţsmwWgZK{znacznik;rok;miesiąc} lista
Saldo Wn obrotów okresu obli. (może być < 0) wg znacznika
[***] ţsmmWgZK{znacznik;rok;miesiąc} lista
Saldo Ma obrotów okresu obli. (może być < 0) wg znacznika
[***] ţzmwWgZK{znacznik;rok;miesiąc} lista
Saldo Wn obrotów okresu obli. (= 0 gdy < 0) wg znacznika
[***] ţzmmWgZK{znacznik;rok;miesiąc} lista
Saldo Ma obrotów okresu obli. (= 0 gdy < 0) wg znacznika
[***] ţonwWgZK{znacznik;rok;miesiąc} lista
Obroty Wn narastająco wg znacznika
[***] ţonmWgZK{znacznik;rok;miesiąc} lista
Obroty Ma narastająco wg znacznika
[***] ţsnwWgZK{znacznik;rok;miesiąc} lista
Saldo Wn obrotów narastająco (może być < 0) wg znacznika
[***] ţsnmWgZK{znacznik;rok;miesiąc} lista
Saldo Ma obrotów narastająco (może być < 0) wg znacznika
[***] ţznwWgZK{znacznik;rok;miesiąc} lista
Saldo Wn obrotów narastająco (= 0 gdy < 0) wg znacznika
[***] ţznmWgZK{znacznik;rok;miesiąc} lista
Saldo Ma obrotów narastająco (= 0 gdy < 0) wg znacznika
[***] ţbowWgZK{znacznik;rok} lista
Bilans Otwarcia Wn roku obliczeniowego wg znacznika
[***] ţbomWgZK{znacznik;rok} lista
Bilans Otwarcia Ma roku obliczeniowego wg znacznika
[***] ţsbwWgZK{znacznik;rok} lista
Saldo Wn Bilansu Otwarcia (może być < 0) wg znacznika
[***] ţsbmWgZK{znacznik;rok} lista
Saldo Ma Bilansu Otwarcia (może być < 0) wg znacznika
[***] ţzbwWgZK{znacznik;rok} lista
Saldo Wn Bilansu Otwarcia (= 0 gdy < 0) wg znacznika
[***] ţzbmWgZK{znacznik;rok} lista
Saldo Ma Bilansu Otwarcia (= 0 gdy < 0) wg znacznika
[***] ţrwnWgZK{znacznik;rok} lista
Obroty Wn roku poprzedniego wg znacznika
[***] ţrmaWgZK{znacznik;rok} lista
Obroty Ma roku poprzedniego wg znacznika
[***] ţpwnWgZK{znacznik;rok} lista
Obroty Wn roku (planowane) wg znacznika
[***] ţpmaWgZK{znacznik;rok} lista
Obroty Ma roku (planowane) wg znacznika
[***] ţw01WgZK{znacznik;rok} lista
Obroty Wn okresu 01 wg znacznika
[***] ţm01WgZK{znacznik;rok} lista
Obroty Ma okresu 01 wg znacznika
[***] ţw02WgZK{znacznik;rok} lista
Obroty Wn okresu 02 wg znacznika
[***] ţm02WgZK{znacznik;rok} lista
Obroty Ma okresu 02 wg znacznika
[***] ţw03WgZK{znacznik;rok} lista
Obroty Wn okresu 03 wg znacznika
[***] ţm03WgZK{znacznik;rok} lista
Obroty Ma okresu 03 wg znacznika
[***] ţw04WgZK{znacznik;rok} lista
Obroty Wn okresu 04 wg znacznika
[***] ţm04WgZK{znacznik;rok} lista
Obroty Ma okresu 04 wg znacznika
[***] ţw05WgZK{znacznik;rok} lista
Obroty Wn okresu 05 wg znacznika
[***] ţm05WgZK{znacznik;rok} lista
Obroty Ma okresu 05 wg znacznika
[***] ţw06WgZK{znacznik;rok} lista
Obroty Wn okresu 06 wg znacznika
[***] ţm06WgZK{znacznik;rok} lista
Obroty Ma okresu 06 wg znacznika
[***] ţw07WgZK{znacznik;rok} lista
Obroty Wn okresu 07 wg znacznika
[***] ţm07WgZK{znacznik;rok} lista
Obroty Ma okresu 07 wg znacznika
[***] ţw08WgZK{znacznik;rok} lista
Obroty Wn okresu 08 wg znacznika
[***] ţm08WgZK{znacznik;rok} lista
Obroty Ma okresu 08 wg znacznika
[***] ţw09WgZK{znacznik;rok} lista
Obroty Wn okresu 09 wg znacznika
[***] ţm09WgZK{znacznik;rok} lista
Obroty Ma okresu 09 wg znacznika
[***] ţw10WgZK{znacznik;rok} lista
Obroty Wn okresu 10 wg znacznika
[***] ţm10WgZK{znacznik;rok} lista
Obroty Ma okresu 10 wg znacznika
[***] ţw11WgZK{znacznik;rok} lista
Obroty Wn okresu 11 wg znacznika
[***] ţm11WgZK{znacznik;rok} lista
Obroty Ma okresu 11 wg znacznika
[***] ţw12WgZK{znacznik;rok} lista
Obroty Wn okresu 12 wg znacznika
[***] ţm12WgZK{znacznik;rok} lista
Obroty Ma okresu 12 wg znacznika
[***] ţw13WgZK{znacznik;rok} lista
Obroty Wn okresu 13 wg znacznika
[***] ţm13WgZK{znacznik;rok} lista
Obroty Ma okresu 13 wg znacznika
[***] ţozwWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Obroty Wn zakresu okresów wg znacznika
[***] ţozmWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Obroty Ma zakresu okresów wg znacznika
[***] ţszwWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo Wn zakresu okresów (może być < 0) wg znacznika
[***] ţszmWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo Ma zakresu okresów (może być < 0) wg znacznika
[***] ţsawWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Suma sald po str. Wn narast. od BO do mca wg znacznika
[***] ţsamWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Suma sald po str. Ma narast. od BO do mca wg znacznika
[***] ţswwWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo sald str. Wn zakresu mc-y - wartość [SsKG(w,Wn)] wg znacznika
[***] ţsowWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo sald str. Wn zakresu mc-y - strona [Wn]/[] [SsKG(o,Wn)] wg znacznika
[***] ţswmWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo sald str. Ma zakresu mc-y - wartość [SsKG(w,Ma)] wg znacznika
[***] ţsomWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo sald str. Ma zakresu mc-y - strona [Ma]/[] [SsKG(o,Ma)] wg znacznika
[***] ţswsWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Suma sald zakresu mc-y - wartość [SsKG(w,'')] wg znacznika
[***] ţsosWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Suma sald zakresu mc-y - strona [Wn]/[]/[Ma] [SsKG(o,'')] wg znacznika
[***] ţdwwWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo obrotów Wn zakresu mc-y - wartość [SzKG(w,Wn)] wg znacznika
[***] ţdowWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo obrotów Wn zakresu mc-y - strona [Wn]/[] [SzKG(o,Wn)] wg znacznika
[***] ţdwmWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo obrotów Ma zakresu mc-y - wartość [SzKG(w,Ma)] wg znacznika
[***] ţdomWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo obrotów Ma zakresu mc-y - strona [Ma]/[] [SzKG(o,Ma)] wg znacznika
[***] ţdwsWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo obrotów zakresu mc-y - wartość [SzKG(w,'')] wg znacznika
[***] ţdosWgZK{znacznik;rok;miesiąc;miesiącDo} lista
Saldo obrotów zakresu mc-y - strona [Wn]/[]/[Ma] [SzKG(o,'')] wg znacznika
[***] ţBLAddCategories{IDIntegracji;wszystkie} lista
Export grup indeksów do BaseLinker
Przykład:
ţBLAddCategories{@INTEGID;T}
Parametry:
IDIntegracji - symbol integracji
wszystkie - T - synchronizuj wszystkie zapisy
- N - synchronizuj tylko zapisy, które
uległy zmianie
[***] ţBLAddProducts{IDIntegracji;wszystkie} lista
Export indeksów KIM do BaseLinker
[***] ţBLUpdateProductsQuantity{IDIntegracji;wszystkie} lista
Aktualizacja stanów zapasów w BaseLinkerze
[***] ţBLUpdateProductsPrices{IDIntegracji;wszystkie} lista
Aktualizacja cen w BaseLinkerze
[***] ţBLGetOrders{IDIntegracji;wszystkie} lista
Import zamówień z BaseLinker
2.3 Reguły użycia funkcji
* Funkcje TrExtLang mogą być parametryzowane. Dodatkowe parametry
wprowadza się w nawiasach {...}. Nawias otwierający musi być tuż
za nazwą funkcji (nie może ich rozdzielać spacją ani innym znakiem)
Poprawnie: ţ70{rejestr}
ţFunkcja{}
ţţ{Nazwa ze spacjami}{}
Błędnie : ţ70 {rejestr}
ţFunkcja {}
ţNazwa ze spacjami{}
* Jeżeli w nazwie funkcji, rejestru lub tabeli występują spacje,
to nazwę trzeba wpisać w ţ{...}
Nie trzeba wpisywać w ţ{...} jeżeli nazwą jest pole znakowe.
np. ţţ{Nazwa ze spacjami}[]
ţs--- indeks ---s[]
* Parametry rozdzielane są średnikami
np. ţCzcionka{Courier New;12}
* Nawiasy kwadratowe [...] oznaczają, że parametr jest opcjonalny
i można pominąć. W tym miejscu program użyje wartości domyślnej.
Dla pozycji wartością domyślną jest aktualne położenie kursora.
Pominięte parametry należy rozddzielić średnikami.
ţObrazek{plik.bmp;;} - wstaw obrazek bez zmiany rozmiaru.
ţObrazek{plik.bmp;10;20} - wstaw obrazek przeskalowany do rozmiaru 10 x 20 mm
* Parametry mogą być rozpisane w kolejnych liniach.
Domknięcie musi być w linii tego samego typu.
Linie z rozpisanymi parametrami zostaną przetworzone jak jedna linia.
TţObrazek{
Tplik.bmp;
T10;20}
Rozpisanie parametrów można wykorzystać do podziału długiej linii wzorca:
T ........ długa linia ţ#{
T}kontynuacja w kolejnej linii
* Początek strony znajduje się w lewym górnym rogu. Ma współrzędne 0,0
0,0-----40-------100--> X [mm]
|
|
30 # ţXY{40;30}
|
|
|
80 # ţXY{100;80}
|
Y[mm] v
* Wszelkie parametry określające położenie i rozmiar wyrażane są w mm
i określają położenie na aktualnie drukowanej stronie.
np. ţXY{10;20} - przesuń kursor na pozycję: X=10mm i Y=20mm od początku strony
* Wymiary można podać także w jednostkach względnych [em]
odnoszących się do wielkości aktualnej czcionki
np. ţY{-1em} oznacza cofnięcie kursora o jedna linię
niezależnie od wielkości czcionki
* Parametry określające położenie można podać jako:
* bezwględne: od początku strony np. {10;15}
* względne: od aktualnego położenia kursora np. {+15; -1.5}
3. Bloki danych
Służą do wstawiania dodatkowych informacji bezpośrednio podczas drukowania.
[oFVDEVELOP] Kronika poprzednich faktur
[oDEKRET] Pieczątka dekretacyjna
[oWYNIKIQA] Wyniki testów kontroli jakości QA
[oOPCJEZAM] Opcje (wariant) zamówionego produktu (zapisane w zam sprzedaży)
Patrz opis: Bloki danych
Wzorce. Elementy budowy
4. Pytania i odpowiedzi
Mnożenie wartości pól
P. Na dokumencie nie ma pola: wartość. Są tylko pola: ilość i cena.
Jak wydrukować wartość ?
O. Użyć operację mnożenia, np. ţ={s--ilosc--s * s--cena--s}.
Podsumowanie w stopce
P. Jak wydrukować podsumowanie pozycji w stopce dokumentu ?
O. Użyć operacje sumowania w rejestrze, np.
przed pozycjami: ţSumaKGO={0}
w pozycji zapamiętywać KGO: ţKGO={ ţ={s--ilosc--s * ş--KGO--ş}}
w pozycji sumować: ţSumaKGO={ ţ={ţSumaKGO + ţKGO} }
albo ţSuma{SumaKGO;ţKGO}
w podsumowaniu wydrukować: ţSumaKGO
T ţSumaKGO={0}
T ---Indeks------- ----Ilość----- --KGO-
P ţKGO={ţ={ş-- Ilosc ---ş * ş--KGO--ş}}şIndeks towaru ş ş-- Ilosc ---ş ţFormat{ţKGO;999.99} ţSuma{SumaKGO;ţKGO}
T --------------------------------------
T Razem KGO: ţFormat{ţSumaKGO;9999.99}
Pomijanie pozycji zerowych
P. Jak pominąć pozycję gdy wartość KGO = 0.00 ?
O. Użyć wydruk tekstu i przejście do nowej linii, tylko gdy KGO > 0.00
Tzn. gdy KGO = 0.00 to cofnij wiersz; gdy > 0 to pisz
ţ=0{ţKGO; ţCofnijWiersz; W tym KGO ţKGO}
Stosuje się funkcję ţCofnijWiersz
T ţSumaKGO={0}
T ---Indeks------- ----Ilość----- --KGO-
P ţKGO={ţ={ş-- Ilosc ---ş * ş--KGO--ş}}ţ=0{ţKGO;ţCofnijWiersz;şIndeks towaru ş ş-- Ilosc ---ş ţFormat{ţKGO;999.99} ţSuma{SumaKGO;ţKGO}}
T --------------------------------------
T Razem KGO: ţFormat{ţSumaKGO;9999.99}
Pomijanie pozycji
P. Jak pominąć pozycję sprzedaży usług na wydruku faktury ?
O. Drukować zawartość pozycji i przejść do nowej linii, tylko gdy wypełniony magazyn
Pozycje usług nie mają wpisanego magazynu.
Tzn. gdy puste pole magazyn to cofnąć wiersz; gdy wypełnione to pisać
ţPorównaj{şMş;;ţCofnijWiersz; .... tu linia wydruku pozycji ....}
Funkcja ţCofnijWiersz cofa o jeden wiersz
P. Jak pominąć pozycję zamówienia sprzedaży, gdy stan = [Z] (pozycja zamknięta) ?
Zamówienie sprzedaży jest dyspozycją dla magazyniera. Nie powinien pakować
asortymentu z pozycji [Z] zamkniętych.
O. Drukować zawartość pozycji i przejść do nowej linii, tylko gdy stan nie [Z]
Tzn. gdy stan = [Z], to cofnąć wiersz
P ţPorównaj{şZş;Z;ţCofnijWiersz;şLş şIndeks towaru ş ş-- Ilosc ---ş şJmş }
P ţPorównaj{şZş;Z;ţCofnijWiersz;ş--------------- Nazwa towaru -------------------ş}
Funkcja ţCofnijWiersz cofa o jeden wiersz
Drukowanie bez łamania stron
P. Program drukuje dokumenty, np. faktury sprzedaży lub wezwania do zapłaty
na oddzielnych stronach (kartkach). Czy jest funkcja, którą można
nakazać drukowanie ciągłe, bez podawania nowej strony (kartki),
tj. bez łamania strony ?
O. Funkcja ţNieDzielNaStrony wstrzyma wysuwanie strony po wydrukowaniu dokumentu
Anulowanie (przerwanie) drukowania
P. Chcę uzależnić wydruk całego dokumentu od jego stanu (zawartości).
Np. aby można było wydrukować tylko zaakceptowane zamówienia zakupu.
Tzn. wydrukować tylko wtedy, gdy pole ACCKOD ma wartość xx.
Inaczej: Czy funkcjami ţ...{} można zakazać wydruku ?
O. Znak ţPrzerwij powoduje anulowanie wydruku. Tak jak klawisz F10.
W połączeniu z warunkiem ţPorównaj{} pozwoli wydrukować tylko zakceptowane.
We wzorcu trzeba wstawić:
ţPorównaj{s-ACCKod-s;xx;;ţKomunikat{Zamówienie wymaga akceptacji} ţPrzerwij}
NOTE: ţPrzerwij przerywa cały proces drukowania. Ew. następne wydruki
w kolejce też nie będą wydrukowane.
Inne rozwiązanie, to warunkowe wywołanie wydruku zamówienia zakupu
jako wydruku kaskadowego.
Grupowanie wskazanych pól
P. Faktura sprzedaży powstała wg wielu zamówień. Numery zamówień powiązane
są z pozycjami faktury. Nie chcę umieszczać numerów zamówień w pozycjach
bo zamówień jest 5 a pozycji sprzedaży 82. Będą powtórzenia numerów.
Numery zamówień chce wyszczególnić w stopce lub nagłówku faktury.
O. a) Aby wydrukować w stopce, to należy użyć tabeli ţ...[].
Zebrać numery zamówień w tabeli ţ...[] i następnie wydrukować tabelę w stopce.
P ţZamówienia[şPNr zamow.ş]{şPNr zamow.ş}
...
T Wg zamówień:
T ţZamówienia[]
b) Aby wydrukować w nagłówku, to trzeba wywołać wydruk kaskadowo.
Na pierwszym wzorcu wydruku umieścić nagłówek. W liniach typu [P] zebrać
w ţ...[] numery zamówień. W tym wzorcu nie drukować pozycji.
Poniżej, w linii typu [T] drukować zawartość tabeli ţ...[].
Następnie wstawić wydruk ţWstawWydruk tego samego dokumentu wg wzorca
drukujący pozycje i stopkę dokumentu.
P. Jak wydrukować rok cztero-cyfrowy ?
O. a) Zapisać '20' przed polem (maską) daty.
Jest : şData sş np. 13.05.03
Zapisać: 20şData sş np. 2013.05.03
b) Użyć znaku: ţFormatDaty (ţFormatDaty{data;format})
Np. ţFormatDaty{şData wş;RRRR.MM.DD}
ţFormatDaty{şData wş;RRRR-MM-DD}
ţFormatDaty{ş---Data i czas---ş;RRRR.MM.DD GG:MN:SS}