Instrukcja GenRap – zaawansowane przykłady

Wstęp

Instrukcja prezentuje wybrane przykłady modyfikacji wydruków za pomocą Generatora Raportów. Zalecamy wcześniejsze zapoznanie się z artykułami dostępnymi w tej kategorii.

Oraz z filmami instruktażowymi w obszarze Handel/GenRap:

http://www.erp.comarch.pl/filmy/index.html?site=movies&optima2010#

Większość z przedstawionych przykładów wymaga „Ustawienia wyświetlania danych..” z wszystkimi dostępnymi elementami. W celu wyświetlenia większej ilości danych w zakładce Dane (panel w lewej części okna) należy ustawić opcję dostępną pod ikoną  Pracuj: z wszystkimi dostępnymi elementami:

Ustawienia wyświetlania danych

Podstawowe operacje

Sumowanie

W celu podsumowania wybranej wartości należy ustawić się na konkretnej pozycji w kolumnie, którą chcemy sumować i wybrać z menu Zestawienie/ Podsumuj/ Suma – kolumna zostanie wówczas podsumowana i utworzy się automatyczne wyrażenie: sum().

Filtrowanie

Poniższy przykład prezentuje filtrowanie danych w tabeli Preliminarz w celu pokazania rekordów tylko wówczas, gdy wartość PozostajeDoZaplaty jest większa od zera.

Należy ustawić się w tabeli, na kolumnie Pozostaje do zapłaty i wcisnąć prawy klawisz myszy.  Pojawi się menu kontekstowe z którego należy wybrać Filtruj.. . Na oknie filtrowania kliknąć dwukrotnie na kolumnę Pozostajedozapłaty a następnie wybrać opcję „dodatnie”. Uzyskamy wówczas wyrażenie: [/Identyfikator/->Nabywca/<-Operacje bankowe] : Pozostajedozapłaty > 0

Selekcje – ukrywanie danych na wydruku

Przykład prezentuje przykład ukrycia danych poczty jeżeli jest wypełnione pole miejscowości.

Do ukrywania danych na wydruku w Generatorze Raportów służą Selekcje. Tworzy się je zaznaczając myszką (trzymając lewy klawisz myszy) na czarno fragment tekstu na wydruku a następnie przechodząc na drzewku z przyjaznym schematem na zakładkę Selekcje. Należy podać nazwę selekcji, warunek ukrycia oraz zaznaczyć parametr Ukrycie. Warunek ukrycia może wyglądać następująco:

PodmiotMiasto != „”

Czyli ukryj dane, jeśli pole PodmiotMiasto nie jest puste.

Na wydruku standardowym w programie Comarch ERP Optima można zobaczyć gotowe selekcje istniejące na wydruku (na zakładce Selekcje). Można podejrzeć ich zawartość i na nich się wzorować.

Więcej informacji teoretycznych na temat tworzenia selekcji zostało opisane w dokumentacji do Generatora Raportów dostępnej na Indywidualnych Stronach dla Klientów/Partnerów.

Kursy walut

Jeśli chcemy wyświetlić kurs waluty dla zadanej przez dane pole daty, należy skorzystać z funkcji TabelkaWalut, dostępnej w przyjaznym schemacie. Należy z tej funkcji przeciągnąć na wydruk pole np. notowanie i podać datę z której ma zostać pobrany kurs  np. „2013-01-10”. Jeżeli ma być pobierany kurs z  daty wystawienia dokumentu, wówczas należy datę przekazywaną do funkcji zamienić na tekst poleceniem string i wyciąć 11 pierwszych znaków daty (za pomocą operacji na danych typu String, funkcja substr – szerszy opis funkcji dostępny jest w dokumentacji GenRap) a potem wstawić do tego wyrażenia.

Poniższe wyrażenie pozwoli na formularzu faktury uzyskać kurs z daty wystawienia dokumentu:

TabelkaWalut(substr(string([/Identyfikator/Data wystawienia]), 0, 11))

Składnia wyrażenia IF

