Baza wiedzy Trawers ERP

Funkcje TrExtLang. Formatowanie, Sterowanie, Przetwarzanie

1. Opis ogólny 2. Funkcje ţ...{} 2.1 Zestawienie funkcji 2.2 Opis funkcji 2.3 Reguły użycia funkcji 3. Bloki danych 4. Pytania i odpowiedzi 5. Tematy powiązane

1. Opis ogólny

Funkcje TrExtLang
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 raportowanie AutoRun Procesy automatyczne SOA 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 TrExtLang Trawers 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
Faktura Etykieta paletowa Inne przykłady wydruków: Wzorce dokumentów Przykłady Wzorce 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.

2. Funkcje ţ...{}

Funkcje ţ01..ţ32
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
Zmienne
ţNazwa - Zapisuje/pobiera dane z rejestru ţRejestrStron - Zapisuje/pobiera dane z rejestru stron ţNazwa[] - Zapisuje dane do tabeli ţIleWierszy - Zwraca ilość pozycji w tabeli ţ...[] ţTabelaWrejestr - Przepisuje wiersze tabeli ţ...[] do rejestru ţ...
Obliczenia
ţ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ę
Porównania
ţPorównajDaty - Porównuje dwie daty ţPorównajTeksty - Porównuje teksty ţPorównajLiczby - Porównuje liczby ţ=0 - Sprawdza czy wartość = 0 ţ>0 - Sprawdza czy wartość > 0 ţ<0 - Sprawdza czy wartość < 0 ţJeżeliPusty - Sprawdza czy tekst jest wypełniony ţJeżeliZawiera - Sprawdza czy tekst tekst zawiera wyrażenie
Powtórzenia, pętle programowe
ţ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
Elementy graficzne
ţObrazek - Wstawia obrazek ţStylLinii - Ustala styl linii ţLinia - Rysuje linię ţProstokąt - Rysuje prostokąt
Kody kreskowe
ţ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
Dialog z operatorem
ţKomunikat - Wysyła wiadomość do operatora ţWierszOkna - Przygotowuje wiersz okna dialogowego ţOkno - Wyświetla okno dialogowe
Załączanie innych wydruków i plików
ţ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
Parametry urządzenia wyjściowego
[Plik] ţNazwaPliku - Zmienia i zwraca nazwę pliku/wydruku ţNazwijPlik - Zmienia nazwę pliku/wydruku ţNadpiszPlik - Nadpisuje istniejący pliku (bez pytania) [Polecenie] ţPolecenieParametr - Parametr wywołania polecenia systemu operacyjnego [E-mail] ţEmailTemat - Zmienia temat wysyłanego e-maila ţEmailDo - Zmienia adres e-mail adresata ţEmailEdycja - Zmienia parametr: Edytuj przed wysyłką ţEmailSkrzynka - Zmienia parametr: Skrzynka nadawcza ţEmailPracownik ţEmailOdbiorca ţEmailDostawca - Zwraca lub wiąże wysyłany e-mail z kontrahentem ţEmailSystem - Zwraca symbol systemu z kartą kontrahenta NA,ZO,PL
Wykonanie funkcji programu Trawers
ţ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
Aplikacja BaseLinker
ţBLAddCategories - Export grup indeksów do BaseLinker ţBLAddProducts - Export indeksów KIM do BaseLinker ţBLUpdateProductsQuantity - Aktualizacja stanów zapasów w BaseLinker ţBLUpdateProductsPrices - Aktualizacja cen w BaseLinker ţBLGetOrders - Import zamówień z BaseLinker
Funkcje księgowe
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Ł - ţPogrubiaj lista [***] ţ33 lista [***] Pogrubienie WYŁ - ţNiePogrubiaj lista [***] ţ34 lista [***] Pochylenie - ţPochyl{ tekst } lista [***] Pochylenie WŁ - ţPochylaj lista [***] ţ35 lista [***] Pochylenie WYŁ - ţNiePochylaj lista [***] ţ36 lista [***] Podkreślenie - ţPodkreśl{ tekst } lista [***] Pochylenie WŁ - ţPodkreślaj lista [***] ţ37 lista [***] Pochylenie WYŁ - ţNiePodkreślaj lista [***] ţ38 lista 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 - ţPrzerwij lista [***] ţ41 lista 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 - ţJestMiejsceNaLinie lista 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Ł - ţNieDzielNaStrony lista [***] ţ46 lista 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łączParser lista [***] ţ47 lista [***] Funkcje TrExtLang WYŁ - ţWyłączParser lista [***] ţ48 lista 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 ţ56 lista [***] 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 - ţNazwa lista [***] ţ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łączniki Dokumenty 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 ţ88 lista [***] nie wykorzystane ţ89 lista [***] 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 - ţNowaStrona lista [***] ţ39 lista 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ży Cenniki 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 [***] ţPrzerwijPowtarzanie lista 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 &parametry& [***] ţ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 referencyjne e-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.
Umieszczanie w jednej linii wydruku
P. Jak wydrukować zawartość wierszy tabeli ţ...[] w jednej linii ? O. Przepisać zawartość tabeli do rejestru ţ70. W kolejnym wierszu wydrukować rejestr. Można użyć funkcji ţTabelaWrejestr{} T ţTabelaWrejestr{Zamówienia;, } T ţZamówienia Aby program zawiną zbyt długą linię trzeba użyć ţZawiń T ţTabelaWrejestr{Zamówienia;, } T ţZawiń{ţZamówienia;180}
Rok 4-cyfrowy [rrrr]
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}

5. Tematy powiązane

Drukowanie Urządzenia wyjściowe Komponenty technologiczne Wzorce dokumentów i etykiet SOA Architektura wymiany danych SOA Funkcje OutBound i InBound Alerty i raportowanie AutoRun Procesy automatyczne Słowa kluczowe #Admin-UrządzeniaWyjściowe #Admin-WzorceDokumentów #Admin-Narzędzia #TrawersERP-Komponenty #TrawersERP-SOA/API