Kontrolka dane tabelaryczne jest wielokolumnową kontrolką o nieograniczonej liczbie wierszy.
Istnieje możliwość zdefiniowania do 10 kolumn, każda z kolumn może posiadać następujący typ:
- Data i godzina
- Dokument elektroniczny
- Dokumenty w obiegu
- Kontrahent
- Liczba całkowita
- Liczba rzeczywista
- Liczba stałoprzecinkowa
- Lista
- Tekst
- Towar
- Wartość logiczna
Konfiguracja kontrolki Dane tabelaryczne – właściwości:
- Nazwa wyświetlana – jest to pole, którego zawartość będzie widoczna na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kontrolek dla których wyświetlana jest taka sama nazwa.
- Nazwa (identyfikator) – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
- Prezentuj na całej szerokości – zaznaczenie tej właściwości spowoduje wyświetlenie kontrolki na całej szerokości okna karta obiegu.
- Ustaw kontrolkę na początku wiersza – parametr odpowiada za ustawienie kontrolki na początku nowego wiersza karty obiegu, bez konieczności dodawania separatorów pomiędzy kontrolką bieżącą, a kontrolką poprzednią. Możliwość użycia parametru „Ustaw kontrolkę na początku wiersza” uzależniona jest od wartości parametru „Prezentuj na całej szerokości”. Gdy zaznaczono parametr „Prezentuj na całej szerokości”, nie ma możliwości użycia parametru „Ustaw kontrolkę na początku wiersza”. Gdy parametr „Ustaw kontrolkę na początku wiersza” jest zaznaczony, parametr „Prezentuj na całej szerokości” jest dostępny, jego zaznaczenie spowoduje wyłączenie i dezaktywację parametru „Ustaw kontrolkę na początku wiersza”.
- Liczba prezentowanych wierszy – liczba widocznych wierszy, po przekroczeniu zadanej ilości wierszy z prawej strony kontrolki pojawi się pasek przewijania.
- Dodaj – możliwość definicji kolejnych kolumn kontrolki (maks. 10).
Typy kolumn:
Data i godzina
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu dla których wyświetlana jest taka sama nazwa.
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
- Czas – wartości Tak/Nie, określenie czy kontrolki data mają posiadać tylko datę czy datę i godzinę.
-
Dokument elektroniczny – umożliwia zdefiniowanie kolumny typu dokument elektroniczny z możliwością podpinania dokumentów z systemu ERP XL.
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu dla których wyświetlana jest taka sama nazwa.
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
- Nazwa spółki – pole dostępne w wielofirmowym trybie pracy, umożliwia wybór spółki, dla której będą podpinane dokumenty.
- Typ – określenie typu dokumentu z systemu ERP XL, który można podpiąć do kolumny. Wybór typu nie jest obowiązkowy. Jeżeli typ nie zostanie określony w kolumnie można podpinać każdy oprogramowany w aplikacji typ dokumentu.
-
Kontrahent – umożliwia zdefiniowanie kolumny z możliwością dowiązywanie kontrahentów z systemu ERP XL
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu, dla których wyświetlana jest taka sama nazwa.
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
- Nazwa spółki – pole dostępne w wielofirmowym trybie pracy, umożliwia wybór spółki, z której będą podpinani kontrahenci.
-
Liczba całkowita
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu, dla których wyświetlana jest taka sama nazwa
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
-
Liczba rzeczywista
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu, dla których wyświetlana jest taka sama nazwa
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
-
Liczba stałoprzecinkowa
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu, dla których wyświetlana jest taka sama nazwa
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
-
Lista
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu, dla których wyświetlana jest taka sama nazwa.
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
- Listy – słownik nazw list zdefiniowanych na zakładce „Listy”
-
Tekst
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu, dla których wyświetlana jest taka sama nazwa.
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
-
Towar – umożliwia zdefiniowanie kolumny z możliwością dowiązywanie towarów z systemu ERP XL
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu, dla których wyświetlana jest taka sama nazwa.
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
- Nazwa spółki – pole dostępne w wielofirmowym trybie pracy, umożliwia wybór spółki z której będą podpinane towary.
-
Wartość logiczna
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu, dla których wyświetlana jest taka sama nazwa
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
-
Dokumenty w obiegu
Właściwości:
-
-
- Nazwa kolumny – jest to pole, którego zawartość będzie widoczna w nagłówku kolumny w kontrolce tabelarycznej na karcie obiegu, wartość pola nie musi być unikalna, dzięki temu możliwe jest dodanie kilku kolumn tego samego typu, dla których wyświetlana jest taka sama nazwa.
- Identyfikator kolumny – jest to pole, którego wartość widoczna jest wyłącznie we właściwościach kontrolki. Wartość tego pola musi być unikalna w ramach karty obiegu.
- Po zapisie nie zamykaj dokumentu w kontrolce – parametr odpowiedzialny za zachowanie dokumentu wygenerowanego lub dowiązanego w ramach kolumny. Gdy parametr „Po zapisie nie zamykaj dokumentu w kontrolce” został zaznaczony, dokument podniesiony do podglądu lub dodany w ramach kontrolki / kolumny typu dokumenty w obiegu po kliknięciu w ikonę ‚Zapisz’ pozostaje wyświetlony, dopóki operator nie wycofa się z jego edycji za pomocą ikony ‚Nawiguj wstecz’ lub ‚Zamknij’ . Gdy parametr „Po zapisie nie zamykaj dokumentu w kontrolce” jest odznaczony, dokument podniesiony do podglądu lub dodany w ramach kontrolki / kolumny typu dokumenty w obiegu po kliknięciu w ikonę ‚Zapisz’ jest zamykany.
- Dokument – przyjmuje wartości ‘Aktywne’ i ‘Wszystkie’, związany jest z możliwością podpięcia do tabeli tylko dokumentów przypisanych do pracownika (Aktywne) lub wszystkich dokumentów.
- Typ obiegu – za pomocą przycisku ‚Dodaj’ należy określić typy obiegów dokumentów, w których można będzie tworzyć nowe i podpinać istniejące dokumenty z poziomu kontrolki Dane tabelaryczne. Jeżeli nie zostanie wskazany żaden typ obiegu, wówczas możliwe będzie podpięcie dowolnego istniejącego dokumentu. Dodanie nowego dokumentu wymaga wskazania typu obiegu, w którym dokument zostanie utworzony.
-
Dodaj – możliwość definicji słowików list na potrzeby kolumn typu „Lista”
Właściwości słownika list:
- Nazwa – nazwa słownika listy.
- Inicjowanie – sposób inicjowania listy: Słownik, SQL OD, SQL ERP, C# Script, Stawki VAT, Jednostki miary.
- Rodzaj identyfikatora – pole umożliwia operatorowi określenie rodzaju identyfikatorów kolejnych pozycji na liście. Przyjmuje wartości:
- Int - gdy identyfikatory kolejnych pozycji na liście określone są liczbą. Dla metody inicjowania listy słownikiem, rodzaj identyfikatora to zawsze int.
- Text - gdy identyfikatory kolejnych pozycji na liście określone są wartością tekstową (np. GUID).
W przypadku, gdy w kontrolce lista określono rodzaj identyfikatora jako int, w edytorze zapytań SQL w mechanizmach inicjowania i obserwowania wyświetlane będą parametry:
-
- <identyfikator_kontrolki_typu_lista>_Id
- <identyfikator_kontrolki_typu_lista>_Text
W przypadku, gdy w kontrolce lista określono rodzaj identyfikatora jako text, w edytorze zapytań SQL w mechanizmach inicjowania i obserwowania wyświetlane będą parametry:
-
- <identyfikator_kontrolki_typu_lista>_IdText
- <identyfikator_kontrolki_typu_lista>_Text
- Tryb pracy – wartości: Lista, Wyszukiwanie.
- W kolumnie typu lista umożliwiono wyszukiwanie wartości po dowolnym ciągu znaków. Możliwość takiego wyszukiwania uzależniona jest od wartości parametru ‘Szukaj po dowolnym ciągu znaków’. Parametr znajduje się we właściwościach definiowanej listy, po wskazaniu trybu pracy ‘Wyszukiwanie’.
Inicjowanie – wartość „SQL OD” czyli inicjowanie kontrolki zapytaniem SQL z bazy obiegu, lub wartość "C# Script" czyli inicjowanie kontrolki za pomocą kodu w języku C#.
Kontrolki powiązane - możliwość określenia, która kontrolka ma być obserwowana przez kontrolkę Dane tabelaryczne i na podstawie kontrolki obserwowanej zdefiniowanie wzoru na wartość kontrolki Dane tabelaryczne. Wzór na wartość może być zdefiniowany za pomocą SQL OD, SQL ERP lub kodu C#. Przykład został opisany w rozdziale Wypełnianie wartości kontrolki w oparciu o wartości innej kontrolki.
Na zakładce dostępna jest tabela, w której można określić tryb pracy poszczególnych kolumn kontrolki tabelarycznej na każdym etapie procesu.
Tabela zbudowana jest w ten sposób, że pierwsze dwie kolumny zawierają parametry dotyczące blokady dodawania i usuwania wierszy, które dotychczas były prezentowane we właściwościach kolumny na zakładce Ogólne. Pozostałe kolumny to kolejne kolumny zdefiniowanej kontrolki typu Dane tabelaryczne. Wiersze tabeli stanowią wszystkie etapy procesu.
Zaznaczenie parametru w kolumnach zablokuj usuwanie/dodawanie wierszy skutkuje brakiem możliwości usunięcia/dodania wiersza, gdy dokument przebywa w danym etapie. Zaznaczenie parametru w pozostałych kolumnach oznacza, że na danym etapie kolumna przejdzie w tryb do odczytu.
Dodawanie istniejącego dokumentu oraz tworzenie nowego w kolumnie typu "Dokumenty w obiegu"
Wskazanie typu kolumny ‘Dokumentu w obiegu’ pozwala na dodawanie istniejącego lub utworzenie nowego dokumentu Comarch DMS.
Aby w kontrolce Dane tabelaryczne utworzyć nowy dokument należy użyć przycisku
który wywoła listę dostępnych typów obiegu, w ramach których możliwe jest utworzenie nowego dokumentu.
Po wybraniu typu obiegu wyświetlona zostaje karta obiegu.
Karta obiegu wywołana z kontrolki Dane tabelaryczne na karcie obiegu w ramach innego typu obiegu.
Aby w kolumnie typu „Dokumenty w obiegu” dodać istniejący dokument należy wpisać kilka znaków numeru dokumentu, który ma być podpięty w kontrolce. Po wpisaniu frazy, Comarch DMS wyświetli listę dokumentów, które zawierają wpisany ciąg znaków.
Inicjowanie kontrolki tabelarycznej zapytaniem SQL
Istnieje możliwość inicjowania kontrolki tabelarycznej zapytaniem SQL. Możliwe jest uruchomienie zapytania wyłącznie na bazie obiegu. Poniżej zostały opisane zasady tworzenia zapytania SQL w zależności od zdefiniowanej ilości i typów kolumn kontrolki.
Tworząc zapytanie, które zainicjuje kontrolkę należy kierować się przykładem zamieszczonym na formatce definicji zapytania „Zapytanie SQL”. Składania zapytania oraz przykład jest tworzony dynamicznie w zależności od ilości i typu zdefiniowanych kolumn.
Na poniższym rysunku zostały oznaczone dynamiczne elementy składni i przykładu.
Inicjowanie kontrolki tabelarycznej zapytaniem SQL odbywa się poprzez zapytanie SELECT, w którym podajemy tyle parametrów i w takiej kolejności w jakiej występują kolumny zdefiniowane w kontrolce.
Kolumny ze składni select przekładają się 1:1 do kolumn zdefiniowanych w kontrolce tabelarycznej poza jednym wyjątkiem. Tym wyjątkiem jest kolumna typu dokument elektroniczny, w którym konieczne jest określenie dwóch składowych GidTyp i Id GidNumer. Ostatnią kolumną jest zawsze tryb wprowadzania wartości instrukcją select: 1 – nadpisz (usuń istniejące wartości i zastąp nowymi), 2 – dodaj (do istniejących wartości dodaj nowe)
Zestawienie typów kolumn instrukcji SELECT:
Typ kolumny kontrolki | Typ kolumny SELECT | Przykład |
---|---|---|
Tekst | varchar (900) | 'Uwagi do płatności' |
Data i godzina | datetime | '20170926' - format 'YYYYMMDD' |
Liczba całkowita | int | 123 |
Liczba stałoprzecinkowa | decimal (22,4) | 1000.55 |
Liczba rzeczywsta | real | 2000.55 |
Lista | int | 1 - id pozycji |
Kontrahent | int | 751 - KntNumer |
Towar | int | 438 - TwrNumer |
Wartość logiczna | int | 0 - Nie 1 - Tak |
Dokument elektroniczny | int | 1521 - GidTyp dokumentu 112 - Id dokumentu |
Za pomocą zapytania SQL chcemy do istniejących wierszy w kontrolce tabelarycznej dodać dwa kolejne.
Jeżeli w kontrolce dane tabelaryczne zostały zdefiniowane 4 kolumny typu: 1) dokument elektroniczny, 2) liczba stałoprzecinkowa, 3) lista oraz 4) data i godzina, zapytanie select może wyglądać następująco:
Kolumny | 1 | 4 | 2 | 3 | |
Tekst | Data | Liczba stałoprzecinkowa | Id listy | Tryb |
|
SELECT | Monitor 23”, | 20170923, | 123.50, | 3, | 2 |
UNION | |||||
SELECT | Klawiatura QWERTY, | 20170508, | 348.00, | 2, | 2 |
Kolumny dla powyższego przykładu zostały zdefiniowane w następujący sposób:
Zmiana wartości kontrolki na podstawie zmiany wartości innej kontrolki (Obserwator)
Od wersji Comarch DMS 2018.2.1 została zmieniona funkcjonalność odświeżania zawartości kontrolki dane tabelaryczne instrukcją SQL: select * from @Nazwa kontrolki@. We wcześniejszych wersjach Comarch DMS wywołanie zapytania select * from @Nazwa kontrolki@ było obowiązkowe dla każdego zdarzenia. Brak instrukcji powodował usunięcie informacji z kontrolki dane tabelaryczne. Aktualnie brak tego zapytania nie spowoduje usunięcia zawartości kontrolki. Zmiana została wprowadzona po to, aby nieobsłużone zdarzenia nie powodowały wielokrotnego odświeżania kontrolki.
Do wersji 2018.2.1 zalecanym schematem pisania zapytań SQL w obsłudze zdarzeń kontrolki dane tabelaryczne był schemat, w którym zapytanie select * from @Nazwa kontrolki@ znajdowało się na końcu kodu SQL:
Przykład warunku:
If warunek 1
Begin
… Obsługa warunku 1
End
If warunek 2
Begin
… Obsługa warunku 2
End
select * from @Nazwa kontrolki@
Aktualnie zalecanym schematem jest:
Przykład warunku:
If warunek 1
Begin
… Obsługa warunku 1
select * from @Nazwa kontrolki@
End
If warunek 2
Begin
… Obsługa warunku 2
select * from @Nazwa kontrolki@
End
W przypadku wykorzystania nowego schematu warunku, brak obsługi zdarzenia nie spowoduje żadnej akcji w kontrolce dane tabelaryczne.
Odświeżanie wartości w kontrolce dane tabelaryczne na żądanie
Funkcjonalność można włączyć w:
menu "Definicje typów obiegów" → zakładka "Schemat obiegu" → wybrany etap → zakładka "Kontrolki" → parametr "Odświeżanie tabeli na żądanie"
Parametr "Odświeżanie tabeli na żądanie"
Po włączeniu opcji na karcie obiegu pojawi się przycisk, który po kliknięciu będzie odświeżał wartości w tabeli.
Przycisk pozwalający na odświeżanie tabeli
W edytorze wyrażeń SQL dostępna jest obsługa zdarzenia kliknięcia w przycisk "Odśwież" w kontrolce typu dane tabelaryczne. Zdarzenia można wskazać w parametrach @^SenderControlName@ oraz @^InitSenderControlName@ poprzez wpisanie frazy złożonej z identyfikatora kontrolki tabelarycznej, następnie znaku "_" i dodatkowo słowa "Refresh". Np. dla kontrolki o identyfikatorze "Multiline1" zdarzenie kliknięcia będzie określane jako "Multiline1_Refresh".
Zdefiniowano kontrolkę typu dane tabelaryczne "Elementy", w której po dodaniu towaru i uzupełnieniu ilości jednostki miary i ceny wyliczana jest wartość netto wszystkich pozycji tabeli. Zdefiniowano również kontrolkę typu liczba stałoprzecinkowa "Łączna wartość netto dokumentu", w której wyliczana jest suma wartości netto z tabeli.
W kontrolce typu dane tabelaryczne zastosowano mechanizm obserwowania zmiany wartości przez samą siebie, przy czym w parametrze @^SenderControlName@ wskazano zdarzenie kliknięcia w przycisk "Odśwież" w kontrolce typu dane tabelaryczne.
W kontrolce liczbowej "Łączna wartość netto dokumentu" zastosowano mechanizm obserwowania wartości w kontrolce tabelarycznej. W zapytaniu obserwatora w parametrze @^SenderControlName@ wskazano zdarzenie kliknięcia w przycisk "Odśwież" w kontrolce "Elementy". We właściwościach etapu zaznaczono, że kontrolka typu dane tabelaryczne będzie pracować w trybie odświeżanie na żądanie.
Na dokumencie DMS po uzupełnieniu kolumn "Towar", "Ilość", "JM" i "Cena" wartości w kolumnie "Wartość netto" i w kontrolce "Łączna wartość netto dokumentu" nie są wyliczane pomimo ustawienia mechanizmu obserwacji.
Dopiero po kliknięciu w ikonę "Odśwież" wartości zostaną wyliczone i zaprezentowane w kolumnie "Wartość netto" oraz w kontrolce "Łączna wartość netto dokumentu".