Wyrażenie IF stosujemy jeśli chcemy uwarunkować wyświetlanie się pewnych informacji, poniżej przykład takiego wyrażenia:
if(wartosc == 1, „jeden” , „inne”)

Jeśli „wartosc” będzie równa 1, wówczas wyświetlony zostanie napis „jeden”, w przeciwnym wypadku wyświetlony zostanie napis „inne”).

Można stosować również zagnieżdżenia w składni wyrażenia IF, np.:

if(wartosc == 1, „jeden”, if(wartosc == 2, „dwa”, „inne”))

Wyświetlanie wartość atrybutu liczbowego jako czysta liczba

Wyrażenie wyświetlające atrybut ilościowy w formie czystej liczby (wyrażenie sprawdza dodatkowo, czy atrybut jest faktycznie liczbą. Jeżeli nie, zwraca wartość 0,00):

if(./->Atrybuty/Format == 2, decimal(replace(./Wartość (tekst), „,”, „.”)) * Ilosc, 0.0)

Operacje na datach wprowadzonych jako atrybut

W przykładzie pokażemy, jak pobrać datę wprowadzoną jako atrybut i zwiększyć ją o kilka dni.

Data w polu atrybutu jest zapisywana w formacie Clariona. Trzeba ją odpowiednio zmienić przez polecenie dateadd oraz zamienić potem na tekst poleceniem string. Poniżej wyrażenie dla wartości atrybutu1:

substr(string(dateadd(„day”, %”1800-12-28″, int([./Atrybut 1 – Wartość]))), 0, 11).

Wyrażenie dateadd ma konstrukcję: dateadd(część, data, liczba całkowita), gdzie data jest zwiększana przez dodanie wartości całkowitej liczba do wybranej części daty.

W instrukcji GenRap dostępnej na stronach walidowanych znajduje się szczegółowy opis wyrażeń pozwalających na dokonywanie operacji na datach.

Formatowanie ceny jako łańcuch tekstowy, usuwanie zer po przecinku

W celu usunięcia zbędnych zer po przecinku w danych liczbowych, typu cena, ilość można zastosować poniższe wyrażenie (przykład dla ceny):

if(strsuffix(string([./Cena]), 3) == „.00”, replace(string([./Cena]), „.00”, „”), string([./Cena]))

Formatowanie wyświetlanych informacji dla typu formy płatności

W Generatorze Raportów, z zakładki Dane/ Identyfikator/ Formy płatności „przeciągamy” lewym przyciskiem myszy na wydruk Typ płatności. Po wykonaniu tej operacji na wydruku pojawi się cyfra:

Dla gotówki – 1, dla przelewu – 2, dla karty – 3.

Klikając na tą cyfrę prawym przyciskiem myszy należy wybrać opcję Format wyrażenia/ Formatowanie/ Lista wartości i utworzyć listę zgodnie z poniższym rysunkiem:

Kwota słownie w języku angielskim

Przykładowe wyrażenie poniżej:

#wordy(RazemDoZaplaty, „zł”, „/100”, „tn”, „en”)

Szczegółowy opis parametrów wyrażenia #wordy znajduje się w instrukcji Comarch ERP Optima – GenRap.

Zwijanie tabelki do jednego wiersza

Jeśli mamy tabelę z jednym wierszem, przykładowo listę atrybutów danego towaru, a chcemy widzieć tylko wybraną wartość bez nagłówków kolumn.

Aby zwinąć wyrażenie do jednej wartości należy wybrać z menu Zestawienie/ Zwiń do/ Minimum.

Przykładowe wyrażenie po odfiltrowaniu i zwinięciu przedstawione zostało poniżej:

min([./<-Atrybuty pozycji dokumentu] : [./../LP] == 1, [./Wartość (tekst)])

Zapobieganie dzieleniu tabelki między strony

Należy skorzystać z tabeli technicznej Wiersze (znajduje się w przyjaznym schemacie – zakładka Dane – w folderze Wszystkie dane) potem wyfiltrować ją tak, żeby zawęzić do jednego wiersza (np. opcja Filtruj.. numer wiersza = 1), następnie zaznaczyć dla tej tabelki opcję Zestawienie/ Unikaj łamania wierszy. Do tak utworzonej tabelki można wkleić tabelkę, której nie chcemy dzielić między strony.

