﻿{"id":16045,"date":"2018-09-19T10:54:08","date_gmt":"2018-09-19T10:54:08","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/?post_type=ht_kb&#038;p=16045"},"modified":"2025-02-24T11:26:31","modified_gmt":"2025-02-24T11:26:31","slug":"opt074-dodawanie-kolumn-uzytkownika-na-listach","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/dokumentacja\/opt074-dodawanie-kolumn-uzytkownika-na-listach\/","title":{"rendered":"OPT074 &#8211; Dodawanie kolumn u\u017cytkownika na listach"},"content":{"rendered":"<p style=\"text-align: right;\">Data aktualizacji: 25-01-2024<\/p>\n<p style=\"text-align: right;\"><div class=\"su-list\" style=\"margin-left:0px\">\n<div class=\"su-spoiler su-spoiler-style-fancy su-spoiler-icon-caret su-spoiler-closed\" data-scroll-offset=\"0\" data-anchor-in-url=\"no\"><div class=\"su-spoiler-title\" tabindex=\"0\" role=\"button\"><span class=\"su-spoiler-icon\"><\/span>Spis tre\u015bci<\/div><div class=\"su-spoiler-content su-u-clearfix su-u-trim\">\n<h3><a href=\"#wst\">Wst\u0119p<\/a><\/h3>\n<ul>\n<li style=\"padding-left: 30px;\"><a href=\"#wyg\">Wygl\u0105d okna personalizacji listy &#8211; definiowanie kolumn u\u017cytkownika<\/a>\n<ul>\n<li style=\"padding-left: 60px;\"><a href=\"#kol\">Kolumny u\u017cytkownika<\/a><\/li>\n<li style=\"padding-left: 60px;\"><a href=\"#tab\">Tabele u\u017cytkownika<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#pkol\">Parametr kolumny u\u017cytkownika na oknie personalizacji<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#dkol\">Dodawanie kolumn na listach<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#zmi\">Przekazywanie zmiennych dynamicznych<\/a><\/li>\n<\/ul>\n<h3><a href=\"#prz\">Przyk\u0142ady z instrukcj\u0105 tworzenia<\/a><\/h3>\n<ul>\n<li style=\"padding-left: 30px;\"><a href=\"#handel\">Handel<\/a><\/li>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"padding-left: 30px;\"><a href=\"#prz1h\">1. Lista zasob\u00f3w\/cennik. Kolumny: kod PLU, nazwa fiskalna oraz waga towaru<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz2h\">2. Lista zasob\u00f3w\/cennik. Kolumny: kod CN oraz kraj pochodzenia<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz3h\">3. Lista zasob\u00f3w\/cennik. Kolumna mar\u017ca procentowa dla ceny hurtowa1 &#8211; szybkie sprawdzenie przewidywanej mar\u017cy<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz4h\">4. Lista zasob\u00f3w. Ilo\u015b\u0107 dni zalegania towaru na magazynie\/ach na podstawie najstarszej dostawy<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz5h\">5. Lista zasob\u00f3w\/cennik. Kolumna \u015brednia cena zakupu dla dostaw, kt\u00f3re nie zosta\u0142y zdj\u0119te z magazynu<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz6h\">6. Lista zasob\u00f3w\/cennik. Kolumna wy\u015bwietlaj\u0105ca \u2018Tak\u2019 je\u015bli towar\/us\u0142uga jest udost\u0119pniany w przynajmniej jednym e-Sklepie oraz \u2018Nie\u2019 je\u015bli nie jest udost\u0119pniany<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz7h\">7. Lista kontrahent\u00f3w. Kolumna z list\u0105 atrybut\u00f3w przypisanych do kontrahenta\u00a0<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz8h\">8. Lista zestaw\u00f3w promocyjnych. Kolumna z maksymaln\u0105 liczb\u0105 zestaw\u00f3w jakie mo\u017cna utworzy\u0107, bior\u0105c pod uwag\u0119 ilo\u015bci towar\u00f3w wchodz\u0105cych w sk\u0142ad zestawu znajduj\u0105ce si\u0119 w magazynach<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz9h\">9. Lista dokument\u00f3w w module Handel. Kolumna Mail<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz10h\">10. Lista dokument\u00f3w w module Handel. Kolumna Wydruk\u00a0<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz11h\">11. Lista dokument\u00f3w w module Handel. Kolumna e-mail kontrahenta (Nabywcy)<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz12h\">12. Lista dokument\u00f3w w module Handel. Kolumna z informacj\u0105 o akronimie operatora, kt\u00f3ry zmodyfikowa\u0142 dokument<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz13h\">13. Lista dokument\u00f3w w module Handel. Kolumna z nazw\u0105 dnia tygodnia terminu p\u0142atno\u015bci<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz14h\">14. Lista dokument\u00f3w w module Handel. Sumaryczna waga dokumentu\u00a0<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz15h\">15. Lista dokument\u00f3w w module Handel. Kolumna z form\u0105 p\u0142atno\u015bci<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz16h\">16. Lista dokument\u00f3w w module Handel. Akronim operatora lub pracownika, kt\u00f3ry jest opiekunem kontrahenta, dla kt\u00f3rego zosta\u0142 wystawiony dokument<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz17h\">17. Lista dokument\u00f3w w module Handel. Kolumna pokazuj\u0105ca \u0142\u0105czn\u0105 wysoko\u015b\u0107 op\u0142aty cukrowej naliczonej dla pozycji danego dokumentu<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz18h\">18. Wy\u015bwietlanie na listach dokument\u00f3w numer\u00f3w powi\u0105zanych dokument\u00f3w Zlecenia Nadania Przesy\u0142ek<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz19h\">19. Lista Faktur Sprzeda\u017cy. Kolumna pozostaje do zap\u0142aty 18<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz20h\">20. Lista Faktur Sprzeda\u017cy oraz Faktur Zakupu. Wy\u015bwietlanie rozliczaj\u0105cych dokument\u00f3w KP\/KW<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz21h\">21. Lista Faktur Sprzeda\u017cy oraz Faktur Zakupu. Wy\u015bwietlanie daty rozliczenia dokumentu<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz22h\">22. Lista Faktur Sprzeda\u017cy oraz Paragon\u00f3w. Wy\u015bwietlanie powi\u0105zanych dokument\u00f3w Wydania Zewn\u0119trznego<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz23h\">23. Lista Faktur Sprzeda\u017cy oraz Wyda\u0144 Zewn\u0119trznych. Wy\u015bwietlanie powi\u0105zanych korekt<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz24h\">24. Lista dokument\u00f3w WZ. Kolumna mar\u017ca\u00a0<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz25h\">25. Wy\u015bwietlanie na li\u015bcie Wyda\u0144 Zewn\u0119trznych informacji, czy do powi\u0105zanego z nim zam\u00f3wienia (Rezerwacji Odbiorcy) ma by\u0107 wystawiony Paragon\/Faktura<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz26h\">26. Wy\u015bwietlanie na li\u015bcie Rezerwacji Odbiorcy informacji, czy do zam\u00f3wienia ma by\u0107 wystawiony Paragon\/Faktura<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz27h\">27. Lista Faktur Pro Forma. Kolumna wy\u015bwietlaj\u0105ca sum\u0119 warto\u015bci netto wszystkich powi\u0105zanych Faktur Zaliczkowych<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz28h\">28. Lista zg\u0142osze\u0144 przewozu towaru SENT \u2013 Kod CN<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz29h\">29. Formularz dokumentu w module Handel. Ostatnia cena zakupu<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz30h\">30. Formularz dokumentu w module Handel. Sumaryczna waga pozycji<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz31h\">31. Formularz dokumentu w module Handel. Kolumny: Ilo\u015b\u0107 dost\u0119pna i braki towaru, na magazynie z dokumentu i z dat\u0105 wystawienia dokumentu<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz32h\">32. Formularz dokumentu w module Handel. Ostatnia cena zakupu, data ostatniej dostawy oraz \u015brednia cena zakupu<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz33h\">33. Formularz dokumentu w module Handel. Kolumna warto\u015b\u0107 atrybutu pozycji<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz34h\">34. Formularz dokumentu w module Handel. Kolumna pokazuj\u0105ca, z kt\u00f3rego dokumentu agregowanego pochodzi dana pozycja<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz35h\">35. Formularz dokumentu w module Handel. Kolumna z list\u0105 atrybut\u00f3w przypisanych do pozycji dokumentu<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz36h\">36. Formularz Inwentaryzacji. \u015arednia cena zakupu dostaw znajduj\u0105cych si\u0119 w magazynie, dla kt\u00f3rego wykonywana jest inwentaryzacja<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz37h\">37. Okno historii Towaru &#8211; kolumna opis dokumentu<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#serwis\">Serwis, CRM, Obieg dokument\u00f3w<\/a>\n<ul>\n<li style=\"padding-left: 30px;\"><a href=\"#prz1s\">1. Lista zlece\u0144 serwisowych. Kolumny: nazwa urz\u0105dzenia, opis urz\u0105dzenia, priorytet zlecenia<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz2s\">2. Zlecenie serwisowe. Zak\u0142adka Cz\u0119\u015bci. Kolumna z numerem dokumentu wydaj\u0105cego cz\u0119\u015b\u0107\u00a0<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz3s\">3. Lista Ofert Handlowych. Kolumna zawieraj\u0105ca numery dokument\u00f3w powi\u0105zanych<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz4s\">4. Formularz Oferty Handlowej. Dodanie kolumny zawieraj\u0105cej cen\u0119 zakupu w li\u015bcie element\u00f3w<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz5s\">5. Formularz Oferty Handlowej, zak\u0142adka Kontrahent. Kolumna z numerami dokument\u00f3w, kt\u00f3re zosta\u0142y wygenerowane dla danego Kontrahenta poprzez przekszta\u0142cenie aktualnie otwartej Oferty<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz6s\">6 Lista biblioteki dokument\u00f3w. Kolumny: schemat obiegu oraz etap bie\u017c\u0105cy<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#ksiegowoscbank\">Ksi\u0119gowo\u015b\u0107 i Kasa\/Bank<\/a>\n<ul>\n<li style=\"padding-left: 30px;\"><a href=\"#prz1k\">1. Rejestr VAT. Kolumna do jakiego dziennika zosta\u0142 zapis z rejestru zaksi\u0119gowany oraz jaki ma numer w dzienniku<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz2k\">2. Rejestr VAT. Kolumny: forma p\u0142atno\u015bci, termin, kwota zaksi\u0119gowania do KPiR-kwota, data ksi\u0119gowania, numer korekty, numer dziennika cz\u0105stkowego<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz3k\">3. Lista \u015brodk\u00f3w trwa\u0142ych. Kolumny: metoda amortyzacji, opis<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz4k\">4. Lista dokument\u00f3w \u015brodk\u00f3w trwa\u0142ych. Kolumny: osoba przekazuj\u0105ca, osoba przyjmuj\u0105ca, miejsce u\u017cytkowania przekazuj\u0105ce, miejsce u\u017cytkowania przyjmuj\u0105ce<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz5k\">5. Lista ewidencji dodatkowej. Kolumna kod kategorii\u00a0<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz6k\">6. Lista not odsetkowych, ponagle\u0144 zap\u0142aty, potwierdze\u0144 sald. Kolumna kod podmiotu<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz7k\">7. Lista dokument\u00f3w rozliczonych. Kolumna pokazuj\u0105ca czy rozliczenie zosta\u0142o uwzgl\u0119dnione na dokumencie kompensaty<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz7k\">8. Lista deklaracji. Kolumna z polem kwotowym z deklaracji utworzonej w Comarch Deklaracje Podatkowe<\/a><\/li>\n<\/ul>\n<\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#placeikadry\">P\u0142ace i Kadry<\/a>\n<ul>\n<li style=\"padding-left: 30px;\"><a href=\"#prz1p\">1. Lista pracownik\u00f3w. Kolumna z warto\u015bci\u0105 atrybutu o nazwie Atrybut 1 na dzie\u0144 bie\u017c\u0105cy<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz2p\">2. Lista pracownik\u00f3w. Kolumna z warto\u015bci\u0105 atrybutu o nazwie Atrybut 1 na dzie\u0144 daty aktualno\u015bci listy<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz3p\">3. Lista pracownik\u00f3w. Kolumna z pe\u0142nym kodem ubezpieczenia pracownika na dzie\u0144 daty aktualno\u015bci listy<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz4p\">4. Lista pracownik\u00f3w. Kolumna z wyszczeg\u00f3lnion\u0105 dat\u0105 wa\u017cno\u015bci bada\u0144 okresowych, kt\u00f3ra up\u0142yn\u0119\u0142a lub up\u0142ynie w okresie 30 dni od daty<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz5p\">5. Lista pracownik\u00f3w. Kolumna z wyszczeg\u00f3lnion\u0105 dat\u0105 zwolnienia, kt\u00f3ra up\u0142yn\u0119\u0142a lub up\u0142ynie w okresie 5 dni od daty aktualno\u015bci<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz6p\">6. Lista pracownik\u00f3w. Kolumna z dat\u0105 rozwi\u0105zania nierozliczonej umowy, kt\u00f3ra zako\u0144czy\u0142a si\u0119 10 dni temu w stosunku do daty aktualno\u015bci<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz7p\">7. Lista pracownik\u00f3w. Kolumna z wyszczeg\u00f3lnion\u0105 dat\u0105 wa\u017cno\u015bci uprawnienia Szkolenie BHP (UPR_UprId=52), kt\u00f3ra up\u0142yn\u0119\u0142a lub up\u0142ynie w okresie 30 dni od daty aktualno\u015bci<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz8p\">8. Lista wyp\u0142at pracownik\u00f3w. Kolumna z sum\u0105 naliczonej zaliczki podatku (bez zaokr\u0105gle\u0144) w wyp\u0142acie pracownika dla wybranej listy p\u0142ac<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz9p\">9. Lista wyp\u0142at pracownik\u00f3w. Kolumna z sum\u0105 naliczonej zaliczki podatku (bez zaokr\u0105gle\u0144) w wyp\u0142acie pracownika dla wybranej listy p\u0142ac \u2013 przypadek, gdy dwie wyp\u0142aty (np. umowy cywilnoprawne) policzone s\u0105 w jednej wyp\u0142acie<\/a><\/li>\n<li style=\"padding-left: 30px;\"><a href=\"#prz10p\">10. Deklaracje PIT pracownik\u00f3w. Kolumna z kwot\u0105 przychodu ze stosunku pracy (pozycja 29) z deklaracji PIT-11 za wybrany rok.<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/div><\/div>\n<\/div>\n<p><a name=\"wst\"><\/a><\/p>\n<h2>Wst\u0119p<\/h2>\n<p>U\u017cytkownik <strong>Comarch ERP Optima<\/strong> ma mo\u017cliwo\u015b\u0107 dodawania na listach dokument\u00f3w kolumn o dowolnej definicji z dowolnej tabeli dost\u0119pnej w bazie danych. Dodawanie kolumn odbywa si\u0119 z pomoc\u0105 mechanizmu personalizacji okna. Mo\u017cliwe jest wy\u0142\u0105czenie personalizacji listy dla danego operatora, zwyk\u0142a personalizacja kolumn, kt\u00f3re zdefiniowa\u0142 u\u017cytkownik poprzez dodanie kolejnych instrukcji JOIN, dodanie wyra\u017ce\u0144 definiuj\u0105cych now\u0105 kolumn\u0119 oraz testowanie ca\u0142ego zapytania.<br \/>\nMo\u017cna w dowolny spos\u00f3b do\u0142\u0105cza\u0107 tabele (r\u00f3wnie\u017c z bazy konfiguracyjnej) do zdefiniowanego zapytania SQL oraz definiowa\u0107 kolumny o dowolnej sk\u0142adni pobierania danych. Dodawanie kolumn mo\u017ce odbywa\u0107 si\u0119 w \u0142atwy spos\u00f3b poprzez \u201eprzeci\u0105gni\u0119cie\u201d wybranej kolumny na list\u0119 <strong>Kolumny u\u017cytkownika<\/strong>. Dodane kolumny mo\u017cna sortowa\u0107, grupowa\u0107 oraz wykonywa\u0107 operacje dost\u0119pne z wiersza sum.<br \/>\nPo dodaniu kolumn i tabel wydajno\u015b\u0107 pobierania danych na li\u015bcie mo\u017ce znacznie spa\u015b\u0107. Nale\u017cy rozwa\u017cy\u0107 tutaj dwa przypadki: sama definicja kolumny nie spowoduje \u017cadnego spowolnienia, je\u015bli kolumna nie b\u0119dzie widoczna oraz dodatkowa instrukcja LEFT JOIN spowoduje spowolnienie tylko wtedy, gdy b\u0119dzie widoczna jaka\u015b kolumna wykorzystuj\u0105ca t\u0105 instrukcj\u0119 lub kolumna zostanie u\u017cyta w filtrze. Powy\u017csze problemy zostawiamy do rozwi\u0105zania wdro\u017ceniowo przez partnera rozszerzaj\u0105cego funkcjonalno\u015b\u0107 listy.<\/p>\n<p><a name=\"wyg\"><\/a><\/p>\n<h3>Wygl\u0105d okna personalizacji &#8211; definiowanie kolumn u\u017cytkownika<\/h3>\n<p>Funkcjonalno\u015b\u0107 dost\u0119pna jest z poziomu personalizacji aktywnego okna <strong>&lt;Shift&gt;+&lt;F9&gt;<\/strong> po klikni\u0119ciu ikony <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-16058\" src=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2023_5\/wp-content\/uploads\/2018\/09\/konfiguracja-kolumn.png\" alt=\"\" width=\"36\" height=\"37\" \/>. Na\u00a0oknie\u00a0<strong>Personalizacja listy<\/strong> jest mo\u017cliwo\u015b\u0107:<\/p>\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> Dodawania z\u0142\u0105cze\u0144 do kolejnych tabel bazy danych (r\u00f3wnie\u017c z bazy konfiguracyjnej).<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> Dodawania wyra\u017ce\u0144 definiuj\u0105cych now\u0105 kolumn\u0119 danych,\u00a0 po kt\u00f3rej b\u0119dzie mo\u017cna sortowa\u0107 i\u00a0grupowa\u0107 list\u0119.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> Testowania ca\u0142ego zapytania.<\/li>\n<\/ul>\n<\/div>\n<p>Okno personalizacji listy podzielone jest na 5 cz\u0119\u015bci:<\/p>\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <strong>Kolumny dost\u0119pne z aktualnie wybranych tabel<\/strong> (wraz z dodatkowymi instrukcjami JOIN) &#8211; Jest to lista prezentuj\u0105ca wszystkie pola mo\u017cliwe do pokazania na li\u015bcie przy aktualnie zdefiniowanej klauzuli FROM wraz z\u00a0dodatkowymi z\u0142\u0105czeniami (instrukcjami JOIN) dodanymi przez u\u017cytkownika. Lista jest aktualizowana po\u00a0do\u0142\u0105czeniu nowej tabeli przez u\u017cytkownika w\u00a0sekcji Tabele u\u017cytkownika. Lista wy\u015bwietlana jest w\u00a0trybie tylko do\u00a0odczytu, istnieje jednak mo\u017cliwo\u015b\u0107 \u201eprzeci\u0105gni\u0119cia\u201d wybranej kolumny na list\u0119 Kolumny u\u017cytkownika.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <strong>Kolumny u\u017cytkownika<\/strong> &#8211; lista kolumn dodanych przez u\u017cytkownika. Dla dodanej kolumny mo\u017cna okre\u015bli\u0107 jej nazw\u0119 dla u\u017cytkownika, instrukcj\u0119 pobierania, typ i format wy\u015bwietlania, domy\u015bln\u0105 widoczno\u015b\u0107 i\u00a0dost\u0119pno\u015b\u0107 kolumny oraz dodatkowy opis.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <strong>Tabele domy\u015blne<\/strong> &#8211; tre\u015b\u0107 zapytania FROM standardowo wysy\u0142anego do serwera SQL \u2013 pole do odczytu.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <strong>Tabele u\u017cytkownika<\/strong> &#8211; sekcja umo\u017cliwiaj\u0105ca do\u0142\u0105czenie kolejnych tabel przez u\u017cytkownika. Aby do\u0142\u0105czy\u0107 now\u0105 tabel\u0119 nale\u017cy wskaza\u0107 jej nazw\u0119 (wraz z prefixem \u201eCDN\u201d) oraz poda\u0107 instrukcj\u0119 \u0142\u0105czenia, czyli klauzul\u0119 potrzebn\u0105 do wykonania po\u0142\u0105czenia tabel (np. TrN_KntID= Knt_KntID).<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <strong>Wynikowe zapytanie SQL<\/strong> &#8211; zapytanie utworzone z kolumn zdefiniowanych przez u\u017cytkownika i\u00a0instrukcji FROM z dodanymi z\u0142\u0105czeniami (instrukcjami JOIN) u\u017cytkownika, z mo\u017cliwo\u015bci\u0105 sprawdzenia poprawno\u015bci wykonania \u2013 pole do odczytu.<\/li>\n<\/ul>\n<\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-16061 aligncenter\" src=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2023_5\/wp-content\/uploads\/2018\/09\/personalizacja.png\" alt=\"\" width=\"979\" height=\"619\" srcset=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/personalizacja.png 979w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/personalizacja-300x190.png 300w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/personalizacja-768x486.png 768w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/personalizacja-50x32.png 50w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/personalizacja-920x582.png 920w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/personalizacja-600x379.png 600w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/personalizacja-320x202.png 320w\" sizes=\"auto, (max-width: 979px) 100vw, 979px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Rys. Personalizacja listy<\/em><\/p>\n<p>Na oknie znajduj\u0105 si\u0119 przyciski:<\/p>\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-13497\" src=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2023_5\/wp-content\/uploads\/2018\/06\/piorun_.png\" alt=\"\" width=\"52\" height=\"37\" srcset=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/06\/piorun_.png 52w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/06\/piorun_-50x36.png 50w\" sizes=\"auto, (max-width: 52px) 100vw, 52px\" \/>\u00a0&#8211;\u00a0Sprawdzenie poprawno\u015bci utworzonego zapytania<\/em>. Przycisk mo\u017cliwy do\u00a0wywo\u0142ania w\u00a0dw\u00f3ch trybach (rozwijalna lista obok przycisku):<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <em>Sprawd\u017a sk\u0142adni\u0119<\/em> &#8211; weryfikacja poprawno\u015bci sk\u0142adni zapyta\u0144 u\u017cytkownika, w przypadku poprawnego wykonania testu pojawia si\u0119 komunikat: <em>Kolumny zosta\u0142y dodane poprawnie<\/em>.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <em>Sprawd\u017a wydajno\u015b\u0107<\/em> &#8211; zmierzenie czasu wykonania zapytania u\u017cytkownika; pierwsze wykonanie zmienionego zapytania SQL mo\u017ce nie by\u0107 miarodajne, gdy\u017c Serwer SQL nie b\u0119dzie jeszcze mia\u0142 w\u00a0pami\u0119ci cache tego zapytania, w zwi\u0105zku z czym pierwsze wykonanie zapytania mo\u017ce by\u0107 d\u0142u\u017csze, ni\u017c kolejne.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11561\" src=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2023_5\/wp-content\/uploads\/2018\/02\/zapisz.png\" alt=\"\" width=\"36\" height=\"37\" \/>\u00a0Zapis zmian<\/em>. Je\u017celi po wprowadzeniu zmian u\u017cytkownik nie sprawdzi poprawno\u015bci zapytania, zostanie to wykonane w\u00a0momencie zapisu zmian w dodatkowych kolumnach. Je\u017celi zapytanie nie b\u0119dzie poprawne, okna nie b\u0119dzie mo\u017cna zapisa\u0107. Podczas zapisu okna personalizacji listy sprawdzane jest r\u00f3wnie\u017c, czy modyfikacja zapytania nie spowodowa\u0142a efektu \u201erozmno\u017cenia\u201d wierszy na li\u015bcie (np. faktura pokazuje si\u0119 na li\u015bcie tyle razy, ile ma element\u00f3w) \u2013 taka sytuacja jest b\u0142\u0119dna i niekt\u00f3re funkcje programu mog\u0105 w\u00f3wczas nie dzia\u0142a\u0107 prawid\u0142owo<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-12167\" src=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2023_5\/wp-content\/uploads\/2018\/04\/eksportuj.png\" alt=\"\" width=\"36\" height=\"37\" \/>\u00a0Eksport ustawie\u0144 <\/em>dodatkowych kolumn u\u017cytkownika, bez pozosta\u0142ych ustawie\u0144 personalizacji. Eksport wykonywany jest do formatu XML.<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> <em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-11675\" src=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2023_5\/wp-content\/uploads\/2018\/02\/importuj.png\" alt=\"\" width=\"36\" height=\"37\" \/>\u00a0Import ustawie\u0144 <\/em>dodatkowych kolumn u\u017cytkownika z pliku XML.<\/li>\n<\/ul>\n<\/div>\n<p><a name=\"kol\"><\/a><\/p>\n<h4>Kolumny u\u017cytkownika<\/h4>\n<p>Lista umo\u017cliwiaj\u0105ca dodanie przez u\u017cytkownika nowej kolumny na list\u0119. Zawiera kolumny:<\/p>\n<p><strong>Nazwa dla u\u017cytkownika<\/strong> \u2013 pod jak\u0105 nazw\u0105 kolumna b\u0119dzie widoczna na interfejsie.<\/p>\n<p><strong>Instrukcja pobrania danych<\/strong> \u2013 pole z bazy lub mo\u017cna wpisa\u0107 tre\u015b\u0107, kt\u00f3ra wyst\u0119puje w klauzuli SELECT i\u00a0dotyczy pojedynczej kolumny.<\/p>\n<p><strong>Format wy\u015bwietlania<\/strong> \u2013 mo\u017cna okre\u015bli\u0107 formatowanie zwracanych warto\u015bci w kolumnie np. je\u017celi do pokazania b\u0119dzie kolumna typu DateTime, a standardowo cz\u0119\u015b\u0107 czasowa jest ucinana, potrzebne b\u0119dzie tu wprowadzenie odpowiedniej warto\u015bci formatuj\u0105cej pokazywan\u0105 tre\u015b\u0107. Formatowanie nale\u017cy ustawi\u0107 w kolumnie <em>Typ formatu<\/em> wy\u015bwietlania oraz w\u00a0kolumnie <em>Format wy\u015bwietlania<\/em>. Kolumna <em>Typ formatu<\/em> <em>wy\u015bwietlania<\/em> przyjmuje 4 warto\u015bci:<\/p>\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> None &#8211; dane w\u00a0definiowanej kolumnie wy\u015bwietlane s\u0105 spos\u00f3b domy\u015blny<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> Numeric \u2013 dane liczbowe<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> DateTime \u2013 data\/czas<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> Custom \u2013 niestandardowy format wy\u015bwietlania<\/li>\n<\/ul>\n<p>Ostatnie 3 opcje definiuj\u0105 w\u00a0jaki spos\u00f3b warto\u015bci maj\u0105 by\u0107 wy\u015bwietlane u\u017cywaj\u0105c formatu z\u00a0pola <em>Format wy\u015bwietlania<\/em>.<\/p>\n<p>Kolumna<em> Format<\/em> <em>wy\u015bwietlania<\/em><\/p>\n<div class=\"su-list\" style=\"margin-left:0px\"><\/div>\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> Standardowe formaty wy\u015bwietlania dla liczb.<\/li>\n<\/ul>\n<p>Standardowy format wy\u015bwietlania dla liczb sk\u0142ada si\u0119 z\u00a0litery (okre\u015blaj\u0105cej rodzaj formatu) oraz 2 cyfr (okre\u015blaj\u0105cych precyzj\u0119). Rodzaj formatu decyduje w\u00a0jaki spos\u00f3b warto\u015b\u0107 jest transformowana.<\/p>\n\n<table id=\"tablepress-333\" class=\"tablepress tablepress-id-333\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\"><p style=\"text-align: center; margin: 0 auto\"><strong>Rodzaj formatu<\/strong><\/p> <\/th><th class=\"column-2\"><p style=\"text-align: center; margin: 0 auto\"><strong>Opis<\/strong><\/p> <\/th><th class=\"column-3\"><p style=\"text-align: center; margin: 0 auto\"><strong>Przyk\u0142ad formatu<\/strong><\/p> <\/th><th class=\"column-4\"><p style=\"text-align: center; margin: 0 auto\"><strong>Przyk\u0142adowa warto\u015b\u0107<\/strong><\/p> <\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">c lub C<\/td><td class=\"column-2\">Liczba jest wy\u015bwietlana jako warto\u015b\u0107 walutowa. Specyfikacja precyzji okre\u015bla \u017c\u0105dan\u0105 ilo\u015b\u0107 miejsc dziesi\u0119tnych. Je\u017celi precyzja nie zostanie wpisana, zostanie u\u017cyta domy\u015blna precyzja warto\u015bci formatu waluty z\u00a0ustawie\u0144 regionalnych.<\/td><td class=\"column-3\">c2<\/td><td class=\"column-4\">$1,234.00<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">n lub N<\/td><td class=\"column-2\">Liczba jest wy\u015bwietlana w\u00a0formie \"-d,ddd,ddd.ddd...\", gdzie ka\u017cde 'd' oznacza cyfr\u0119. Warto\u015b\u0107 b\u0119dzie poprzedzona znakiem minus, je\u017celi liczba jest ujemna. Separator tysi\u0119cy jest wstawiany mi\u0119dzy ka\u017cd\u0105 grup\u0119 3 cyfr na lewo od kropki dziesi\u0119tnej. Specyfikacja precyzji okre\u015bla \u017c\u0105dan\u0105 ilo\u015b\u0107 miejsc dziesi\u0119tnych. Je\u017celi precyzja nie zostanie wpisana, zostanie u\u017cyta domy\u015blna precyzja warto\u015bci formatu waluty z\u00a0ustawie\u0144 regionalnych.<\/td><td class=\"column-3\">n0<\/td><td class=\"column-4\">1.234<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">d lub D<\/td><td class=\"column-2\">Warto\u015b\u0107 jest wy\u015bwietlana jako liczba ca\u0142kowita ze znakiem minus. Je\u017celi wy\u015bwietlana b\u0119dzie liczba z\u00a0cz\u0119\u015bci\u0105 dziesi\u0119tna, zostanie ona sformatowana domy\u015blnie. Specyfikacja precyzji okre\u015bla minimaln\u0105 ilo\u015b\u0107 cyfr, kt\u00f3ra ma zosta\u0107 pokazana. Je\u017celi b\u0119dzie to potrzebne, liczba zostanie dope\u0142niona \u201enieistotnymi\u201d zerami z\u00a0lewej strony, aby zapewni\u0107 odpowiedni\u0105 d\u0142ugo\u015b\u0107 warto\u015bci. Je\u017celi precyzja nie zostanie wybrana, pokazane zostanie dok\u0142adnie tyle cyfr, ile potrzeba do\u00a0reprezentowania warto\u015bci bez pocz\u0105tkowych zer.<\/td><td class=\"column-3\">D8<\/td><td class=\"column-4\">00004392<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">p lub P<\/td><td class=\"column-2\">Liczba mno\u017cona jest przez 100 i\u00a0wy\u015bwietlana ze znakiem %. Specyfikacja precyzji okre\u015bla \u017c\u0105dan\u0105 ilo\u015b\u0107 miejsc dziesi\u0119tnych. Je\u017celi nie zostanie okre\u015blona, pokazywane s\u0105 4 miejsca dziesi\u0119tne.<\/td><td class=\"column-3\">P2<\/td><td class=\"column-4\">89,48 %<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-333 from cache -->\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> Standardowe formaty wy\u015bwietlania dla daty i\u00a0czasu.<\/li>\n<\/ul>\n<p>Standardowy format daty\/czasu sk\u0142ada si\u0119 z\u00a0jednej litery, kt\u00f3ra okre\u015bla wzorzec, wg kt\u00f3rego warto\u015bci b\u0119d\u0105 wy\u015bwietlane (czy i\u00a0w\u00a0jaki spos\u00f3b wy\u015bwietla\u0107 lata, miesi\u0105ce itd.).<\/p>\n\n<table id=\"tablepress-334\" class=\"tablepress tablepress-id-334\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Format<\/th><th class=\"column-2\">Opis<\/th><th class=\"column-3\">Przyk\u0142ad<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">d<\/td><td class=\"column-2\">Wzorzec daty kr\u00f3tkiej.<\/td><td class=\"column-3\">04-06-2014<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">D<\/td><td class=\"column-2\">Wzorzec daty d\u0142ugiej.<\/td><td class=\"column-3\">4 czerwca 2014<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">t<\/td><td class=\"column-2\">Wzorzec czasu kr\u00f3tkiego.<\/td><td class=\"column-3\">14:08<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">T<\/td><td class=\"column-2\">Wzorzec czasu d\u0142ugiego.<\/td><td class=\"column-3\">14:08:00<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">f<\/td><td class=\"column-2\">Wzorzec daty d\u0142ugiej i\u00a0czasu kr\u00f3tkiego.<\/td><td class=\"column-3\">4 czerwca 2014 14:08<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">F<\/td><td class=\"column-2\">Wzorzec daty d\u0142ugiej i\u00a0czasu d\u0142ugiego.<\/td><td class=\"column-3\">4 czerwca 2014 14:08:00<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">g<\/td><td class=\"column-2\">Wzorzec daty kr\u00f3tkiej i\u00a0czasu kr\u00f3tkiego.<\/td><td class=\"column-3\">04-06-2014 14:08<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">G<\/td><td class=\"column-2\">Wzorzec daty kr\u00f3tkiej i\u00a0czasu d\u0142ugiego.<\/td><td class=\"column-3\">04-06-2014 14:08:00<\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\">m lub M<\/td><td class=\"column-2\">Wzorzec miesi\u0105ca i\u00a0dnia.<\/td><td class=\"column-3\">4 czerwca<\/td>\n<\/tr>\n<tr class=\"row-11\">\n\t<td class=\"column-1\">y lub Y<\/td><td class=\"column-2\">Wzorzec roku i\u00a0miesi\u0105ca.<\/td><td class=\"column-3\">czerwiec 2014<\/td>\n<\/tr>\n<tr class=\"row-12\">\n\t<td class=\"column-1\">s<\/td><td class=\"column-2\">Wzorzec sortowalny.<\/td><td class=\"column-3\">2014-06-04T14:08:00<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-334 from cache -->\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> Niestandardowe formaty dla liczb<\/li>\n<\/ul>\n<p>Formaty niestandardowe u\u017cywane s\u0105 do r\u0119cznego stworzenia odpowiedniego wzorca. Tego sposobu formatowania nale\u017cy u\u017cywa\u0107 tylko wtedy, gdy standardowe formaty nie s\u0105 wystarczaj\u0105ce. Wszystkie formaty sk\u0142adaj\u0105ce si\u0119 z\u00a0litery, za kt\u00f3r\u0105 wyst\u0119puj\u0105 jedna lub dwie cyfry, traktowane s\u0105 jako formaty standardowe. Wszystkie pozosta\u0142e s\u0105 interpretowane jako formaty niestandardowe. Poni\u017cej znajduj\u0105 si\u0119 najcz\u0119\u015bciej u\u017cywane symbole do konstruowanie niestandardowych format\u00f3w.<\/p>\n\n<table id=\"tablepress-335\" class=\"tablepress tablepress-id-335\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Znak<\/th><th class=\"column-2\">Znaczenie<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">0<\/td><td class=\"column-2\">Cyfra jest wy\u015bwietlana zawsze.<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">#<\/td><td class=\"column-2\">Cyfra jest wy\u015bwietlana, gdy jest potrzebna (u\u017cywane np, aby nie wy\u015bwietla\u0107 pocz\u0105tkowych zer).<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">.<\/td><td class=\"column-2\">Okre\u015bla miejsce kropki dziesi\u0119tnej. Wygl\u0105d symbolu dziesi\u0119tnego zale\u017cy od ustawie\u0144 regionalnych.<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">,<\/td><td class=\"column-2\">Wyznacza u\u017cycie separatora tysi\u0119cy. Wygl\u0105d separatora zale\u017cy od ustawie\u0144 regionalnych.<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">%<\/td><td class=\"column-2\">Mno\u017cy liczb\u0119 przez 100 i\u00a0wstawia symbol % zgodny z\u00a0ustawieniami regionalnymi.<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">\\<\/td><td class=\"column-2\">Kolejny znak jest wstawiany literalnie do wyniku.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-335 from cache -->\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> Niestandardowe formaty daty i\u00a0czasu<\/li>\n<\/ul>\n<p>Aby stworzy\u0107 wzorzec daty i\u00a0czasu nale\u017cy po\u0142\u0105czy\u0107 symbole z\u00a0tabel poni\u017cej, reprezentuj\u0105ce rok, miesi\u0105c, dzie\u0144 itd. w\u00a0r\u00f3\u017cnych formatach.<\/p>\n<p>Symbole dotycz\u0105ce dat:<\/p>\n\n<table id=\"tablepress-336\" class=\"tablepress tablepress-id-336\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Symbol<\/th><th class=\"column-2\">Znaczenie<\/th><th class=\"column-3\">Wynik formatownia przyk\u0142adowej daty (22.06.2014)<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">yy<\/td><td class=\"column-2\">Ostatnie dwie cyfry roku.<\/td><td class=\"column-3\">14<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">yyyy<\/td><td class=\"column-2\">Cztery cyfry roku.<\/td><td class=\"column-3\">2014<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">MM<\/td><td class=\"column-2\">Numer miesi\u0105ca.<\/td><td class=\"column-3\">06<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">MMM<\/td><td class=\"column-2\">Skr\u00f3t nazwy miesi\u0105ca.<\/td><td class=\"column-3\">cze<\/td>\n<\/tr>\n<tr class=\"row-6\">\n\t<td class=\"column-1\">MMMM<\/td><td class=\"column-2\">Pe\u0142na nazwa miesi\u0105ca.<\/td><td class=\"column-3\">czerwiec<\/td>\n<\/tr>\n<tr class=\"row-7\">\n\t<td class=\"column-1\">dd<\/td><td class=\"column-2\">Numer dnia.<\/td><td class=\"column-3\">22<\/td>\n<\/tr>\n<tr class=\"row-8\">\n\t<td class=\"column-1\">ddd<\/td><td class=\"column-2\">Skr\u00f3t dnia tygodnia.<\/td><td class=\"column-3\">N<\/td>\n<\/tr>\n<tr class=\"row-9\">\n\t<td class=\"column-1\">dddd<\/td><td class=\"column-2\">Pe\u0142na nazwa dnia tygodnia.<\/td><td class=\"column-3\">niedziela<\/td>\n<\/tr>\n<tr class=\"row-10\">\n\t<td class=\"column-1\">\/<\/td><td class=\"column-2\">Separator daty. Pobierany z\u00a0ustawie\u0144 regionalnych.<\/td><td class=\"column-3\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-336 from cache -->\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> Symbole dotycz\u0105ce czasu:<\/li>\n<\/ul>\n\n<table id=\"tablepress-337\" class=\"tablepress tablepress-id-337\">\n<thead>\n<tr class=\"row-1\">\n\t<th class=\"column-1\">Symbol<\/th><th class=\"column-2\">Znaczenie<\/th>\n<\/tr>\n<\/thead>\n<tbody class=\"row-striping row-hover\">\n<tr class=\"row-2\">\n\t<td class=\"column-1\">hh<\/td><td class=\"column-2\">Godziny.<\/td>\n<\/tr>\n<tr class=\"row-3\">\n\t<td class=\"column-1\">mm<\/td><td class=\"column-2\">Minuty.<\/td>\n<\/tr>\n<tr class=\"row-4\">\n\t<td class=\"column-1\">ss<\/td><td class=\"column-2\">Sekundy.<\/td>\n<\/tr>\n<tr class=\"row-5\">\n\t<td class=\"column-1\">:<\/td><td class=\"column-2\">Separator czasu. Pobierany z\u00a0ustawie\u0144 regionalnych.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<!-- #tablepress-337 from cache -->\n<\/div>\n<p>Szczeg\u00f3\u0142owe informacje na temat formatowania danych mo\u017cna odnale\u017a\u0107 na stronach MSDN w obszarze dotycz\u0105cym formatowania warto\u015bci (Formatting types: <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dwhawy9k(v=vs.100).aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/dwhawy9k(v=vs.100).aspx<\/a>).<\/p>\n<p><strong>Domy\u015blnie Widoczna\/Dost\u0119pna<\/strong> \u2013 domy\u015blne warto\u015bci, jakie ustawi\u0105 si\u0119 dla tej kolumny na li\u015bcie.<\/p>\n<p><strong>Opis<\/strong> \u2013 dodatkowy opis pokazuj\u0105cy si\u0119 po najechaniu myszk\u0105 na nag\u0142\u00f3wek kolumny.<\/p>\n<p><a name=\"tab\"><\/a><\/p>\n<h4>Tabele u\u017cytkownika<\/h4>\n<p>Lista umo\u017cliwiaj\u0105ca do\u0142\u0105czenie kolejnych tabel lub innych obiekt\u00f3w dozwolonych przez SQL do wykonywanego ju\u017c zapytania. Zawiera kolumny:<\/p>\n<p><strong>Lp<\/strong> \u2013 liczba porz\u0105dkowa, s\u0142u\u017cy do ustalenia kolejno\u015bci do\u0142\u0105czania tabel w zapytaniu.<\/p>\n<p><strong>Nazwa tabeli<\/strong> \u2013 nazwa tabeli ze struktury bazy danych.<\/p>\n<p><strong>Instrukcja \u0142\u0105czenia<\/strong> \u2013 klauzula potrzebna do wykonania po\u0142\u0105czenia tabel np. TrN_KntID= Knt_KntID.<\/p>\n<p><a name=\"pkol\"><\/a><\/p>\n<h3>Parametr kolumny u\u017cytkownika na oknie personalizacji<\/h3>\n<p>Na oknie personalizacji znajduje si\u0119 kolumna <em>Kolumny u\u017cytkownika<\/em>. Domy\u015blnie ka\u017cdy operator ma\u00a0zaznaczon\u0105 t\u0119 warto\u015b\u0107, co oznacza, \u017ce dla tego operatora s\u0105 dost\u0119pne do wyboru dodatkowo zdefiniowane kolumny. Je\u017celi parametr dla operatora b\u0119dzie odznaczony \u2013 w\u00f3wczas pomimo dodanych nowych kolumn w\u00a0personalizacji, lista dla tego operatora b\u0119dzie mia\u0142a dost\u0119pne tylko standardowe kolumny. Na rozwijanej li\u015bcie z\u00a0dost\u0119pnymi kolumnami, te dodane przez u\u017cytkownika wraz z przeniesionymi domy\u015blnymi ustawieniami w\u00a0kolumnach <em>Widoczna<\/em> i <em>Dost\u0119pna<\/em> b\u0119d\u0105 widoczne na ko\u0144cu listy, dodatkowo pisane kursyw\u0105 dla \u0142atwego ich odr\u00f3\u017cnienia od kolumn standardowych.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-16091 aligncenter\" src=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2023_5\/wp-content\/uploads\/2018\/09\/okno-person.png\" alt=\"\" width=\"1518\" height=\"828\" srcset=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/okno-person.png 1518w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/okno-person-300x164.png 300w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/okno-person-768x419.png 768w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/okno-person-1024x559.png 1024w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/okno-person-50x27.png 50w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/okno-person-920x502.png 920w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/okno-person-600x327.png 600w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/okno-person-320x175.png 320w\" sizes=\"auto, (max-width: 1518px) 100vw, 1518px\" \/><\/p>\n<p style=\"text-align: center;\"><em>Rys. Okno personalizacji<\/em><\/p>\n<p><a name=\"dkol\"><\/a><\/p>\n<h3>Dodawanie kolumn na listach<\/h3>\n<p>Podczas uruchamiania okna programu z list\u0105, kt\u00f3ra ma dodane przez u\u017cytkownika niestandardowe tabele, zostanie najpierw wykonane sprawdzenie, czy zapytanie u\u017cytkownika nie zwraca wi\u0119kszej ilo\u015bci wierszy, ni\u017c zapytanie standardowe. Je\u017celi ilo\u015b\u0107 wierszy b\u0119dzie taka sama, w\u00f3wczas okno uruchomi si\u0119 w\u00a0spersonalizowanym trybie. Je\u017celi natomiast ilo\u015b\u0107 wierszy b\u0119dzie r\u00f3\u017cna, w\u00f3wczas wygenerowany zostanie komunikat: <em>Dodatkowe tabele dodane w\u00a0personalizacji powoduj\u0105 powielanie wierszy na li\u015bcie. Lista zostanie uruchomiona w trybie standardowym<\/em>., po czym nast\u0105pi uruchomienie okna bez dodatkowych kolumn i\u00a0tabel.<\/p>\n<section class=\"msp-alert-box msp-alert-warning\"><div class=\"msp-alert-icon\"><svg width=\"16\" height=\"16\" class=\"kb-icon kb-icon--warn\" aria-hidden=\"true\" focusable=\"false\" viewBox=\"0 0 32 32\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\">\r\n    <g id=\"[AP]-Iconography\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n        <g id=\"Iconography_sortowanie-po-kategorii\" transform=\"translate(-552.000000, -10695.000000)\" fill=\"currentColor\">\r\n            <g id=\"Group-8\" transform=\"translate(286.000000, 548.000000)\">\r\n                <g id=\"Iconography-Card-\" transform=\"translate(218.000000, 10107.000000)\">\r\n                    <g id=\"0-Icons\/-24-\/-Status-\/-Alert-\/-Outline\" transform=\"translate(48.000000, 40.000000)\">\r\n                        <path d=\"M16.0008333,3.91866667 C16.3568333,3.91866667 16.6875,4.10933333 16.8661667,4.41866667 L29.6608333,26.5813333 C29.8408333,26.8906667 29.8408333,27.272 29.6608333,27.5813333 C29.4821667,27.8906667 29.1528333,28.0813333 28.7955,28.0813333 L3.2035,28.0813333 C2.8475,28.0813333 2.51683333,27.8906667 2.33816667,27.5813333 C2.1595,27.272 2.1595,26.8906667 2.33816667,26.5813333 L15.1328333,4.41866667 C15.3128333,4.10933333 15.6421667,3.91866667 16.0008333,3.91866667 Z M16.0008333,6.91866667 L4.93683333,26.0813333 L27.0635,26.0813333 L16.0008333,6.91866667 Z M15.9993667,21.9445333 C16.7353667,21.9445333 17.3327,22.5418667 17.3327,23.2778667 C17.3327,24.0138667 16.7353667,24.6112 15.9993667,24.6112 C15.2647,24.6112 14.6660333,24.0138667 14.6660333,23.2778667 C14.6660333,22.5418667 15.2647,21.9445333 15.9993667,21.9445333 Z M15.9997667,11.762 C16.7344333,11.762 17.3171,12.3833333 17.2704333,13.118 L16.9464333,19.0366667 C16.9161303,19.4984848 16.566268,19.8666391 16.1212392,19.9297596 L15.9851,19.9393333 C15.4744333,19.9393333 15.0544333,19.542 15.0224333,19.0326667 L14.7291,13.1113333 C14.6851,12.3793333 15.2664333,11.762 15.9997667,11.762 Z\" id=\"Color\"><\/path>\r\n                    <\/g>\r\n                <\/g>\r\n            <\/g>\r\n        <\/g>\r\n    <\/g>\r\n<\/svg><\/div><div class=\"msp-alert-body\"><div class=\"msp-alert-title\">Uwaga<\/div><div class=\"msp-alert-content\">Dodanie ka\u017cdej tabeli u\u017cytkownika powoduje modyfikacj\u0119 tre\u015bci FROM zapytania. W zwi\u0105zku z tym wskazanie np. tabeli z elementami dokumentu (nawet bez wybrania kolumn z tej tabeli) b\u0119dzie powodowa\u0107 zduplikowanie wy\u015bwietlanych wierszy i\u00a0generowanie powy\u017cszego komunikatu przy otwieraniu listy.<\/div><\/div><\/section>\n<p>Je\u017celi nie uda si\u0119 pobieranie danych na list\u0119 z dodatkowymi kolumnami i\/lub tabelami, pokazany zostanie komunikat <em>B\u0142\u0105d pobierania danych na list\u0119. Lista zostanie uruchomiona w trybie standardowym<\/em>., a\u00a0nast\u0119pnie okno programu zostanie uruchomione bez dodatkowych kolumn i tabel.<\/p>\n<p>W przypadku ustawienia filtrowania lub sortowania wg dodanej przez u\u017cytkownika kolumny, wydruki z list mog\u0105 nie dzia\u0142a\u0107 poprawnie, jednak\u017ce wydruk bie\u017c\u0105cego widoku powinien zawsze dzia\u0142a\u0107 poprawnie.<\/p>\n<p>W menu <em>Narz\u0119dzia\/ Testy integralno\u015bci<\/em> jest dost\u0119pny test <em>Okna z dodatkowymi kolumnami<\/em> sprawdzaj\u0105cy, do kt\u00f3rych okien dodane zosta\u0142y kolumny lub tabele u\u017cytkownika i prezentuj\u0105cy w logu nazwy tych okien.<br \/>\n<a name=\"zmi\"><\/a><\/p>\n<h3>Przekazywanie zmiennych dynamicznych<\/h3>\n<p>W polach <em>Instrukcja wprowadzania danych<\/em> oraz <em>Instrukcja \u0142\u0105czenia<\/em> istnieje mo\u017cliwo\u015b\u0107 przekazania wybranych warto\u015bci ze zmiennych dynamicznych oraz warto\u015bci z panelu filtra. Otrzymujemy mo\u017cliwo\u015b\u0107 uzale\u017cnienia warto\u015bci pokazywanych w dodatkowych kolumnach od warto\u015bci ze zmiennych dynamicznych (np. uzale\u017cnienie od Operatora), czy warto\u015bci z panelu filtra (np. uzale\u017cnienie od daty aktualno\u015bci listy).<\/p>\n<p>W polach wprowadzania instrukcji, gdzie podajemy konkretne warto\u015bci (np. 2017-11-21) mamy mo\u017cliwo\u015b\u0107 wykorzystania specjalnych alias\u00f3w, odpowiadaj\u0105cych tym warto\u015bciom (np. #CDN_DataBiezaca#), przekazuj\u0105cych wybrane zmienne dynamiczne lub warto\u015bci z panelu filtra. Aby u\u0142atwi\u0107 wstawienie odpowiedniego aliasu menu kontekstowe wy\u015bwietla list\u0119 dost\u0119pnych warto\u015bci:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-16100\" src=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2023_5\/wp-content\/uploads\/2018\/09\/menu2.png\" alt=\"\" width=\"186\" height=\"203\" srcset=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/menu2.png 186w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/menu2-46x50.png 46w\" sizes=\"auto, (max-width: 186px) 100vw, 186px\" \/><\/p>\n<p><strong>Parametry standardowe<\/strong> - przy dodawaniu kolumn udost\u0119pnione zosta\u0142y wybrane warto\u015bci ze zmiennych dynamicznych. Po wybraniu opcji <em>Parametry standardowe <\/em>rozwija si\u0119 dodatkowe menu z nast\u0119puj\u0105cymi warto\u015bciami:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-16102\" src=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2023_5\/wp-content\/uploads\/2018\/09\/parametry-stand.png\" alt=\"\" width=\"246\" height=\"312\" srcset=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/parametry-stand.png 246w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/parametry-stand-237x300.png 237w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/parametry-stand-39x50.png 39w\" sizes=\"auto, (max-width: 246px) 100vw, 246px\" \/><\/p>\n<p><strong>Parametry filtra <\/strong>- po wybraniu opcji <em>Parametry filtra <\/em>rozwija si\u0119 dodatkowe menu z warto\u015bciami przekazywanymi z panelu filtra danej listy. Mi\u0119dzy r\u00f3\u017cnymi listami mog\u0105 by\u0107 r\u00f3\u017cne parametry filtra. Poni\u017cej przyk\u0142ad z warto\u015bciami przekazywanymi z listy pracownik\u00f3w:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-16103\" src=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2023_5\/wp-content\/uploads\/2018\/09\/parametry-filtra.png\" alt=\"\" width=\"206\" height=\"744\" srcset=\"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/parametry-filtra.png 206w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/parametry-filtra-83x300.png 83w, https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-content\/uploads\/2018\/09\/parametry-filtra-14x50.png 14w\" sizes=\"auto, (max-width: 206px) 100vw, 206px\" \/><\/p>\n<p>Po wybraniu warto\u015bci w miejsce kursora zostanie wstawiony odpowiedni alias.<\/p>\n<p><a name=\"prz\"><\/a><\/p>\n<h2>Przyk\u0142ady z instrukcj\u0105 tworzenia<\/h2>\n<h2><\/h2>\n<p><a name=\"handel\"><\/a><\/p>\n<h2><strong>Handel<\/strong><\/h2>\n<h3><\/h3>\n<p><a name=\"prz1h\"><\/a><\/p>\n<h3>1. Lista zasob\u00f3w\/cennik. Kolumny: kod PLU, nazwa fiskalna oraz waga towaru<\/h3>\n<p>Potrzebne pola znajduj\u0105 si\u0119 w tabeli CDN.Towary. Na oknie personalizacji listy w sekcji <strong>Kolumny dost\u0119pne<\/strong> <strong>z\u00a0aktualnie wybranych tabel<\/strong> nale\u017cy odnale\u017a\u0107 pole Twr_PLU i przeci\u0105gn\u0105\u0107 do sekcji <em>Kolumny u\u017cytkownika<\/em> oraz nada\u0107 nazw\u0119 dla kolumny. Tak samo nale\u017cy post\u0105pi\u0107 w przypadku pozosta\u0142ych kolumn czyli Twr_NazwaFiskalna oraz Twr_WagaKG. Dodatkowo dla pola Waga ustawiamy w kolumnie <em>Typ formatu wy\u015bwietlania<\/em> na Numeric a\u00a0<em>Format wy\u015bwietlania<\/em> na N4\u00a0(N- warto\u015b\u0107 numeryczna, 4 \u2013 wy\u015bwietlanie do czterech miejsc dziesi\u0119tnych).<\/p>\n<h3><\/h3>\n<p><a name=\"prz2h\"><\/a><\/p>\n<h3>2. Lista zasob\u00f3w\/cennik. Kolumny: kod CN oraz kraj pochodzenia<\/h3>\n<p>Potrzebne pola znajduj\u0105 si\u0119 w tabeli CDN.Towary oraz CDN.KodyCN. Na oknie personalizacji listy w sekcji <strong>Tabele u\u017cytkownika<\/strong> nale\u017cy po\u0142\u0105czy\u0107 powy\u017csze tabele aby mie\u0107 dost\u0119p do p\u00f3l zwi\u0105zanych z kodami CN. W zwi\u0105zku z\u00a0powy\u017cszym w kolumnie <em>Nazwa tabeli<\/em> podajemy tabel\u0119 CDN.KodyCN a w kolumnie <em>Instrukcja \u0142\u0105czenia<\/em> wprowadzamy pola klucze \u0142\u0105cz\u0105ce obie tabele Twr_KCNId=KCN_KCNId zgodnie ze struktur\u0105 bazy danych. Teraz w\u00a0sekcji <em>Kolumny dost\u0119pne z\u00a0aktualnie wybranych tabel<\/em> pojawi\u0105 si\u0119 pola z tabeli CDN.KodyCN. Nale\u017cy odnale\u017a\u0107 pole KCN_Kod i\u00a0przeci\u0105gn\u0105\u0107 do sekcji <em>Kolumny u\u017cytkownika<\/em> oraz nada\u0107 nazw\u0119 dla kolumny. Tak samo nale\u017cy post\u0105pi\u0107 w\u00a0przypadku kolumny Twr_KrajPochodzenia.<\/p>\n<h3><\/h3>\n<p><a name=\"prz3h\"><\/a><\/p>\n<h3>3. Lista zasob\u00f3w\/cennik. Kolumna mar\u017ca procentowa dla ceny hurtowa1 - szybkie sprawdzenie przewidywanej mar\u017cy<\/h3>\n<p>Ceny zapisywane s\u0105 w tabeli CDN.TwrCeny i wi\u0105zane z tabel\u0105 CDN.Towary po kluczu TwC_TwrId=Twr_TwrId. Poniewa\u017c chcemy uzyska\u0107 mar\u017c\u0119 dla ceny o numerze drugim rozwi\u0105zaniem b\u0119dzie zastosowanie zapytania SQL w\u00a0kolumnie <em>Instrukcja pobierania danych<\/em> w sekcji <em>Kolumny u\u017cytkownika<\/em>. Poniewa\u017c dodawanie kolumn odbywa si\u0119 na oknie towar\u00f3w nale\u017cy w zapytaniu aliasowa\u0107 pole Twr_TwrId. Zapytanie b\u0119dzie mie\u0107 nast\u0119puj\u0105c\u0105 posta\u0107:<br \/>\n<code>(SELECT TwC_Marza From CDN.TwrCeny WHERE TwC_TwrId=A.Twr_TwrId And TwC_TwCNumer=2)<\/code><\/p>\n<p>Kolumna ta ma pokazywa\u0107 warto\u015b\u0107 w\u00a0procentach w zwi\u0105zku z tym ustawiamy w kolumnie <em>Typ formatu wy\u015bwietlania<\/em> typ na Custom oraz w kolumnie <em>Format wy\u015bwietlania<\/em> ustawiamy mask\u0119 00.00\u201d%\u201d (0 \u2013 oznacza \u017ce cyfra jest zawsze wy\u015bwietlana, . \u2013 oznacza miejsca dziesi\u0119tne, \u201e%\u201d \u2013 dodanie na ko\u0144cu znaku procent).<\/p>\n<h3><\/h3>\n<p><a name=\"prz4h\"><\/a><\/p>\n<h3>4. Lista zasob\u00f3w. Ilo\u015b\u0107 dni zalegania towaru na magazynie\/ach na podstawie najstarszej dostawy.<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<pre>(SELECT TOP 1 CASE WHEN #filtrMagazynGridLookup_ID# = 0 then \r\n(SELECT DATEDIFF(DAY, min(TwZ_Data), GETDATE()) AS DateDiff\r\n\r\nFROM CDN.TwrZasoby\r\n\r\nWHERE Twr_TwrId = TwZ_TwrId)\r\n\r\nelse (SELECT DATEDIFF(DAY, min(TwZ_Data), GETDATE()) AS DateDiff\r\n\r\nFROM CDN.TwrZasoby\r\n\r\nWHERE Twr_TwrId = TwZ_TwrId AND TwZ_MagId = #filtrMagazynGridLookup_ID#) end)<\/pre>\n<h3><\/h3>\n<p><a name=\"prz5h\"><\/a><\/p>\n<h3>5. Lista zasob\u00f3w\/cennik. Kolumna \u015brednia cena zakupu dla dostaw, kt\u00f3re nie zosta\u0142y zdj\u0119te z magazynu<\/h3>\n<p>Wy\u015bwietla \u015bredni\u0105 wa\u017con\u0105 dla cen, po kt\u00f3rych dostawy danego towaru zosta\u0142y wprowadzone do magazynu. Brane pod uwag\u0119 s\u0105 tylko dostawy, kt\u00f3re ci\u0105gle znajduj\u0105 si\u0119 w magazynie. List\u0119 tych dostaw mo\u017cna sprawdzi\u0107 otwieraj\u0105c formularz towaru i przechodz\u0105c na zak\u0142adk\u0119 Zasoby.<\/p>\n<pre>(SELECT CONVERT(DECIMAL(10, 2), AVG(TwZ_Wartosc\/TwZ_Ilosc)) FROM CDN.TwrZasoby\r\nWHERE TwZ_TwrId=Twr_TwrId)<\/pre>\n<h3><\/h3>\n<p><a name=\"prz6h\"><\/a><\/p>\n<h3>6. Lista zasob\u00f3w\/cennik. Kolumna wy\u015bwietlaj\u0105ca \u2018Tak\u2019 je\u015bli towar\/us\u0142uga jest udost\u0119pniany w przynajmniej jednym e-Sklepie oraz \u2018Nie\u2019 je\u015bli nie jest udost\u0119pniany<\/h3>\n<pre>CASE WHEN EXISTS \r\n(SELECT * FROM Cdn.TwrESklep WHERE Twes_TwrID=Twr_TwrId AND Twes_Udostepnij=1) \r\nTHEN 'Tak' ELSE 'Nie' END<\/pre>\n<h3><\/h3>\n<p><a name=\"prz7h\"><\/a><\/p>\n<h3>7. Lista kontrahent\u00f3w. Kolumna z list\u0105 atrybut\u00f3w przypisanych do kontrahenta<\/h3>\n<p>Atrybuty przedstawiane s\u0105 w formie Nazwa_atrybutu: Warto\u015b\u0107.<\/p>\n<pre>STUFF(\r\n(SELECT ', ' + DA.DeA_Kod + ': ' + KA.KnA_WartoscTXT\r\nFROM CDN.KntAtrybuty KA\r\nJOIN CDN.DefAtrybuty DA ON KA.KnA_DeAId=DA.DeA_DeAId\r\nWHERE KA.KnA_PodmiotId=Knt_KntId \r\nFOR XML PATH (''))\r\n,1,2,'')<\/pre>\n<h3><\/h3>\n<p><a name=\"prz8h\"><\/a><\/p>\n<h3>8. Lista zestaw\u00f3w promocyjnych. Kolumna z maksymaln\u0105 liczb\u0105 zestaw\u00f3w jakie mo\u017cna utworzy\u0107, bior\u0105c pod uwag\u0119 ilo\u015bci towar\u00f3w wchodz\u0105cych w sk\u0142ad zestawu znajduj\u0105ce si\u0119 w magazynach<\/h3>\n<p>\u0141\u0105czna ilo\u015b\u0107 ze wszystkich magazyn\u00f3w, dla towaru wchodz\u0105cego w sk\u0142ad zestawu promocyjnego jest dzielona przez ilo\u015b\u0107, w jakiej ten towar wyst\u0119puje w sk\u0142adzie zestawu. Kolumna wy\u015bwietla najni\u017cszy wynik takich oblicze\u0144 (zaokr\u0105glony w d\u00f3\u0142 do liczb ca\u0142kowitych), wykonanych dla wszystkich towar\u00f3w wchodz\u0105cych w sk\u0142ad zestawu.<\/p>\n<pre>(SELECT FLOOR(MIN(t.sum1)) FROM\r\n(SELECT SUM(TZ.TwZ_Ilosc) sum1 FROM CDN.TwrZasoby TZ \r\nJOIN CDN.ZestawyTwr ZT ON TZ.TwZ_TwrId=ZT.ZTw_TwrId\r\nWHERE ZT.ZTw_ZTwId=ZTw_ZTwId\r\nUNION\r\nSELECT SUM(TZ.TwZ_Ilosc\/ZTS.ZTS_Ilosc) sum1 FROM CDN.TwrZasoby TZ \r\nJOIN CDN.ZestawyTwrSkladniki ZTS ON TZ.TwZ_TwrId=ZTS.ZTS_TwrId\r\nWHERE ZTS.ZTS_ZTwId=ZTw_ZTwId\r\nGROUP BY TwZ_TwrId) t)<\/pre>\n<h3><\/h3>\n<p><a name=\"prz9h\"><\/a><\/p>\n<h3>9. Lista dokument\u00f3w w module Handel. Kolumna Mail<\/h3>\n<p>Je\u015bli u\u017cytkownik korzysta ze skrzynki pocztowej w module CRM i wysy\u0142a wydruki faktur do swoich klient\u00f3w drog\u0105 mailow\u0105 to korzystaj\u0105c z powi\u0105zania faktura sprzeda\u017cy \u2013 mail mo\u017ce na li\u015bcie faktur wy\u015bwietli\u0107 informacj\u0119, czy faktura zosta\u0142a wys\u0142ana do klienta. Informacja ta jest oparta o sprawdzenie czy z faktur\u0105 skojarzony jest jakikolwiek mail.<\/p>\n<p>Mail - w sekcji <em>Kolumny u\u017cytkownika<\/em> doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<br \/>\n<code>CASE WHEN EXISTS (SELECT * FROM CDN.DokRelacje WHERE Dor_DokumentId=A.TrN_TrnId AND Dor_ParentTyp=1011 AND DoR_DokumentTyp = 302) THEN 'Tak' ELSE 'Nie' END<\/code><a name=\"pr5\"><\/a><br \/>\n<a name=\"prz10h\"><\/a><\/p>\n<h3>10. Lista dokument\u00f3w w module Handel. Kolumna Wydruk<\/h3>\n<p>Je\u015bli u\u017cytkownik wykonuje kopie elektroniczne wydruk\u00f3w faktur sprzeda\u017cy to korzystaj\u0105c z powi\u0105zania faktura sprzeda\u017cy \u2013 wydruk w archiwum mo\u017ce na li\u015bcie faktur wy\u015bwietli\u0107 informacj\u0119 czy faktura zosta\u0142a wydrukowana. Dla przypomnienia: kopie elektroniczne wydruk\u00f3w s\u0105 tworzone po zaznaczeniu parametru na definicji wydruku.<\/p>\n<p>Wydruk - w sekcji <em>Kolumny u\u017cytkownika<\/em> doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<br \/>\n<code>CASE WHEN   EXISTS (SELECT * FROM CDN.WdrKopieElektroniczne WHERE WdKE_ObjId=A.TrN_TrNId AND WdKE_ObjType=A.TrN_typDokumentu) THEN 'Tak' ELSE 'Nie' END<\/code><br \/>\n<a name=\"prz11h\"><\/a><\/p>\n<h3>11. Lista dokument\u00f3w w module Handel. Kolumna e-mail kontrahenta (Nabywcy)<\/h3>\n<p>Nale\u017cy skorzysta\u0107 z widoku CDN.PodmiotyView i dost\u0119pnego pola Pod_Email. W zapytaniu sql pola z tego widoku musz\u0105 by\u0107 aliasowane. Nale\u017cy odnale\u017a\u0107 pole Pod_Email i\u00a0przeci\u0105gn\u0105\u0107 do sekcji <strong>Kolumny u\u017cytkownika<\/strong> nada\u0107 nazw\u0119 dla kolumny, a nast\u0119pnie edytowa\u0107 kolumn\u0119 <em>Instrukcja pobierania danych<\/em> i ustawi\u0107 alias. Ostateczna posta\u0107 wyra\u017cenia Pod.Pod_Email.<\/p>\n<h3><\/h3>\n<p><a name=\"prz12h\"><\/a><\/p>\n<h3>12. Lista dokument\u00f3w w module Handel. Kolumna z informacj\u0105 o akronimie operatora, kt\u00f3ry zmodyfikowa\u0142 dokument<\/h3>\n<p>Dane o operatorach zapisane s\u0105 w bazie konfiguracyjnej w tabeli CDN. Operatorzy. Nale\u017cy wykona\u0107 z\u0142\u0105czenie do bazy konfiguracyjnej i powy\u017cszej tabeli. Na oknie personalizacji listy w sekcji <strong>Tabele u\u017cytkownika<\/strong> w kolumnie <em>Nazwa tabeli<\/em> podajemy tabel\u0119 i nazw\u0119 bazy do kt\u00f3rej jest ona podpi\u0119ta, obie tabele musz\u0105 istnie\u0107 na serwerze SQL. Wprowadzamy [CDN_KNF_Konfiguracja].[CDN].[Operatorzy] a w kolumnie <em>Instrukcja \u0142\u0105czenia<\/em> wprowadzamy pola klucze \u0142\u0105cz\u0105ce tabele CDN.Operatorzy i CDN.TraNag czyli Ope_OpeId=TrN_OpeModId zgodnie ze struktur\u0105 bazy danych. Nale\u017cy odnale\u017a\u0107 pole Ope_Kod i\u00a0przeci\u0105gn\u0105\u0107 do sekcji <strong>Kolumny u\u017cytkownika<\/strong> oraz nada\u0107 nazw\u0119 dla kolumny.<\/p>\n<h3><\/h3>\n<p><a name=\"prz13h\"><\/a><\/p>\n<h3>13. Lista dokument\u00f3w w module Handel. Kolumna z nazw\u0105 dnia tygodnia terminu p\u0142atno\u015bci<\/h3>\n<p>Nale\u017cy skorzysta\u0107 z funkcji sqlowej CDN. NazwaDnia i poda\u0107 dla niej parametry TrN_Termin oraz tryb 0. W zwi\u0105zku z\u00a0powy\u017cszym w sekcji <strong>Kolumny u\u017cytkownika<\/strong> w\u00a0kolumnie <em>Instrukcja \u0142\u0105czenia<\/em> wprowadzamy wyra\u017cenie:<br \/>\n<code>(SELECT CDN.NazwaDnia(A.TrN_Termin, 0))<\/code><\/p>\n<h3><\/h3>\n<p><a name=\"prz14h\"><\/a><\/p>\n<h3>14. Lista dokument\u00f3w w module Handel. Sumaryczna waga dokumentu<\/h3>\n<p>Na karcie towaru mo\u017cna poda\u0107 jego wag\u0119, a informacja ta jest zapisywana w tabeli CDN.Towary. Aby wy\u015bwietli\u0107 na li\u015bcie sumaryczn\u0105 wag\u0119 dla danego dokumentu nale\u017cy skorzysta\u0107 z poni\u017cszego zapytania:<\/p>\n<p><code>(SELECT CAST(SUM(TRE.TrE_Ilosc * TWR.Twr_WagaKG) as numeric(36,4)) FROM CDN.TraElem TRE LEFT JOIN CDN.Towary TWR on TWR.Twr_TwrId = TRE.TrE_TwrId WHERE TRE.Tre_TrNID = A.Trn_TrnId)<\/code><\/p>\n<h3><\/h3>\n<p><a name=\"prz15h\"><\/a><\/p>\n<h3>15. Lista dokument\u00f3w w module Handel. Kolumna z form\u0105 p\u0142atno\u015bci<\/h3>\n<p>Kolumna wy\u015bwietla nazw\u0119 formy p\u0142atno\u015bci, kt\u00f3ra zosta\u0142a wybrana na formularzu dokumentu.<\/p>\n<pre>(SELECT FPl_Nazwa FROM CDN.FormyPlatnosci WHERE FPl_FPlId=TrN_FPlId)<\/pre>\n<h3><\/h3>\n<p><a name=\"prz16h\"><\/a><\/p>\n<h3>16. Lista dokument\u00f3w w module Handel. Akronim operatora lub pracownika, kt\u00f3ry jest opiekunem kontrahenta, dla kt\u00f3rego zosta\u0142 wystawiony dokument<\/h3>\n<p>Wy\u015bwietla akronim operatora lub pracownika, kt\u00f3ry zosta\u0142 wskazany na formularzu kontrahenta (zak\u0142adka Dodatkowe) wybranego na dokumencie.<\/p>\n<p>Dane o operatorach zapisane s\u0105 w bazie konfiguracyjnej. Zamiast CDN_KNF_Konfiguracja nale\u017cy wprowadzi\u0107 nazw\u0119 w\u0142asnej bazy konfiguracyjnej.<\/p>\n<pre>(SELECT Ope_Kod \r\nFROM CDN_KNF_Konfiguracja.CDN.Operatorzy O \r\nJOIN CDN.Kontrahenci Knt ON TrN_PodID=Knt.Knt_KntId\r\nWHERE Knt.Knt_OpiekunId=O.Ope_OpeID AND Knt.Knt_OpiekunTyp=8\r\nUNION\r\nSELECT Pre_Kod FROM CDN.PracEtaty PE \r\nJOIN CDN.Kontrahenci Knt ON TrN_PodID=Knt.Knt_KntId\r\nWHERE Knt.Knt_OpiekunId=PE.Pre_PreId AND Knt.Knt_OpiekunTyp=3)<\/pre>\n<p><a name=\"prz17h\"><\/a><\/p>\n<h3>17. Lista dokument\u00f3w w module Handel. Kolumna pokazuj\u0105ca \u0142\u0105czn\u0105 wysoko\u015b\u0107 op\u0142aty cukrowej naliczonej dla pozycji danego dokumentu<\/h3>\n<pre>(SELECT CONVERT(DECIMAL(10,2), SUM(TrE_Ilosc*Tre_OplataCukrowaDoliczDoCeny*\r\nTrE_OplataCukrowaPrzelicznikML\/1000)) FROM CDN.TraElem \r\nWHERE TrE_TrNId=TrN_TrNId)<\/pre>\n<p><a name=\"prz18h\"><\/a><\/p>\n<h3>18. Wy\u015bwietlanie na listach dokument\u00f3w numer\u00f3w powi\u0105zanych dokument\u00f3w Zlecenia Nadania Przesy\u0142ek.<\/h3>\n<ul>\n<li>Kolumna wy\u015bwietla wszystkie zlecenia rozdzielone przecinkami.<\/li>\n<\/ul>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<p>Dla dokument\u00f3w handlowo-magazynowych:<\/p>\n<pre> (SELECT SZL.SZL_NumerPelny + ', ' FROM CDN.SenditZleceniePrzesylki SZL\r\nWHERE A.Trn_TrnID IN (select [Data] from CDN.SplitString(SZL.SZL_DokZrodlowe,','))\r\nand SZL_DokZrodloweTyp = A.Trn_TypDokumentu\r\nORDER BY SZL.SZL_SZLID FOR XML PATH (''))\r\n<\/pre>\n<p>Dla dokument\u00f3w Zlece\u0144 serwisowych:<\/p>\n<pre> (SELECT SZL.SZL_NumerPelny + ', ' FROM CDN.SenditZleceniePrzesylki SZL\r\nWHERE A.SrZ_SrZId (select [Data] from CDN.SplitString(SZL.SZL_DokZrodlowe,','))\r\nand SZL_DokZrodloweTyp = 900\r\nORDER BY SZL.SZL_SZLID FOR XML PATH (''))\r\n<\/pre>\n<ul>\n<li>Kolumna wy\u015bwietla pierwsze powi\u0105zane zlecenie wg ID, a po najechaniu na ten numer wszystkie powi\u0105zane.<\/li>\n<\/ul>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<p>Dla dokument\u00f3w handlowo-magazynowych:<\/p>\n<pre> (SELECT SZL.SZL_NumerPelny + char(10) FROM CDN.SenditZleceniePrzesylki SZL\r\nWHERE A.Trn_TrnID IN (select [Data] from CDN.SplitString(SZL.SZL_DokZrodlowe,','))\r\nand SZL_DokZrodloweTyp = A.Trn_TypDokumentu\r\nORDER BY SZL.SZL_SZLID FOR XML PATH (''))\r\n<\/pre>\n<p>Dla dokument\u00f3w Zlece\u0144 serwisowych:<\/p>\n<pre>(SELECT SZL.SZL_NumerPelny + char(10) FROM CDN.SenditZleceniePrzesylki SZL\r\nWHERE A.SrZ_SrZId IN (select [Data] from CDN.SplitString(SZL.SZL_DokZrodlowe,','))\r\nand SZL_DokZrodloweTyp = 900\r\nORDER BY SZL.SZL_SZLID FOR XML PATH (''))<\/pre>\n<p><a name=\"prz19h\"><\/a><\/p>\n<h3>19. Lista faktur sprzeda\u017cy. Kolumna pozostaje do zap\u0142aty<\/h3>\n<p>Nale\u017cy skorzysta\u0107 z tabeli CDN.BnkZdarzenia. Kolumna <em>Pozostaje do zap\u0142aty<\/em> musi zosta\u0107 wyliczona poprzez odj\u0119cie od pola Razem pola Zap\u0142acono. Trzeba stworzy\u0107 wyra\u017cenie, kt\u00f3re b\u0119dzie sprawdza\u0107, czy faktura zosta\u0142a utworzona z\u00a0paragonu, gdy\u017c w przypadku, gdy faktura zosta\u0142a przekszta\u0142cona z paragonu zapisy kasowo\/bankowe s\u0105 tworzone dla paragonu. Do sprawdzenia, czy faktura zosta\u0142a utworzona z paragonu, pos\u0142u\u017cy pole TrN_Rodzaj oraz pole TrN_TrNFaId z tabeli CDN.TraNag. W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o nazwie <em>Pozostaje do zap\u0142aty<\/em> i\u00a0nast\u0119puj\u0105cej instrukcji pobierania danych:<\/p>\n<p><code>CASE WHEN TrN_Rodzaj=302006 THEN (SELECT SUM(Bzd_Kwota * BZd_Kierunek) FROM CDN.BnkZdarzenia WHERE Bzd_DokumentTyp=1 AND Bzd_DokumentId=A.TrN_FaId) - (SELECT SUM(Bzd_KwotaRoz * Bzd_Kierunek) FROM CDN.BnkZdarzenia WHERE Bzd_DokumentTyp=1  AND Bzd_DokumentId =A.TrN_FaId) ELSE (SELECT SUM(Bzd_Kwota * BZd_Kierunek) FROM CDN.BnkZdarzenia WHERE Bzd_DokumentTyp=1 AND Bzd_DokumentId=A.TrN_TrNId) - (SELECT SUM(Bzd_KwotaRoz * Bzd_Kierunek) FROM CDN.BnkZdarzenia WHERE Bzd_DokumentTyp=1  AND Bzd_DokumentId =A.TrN_TrNId) END<\/code><\/p>\n<p>Je\u015bli p\u0142atno\u015bci do dokument\u00f3w s\u0105 w r\u00f3\u017cnych walutach, to powy\u017csze zapytanie nale\u017cy zmodyfikowa\u0107 i dostosowa\u0107 do potrzeb u\u017cytkownika.<a name=\"pr9\"><\/a><br \/>\n<a name=\"prz20h\"><\/a><\/p>\n<h3>20. Lista Faktur Sprzeda\u017cy oraz Faktur Zakupu. Wy\u015bwietlanie rozliczaj\u0105cych dokument\u00f3w KP\/KW.<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<pre>ISNULL(STUFF((SELECT '# ' + CASE WHEN BRK_LDokTyp=1 AND BRK_LDokID=BZd_BZdID THEN\r\nBRK_PNumer ELSE BRK_LNumer END\r\nFROM cdn.BnkZdarzenia A JOIN\r\ncdn.BnkRozKwoty B ON (B.BRK_LDokTyp=1 AND B.BRK_LDokID=A.BZd_BZdID OR\r\nB.BRK_PDokTyp=1 AND B.BRK_PDokID=A.BZd_BZdID)\r\nWHERE ((((BZd_DokumentTyp = 1 AND BZd_DokumentID = TrN_TrNID)))) FOR XML\r\nPATH('')),1,1,''),'nierozliczony')<\/pre>\n<p><a name=\"prz21h\"><\/a><\/p>\n<h3>21. Lista Faktur Sprzeda\u017cy oraz Faktur Zakupu. Wy\u015bwietlanie daty rozliczenia dokumentu.<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<pre>(ISNULL((Select DataRoz=STUFF( (SELECT ', ' + CONVERT(nvarchar(10), Bzd_dataRoz, 105) FROM CDN.BnkZdarzenia T1 WHERE T1.BZd_DokumentID = T2.BZd_DokumentID\r\nFOR XML PATH ('')), 1, 1, '')\r\nFROM CDN.BnkZdarzenia T2 Where BZd_DokumentTyp = 1\r\nAnd BZd_DokumentId = TrN_TrNId group\r\nby BZd_DokumentID),' nierozliczony'))\r\n<\/pre>\n<p><a name=\"prz22h\"><\/a><\/p>\n<h3>22. Lista Faktur Sprzeda\u017cy oraz Paragon\u00f3w. Wy\u015bwietlanie powi\u0105zanych dokument\u00f3w Wydania Zewn\u0119trznego.<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<pre>STUFF((select ', ' + POW.TrN_NumerPelny from CDN.Powiazania(A.Trn_TrnId,\r\nA.TrN_TypDokumentu) POW where POW.TrN_TypDokumentu = 306 \r\nFOR XML PATH('')), 1, 2, '')<\/pre>\n<h3><\/h3>\n<p><a name=\"prz23h\"><\/a><\/p>\n<h3>23. Lista Faktur Sprzeda\u017cy oraz Wyda\u0144 Zewn\u0119trznych. Wy\u015bwietlanie powi\u0105zanych korekt.<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<pre>(select TRN.TrN_NumerPelny + ', ' from cdn.tranag TRN where \r\nTrN_ZwrId = A.TrN_TrNID AND TRN.TrN_Anulowany = 0 for xml path (''))<\/pre>\n<h3><\/h3>\n<p><a name=\"prz24h\"><\/a><\/p>\n<h3>24. Lista dokument\u00f3w WZ. Kolumna mar\u017ca<\/h3>\n<p>Mar\u017ca wyliczana jest jako r\u00f3\u017cnica pomi\u0119dzy sum\u0105 Warto\u015bci Netto pozycji dokumentu a sum\u0105 ich Warto\u015bci Zakupu. Zastosujemy zapytanie SQL w kolumnie <em>Instrukcja pobierania danych<\/em> w\u00a0sekcji <strong>Kolumny u\u017cytkownika<\/strong>. Zapytanie wyliczaj\u0105ce mar\u017c\u0119 dokumentu b\u0119dzie wygl\u0105da\u0107 nast\u0119puj\u0105co:<br \/>\n<code>(SELECT SUM(TrE_WartoscNetto) - SUM(TrE_WartoscZakupu) FROM CDN.TraElem WHERE TrE_TrnId=A.TrN_TrnId)<\/code><\/p>\n<h3><\/h3>\n<p><a name=\"prz25h\"><\/a><\/p>\n<h3>25. Wy\u015bwietlanie na li\u015bcie Wyda\u0144 Zewn\u0119trznych informacji, czy do powi\u0105zanego z nim zam\u00f3wienia (Rezerwacji Odbiorcy) ma by\u0107 wystawiony Paragon\/Faktura.<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<pre>(SELECT\r\nCASE TRN.TrN_eSklepRodzajDokumentu\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 WHEN 1 THEN 'Paragon'\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 WHEN 2 THEN 'Faktura'\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ELSE '' END\r\nFROM CDN.Tranag TRN\r\nwhere TRN.TrN_TrNID = (Select top 1 ISNULL(TrN_TrnID,0) from\r\ncdn.Powiazania(A.Trn_TrnID,306) where TrN_TypDokumentu = 308 \r\norder by Trn_DataOpe))<\/pre>\n<h3><\/h3>\n<p><a name=\"prz26h\"><\/a><\/p>\n<h3>26. Wy\u015bwietlanie na li\u015bcie Rezerwacji Odbiorcy informacji, czy do zam\u00f3wienia ma by\u0107 wystawiony Paragon\/Faktura.<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<p><code>(CASE A.TrN_eSklepRodzajDokumentu WHEN 1 THEN 'Paragon' WHEN 2 THEN 'Faktura' ELSE '' END)<\/code><\/p>\n<p><a name=\"prz27h\"><\/a><\/p>\n<h3>27. Lista Faktur Pro Forma. Kolumna wy\u015bwietlaj\u0105ca sum\u0119 warto\u015bci netto wszystkich powi\u0105zanych Faktur Zaliczkowych<\/h3>\n<pre>(SELECT SUM(TN.TrN_RazemNetto) \r\nFROM CDN.TraNag TN\r\nJOIN CDN.TraNagRelacje TNR ON TNR.TrR_TrNId = TN.TrN_TrNID \r\nWHERE TNR.TrR_FaId = A.TrN_TrNID AND TN.TrN_Rodzaj=302200)<\/pre>\n<p><a name=\"prz28h\"><\/a><\/p>\n<h3>28. Lista zg\u0142osze\u0144 przewozu towaru SENT \u2013 Kod CN.<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<p><code>STUFF(<br \/>\n(<br \/>\nSELECT ', ' + CAST(SNEL_KodCN AS VARCHAR(MAX))<br \/>\nFROM CDN.SentElement WHERE SNEL_SentID = Sent_SentID<\/code><code><br \/>\nFOR XML PATH('')<br \/>\n) ,1,2,'' )<\/code><\/p>\n<p><a name=\"prz29h\"><\/a><\/p>\n<h3>29. Formularz dokumentu w module Handel. Ostatnia cena zakupu<\/h3>\n<p>W pierwszej kolejno\u015bci nale\u017cy do\u0142\u0105czy\u0107 tabel\u0119 CDN.TwrCeny \u2013 instrukcja \u0142\u0105czenia: twc_twrid = tre_twrid<\/p>\n<p>Kolejny krok to samo zapytanie wyci\u0105gaj\u0105ce cen\u0119 zakupu z cennika. B\u0119dzie to zawsze ostatnia cena zakupu zgodnie z\u00a0konfiguracj\u0105 programu (uwzgl\u0119dnianie korekt itp.):<br \/>\n<code>(SELECT TwC_Wartosc from CDN.TwrCeny WHERE TwC_TwCNumer =1 AND TwC_TwrId = TrE_TwrId)<\/code><\/p>\n<h3><\/h3>\n<p><a name=\"prz30h\"><\/a><\/p>\n<h3>30. Formularz dokumentu w module Handel. Sumaryczna waga pozycji<\/h3>\n<p>Na karcie towaru mo\u017cna poda\u0107 jego wag\u0119, a informacja ta jest zapisywana w tabeli CDN.Towary. Aby wy\u015bwietli\u0107 na formularzu dokumentu sumaryczn\u0105 wag\u0119 dla danej pozycji, nale\u017cy skorzysta\u0107 z poni\u017cszego zapytania:<\/p>\n<p><code>(SELECT CAST(_DATASOURCE_.TrE_Ilosc * TWR.Twr_WagaKG as numeric(36,4)) FROM cdn.Towary TWR WHERE TWR.Twr_TwrId = _DATASOURCE_.TrE_TwrId)<\/code><\/p>\n<p><a name=\"prz31h\"><\/a><\/p>\n<h3>31. Formularz dokumentu w module Handel. Kolumny: Ilo\u015b\u0107 dost\u0119pna i braki towaru, na magazynie z dokumentu i z dat\u0105 wystawienia dokumentu<\/h3>\n<p>Na oknie konfiguracji kolumn dodatkowych dodajemy w obszarze dodatkowych tabel tabel\u0119 CDN.TraNag z \u0142\u0105czem UsrA.Trn_TrnID = Tre_TrnID<\/p>\n<p>Nast\u0119pnie w oknie dodatkowych kolumn dodajemy kolumn\u0119 Ilo\u015b\u0107 dost\u0119pna:<br \/>\n<code>(select  case when TwI_Ilosc - TwI_Rezerwacje &gt;0 then TwI_Ilosc - TwI_Rezerwacje  else 0 end  from<br \/>\nCDN.TwrIlosci B<br \/>\nwhere<br \/>\nB.TwI_TwrId = Tre_TwrId and<br \/>\nB.TwI_MagId = TrE_MagId  --MagID<br \/>\nAnd B.TwI_Data = (<br \/>\nSelect Top 1 H.TwI_Data From CDN.TwrIlosci H Where H.TwI_TwrId = B.TwI_TwrID --A.Twr_TwrId<br \/>\nand  H.TwI_MagId = TrE_MagId --magId<br \/>\nAnd H.TwI_Data &lt;= TrN_DataDok --'2016-03-10'<br \/>\nOrder By H.TwI_Data Desc ))<\/code><br \/>\nA dla kolumny Braki:<br \/>\n<code>(select TwI_Braki from<br \/>\nCDN.TwrIlosci B<br \/>\nwhere<br \/>\nB.TwI_TwrId = Tre_TwrId and<br \/>\nB.TwI_MagId = TrE_MagId --MagID<br \/>\nAnd B.TwI_Data = (<br \/>\nSelect Top 1 H.TwI_Data From CDN.TwrIlosci H Where H.TwI_TwrId = B.TwI_TwrID --A.Twr_TwrId<br \/>\nAnd H.TwI_MagId = TrE_MagId --magId<br \/>\nAnd H.TwI_Data &lt;= TrN_DataDok --'2016-03-10'<br \/>\nOrder By H.TwI_Data Desc ))<\/code><\/p>\n<p><a name=\"prz32h\"><\/a><\/p>\n<h3>32. Formularz dokumentu w module Handel. Ostatnia cena zakupu, data ostatniej dostawy oraz \u015brednia cena zakupu<\/h3>\n<p><strong>Ostatnia cena zakupu:<\/strong><\/p>\n<p>Nale\u017cy doda\u0107 tabel\u0119 CDN.TwrCeny z \u0142\u0105czeniem Tre_TwrId = Twc_TwrId and Twc_TwCNumer = 1<\/p>\n<p>Instrukcja pobierania danych dla kolumny ma posta\u0107:<\/p>\n<p><code>TwC_Wartosc<\/code><\/p>\n<p><strong>Data ostatniej dostawy:<\/strong><\/p>\n<p>Nale\u017cy doda\u0107 tabel\u0119 CDN.TraSElem z \u0142\u0105czeniem Tre_TwrId = Trs_TwrId<\/p>\n<p>Instrukcja pobierania danych dla kolumny ma posta\u0107:<\/p>\n<p><code>(select MAX(trs_dataope) from cdn.traselem where trs_typ = 1)<\/code><\/p>\n<p><strong>\u015arednia cena zakupu:<\/strong><\/p>\n<p>Nale\u017cy doda\u0107 tabel\u0119 CDN.TraSElem z \u0142\u0105czeniem Tre_TwrId = Trs_TwrId<\/p>\n<p>Instrukcja pobierania danych dla kolumny ma posta\u0107:<\/p>\n<p><code>(select CONVERT(decimal(10,2), AVG(trs_cena)) from cdn.traselem where trs_typ = 1)<\/code><\/p>\n<p><a name=\"prz33h\"><\/a><\/p>\n<h3>33. Formularz dokumentu w module Handel. Kolumna warto\u015b\u0107 atrybutu pozycji<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<p><code>STUFF( (SELECT ', ' + CASE trA_Wartosc WHEN '' THEN '{pusty}' ELSE CASE DEA.DeA_Format WHEN 4 THEN CAST(FORMAT(DATEADD(DAY,CAST(trA_Wartosc AS INT),'1800\/12\/28'),'yyyy-MM-dd') AS NVARCHAR) ELSE TrA_Wartosc END END FROM cdn.TraElemAtr TRA LEFT JOIN cdn.DefAtrybuty DEA ON TRA.TrA_DeAId = DEA.DeA_DeAId WHERE TRA.TrA_Kod='KOD_ATRYBUTU' AND TRA.TrA_TrEID = TrE_TrEId FOR XML PATH ('')) ,1,2,'')<\/code><\/p>\n<p>gdzie w miejsce <strong>KOD_ATRYBUTU<\/strong> trzeba wprowadzi\u0107 konkretny kod.<\/p>\n<p><a name=\"prz34h\"><\/a><\/p>\n<h3>34. Formularz dokumentu w module Handel. Kolumna pokazuj\u0105ca, z kt\u00f3rego dokumentu agregowanego pochodzi dana pozycja<\/h3>\n<p>W przypadku gdy dokument, kt\u00f3rego formularz jest aktualnie otwarty powsta\u0142 w wyniku przekszta\u0142cenia wi\u0119cej ni\u017c jednego dokumentu, mo\u017cliwe b\u0119dzie zidentyfikowanie z jakiego dokumentu pochodzi dana pozycja.<\/p>\n<pre>STUFF(\r\n(SELECT ', ' + TRN.TrN_NumerPelny\r\nFROM CDN.TraNag TRN\r\nJOIN CDN.TraElem TE ON TE.TrE_TrNId=TRN.TrN_TrNId\r\nJOIN CDN.TraElemRelacje TER ON TER.TeR_ParentId=TE.TrE_TrEID\r\nWHERE TER.TeR_ChildId=_DATASOURCE_.TrE_TrEID\r\nFOR XML PATH (''))\r\n,1,2,'')<\/pre>\n<p><a name=\"prz35h\"><\/a><\/p>\n<h3>35. Formularz dokumentu w module Handel. Kolumna z list\u0105 atrybut\u00f3w przypisanych do pozycji dokumentu<\/h3>\n<p>Atrybuty przedstawiane s\u0105 w formie Nazwa_atrybutu: Warto\u015b\u0107. Prawid\u0142owe warto\u015bci w tej kolumnie b\u0119d\u0105 si\u0119 wy\u015bwietla\u0107 dopiero po zapisaniu i ponownym otwarciu dokumentu.<\/p>\n<pre>STUFF(\r\n(SELECT ', ' + ATR.TrA_Kod + ': ' + ATR.TrA_Wartosc \r\nFROM CDN.TrAElemAtr ATR \r\nWHERE ATR.TrA_TrEId=_DATASOURCE_.TrE_TrEID \r\nFOR XML PATH (''))\r\n,1,2,'')<\/pre>\n<p><a name=\"prz36h\"><\/a><\/p>\n<h3>36. Formularz Inwentaryzacji. \u015arednia cena zakupu dostaw znajduj\u0105cych si\u0119 w magazynie, dla kt\u00f3rego wykonywana jest inwentaryzacja<\/h3>\n<p>Kolumna dla ka\u017cdego z towar\u00f3w wprowadzonych na Arkusz Inwentaryzacyjny wy\u015bwietla \u015bredni\u0105 cen\u0119 zakupu dostaw, kt\u00f3re ci\u0105gle znajduj\u0105 si\u0119 w magazynie, dla kt\u00f3rego wykonywana jest inwentaryzacja.<\/p>\n<pre>(SELECT CONVERT(DECIMAL(10,2), AVG(TwZ_Wartosc\/TwZ_Ilosc)) \r\nFROM CDN.TwrZasoby \r\nWHERE TwZ_TwrId=TrE_TwrId AND TrE_MagId=TwZ_MagId)<\/pre>\n<p><a name=\"prz37h\"><\/a><\/p>\n<h3>37. Okno historii Towaru - kolumna opis dokumentu<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<br \/>\n<code>(Select Trn_Opis from cdn.TraNag TRN where TRN.TrN_TrNId = _DATASOURCE_.TrNId)<\/code><\/p>\n<p><a name=\"serwis\"><\/a><\/p>\n<h2><strong>Serwis, CRM, Obieg dokument\u00f3w<\/strong><\/h2>\n<p><a name=\"prz1s\"><\/a><\/p>\n<h3>1. Lista zlece\u0144 serwisowych. Kolumny: nazwa urz\u0105dzenia, opis urz\u0105dzenia, priorytet zlecenia<\/h3>\n<p><em>Nazwa urz\u0105dzenia<\/em> - nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: SrU_Nazwa<\/p>\n<p><em>Opis urz\u0105dzenia<\/em> - nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: SrU_Opis<\/p>\n<p><em>Priorytet zlecenia<\/em> - w sekcji \u201eKolumny u\u017cytkownika\u201d doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<code>CASE SrZ_Priorytet WHEN 1 THEN 'najwy\u017cszy' WHEN 2 THEN 'wysoki' WHEN 3 THEN 'niski' WHEN  4 THEN 'najni\u017cszy' END<\/code><\/p>\n<h3><\/h3>\n<p><a name=\"prz2s\"><\/a><\/p>\n<h3>2. Zlecenie serwisowe. Zak\u0142adka Cz\u0119\u015bci. Kolumna z numerem dokumentu wydaj\u0105cego cz\u0119\u015b\u0107<\/h3>\n<p>W sekcji <strong>Tabele u\u017cytkownika<\/strong> nale\u017cy wykona\u0107 z\u0142\u0105czenie do trzech tabel:<\/p>\n<div class=\"su-list\" style=\"margin-left:0px\">\n<ul>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> CDN.TraElemRelacje po polach TeR_ParentId = SrC_SrCId and TeR_ParentTyp = 902,<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> CDN.TraElem po polach TrE_TrEId = TeR_ChildId,<\/li>\n<li><i class=\"sui sui-check\" style=\"color:#009de0\"><\/i> CDN.TraNag po polach TrN_TrNId = TrE_TrNId.<\/li>\n<\/ul>\n<\/div>\n<p>Nast\u0119pnie w sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych TrN_NumerPelny.<\/p>\n<p><a name=\"prz3s\"><\/a><\/p>\n<h3>3. Lista Ofert Handlowych. Kolumna zawieraj\u0105ca numery dokument\u00f3w powi\u0105zanych<\/h3>\n<p>Kolumna wy\u015bwietla dokumenty, kt\u00f3re powsta\u0142y z przekszta\u0142cenia danej Oferty Handlowej.<\/p>\n<pre>STUFF(\r\n(SELECT ', ' + TRN.TrN_NumerPelny\r\nFROM CDN.TraNag TRN\r\nJOIN CDN.DokRelacje DR ON DR.DoR_DokumentId=TRN.TrN_TrNID\r\nWHERE DR.DoR_ParentId = OfD_OfDId AND DR.DoR_ParentTyp=800 \r\nFOR XML PATH (''))\r\n,1,2,'')<\/pre>\n<p><a name=\"prz4s\"><\/a><\/p>\n<h3>4. Oferta Handlowa. Dodanie kolumny zawieraj\u0105cej cen\u0119 zakupu w li\u015bcie element\u00f3w<\/h3>\n<p>W sekcji <strong>Tabele u\u017cytkownika<\/strong> nale\u017cy wykona\u0107 z\u0142\u0105czenie do jednej tabeli<strong> : CDN.TwrCeny<\/strong><\/p>\n<p>W polu <strong>instrukcja \u0142\u0105czenie<\/strong> wpisujemy <strong>TwC_TwCNumer=1 and TwC_TwrID =TwrId<\/strong><\/p>\n<p>W obszarze <strong>Kolumny u\u017cytkownika<\/strong> dodajemy now\u0105 kolumn\u0119 <strong>Cena Zakupu<\/strong> o instrukcji TwC_Wartosc<\/p>\n<p><a name=\"prz5s\"><\/a><\/p>\n<h3>5. Formularz Oferty Handlowej, zak\u0142adka Kontrahent. Kolumna z numerami dokument\u00f3w, kt\u00f3re zosta\u0142y wygenerowane dla danego Kontrahenta poprzez przekszta\u0142cenie aktualnie otwartej Oferty<\/h3>\n<pre>STUFF(\r\n(SELECT ', ' + TRN.TrN_NumerPelny\r\nFROM CDN.TraNag TRN\r\nJOIN CDN.DokRelacje DR ON TRN.TrN_TrNId=DR.DoR_DokumentId\r\nJOIN CDN.OfertyKnt OK ON DR.DoR_ParentId=OK.OfK_OfDId\r\nWHERE OK.OfK_OfKId=_DATASOURCE_.Ofk_OfkId AND DR.DoR_ParentTyp=800 AND \r\nTRN.TrN_PodID=_DATASOURCE_.Ofk_PodID\r\nFOR XML PATH (''))\r\n,1,2,'')<\/pre>\n<p><a name=\"prz6s\"><\/a><\/p>\n<h3>6. Lista biblioteki dokument\u00f3w. Kolumny: schemat obiegu oraz etap bie\u017c\u0105cy<\/h3>\n<p><em>Schemat obiegu <\/em> - nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: DNV_ProcesKod<\/p>\n<p><em>Etap bie\u017c\u0105cy<\/em> - Nale\u017cy w sekcji <strong>Tabele u\u017cytkownika<\/strong> wykona\u0107 z\u0142\u0105czenie do bazy konfiguracyjnej i tabeli CDN. SekEtapy. W kolumnie <em>Nazwa tabeli<\/em> nale\u017cy wprowadzi\u0107 [CDN_KNF_Konfiguracja].[CDN].[SekEtapy] a w kolumnie <em>Instrukcja \u0142\u0105czenia<\/em> wprowadzi\u0107 DNV_EtapBiezacyLP=SE_SEID. Teraz w sekcji <strong>Kolumny u\u017cytkownika<\/strong> skorzysta\u0107 z\u00a0dost\u0119pnej na li\u015bcie kolumny: SE_Symbol<\/p>\n<p><a name=\"ksiegowoscbank\"><\/a><\/p>\n<h2><strong>Ksi\u0119gowo\u015b\u0107 i Kasa\/Bank<\/strong><\/h2>\n<h3><\/h3>\n<p><a name=\"prz1k\"><\/a><\/p>\n<h3>1. Rejestr VAT. Kolumna do jakiego dziennika zosta\u0142 zapis z rejestru zaksi\u0119gowany oraz jaki ma numer w dzienniku<\/h3>\n<p>Potrzebne pola znajduj\u0105 si\u0119 w tabeli CDN.DekretyNag. Na oknie personalizacji listy w sekcji <strong>Tabele u\u017cytkownika<\/strong> nale\u017cy po\u0142\u0105czy\u0107 powy\u017csze tabele aby mie\u0107 dost\u0119p do p\u00f3l zwi\u0105zanych z dziennikami. W zwi\u0105zku z\u00a0powy\u017cszym w\u00a0kolumnie <em>Nazwa tabeli<\/em> podajemy tabel\u0119 CDN.DekretyNag a w kolumnie <em>Instrukcja \u0142\u0105czenia<\/em> wprowadzamy pola klucze \u0142\u0105cz\u0105ce obie tabele VaN_DekId = DeN_DeNId zgodnie ze struktur\u0105 bazy danych. Teraz w\u00a0sekcji <strong>Kolumny dost\u0119pne z\u00a0aktualnie wybranych tabel <\/strong>pojawi\u0105 si\u0119 pola dost\u0119pne z tabeli CDN.DekretyNag. Nale\u017cy odnale\u017a\u0107 pole DeN_Dziennik i\u00a0przeci\u0105gn\u0105\u0107 do sekcji <strong>Kolumny u\u017cytkownika<\/strong> oraz nada\u0107 nazw\u0119 dla kolumny. Tak samo dla kolumny DeN_NrKsiegi.<\/p>\n<h3><\/h3>\n<p><a name=\"prz2k\"><\/a><\/p>\n<h3>2. Rejestr VAT. Kolumny: forma p\u0142atno\u015bci, termin, kwota zaksi\u0119gowania do KPiR-kwota, data ksi\u0119gowania, numer korekty, numer dziennika cz\u0105stkowego<\/h3>\n<p><em>Forma p\u0142atno\u015bci<\/em> - \u00a0nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: Fpl_Nazwa<\/p>\n<p><em>Termin<\/em> - \u00a0nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: VaN_Termin<\/p>\n<p><em>Kwota zaksi\u0119gowana do KPiR<\/em> - \u00a0Kwota:\u00a0\u00a0 Nale\u017cy w sekcji <strong>Tabele u\u017cytkownika<\/strong> wykona\u0107 z\u0142\u0105czenie do tabeli CDN.ZapisyKPR po polach VaN_KPRID=KpR_KPRID. Teraz w sekcji <strong>Kolumny u\u017cytkownika<\/strong> doda\u0107 kolumn\u0119 o\u00a0instrukcji\u00a0pobierania\u00a0danych:<\/p>\n<p>KPR_Sprzedaz+KPR_Pozostale+KPR_Towary+KPR_Uboczne+KPR_Reklama+KPR_Wynagrodz+KPR_Inne+KPR_Zaszlosci<\/p>\n<p><em>Data ksi\u0119gowania<\/em> - nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: KPR_DataOpe<\/p>\n<p><em>Numer korekty<\/em> - nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: VaN_Korekta<\/p>\n<p><em>Numer dziennika cz\u0105stkowego -<\/em> Nale\u017cy w sekcji <strong>Tabele u\u017cytkownika<\/strong> wykona\u0107 z\u0142\u0105czenie do tabeli CDN.DekretyNag po polach VaN_DekID=DeN_DeNID. Teraz w sekcji <strong>Kolumny u\u017cytkownika<\/strong> doda\u0107 kolumn\u0119 o\u00a0instrukcji\u00a0pobierania\u00a0danych:<br \/>\n<code>DeN_Dziennik+'\/'+CONVERT(varchar(20),DeN_NrDziennika)<\/code><\/p>\n<p><a name=\"prz3k\"><\/a><\/p>\n<h3>3. Lista \u015brodk\u00f3w trwa\u0142ych. Kolumny: metoda amortyzacji, opis<\/h3>\n<p><em>Metoda amortyzacji<\/em> - w sekcji <strong>Kolumny u\u017cytkownika<\/strong> doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<br \/>\n<code>CASE SrT_Metoda WHEN 1 THEN 'Liniowa' WHEN 2 THEN 'Degresywna' WHEN 3 THEN 'Jednorazowy' WHEN  4 THEN 'Naturalna' WHEN 5 THEN 'Nie amortyzowany' END<\/code><em>Opis<\/em> - nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: Srt_Opis.<\/p>\n<h3><\/h3>\n<p><a name=\"prz4k\"><\/a><\/p>\n<h3>4. Lista dokument\u00f3w \u015brodk\u00f3w trwa\u0142ych. Kolumny: osoba przekazuj\u0105ca, osoba przyjmuj\u0105ca, miejsce u\u017cytkowania przekazuj\u0105ce, miejsce u\u017cytkowania przyjmuj\u0105ce<\/h3>\n<p><em>Osoba przekazuj\u0105ca<\/em> - nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: SrH_PrcImieNazwisko1<\/p>\n<p><em>Osoba przyjmuj\u0105ca<\/em> - nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: SrH_PrcImieNazwisko2<\/p>\n<p><em>Miejsce u\u017cytkowania przekazuj\u0105ce<\/em> - nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: SrH_MiejsceUzytkowania1<\/p>\n<p><em>Miejsce u\u017cytkowania przyjmuj\u0105ce<\/em> - nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: SrH_MiejsceUzytkowania2<\/p>\n<h3><\/h3>\n<p><a name=\"prz5k\"><\/a><\/p>\n<h3>5. Lista ewidencji dodatkowej. Kolumna kod kategorii<\/h3>\n<p><em>Kod kategorii<\/em>: Nale\u017cy w sekcji <strong>Tabele u\u017cytkownika<\/strong> wykona\u0107 z\u0142\u0105czenie do tabeli CDN. Kategorie po polach EDN_KatID=Kat_KatID. Teraz w sekcji <strong>Kolumny u\u017cytkownika<\/strong> doda\u0107 kolumn\u0119 o\u00a0instrukcji\u00a0pobierania\u00a0danych Kat_KodSzczegol<\/p>\n<h3><\/h3>\n<p><a name=\"prz6k\"><\/a><\/p>\n<h3>6. Lista not odsetkowych, ponagle\u0144 zap\u0142aty, potwierdze\u0144 sald. Kolumna kod podmiotu<\/h3>\n<p><em>Kod podmiotu<\/em> - \u00a0nale\u017cy skorzysta\u0107 z dost\u0119pnej na li\u015bcie kolumny: Pod_Kod<\/p>\n<h3><\/h3>\n<p><a name=\"prz7k\"><\/a><\/p>\n<h3>7. Lista dokument\u00f3w rozliczonych. Kolumna pokazuj\u0105ca czy rozliczenie zosta\u0142o uwzgl\u0119dnione na dokumencie kompensaty<\/h3>\n<p>Nale\u017cy w sekcji <strong>Tabele u\u017cytkownika<\/strong> wykona\u0107 z\u0142\u0105czenie do tabeli CDN.KompensatyElem po polach BrK_BrkId=Kpe_BrkId. Teraz w sekcji <strong>Kolumny u\u017cytkownika<\/strong> doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<br \/>\n<code>CASE Brk_BrkId WHEN Kpe_BrkId THEN 'Tak' ELSE '' END<\/code><\/p>\n<p><a name=\"prz8k\"><\/a><\/p>\n<h3>8. Lista deklaracji. Kolumna z polem kwotowym z deklaracji utworzonej w Comarch Deklaracje Podatkowe<\/h3>\n<p>Nale\u017cy w sekcji Kolumny u\u017cytkownika doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<p><code>(select convert(decimal (18,2),replace(JSON_VALUE(DkE_WartoscTekst, '$.Deklaracja.PozycjeSzczegolowe.P_66'),',','.') ) AS kwota from cdn.DeklElem where DkE_DkNID= DkN_DkNID and DkE_Numer=50 and DkN_TypDeklar=17 and DkN_Wersja =32)CASE Brk_BrkId WHEN Kpe_BrkId THEN 'Tak' ELSE '' END<\/code><\/p>\n<p>Jest to przyk\u0142ad, kt\u00f3ry z deklaracji CIT-8 w wersji 32 zwraca warto\u015b\u0107 pola 66. Ta definicja dzia\u0142a dla Windows Server 2016 I p\u00f3\u017aniejszych.<\/p>\n<p><a name=\"placeikadry\"><\/a><\/p>\n<p>&nbsp;<\/p>\n<h2><strong>P\u0142ace i Kadry<\/strong><\/h2>\n<h3><\/h3>\n<p><a name=\"prz1p\"><\/a><\/p>\n<h3>1. Lista pracownik\u00f3w. Kolumna z warto\u015bci\u0105 atrybutu o nazwie Atrybut 1 na dzie\u0144 bie\u017c\u0105cy<\/h3>\n<p>Potrzebne pola znajduj\u0105 si\u0119 w tabeli CDN.OAtrybuty oraz CDN.OAtrybutyHist. Na oknie personalizacji listy w sekcji <strong>Tabele u\u017cytkownika<\/strong> nale\u017cy do\u0142\u0105czy\u0107 powy\u017csze tabele, aby mie\u0107 dost\u0119p do ich p\u00f3l. W zwi\u0105zku z\u00a0tym w\u00a0kolumnie <em>Nazwa tabeli<\/em> dodajemy tabel\u0119 CDN.OAtrybuty, a w kolumnie <em>Instrukcja \u0142\u0105czenia<\/em> wprowadzamy pola \u0142\u0105cz\u0105ce obie tabele oraz dodatkowy warunek dla atrybutu o nazwie Atrybut 1, wprowadzamy zatem:<br \/>\n<code>OAT_PrcId = PRI_PraId AND OAT_NazwaKlasy = 'Atrybut 1'<\/code>Nast\u0119pnie podajemy drug\u0105 tabel\u0119 CDN.OAtrybutyHist, a w kolumnie <em>Instrukcja \u0142\u0105czenia<\/em> wprowadzamy pola \u0142\u0105cz\u0105ce obie tabele oraz dodatkowy warunek filtruj\u0105cy zakres dat na dzie\u0144 bie\u017c\u0105cy, wprowadzamy zatem:<br \/>\n<code>ATH_OatId = OAT_OatId AND ATH_DataOd &lt;= GETDATE() AND ATH_DataDo &gt;= GETDATE()<\/code>Teraz w\u00a0sekcji <strong>Kolumny dost\u0119pne z\u00a0aktualnie wybranych tabel<\/strong> pojawi\u0105 si\u0119 pola dost\u0119pne z tabeli CDN.OAtrybutyHist. Nale\u017cy odnale\u017a\u0107 pole ATH_Wartosc i przeci\u0105gn\u0105\u0107 do sekcji <strong>Kolumny u\u017cytkownika<\/strong> oraz nada\u0107 nazw\u0119 dla kolumny.<\/p>\n<h3><\/h3>\n<p><a name=\"prz2p\"><\/a><\/p>\n<h3>2. Lista pracownik\u00f3w. Kolumna z warto\u015bci\u0105 atrybutu o nazwie Atrybut 1 na dzie\u0144 daty aktualno\u015bci listy<\/h3>\n<p>Potrzebne pola znajduj\u0105 si\u0119 w tabeli CDN.OAtrybuty oraz CDN.OAtrybutyHist. Na oknie personalizacji listy w sekcji <strong>Tabele u\u017cytkownika<\/strong> nale\u017cy do\u0142\u0105czy\u0107 powy\u017csze tabele, aby mie\u0107 dost\u0119p do ich p\u00f3l. W zwi\u0105zku z\u00a0tym w\u00a0kolumnie <em>Nazwa tabeli<\/em> dodajemy tabel\u0119 CDN.OAtrybuty, a w kolumnie <em>Instrukcja \u0142\u0105czenia<\/em> wprowadzamy pola \u0142\u0105cz\u0105ce obie tabele oraz dodatkowy warunek dla atrybutu o nazwie Atrybut 1, wprowadzamy zatem:<br \/>\n<code>OAT_PrcId = PRI_PraId AND OAT_NazwaKlasy = 'Atrybut 1'<\/code>Nast\u0119pnie podajemy drug\u0105 tabel\u0119 CDN.OAtrybutyHist, a w kolumnie <em>Instrukcja \u0142\u0105czenia<\/em> wprowadzamy pola \u0142\u0105cz\u0105ce obie tabele oraz dodatkowy warunek filtruj\u0105cy zakres dat na dzie\u0144 daty aktualno\u015bci listy, wprowadzamy zatem:<br \/>\n<code>ATH_OatId = OAT_OatId AND ATH_DataOd &lt;= #filtr_dtDataAkt# AND ATH_DataDo &gt;= #filtr_dtDataAkt#<\/code>Teraz w\u00a0sekcji <strong>Kolumny dost\u0119pne z\u00a0aktualnie wybranych tabel<\/strong> pojawi\u0105 si\u0119 pola dost\u0119pne z tabeli CDN.OAtrybutyHist. Nale\u017cy odnale\u017a\u0107 pole ATH_Wartosc i przeci\u0105gn\u0105\u0107 do sekcji <strong>Kolumny u\u017cytkownika<\/strong> oraz nada\u0107 nazw\u0119 dla kolumny.<\/p>\n<h3><\/h3>\n<p><a name=\"prz3p\"><\/a><\/p>\n<h3>3. Lista pracownik\u00f3w. Kolumna z pe\u0142nym kodem ubezpieczenia pracownika na dzie\u0144 daty aktualno\u015bci listy<\/h3>\n<p>Na oknie personalizacji listy w sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<br \/>\n<code>CASE WHEN LEN(PRE_UBZTyuId) = 3 THEN '0' + CAST(PRE_UBZTyuId as CHAR(3)) + CAST(PRE_PrawoER as CHAR(1)) + CAST(PRE_StNiepelnosp as CHAR(1)) WHEN PRE_UBZTyuId = 99999 THEN '' ELSE CAST(PRE_UBZTyuId as CHAR(4)) + CAST(PRE_PrawoER as CHAR(1)) + CAST(PRE_StNiepelnosp as CHAR(1)) END<\/code><\/p>\n<h3><\/h3>\n<p><a name=\"prz4p\"><\/a><\/p>\n<h3>4. Lista pracownik\u00f3w. Kolumna z wyszczeg\u00f3lnion\u0105 dat\u0105 wa\u017cno\u015bci bada\u0144 okresowych, kt\u00f3ra up\u0142yn\u0119\u0142a lub up\u0142ynie w okresie 30 dni od daty<\/h3>\n<p>W sekcji Kolumny u\u017cytkownika nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<pre>(select PRE_WaznoscBadanOkres from cdn.pracetaty a where \r\npri_praid = a.pre_praid and year(a.pre_datado) = 2999)<\/pre>\n<p>W celu wyr\u00f3\u017cnienia kolorem daty wa\u017cno\u015bci bada\u0144 okresowych, kt\u00f3ra up\u0142yn\u0119\u0142a lub up\u0142ynie w okresie 30 dni od daty aktualno\u015bci w Stylach warto\u015bci nale\u017cy doda\u0107 poni\u017cszy warunek:<\/p>\n<pre>(select PRE_WaznoscBadanOkres from cdn.pracetaty a where pri_praid = a.pre_praid \r\nand year(a.pre_datado) = 2999) &lt;= #filtr_dtDataAkt# + 30 AND \r\n(select PRE_WaznoscBadanOkres from cdn.pracetaty a where \r\npri_praid = a.pre_praid and year(a.pre_datado) = 2999) &gt;= #filtr_dtDataAkt# -30<\/pre>\n<h3><\/h3>\n<p><a name=\"prz5p\"><\/a><\/p>\n<h3>5. Lista pracownik\u00f3w. Kolumna z wyszczeg\u00f3lnion\u0105 dat\u0105 zwolnienia, kt\u00f3ra up\u0142yn\u0119\u0142a lub up\u0142ynie w okresie 5 dni od daty aktualno\u015bci.<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong>\u00a0nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<pre>(select PRE_ZatrudnionyDo from cdn.pracetaty a where pri_praid = a.pre_praid \r\nand year(a.pre_datado) = 2999)<\/pre>\n<p>W celu wyr\u00f3\u017cnienia kolorem daty zwolnienia, kt\u00f3ra up\u0142yn\u0119\u0142a lub up\u0142ynie w okresie 5 dni od daty aktualno\u015bci w Stylach warto\u015bci nale\u017cy doda\u0107 poni\u017cszy warunek:<\/p>\n<pre>(select PRE_ZatrudnionyDo from cdn.pracetaty a where pri_praid = a.pre_praid \r\nand year(a.pre_datado) = 2999) &lt;= #filtr_dtDataAkt# + 5 AND \r\n(select PRE_ZatrudnionyDo from cdn.pracetaty a where pri_praid = a.pre_praid \r\nand year(a.pre_datado) = 2999) &gt;= #filtr_dtDataAkt# -5<\/pre>\n<h3><\/h3>\n<p><a name=\"prz6p\"><\/a><\/p>\n<h3>6. Lista pracownik\u00f3w. Kolumna z dat\u0105 rozwi\u0105zania nierozliczonej umowy, kt\u00f3ra zako\u0144czy\u0142a si\u0119 10 dni temu w stosunku do daty aktualno\u015bci.<\/h3>\n<p>W sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<pre>(select top 1 umw_datado from cdn.umowy where umw_splacona &lt; UMW_Brutto \r\nand UMW_Praid = Pra_Praid and UMW_DataDo &lt;= #filtr_dtDataAkt# - 10)<\/pre>\n<p><a name=\"prz7p\"><\/a><\/p>\n<h3>7. Lista pracownik\u00f3w. Kolumna z wyszczeg\u00f3lnion\u0105 dat\u0105 wa\u017cno\u015bci uprawnienia Szkolenie BHP (UPR_UprId=52), kt\u00f3ra up\u0142yn\u0119\u0142a lub up\u0142ynie w okresie 30 dni od daty aktualno\u015bci.<\/h3>\n<p>Potrzebne pole znajduje si\u0119 w tabeli CDN.Uprawnienia. Na oknie personalizacji listy w sekcji Tabele u\u017cytkownika nale\u017cy do\u0142\u0105czy\u0107 powy\u017csz\u0105 tabel\u0119, aby mie\u0107 dost\u0119p do jej p\u00f3l. W zwi\u0105zku z tym w kolumnie Nazwa tabeli dodajemy tabel\u0119 CDN.Uprawnienia, a w kolumnie Instrukcja \u0142\u0105czenia wprowadzamy pola \u0142\u0105cz\u0105ce obie tabele oraz dodatkowy warunek dla uprawnienia o Id=52, wprowadzamy zatem:<\/p>\n<pre>upr_praid=pra_praid and upr_dkmid=52<\/pre>\n<p>W sekcji Kolumny dost\u0119pne z aktualnie wybranych tabel pojawi\u0105 si\u0119 pola dost\u0119pne z tabeli CDN.Uprawnienia. Nale\u017cy odnale\u017a\u0107 pole UPR_KursTermin i przeci\u0105gn\u0105\u0107 do sekcji Kolumny u\u017cytkownika oraz nada\u0107 nazw\u0119 dla kolumny.<br \/>\nW celu wyr\u00f3\u017cnienia kolorem daty wa\u017cno\u015bci uprawnienia, kt\u00f3ra up\u0142yn\u0119\u0142a lub up\u0142ynie w okresie 30 dni od daty aktualno\u015bci w Stylach warto\u015bci nale\u017cy doda\u0107 poni\u017cszy warunek:<\/p>\n<pre>UPR_KursTermin &lt;= #filtr_dtDataAkt# + 30 AND UPR_KursTermin&gt;= \r\n#filtr_dtDataAkt# -30<\/pre>\n<p><a name=\"prz8p\"><\/a><\/p>\n<h3>8. Lista wyp\u0142at pracownik\u00f3w. Kolumna z sum\u0105 naliczonej zaliczki podatku (bez zaokr\u0105gle\u0144) w wyp\u0142acie pracownika dla wybranej listy p\u0142ac<\/h3>\n<p>Potrzebne pola znajduj\u0105 si\u0119 w tabeli CDN.Wyplaty. Nale\u017cy wykona\u0107 z\u0142\u0105czenie do powy\u017cszej tabeli. Na oknie personalizacji listy w sekcji <strong>Tabele u\u017cytkownika<\/strong> w kolumnie <em>Nazwa tabeli <\/em>podajemy tabel\u0119 CDN.Wyplaty, a\u00a0w\u00a0kolumnie <em>Instrukcja \u0142\u0105czenia<\/em> wprowadzamy pola \u0142\u0105cz\u0105ce obie tabele oraz dodatkowy warunek przekazuj\u0105cy ID wybranej listy p\u0142ac, wprowadzamy zatem:<br \/>\n<code>WPL_PraId = PRI_PraId and WPL_LplId = #filtr_LookupListaPlac_ID#<\/code><br \/>\nNast\u0119pnie w sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<br \/>\n<code>(SELECT SUM(WPE_NalFis) FROM CDN.WypElementy WHERE WPE_WplId = WPL_WplId)<\/code><\/p>\n<h3><\/h3>\n<p><a name=\"prz9p\"><\/a><\/p>\n<h3>9. Lista wyp\u0142at pracownik\u00f3w. Kolumna z sum\u0105 naliczonej zaliczki podatku (bez zaokr\u0105gle\u0144) w wyp\u0142acie pracownika dla wybranej listy p\u0142ac \u2013 przypadek, gdy dwie wyp\u0142aty (np. umowy cywilnoprawne) policzone s\u0105 w jednej wyp\u0142acie<\/h3>\n<p>Na oknie personalizacji listy w sekcji <strong>Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<br \/>\n<code>(SELECT Suma FROM (<br \/>\nSELECT WPE_WplId, WPE_PraId, SUM(WPE_NalFis) OVER(PARTITION BY WPE_PraID) AS Suma, WPL_LplId, ROW_NUMBER() OVER(PARTITION BY WPE_PraID ORDER BY WPE_NalFis) AS \"Row Number\"<br \/>\nFROM CDN.WypElementy<br \/>\nJOIN CDN.Wyplaty ON WPL_WplId = WPE_WplId<br \/>\nWHERE WPL_LplId = #filtr_LookupListaPlac_ID#<br \/>\nGROUP BY WPL_LplId, WPE_PraId, WPE_NalFis, WPE_WplId, WPE_WpeId) AS T<br \/>\nWHERE \"Row Number\" = 1 AND WPE_PraId = PRI_PraId)<br \/>\n<\/code><\/p>\n<h3><\/h3>\n<p><a name=\"prz10p\"><\/a><\/p>\n<h3>10. Deklaracje PIT pracownik\u00f3w. Kolumna z kwot\u0105 przychodu ze stosunku pracy (pozycja 29) z deklaracji PIT-11 za wybrany rok.<\/h3>\n<p>Potrzebne pola znajduj\u0105 si\u0119 w tabeli CDN.DeklElem. Nale\u017cy wykona\u0107 z\u0142\u0105czenie do powy\u017cszej tabeli. W oknie personalizacji listy, w sekcji Tabele u\u017cytkownika w kolumnie Nazwa tabeli podajemy tabele CDN.DeklElem, a w kolumnie Instrukcja \u0142\u0105czenia wprowadzamy pola \u0142\u0105cz\u0105ce obie tabele oraz dodatkowy warunek dke_numer=1, kt\u00f3ry wskazuje na wype\u0142nion\u0105 deklaracj\u0119 web w formacie JSON:<\/p>\n<p><code> dkn_dknid=dke_dknid and dke_numer=1 <\/code><\/p>\n<p>Nast\u0119pnie w sekcji<strong> Kolumny u\u017cytkownika<\/strong> nale\u017cy doda\u0107 kolumn\u0119 o instrukcji pobierania danych:<\/p>\n<p><code> (select convert(decimal (18,2),replace(JSON_VALUE(DkE_WartoscTekst, '$.Deklaracja.PozycjeSzczegolowe.P_29'),',','.') )) <\/code><\/p>\n<p>W przypadku potrzeby odwo\u0142ania si\u0119 do innej pozycji z deklaracji PIT nale\u017cy poda\u0107 odpowiedni numer pola z pliku JSON.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Data aktualizacji: 25-01-2024 Wst\u0119p U\u017cytkownik Comarch ERP Optima ma mo\u017cliwo\u015b\u0107 dodawania na listach dokument\u00f3w kolumn o dowolnej definicji z dowolnej tabeli dost\u0119pnej w bazie danych. Dodawanie kolumn odbywa si\u0119 z pomoc\u0105 mechanizmu personalizacji okna. Mo\u017cliwe jest wy\u0142\u0105czenie personalizacji listy dla danego operatora, zwyk\u0142a personalizacja kolumn, kt\u00f3re zdefiniowa\u0142 u\u017cytkownik poprzez dodanie kolejnych instrukcji JOIN, dodanie wyra\u017ce\u0144 [&hellip;]<\/p>\n","protected":false},"author":21,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_ht_kb_usefulness":1,"_ht_kb_post_views_count":8984,"_ht_kb_article_order":0,"_ht_kb_reading_time":42,"footnotes":""},"ht_kb_category":[409],"ht_kb_tag":[],"class_list":["post-16045","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-wspolne-biuletyny"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-json\/wp\/v2\/ht_kb\/16045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-json\/wp\/v2\/comments?post=16045"}],"version-history":[{"count":139,"href":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-json\/wp\/v2\/ht_kb\/16045\/revisions"}],"predecessor-version":[{"id":48321,"href":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-json\/wp\/v2\/ht_kb\/16045\/revisions\/48321"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-json\/wp\/v2\/media?parent=16045"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-json\/wp\/v2\/ht_kb_category?post=16045"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/optima\/pl\/2027\/wp-json\/wp\/v2\/ht_kb_tag?post=16045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}