Korzystasz z Comarch ERP XL? Przygotowaliśmy rozbudowany poradnik, który pozwoli Użytkownikom XL-a na sprawniejszą pracę. Poniżej prezentujemy jeden spośród 10 trików opisanych w naszej najnowszej bezpłatnej publikacji.

Kolorowanie kolumn w Comarch ERP XL

W Comarch ERP XL dostępna jest funkcjonalność pozwalająca na dynamiczną zmianę graficznej prezentacji wartości w kolumnach użytkownika. Kolorowanie kolumn pozwala na zmianę koloru czcionki lub tła zależnie od parametrów pobranych z bazy danych, takie rozwiązanie może usprawnić pracę w systemie przez uwydatnianie informacji przydatnych użytkownikowi. Kolorowanie kolumn jest dostępne z poziomu nowych kolumn użytkownika po odpowiedniej ich modyfikacji.

W celu zdefiniowania koloru jaki przybrać mają wartości w kolumnie możemy użyć funkcji CONVERT(). W celu uzyskania odpowiedniego koloru należy z jej pomocą zwrócić liczbę zgodnie z poniższym:
CONVERT(int, 0x00 BBGGRR)
BB jest szesnastkową wartością składowej niebieskiej, GG analogicznie dla koloru niebieskiego, RR dla koloru czerwonego. Aby uzyskać kolor czerwony odszukujemy zapis koloru w formacie heksadecymalnym np.: używając dostępnego w Google RGB Color Picker (screen obok). Zgodnie z podanym uprzednio formatem:

CONVERT(int, 0x00BBGGRR) otrzymujemy CONVERT(int, 0x000000FF)

Przykład numer 1

Kolumna na liście dokumentów handlowych z terminem płatności.

select

dateadd(dd, TrP_Termin, '18001228′) // wartość pobierana z bazy

AS ’#XLFORMAT#40L@s100@|*~Termin płatności~#/XLFORMAT#’, // sekcja definiowania nagłówka kolumny, w miejsce „Wartość atrybutu” można wpisać dowolną nazwę, 40L oznacza szerokość kolumny i formatowanie do lewej, s100 oznacza format danych w tym przypadku jest to tekst o długości 100 znaków

case when DATEDIFF(dd, datediff(dd, '18001228′, cast(GETDATE() as date)), trp_termin) >= 3 then CONVERT(int, 0x00008000)

when DATEDIFF(dd, datediff(dd, '18001228′, cast(GETDATE() as date)), trp_termin) <=3 AND DATEDIFF(dd, datediff(dd, '18001228′, cast(GETDATE() as date)), trp_termin) > 0

then CONVERT(int, 0x00005AFF)

when DATEDIFF(dd, datediff(dd, '18001228′, cast(GETDATE() as date)), trp_termin) < 0 then CONVERT(int, 0x000000FF) end

as ’#XLFORMAT##/XLFORMAT#’, //definiowanie koloru czcionki nie zaznaczonej pozycji, instrukcja case pozwala na zmianę koloru zgodnie z warunkami

-1 as ’#XLFORMAT##/XLFORMAT#’ //definiowanie tła komórki dla nie zaznaczonej pozycji, „- 1” – wartość domyślna dla listy

,case when DATEDIFF(dd, datediff(dd, '18001228′, cast(GETDATE() as date)), trp_termin) >= 3 then CONVERT(int, 0x00008000)

when DATEDIFF(dd, datediff(dd, '18001228′, cast(GETDATE() as date)), trp_termin) <= 3 AND DATEDIFF(dd, datediff(dd, '18001228′, cast(GETDATE() as date)), trp_termin) > 0

then CONVERT(int, 0x00005AFF)

when DATEDIFF(dd, datediff(dd, '18001228′, cast(GETDATE() as date)), trp_termin) < 0 then CONVERT(int, 0x000000FF) end as ’#XLFORMAT##/XLFORMAT#’, //definiowanie koloru czcionki zaznaczonej pozycji

-1 as ’#XLFORMAT##/XLFORMAT#’ //definiowanie tła zaznaczonej pozycji, „-1” – wartość domyślna dla listy

from cdn.TraNag

join cdn.TraPlat on trp_gidnumer = TrN_GIDNumer and TrP_GIDTyp = TrN_GIDTyp

where {FILTRSQL}

W efekcie otrzymujemy kolumnę Termin płatności (screen poniżej). Gdy termin płatności minął wartość kolumny jest wyświetlana w kolorze czerwonym, gdy termin płatności jest mniejszy od 3 dni od dzisiejszej daty wyświetlany jest na pomarańczowo, w przypadku gdy termin nastąpi powyżej 7 dni wartości są w kolorze zielonym.

Gdy termin płatności minął wartość kolumny jest wyświetlana w kolorze czerwonym, gdy termin płatności jest mniejszy od 3 dni od dzisiejszej daty wyświetlany jest na pomarańczowo, w przypadku gdy termin nastąpi powyżej 7 dni wartości są w kolorze zielonym.

Przykład numer 2

Wyróżnienie pozycji na zamówieniu zgodnie z jego stopniem realizacji.

Kolorem czerwonym oznaczona jest pozycja, która nie została jeszcze zrealizowana (nie ma jej na powiązanych FS, WZ), żółtym kolorem oznaczyliśmy pozycje częściowo zrealizowaną, a zielonym w pełni zrealizowaną.

select

distinct

case

when sum(zae_ilosc) over (partition by trn_gidnumer, zae_twrkod) = sum(tre_ilosc) over (partition by zan_gidnumer, zae_twrkod) then 'Zrealizowano’

when sum(zae_ilosc) over (partition by trn_gidnumer, zae_twrkod) > sum(tre_ilosc) over (partition by zan_gidnumer, zae_twrkod) then 'Częściowo zrealizowane’

when sum(tre_ilosc) over (partition by zan_gidnumer, zae_twrkod) is null then 'W realizacji’

end

as

'#XLFORMAT#40L@s100@|*~Stan~#/XLFORMAT#’,

-1 as '#XLFORMAT##/XLFORMAT#’,

case

when sum(zae_ilosc) over (partition by trn_gidnumer, zae_twrkod) = sum(tre_ilosc) over (partition by zan_gidnumer, zae_twrkod) then CONVERT(int, 0x00008000)

when sum(zae_ilosc) over (partition by trn_gidnumer, zae_twrkod) > sum(tre_ilosc) over (partition by zan_gidnumer, zae_twrkod) then CONVERT(INT, 0x0000FFFF)

when sum(tre_ilosc) over (partition by zan_gidnumer, zae_twrkod) is null then CONVERT(int, 0x000000FF)

end as '#XLFORMAT##/XLFORMAT#’,

-1 as '#XLFORMAT##/XLFORMAT#’,

-1 as '#XLFORMAT##/XLFORMAT#’

from cdn.ZamNag

join cdn.ZamElem on zae_gidnumer = ZaN_GIDNumer

left join cdn.tranag on TrN_ZaNNumer = ZaN_GIDNumer and TrN_ZaNTyp = ZaN_GIDTyp

left join cdn.traelem on TrE_GIDNumer = TrN_GIDNumer and TrE_GIDTyp = TrN_GIDTyp and ZaE_TwrKod = TrE_TwrKod

where {filtrsql}

Potrzebujesz więcej wskazówek? Jesli zainteresowały Cię powyższe treści pobierz e-book i uzyskaj dostęp do wszystkich porad!