Nagłówek i stopka

Aby określić specyficzny nagłówek i stopkę dla pierwszej bądź ostatniej strony należy w Generatorze Raportów wybrać menu Plik/ Ustawienia strony:

– w obszarze Nagłówek i stopka zaznaczyć opcję Pokaż numer na pierwszej stronie. Zaznaczenie opcji pozwala na określenie nagłówka i stopki pierwszej strony innej niż na pozostałych stronach dokumentu.

– w obszarze Nagłówek i stopka zaznaczyć opcję Pokaż numer na ostatniej stronie. Zaznaczenie opcji pozwala na określenie nagłówka i stopki ostatniej strony innej niż na pozostałych stronach dokumentu.

Procedura składowana DaneOperatora

W zakładce Dane, w gałęzi Identyfikator/Parametr znajdują się pola trn_opemodid oraz trn_opezalid. Zwracają one odpowiednio ID operatora, który zmodyfikował lub stworzył fakturę.

W celu wyświetlenia dokładniejszych danych jak kod operatora lub jego nazwisko można zastosować funkcję DaneOperatora, która jest widoczna w gałęzi Funkcje/DaneOperatora.

Poniżej przykładowe wyrażenie z użyciem tej funkcji – wyświetlające kod operatora, który zmodyfikował dokument:

min(DaneOperatora([/Identyfikator/trn_opemodid]), [./nazwisko])

Parametry dynamiczne

W przykładzie pokazano zastosowanie parametru wyświetlającego dynamiczną listę wszystkich operatorów z możliwością wyboru jednego.

W konfiguracji wydruków, na formularzu edycji wydruku, który tworzymy na zakładce Inne w polu „Parametry:” należy kliknąć prawym klawiszem i wybrać opcję Wstaw/edytuj deklarację parametru dynamicznego. W kreatorze parametrów dynamicznych należy wybrać typ parametru „Lista wywoływana” i wybrać procedurę „Lista operatorów”.

Następnie należy przenieść ten parametr na wydruk. Na wydruku w przyjaznym schemacie znajduje się gałąź Parametry raportu. Należy dodać parametr tekstowy o takiej samej nazwie jak parametr dynamiczny utworzony w konfiguracji wydruków i zapisać wydruk. Po jego ponownym podniesieniu do edycji, parametr będzie już do wydruku przekazywany.

Praktyczne przykłady

Umieszczenie numeru powiązanego RO na wydruku ZD

W edytorze wydruku ZD, z przyjaznego schematu (zakładka Dane) należy wybrać gałąź Wszystkie dane/ TraNagRelacje – przenieść na wydruk. Pod prawym przyciskiem myszy na zestawieniu należy wybrać opcję „Filtruj..” i tam dodać filtr po polu trr_trntyp = 308 (opis typów dokumentów dostępny jest dla Autoryzowanych Partnerów Comarch na stronie walidowanej wraz z opisem struktury bazy danych) oraz trr_faid=[/Identyfikator/trn_trnid] (tutaj należy w filtrze użyć wyrażenia, zmienić typ filtra na wyrażenie – opcja po rozwinięciu strzałki przy wartości filtra). Po wyfiltrowaniu pozostawić tylko kolumnę trr_trnid – tam jest przechowywane ID dokumentu RO powiązanego z ZD. Jeśli zakładamy że jest to tylko jeden dokument możemy zwinąć to pole do 1 wartości – opcja Zestawienie/ Zwiń do.. minimum.

W ten sposób otrzymamy wyrażenie:

min([*TraNagRelacje] : [./trr_trntyp] == 308 && [./trr_faid] == [/Identyfikator/trn_trnid], [./trr_trnid])

które zwróci ID dokumentu RO powiązanego z ZD.

