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}