Komendy z grupy „Utwórz zmienną typu tablica” tworzą zmienną triggerową zawierającą wiele wartości.
W przeciwieństwie do zwykłej zmiennej, która przechowuje jedną wartość lub jeden obiekt, zmienna tablicowa może zawierać:
- wiele obiektów tej samej klasy,
- wiele identyfikatorów,
- wiele zestawów danych,
- wyniki zbiorczego zapytania do bazy.
Po utworzeniu tablicy można wykorzystać ją między innymi w komendzie „foreach”, aby kolejno wykonać operacje dla każdego elementu.
1. Wczytaj z bazy listę obiektów dowolnej klasy i przypisz do zmiennej tablicowej #
Komenda „Wczytaj z bazy listę obiektów dowolnej klasy i przypisz do zmiennej tablicowej” pobiera z bazy danych wiele obiektów i umieszcza je w jednej zmiennej tablicowej.
1.1. Wybór klasy #
Po dodaniu komendy do triggera należy wskazać klasę obiektów, które mają zostać pobrane.
Może to być na przykład klasa:
- Kontrahent,
- Osoba,
- Zadanie,
- Dokument,
- Temat handlowy,
- Pozycja transakcji.
Wszystkie obiekty umieszczone w tablicy będą należały do wskazanej klasy.
1.2. Ograniczenie do identyfikatorów ze zmiennej #
W polu:
„Ogranicz do ID ze zmiennej”
można wskazać inną zmienną triggerową zawierającą jeden lub wiele identyfikatorów obiektów.
Program wczyta z bazy obiekty odpowiadające tym identyfikatorom.
Może to być użyteczne, gdy wcześniejsza część triggera przygotowała listę ID rekordów przeznaczonych do dalszego przetwarzania.
1.3. Wyszukiwanie na podstawie warunków #
Obiekty można również wybierać za pomocą warunków zdefiniowanych w zakładce:
„Warunki/formuła”.
Warunki te odpowiadają części WHERE zapytania SELECT wykonywanego w bazie danych.
Podczas budowania wyrażenia można używać między innymi:
- operatora
AND, - operatora
OR, - operatora równości,
- operatorów „większe niż” i „mniejsze niż”,
- wartości stałych,
- wartości innych zmiennych triggerowych.
Można na przykład pobrać:
- wszystkich aktywnych kontrahentów,
- zadania przypisane do określonego użytkownika,
- dokumenty z wybranego okresu,
- tematy handlowe znajdujące się w określonej fazie.
Ograniczenie do ID oraz dodatkowe warunki mogą być stosowane równocześnie.
1.4. Sortowanie obiektów #
W formule można również zastosować elementy określające kolejność pobieranych obiektów.
Pozwala to ustawić sortowanie na przykład:
- według daty rosnąco,
- według daty malejąco,
- według nazwy,
- według numeru,
- według dowolnego innego pola.
Kolejność ma znaczenie między innymi podczas późniejszego przetwarzania tablicy za pomocą pętli „foreach”.
2. Przypisz do zmiennej tablicowej obiekty zaznaczone w zestawieniu #
Komenda „Przypisz do zmiennej tablicowej obiekty zaznaczone w zestawieniu” pobiera rekordy zaznaczone przez użytkownika na stronie typu „Zestawienie”.
2.1. Warunki zastosowania #
Komenda może zostać wykorzystana, gdy:
- użytkownik znajduje się na stronie typu „Zestawienie”,
- zaznaczył jeden lub wiele rekordów,
- uruchamia opcję z lokalnego menu strony,
- opcja ta wywołuje odpowiedni trigger.
W takim przypadku trigger ma dostęp do obiektów zaznaczonych przez użytkownika.
2.2. Konfiguracja klasy #
Podczas konfiguracji komendy należy wskazać klasę obiektów znajdujących się w zestawieniu.
Wybrane rekordy zostaną przypisane do zmiennej triggerowej typu tablica.
2.3. Przykładowe zastosowania #
Po pobraniu zaznaczonych obiektów trigger może:
- zmienić ich status,
- przypisać im opiekuna,
- utworzyć dla nich zadania,
- wysłać zbiorcze powiadomienia,
- wykonać operację osobno dla każdego rekordu za pomocą „foreach”.
Komenda pozwala zatem budować zbiorcze operacje wykonywane na rekordach wybranych przez użytkownika.
3. Przypisz do zmiennej tablicowej obiekty wierszy zestawienia na stronie #
Komenda „Przypisz do zmiennej tablicowej obiekty wierszy zestawienia na stronie” działa podobnie do komendy pobierającej zaznaczone rekordy.
Różnica polega na zakresie pobieranych obiektów.
Do tablicy przypisywane są wszystkie obiekty wyświetlone na bieżącej stronie zestawienia, niezależnie od tego, czy użytkownik je zaznaczył.
3.1. Zakres działania #
Jeżeli użytkownik ma na aktualnej stronie zestawienia 25 wierszy, do tablicy zostanie przypisanych 25 odpowiadających im obiektów.
Komenda nie musi obejmować rekordów znajdujących się na kolejnych stronach zestawienia. Odnosi się do wierszy widocznych na bieżącej stronie.
3.2. Różnica między komendami #
Komenda „Obiekty zaznaczone w zestawieniu” pobiera wyłącznie rekordy wskazane przez użytkownika.
Komenda „Obiekty wierszy zestawienia na stronie” pobiera wszystkie rekordy znajdujące się na aktualnie wyświetlanej stronie.
4. Wczytaj z bazy listę wskaźników i przypisz do tablicy zmiennych dataset #
Komenda „Wczytaj z bazy listę wskaźników i przypisz do tablicy zmiennych dataset” służy do wykonywania zbiorczych zapytań do bazy danych.
W odróżnieniu od wcześniejszych komend wynikiem nie jest tablica obiektów.
Zmienna zawiera tablicę elementów typu dataset, czyli zestawów danych.
5. Budowa tablicy dataset #
Tablicę dataset można traktować jako strukturę dwuwymiarową.
Główna tablica zawiera kolejne wiersze wyników. Każdy wiersz jest osobnym zestawem danych i może zawierać wiele wartości.
Przykładowo wynik może zawierać:
| Opiekun | Liczba kontrahentów |
|---|---|
| Anna Nowak | 24 |
| Jan Kowalski | 17 |
| Piotr Wiśniewski | 31 |
Każdy wiersz jest jednym elementem głównej tablicy, a wewnątrz wiersza znajdują się wartości opiekuna oraz liczby kontrahentów.
6. Wskaźniki i grupowanie danych #
Komenda może wykonywać operacje zbiorcze podobne do zapytań SQL wykorzystujących:
SUM,COUNT,GROUP BY.
Pozwala między innymi:
- zliczać obiekty,
- sumować wartości liczbowe,
- grupować wyniki według wskazanego pola,
- ograniczać analizowane dane za pomocą warunków.
6.1. Przykład – liczba kontrahentów według opiekuna #
Załóżmy, że każdy kontrahent ma przypisanego opiekuna.
Chcemy uzyskać informację, ilu kontrahentów przypisano do każdego opiekuna.
W konfiguracji komendy należy:
- Wybrać klasę „Kontrahent”.
- Opcjonalnie zdefiniować warunki ograniczające zbiór danych.
- Wskazać grupowanie według opiekuna.
- Dodać wskaźnik typu
COUNT.
Wynikiem będzie tablica dataset zawierająca kolejne zestawy:
- opiekun,
- liczba przypisanych kontrahentów.
6.2. Ograniczenie analizowanych obiektów #
Za pomocą warunków można określić, które obiekty mają uczestniczyć w obliczeniach.
Można na przykład ograniczyć kontrahentów:
- do określonego województwa,
- do aktywnych klientów,
- do konkretnego typu kontrahenta,
- do rekordów utworzonych w danym okresie.
Dopiero dla obiektów spełniających warunki zostaną wykonane zliczenia lub sumowania.
6.3. Definiowanie części wynikowej #
W konfiguracji należy także określić, jakie dane mają zostać zwrócone przez zapytanie.
Odpowiada to części SELECT zapytania bazodanowego.
Można wskazać między innymi:
- pole, według którego wyniki mają być grupowane,
- wskaźnik
COUNT, - wskaźnik
SUM.
Przykładowe zastosowania obejmują:
- liczbę kontrahentów według opiekuna,
- liczbę zadań według statusu,
- sumę wartości sprzedaży według handlowca,
- sumę kosztów według projektu.
7. Przetwarzanie tablicy za pomocą „foreach” #
Po utworzeniu zmiennej tablicowej można użyć komendy „foreach”.
Pętla wykona umieszczone w niej komendy osobno dla każdego elementu tablicy.
Jeżeli tablica zawiera obiekty kontrahentów, każda iteracja będzie dotyczyła kolejnego kontrahenta.
Jeżeli tablica zawiera datasety, każda iteracja będzie dotyczyła kolejnego zestawu wyników.
8. Podsumowanie #
Komendy z grupy „Utwórz zmienną typu tablica” pozwalają tworzyć listy danych przeznaczone do dalszego przetwarzania.
Za ich pomocą można:
- pobrać wiele obiektów z bazy danych,
- ograniczyć wyniki do wskazanych identyfikatorów,
- filtrować dane za pomocą warunków,
- sortować pobierane obiekty,
- pobrać rekordy zaznaczone przez użytkownika,
- pobrać wszystkie rekordy widoczne na stronie zestawienia,
- wykonywać zbiorcze zliczenia i sumowania,
- tworzyć wielowymiarowe tablice typu dataset,
- przetwarzać kolejne elementy za pomocą pętli „foreach”.