Teraz należy to wyrażenie wykorzystać przy filtrowaniu danych z gałęzi Wszystkie dane/ TraNag. W analogiczny sposób przenosimy na wydruk dane, które nas interesują, np. numer dokumentu – przeciągamy na wydruk odpowiednie pole i wybieramy opcję wstawienia całej tabeli TraNag, żeby można było następnie dowolnie wyfiltrować.

Filtrujemy analogicznie, tym razem po polu trn_trnid = min([*TraNagRelacje] : [./trr_trntyp] == 308 && [./trr_faid] == [/Identyfikator/trn_trnid], [./trr_trnid]) (czyli to wyrażenie które uzyskaliśmy wcześniej, tutaj również należy wybrać typ – wyrażenie), a w kolejnym kroku możemy zwinąć do minimum, powinien zostać numer dokumentu RO. Pozostałe dane można pobierać analogicznie.

Umieszczenie ilości zrealizowanej poszczególnych towarów dla zaznaczonych dokumentów (na przykładzie listy RO)

Z tabeli TraNag należy odnaleźć tabelę Pozycje i z niej przeciągnąć na wydruk kolumnę Nazwa towaru (w tym przypadku w zakładce Dane może być to gałąź Moje dane/Rezerwacja odbiorcy/Pozycje dokumentu) – uzyskamy wówczas wszystkie towary jakie są dostępne w tabeli cdn.traelem (szczegółowy opis pól znajduje się w opisie struktury bazy danych dostępnym dla Autoryzowanych Partnerów Comarch na stronie walidowanej). Klikamy na dowolnej pozycji na wydruku w utworzonej tabelce. Następnie z przyjaznego schematu z tabeli PozycjeDokumentuHamag należy do utworzonej tabeli wyciągnąć kolumnę Typ dokumentu i wyfiltrować ją po typie 308 (Rezerwacja Odbiorcy) czyli prawy klawisz myszy Filtruj.. i podajemy typdokumentu=308.

Po wyfiltrowaniu usuwamy z wydruku kolumnę Typdokumentu. Do tabelki z dowiązania PozycjeDokumentuHamag/Rezerwacja Odbiorcy/Zaznaczenia przeciągamy kolumnę techniczną GUID. Utworzy się wówczas kolumna Zaznaczenia. Teraz należy kliknąć w innej kolumnie np. tam gdzie są pozycje i prawy klawisz myszy filtruj -> wybrać Zaznaczenia -> Zbiór rekordów jest niepusty (zob. poniższy rysunek).

Operacja Filtruj…

Teraz trzeba kolumnę GUID wyfiltrować po [./GUID] == param(„CDN_GUID”)

Filtr GUID

Po tej operacji można usunąć kolumnę Zaznaczenia. Teraz należy jeszcze kliknąć na zielonej kropce nad nagłówkiem Nazwa towaru w utworzonej tabelce i poprawić wyrażenie na:

[*Pozycje dokumentu HaMag] : [./Typ dokumentu] == 302 && exists([./->Rezerwacja odbiorcy/->Zaznaczenia] : [./GUID] == param(„CDN_GUID”)) || param(„CDN_GUID”) == „CDN_GUID”

Klikamy w utworzonej tabelce w dowolnej pozycji i z przyjaznego schematu przeciągamy do tabelki odpowiednie pola np. pole Ilość.  Można dodać kolumnę Ilość zrealizowana, w której wcześniej należy wprowadzić formułę analogiczną do tej, którą widać na wydruku Rezerwacja (GenRap) -> Stan rezerwacji.

Teraz pod prawym klawiszem grupujemy dane, dane zostaną zgrupowane. Poszczególne wartości dla grup można sumować (przycisk ). Niepotrzebne dane można usunąć.

Agregacja pozycji o tej samej nazwie

Zalecamy ustawić agregację od razu na FA tworzonych z WZ (parametr w Konfiguracji Firmy/Magazyn/Parametry), wówczas na fakturze już będą agregowane pozycje i z wydrukiem nie będzie problemu (chyba, że towary pochodzą z różnych magazynów).

Na wydruku można pogrupować towary, np. wg nazwy (najpierw należy zaznaczyć kolumnę Nazwa, a następnie wybrać opcję Grupuj wg wybranych kryteriów.. dostępną w menu pod prawym klawiszem myszy):

Następnie można podsumować:

Albo użyć opcji Zestawienie/Zwiń do:


Zadłużenie kontrahenta na FA (tabelka należności kontrahenta na wydruku faktury VAT)

Przed wysłaniem monitu, ponaglenia, wezwania do zapłaty, jedną z opcji przypomnienia kontrahentowi o zaległych płatnościach jest umieszczenie takiej informacji na wydruku faktury.

Poniżej znajduje się krótki opis czynności, jakie należy wykonać, aby wygenerować taki format wydruku.

Jeżeli kontrahent, dla którego wystawiamy dokument posiada jakieś zadłużenie (wg daty wydruku), zostanie ono wylistowane na wydruku faktury.

  1. Z gałęzi Wszystkie dane należy wybrać zestaw DokumentyKasaBank i wstawić odpowiednie kolumny do raportu. Np.:

[./dkb_numer] –Numer dokumentu

[./dkb_kwotasys] – Kwota dokumentu

  1. Na powstałej tabelce należy zastosować filtr na zapisy dla wybranego na fakturze kontrahenta, o odpowiednim kierunku przepływu, z odpowiednią datą itp.

Aby założyć filtry Użytkownik powinien zaznaczyć powstałą tabelę i pod prawym klawiszem myszy wybrać opcję „Filtruj”. Należy założyć 3 filtry :

a) W zestawie danych Wszystkie pola ustawić się na dkb_podmiotid > wcisnąć Dodaj filtr następnie ustawić warunek „równe”  > wybrać i w pustym okienku wpisać:

 [/Identyfikator/trn_podid]

b) W okienku Dostępne pola wybrać „Dowolne wyrażenie filtrujące” > wcisnąć Dodaj filtr i w powstałym okienku zamiast treści „true” wkleić poniższą:

[./dkb_termin] <= param(”CDN_DataNaWydruku”)

c) W okienku Dostępne pola wybrać „Dowolne wyrażenie filtrujące”  > wcisnąć Dodaj filtr i w powstałym okienku zamiast treści „true” wkleić poniższą:

([./dkb_podmiottyp] == 1 && [./dkb_rozliczono] == 1 && ([./dkb_typdokumentukb] == 2 || [./dkb_stan] >= 1) && ([./dkb_typdokumentukb] == 1 && [./dkb_kierunek] == 1 || [./dkb_typdokumentukb] == 2 && [./dkb_kierunek] == -1))

3. Do tabeli można jeszcze dodać kolumnę z kwotą, która jest zaległa do zapłaty  (pod prawym klawiszem myszy jest dostępna funkcja: Wstaw kolumnę).

Nowej kolumnie należy nadać nazwę np.  „Kwota pozostaje” – dla kolumny tej wartości powinny stanowić różnicę pomiędzy kwotą całkowitą zapisu i kwotą rozliczoną.

W pasku formuły dodajemy pole KwotaPozostaje, dla którego formuła wygląda tak:

if([./dkb_kierunek] == if([./dkb_typdokumentukb] == 2, -1, 1), [./dkb_kwotasys] – [./dkb_kwotarozsys], 0)

4. Formatujemy tabelkę należności zgodnie z oczekiwaniami. Można przykładowo dodać selekcję tak, aby tabelka pokazywała się, gdy np. zadłużenie przekracza 500 zł (w powyższym przykładzie jest wykazywane zawsze jeżeli istnieje).

Jednostki podstawowe i pomocnicze

Wyświetlanie jednostki podstawowej

Z zakładki Dane należy przeciągnąć (przytrzymując lewy klawisz myszy) pole tre_ilosc do pustej kolumny.
(pole tre_ilosc jest dostępne w zakładce Dane w gałęzi Pozycje dokumentu). Zostaną w niej uzupełnione ilości towaru przeliczone w jednostce podstawowej.

Stojąc na kolumnie z ilością w jednostce podstawowej wcisnąć przycisk Suma .

W celu uzyskania podsumowanie ilości pozycji z dokumentu w jednostkach podstawowych, można wpisać w definicję wybranego pola na wydruku wyrażenie sum(PozycjeDokumentu, tre_ilosc)

Jeśli natomiast chcielibyśmy zsumować tylko ilości dla tych towarów, których jednostką podstawową jest „KG”, można wstawić warunek:

sum(PozycjeDokumentu, (if([./->Towar/JM] == „KG”, [./tre_ilosc], 0)))

Przeliczanie z jednostki podstawowej na pomocniczą

Uwaga
Od wersji 2013.5.1 umożliwione zostało definiowanie wielu jednostek pomocniczych – jednostki pomocnicze definiowane są na zakładce Jednostki i kody na formularzu towaru. W Generatorze Raportów dodano gałąź Towar/Jednostki pomocnicze. W poniższych polach prezentowanych w przykładzie, przechowywana jest informacja o pierwszej z listy jednostce pomocniczej i przykład prezentowany jest dla pierwszej jednostki. W celu dokonania przeliczeń dla pozostałych jednostek pomocniczych należy posłużyć się wartościami z gałęzi Towar/Jednostki pomocnicze.

Jednostki i ich przeliczniki w wydruku GenRap można pobrać z pól:

Gdzie wartości pól licznik i mianownik pobrane są z karty towaru.

Operując tymi danymi można przeliczać jednostki na wydruku stosując podstawowe operacje mnożenia i dzielenia.
Jeśli znamy jednostkę podstawową i pomocniczą oraz przeliczniki (licznik i mianownik) z karty towaru, możemy oprzeć obliczenia na równaniu:
(Ilość w jednostce pomocniczej) = (ilość w jednostce podstawowej)*mianownik/licznik

Przykład
Chcąc pokazać na wydruku ilość towaru w jednostce pomocniczej, należy odnieść się do ilości w jednostce podstawowej (tre_ilosc). Ilość w jednostce pomocniczej będzie wyliczona za pomocą wyrażenia:

([./tre_ilosc] * [./->Towar/JM przelicznik – mianownik]) / [./->Towar/JM przelicznik – licznik]

Waga poszczególnych pozycji na wydruku faktury (przekazanie wartości w atrybucie WAGA)

Należy zacząć od ustalenia wartości atrybutu liczbowego WAGA dla pozycji cennikowej w programie (formularz towaru, zakładka Atrybuty). Następnie w edytorze GenRap:

  1. Przenosimy na wydruk z zakładki Dane pole Pozycje dokumentu/Atrybuty pozycji dokumentu/Wartość
  2. W filtrze dodajemy warunek (pod prawym klawiszem myszy opcja Filtruj..) dla pola Wszystkie pola/Atrybuty/Kod…. równe … WAGA 
  3. Wybieramy opcję Zestawienie/Zwiń do.. minimum
  4. Na końcu mnożymy przez ilość, ale mnożone wyrażenie przekształcamy na format liczbowy:
    decimal( x )*[./Ilość]
    Uwaga
    Jeśli po wykonaniu mnożenia przez ilość pojawi się błąd należy spróbować zmienić format na liczbowy (pod prawym klawiszem myszy wybrać opcję „Format wyrażenia…”).

    Jeśli to nie pomoże można zamienić w wartości atrybutu kropkę na przecinek za pomocą wyrażenia:
    replace(\[./Wartość (tekst)\], „,”, „.”)
  5. jeśli chcemy dodać jeszcze podsumowanie wagi dla całego dokumentu możemy stojąc w polu z wagą wybrać przycisk sumy w pasku zadań :

Finalnie wyrażenie będzie miało postać:
decimal(min([./<-Atrybuty pozycji dokumentu] : [./->Atrybuty/Kod] == „WAGA”, [./Wartość (tekst)])) * [./Ilość]

Wyświetlenie rabatu dla elementu transakcji, ceny przed i po rabacie.

Edytujemy istniejący wydruk:

  1. Dodajemy kolumnę z ceną początkową (przed rabatem). W tym celu z zestawu danych Pozycje dokumentu przenosimy na wydruk pole Cena początkowa w walucie dokumentu, nadajemy przyjazną nazwę CenaPrzedRabatem
  2. Dodajemy kolumnę z kwotą udzielonego rabatu [w %]. W tym celu z zestawu danych Pozycje dokumentu przenosimy na wydruk pole Rabat dla pozycji
  3. Dodajemy kolumnę z ceną sprzedaży (po rabacie). Z zestawu danych Pozycje dokumentu przenosimy na wydruk pole Cena w walucie dokumentu. Nadajemy przyjazną nazwę CenaPoRabacie
  4. Dodajemy nową kolumnę do zestawienia z elementami transakcji, w której wyliczymy wartość kwotową rabatu. Wyliczamy wartość rabatu (przyjazna nazwa RabatWartosc) jako różnicę pomiędzy ceną początkową a ceną transakcji. Wyrażenie:

CenaPrzedRabatem – CenaPoRabacie

  1. W przypadku, gdy występuje narzut, nie wyświetlamy rabatu oraz wartości rabatu. Wyrażenia:

if([./Rabat dla pozycji] < 0, 0, [./Rabat dla pozycji])

if(CenaPrzedRabatem – CenaPoRabacie > 0, abs(CenaPrzedRabatem – CenaPoRabacie), 0)

  1. Wyrażeniom CenaPrzedRabatem, CenaPoRabacie, RabatWartosc nadajemy format wyrażenia – liczbowy

W poniższej tabeli przedstawione zostały zastosowane wyrażenia:

KolumnaWyrażenie
Cena początkowa w walucie dokumentu[./Cena początkowa w walucie dokumentu]
Rabat [%][./Rabat dla pozycji]
Cena netto\brutto po rabacie (w walucie dokumentu)[./Cena w walucie dokumentu]
Rabat kwotowoCenaPrzedRabatem - CenaPoRabacie

Umieszczenie na wydruku faktury informacji o cenie i wartości netto/ brutto

Uwaga
To czy dla poszczególnych pozycji drukuje się wartość netto czy brutto zależy od wybranego algorytmu wyliczania podatku VAT na dokumencie.
Jeśli wybrano „od brutto”, wówczas dla każdego towaru pobierana jest cena brutto z karty i wartość liczona też jako brutto. Następnie na podstawie tych wartości wyliczana jest wartość sumaryczna dokumentu brutto. Od tej wartości wyliczany jest podatek VAT i na tej podstawie wykazywana jest wartość netto dokumentu (jako brutto minus VAT).
Jeśli nawet dodana zostanie kolumna z ceną/wartością brutto każdej pozycji na dokumencie liczonym „od netto” – najprawdopodobniej suma wartości brutto nie zgodzi się z wartością brutto dokumentu w podsumowaniu. Wynika to ze sposobu wyliczania podatku, opisanego powyżej.
Wyświetlenie kolumny z ceną/wartością netto i brutto na jednym dokumencie może mieć tylko charakter informacyjny.

Na standardowym wydruku Faktury Sprzedaży widoczne są ceny i wartości netto jeśli faktura liczona jest „od netto”. Jeśli liczona jest „od brutto”, wówczas widoczne są tylko ceny i wartości brutto.

Wydruk standardowy wygląda tak:

Jeśli chcemy uzyskać dodatkowe informacje na wydruku (jak na poniższym rysunku):

Na wydruku możemy wykorzystać wartości zapisane w polach:

[./Wartość brutto]

[./Wartość netto])

[./Cena] – w polu cena przechowywana jest cena netto jeśli algorytmem na fakturze jest „od netto” (analogicznie w przypadku algorytmu „od brutto” – w polu tym będziemy mieli cenę brutto), natomiast jeśli algorytm jest „od netto” a chcemy uzyskać cenę brutto, możemy ją wyliczyć na podstawie wartości brutto dzielonej przez ilość
Należy zdefiniować 4 kolumny:

1.

Nagłówek: if([/Identyfikator/Dokument liczony od] == 1, „Cena netto”, „Cena brutto”)

Wartość: Cena1=[./Cena]

2.

Nagłówek: if([/Identyfikator/Dokument liczony od] == 1, „Wartość netto”, „Wartość brutto”)

Wartość: Wartosc=if([/Identyfikator/Dokument liczony od] == 1, [./Wartość netto], [./Wartość brutto])

3.

Nagłówek: if([/Identyfikator/Dokument liczony od] == 1, „Cena brutto”, „Cena netto”)

Wartość: cena2= wartosc2 / [./Ilość]

4.

Nagłówek: if([/Identyfikator/Dokument liczony od] == 1, „Wartość brutto”, „Wartość netto”)

Wartość: wartosc2=if([/Identyfikator/Dokument liczony od] == 1, [./Wartość brutto], [./Wartość netto])

Wyświetlenie dostaw towaru, które znajdują się na magazynie dłużej niż X dni

Dodanie parametru dynamicznego

W konfiguracji wydruków dla wydruku Lista zasobów(GenRap) należy edytować definicję wydruku i dodać parametr. W tym przypadku jest to parametr liczbowy (ilość dni, jaką towar zalega w magazynie).

W edytorze GenRap dodajemy parametr , który nazywa się tak samo jak ten, który stworzyliśmy w konfiguracji wydruków. W tym przypadku jest to:

Ile_dni_zalega

Właściwości pobierania

      

Rozgrupowanie

Należy rozgrupować dane ponieważ w tym przypadku nie jest potrzebny podział na grupy –> prawy przycisk myszy i opcja Grupowanie/ Rozgrupuj

Wiersz szczegółów

Dodajemy wiersz szczegółów dla towarów:

   <— Zestawienie/ Wstaw wiersz szczegółów

Wyświetlenie dostaw

W pusty wiersz przeciągamy gałąź Towary/Zasoby towarów/Ilość, przeciągamy też w nowe kolumny pola Wartość i Data.

Przeliczanie daty (bieżąca – ilość dni pobranych z parametru)

W nagłówku wydruku można wpisać informację: Towary pochodzące z dostaw sprzed: … tutaj wstawiamy wyrażenie które wyliczy datę = data bieżąca minus ilość dni, czyli:

dateadd(„day”, param(„CDN_DataNaWydruku”), (-1) * param(„ile_dni_zalega”))

Wyrażenie pozwoli wyliczyć datę, wg której będziemy filtrować zasoby dostępne obecnie na magazynie.
Usuwamy z wydruku wszystkie zbędne informacje, zostawiamy tylko te dane, które będą potrzebne – najważniejsza jest lista dostaw i podsumowanie ilości dla poszczególnych towarów.

Wybranie dostaw sprzed wskazanej daty

W celu wyfiltrowania tylko tych dostawy, których data jest mniejsza niż wyliczona, na liście dostaw naciskamy prawy przycisk myszy i wybieramy opcję Filtruj… Ustawiamy warunek:

Data – przed – dateadd(„day”, param(„CDN_DataNaWydruku”), (-1) * param(„ile_dni_zalega”))

Taki filtr pozwoli wyświetlić tylko dostawy przed zadaną datą.

Należy zrobić podsumowanie ilości dla poszczególnych pozycji (przycisk w pasku zadań albo poprzez polecenie sum(Zasobytowarów, Ilość) )

Sortowanie

Można np. wybrać kryterium sortowania malejąco wg ilości zalegającej towaru:

Można też obliczyć, która dostawa, ile dni zalega:

datediff(„day”, [./Data], param(„CDN_DataNaWydruku”))

Selekcja (ukrywanie zerowych ilości)

Jeśli nie chcemy wyświetlać towarów, dla których nie ma zalegających dostaw, można zrobić dodatkowo selekcję: zaznaczamy dane, dla których chcemy zrobić selekcję, przechodzimy na zakładkę Selekcje i wybieramy przycisk: 

Wyznaczamy warunek:
sum == 0
…..i zaznaczamy opcję „Ukrycie”