Harmonogram
Podsumowanie:W sekcji typu harmonogram można zdefiniować interaktywną tabelę do wyświetlania danych (zdarzeń) w siatce dowolnie definiowanych wierszy i kolumn.
Skonfigurowanie harmonogramu wymaga określenia ustawień w oknie dialogowym Ustawienia sekcji
oraz akcji dla czynności wykonywanych przez użytkownika w ramach interakcji z harmonogramem. Do tych interakcji należą: kliknięcie prawym przyciskiem myszy komórki w harmonogramie, zmiana zakresu zdarzenia przez przeciągnięcie obramowania zdarzenia, przeniesienie zdarzenia w inne miejsce na harmonogramie (przeciągnięcie z wciśniętym lewym przyciskiem myszy i lewym klawiszem ALT), zaznaczanie komórek harmonogramu przez klikanie lewym przyciskiem z wciśniętym przyciskiem CTRL.
Informacje o zaznaczonym zdarzeniu i/lub zaznaczonych komórkach są dostępne w kontekście formularza jako obiekt KodSekcji_SelectedEvent oraz jako tablica KodSekcji_SelectedCells, jak na ilustracji poniżej.

Ustawienia sekcji
Na panelu właściwości sekcji typu harmonogram kliknij przycisk Ustawienia sekcji
i określ ustawienia w wyświetlonym oknie dialogowym:
-
Wysokość
: określa wysokość harmonogramu w sekcji, domyślnie auto. -
Podział komórki w osi X
: określa na ile części mają być dzielone komórki harmonogramu w poziomie, domyślnie 1. -
Podział komórki w osi Y
: określa na ile części mają być dzielone komórki harmonogramu w pionie, domyślnie 1. -
Domyślny kolor komórki
: kolor pojedynczej komórki w harmonogramie, domyślnie #fff. -
Wysokość komórki
: wysokość pojedynczej komórki w harmonogramie, domyślnie 60px. -
Szerokość komórki
: szerokość pojedynczej komórki w harmonogramie, domyślnie 150px. -
Kolor nagłówka kolumny
: kolor nagłówka kolumny, domyślnie ‘#e1edef’. -
Kolor nagłówka wiersza
: kolor nagłówka wiersza, domyślnie ‘#e1edef’. -
Wysokość nagłówka kolumny
: wysokość nagłówka kolumny, domyślnie 60px. -
Szerokość nagłówka wiersza
: szerokość nagłówka wiersza, domyślnie 100px. -
Wartość nagłówka przecinającego
: tekst wyświetlany dla nagłówka przecinającego kolumny z wierszami, domyślnie pusty. -
Przenoszenie zdarzeń
: zezwala na przenoszenie zdarzeń w harmonogramie metodą drag & drop (z wciśniętym lewym klawiszem ALT), domyślnie wyłączone. -
Zmiana rozmiaru zdarzenia w osi X
: jeśli przełącznik jest włączony, po najechaniu kursorem myszy na pionową krawędź obramowania komórki zdarzenia jest wyświetlana strzałka zmiany rozmiaru, a przy próbie zmiany rozmiaru jest wykonywana akcja przypisana we właściwościAkcje dla zmiany rozmiaru
; jeśli komórki harmonogramu mają włączony podział w osi X, możliwa jest zmiana zakresu zdarzenia w tej osi w obrębie jednej komórki, aby można było zwiększyć zakres zdarzenia na sąsiednie kolumny, musi być włączony przełącznikRozciągaj zdarzenia dla kilku wierszy
. -
Zmiana rozmiaru zdarzenia w osi Y
: jeśli przełącznik jest włączony, po najechaniu kursorem myszy na poziomą krawędź obramowania komórki zdarzenia jest wyświetlana strzałka zmiany rozmiaru, a przy próbie zmiany rozmiaru jest wykonywana akcja przypisana we właściwościAkcje dla zmiany rozmiaru
; jeśli komórki harmonogramu mają włączony podział w osi Y, możliwa jest zmiana zakresu zdarzenia w tej osi w obrębie jednej komórki, aby można było zwiększyć zakres zdarzenia na sąsiednie wiersze, musi być włączony przełącznikRozciągaj zdarzenia dla kilku wierszy
. -
Zmiana rozmiaru zdarzenia w osi Y
: zezwala na zmianę zakresu zdarzenia w pionie (wiersze), domyślnie wyłączone. -
Rozciągaj zdarzenia dla kilku kolumn
: pozwala zwiększać zakres zdarzenia na sąsiednie kolumny, przeciągając myszą pionową krawędź obramowania komórki. -
Rozciągaj zdarzenia dla kilku wierszy
: pozwala zwiększać zakres zdarzenia na sąsiednie wiersze, przeciągając myszą poziomą krawędź obramowania komórki. -
Wyświetlaj nagłówki kolumn
: włącza/wyłącza wyświetlanie nagłówków kolumn. -
Wyświetlaj nagłówki wierszy
: włącza/wyłącza wyświetlanie nagłówków wierszy. -
SQL dla kolumn
: zapytanie SQL zwracające nagłówki kolumn harmonogramu; w zapytaniu należy zwrócić następujące kolumny:- displayValue (string): wymagane; kod HTML renderowany jako tekst w nagłówku kolumny,
- value (dowolny typ): wymagane; wartość identyfikująca kolumnę, do której przypisane jest zdarzenie,
- background (string): opcjonalne; szesnastkowy kod koloru tła nagłówka kolumny, np. #facc3a,
-
width (string): opcjonalne; szerokość kolumny z dopiskiem jednostki, np. 300px.
SELECT CONCAT('<span class="m-0 text-center"><p>', d.[Name],'</p><p>',Format(d.[Date],'yyyy-MM-dd'),'</p></span>', '<p class="m-0 text-center font-weight-bold text-danger" data-toggle="tooltip" data-placement="bottom" title="''">''</p>' ) AS displayValue, d.[Date] AS value FROM (VALUES (DATEADD(wk, DATEDIFF(wk, 0, @DataStart), 0), 'Poniedziałek'), (DATEADD(wk, DATEDIFF(wk, 0, @DataStart), 1), 'Wtorek'), (DATEADD(wk, DATEDIFF(wk, 0, @DataStart), 2), 'Środa'), (DATEADD(wk, DATEDIFF(wk, 0, @DataStart), 3), 'Czwartek'), (DATEADD(wk, DATEDIFF(wk, 0, @DataStart), 4), 'Piątek'), (DATEADD(wk, DATEDIFF(wk, 0, @DataStart), 5), 'Sobota'), (DATEADD(wk, DATEDIFF(wk, 0, @DataStart), 6), 'Niedziela') ) AS d ([Date], [Name])
-
SQL dla wierszy
: zapytanie SQL zwracające nagłówki wierszy harmonogramu; w zapytaniu należy zwrócić następujące kolumny:- displayValue (string): wymagane; kod HTML renderowany jako tekst w nagłówku wiersza,
- value (dowolny typ): wymagane; wartość identyfikująca wiersz, do którego przypisane jest zdarzenie,
- headerBackground (string): opcjonalne; szesnastkowy kod koloru tła nagłówka wiersza, np. #facc3a,
- background (string): opcjonalne; szesnastkowy kod koloru tła komórek wiersza, np. #facc3a,
- height (string): opcjonalne; wysokość wiersza z dopiskiem jednostki, np. 300px.
-
SQL dla zdarzeń
: zapytanie SQL zwracające dane umożliwiające prawidłowe wyświetlenie zdarzeń w harmonogramie; w zapytaniu należy zwrócić następujące kolumny:- id (dowolny typ): wymagane; identyfikator zdarzenia,
- column (dowolny typ): wymagane; kolumna, do której przypisano zdarzenie (value z zapytania dla kolumn),
- columnSpan (number): opcjonalne; liczba kolumn, które pokrywa zdarzenie; domyślnie 1,
- row (dowolny typ): wymagane; wiersz, do którego przypisano zdarzenie (value z zapytania dla wierszy),
- rowSpan (number): opcjonalne; liczba wierszy, które pokrywa zdarzenie; domyślnie 1,
-
startDivisionX (number): indeks pierwszej subkomórki w pierwszej komórce zdarzenia; określa początek zdarzenia w osi X w przypadku włączenia podziału komórek w osi X; przyjmuje wartości od 1 do n, gdzie n to wartość ustawienia
Podział komórki w osi X
, -
endDivisionX (number): indeks ostatniej subkomórki w ostatniej komórce zdarzenia; określa koniec zdarzenia w osi X w przypadku włączenia podziału komórek w osi X; przyjmuje wartości od 1 do n, gdzie n to wartość ustawienia
Podział komórki w osi X
, -
startDivisionY (number): indeks pierwszej subkomórki w pierwszej komórce zdarzenia; określa początek zdarzenia w osi Y w przypadku włączenia podziału komórek w osi Y; przyjmuje wartości od 1 do n, gdzie n to wartość ustawienia
Podział komórki w osi Y
, -
endDivisionY (number): indeks ostatniej subkomórki w ostatniej komórce zdarzenia; określa koniec zdarzenia w osi Y w przypadku włączenia podziału komórek w osi Y; przyjmuje wartości od 1 do n, gdzie n to wartość ustawienia
Podział komórki w osi Y
, - displayValue (string): wymagane; kod HTML renderowany jako opis zdarzenia,
- background (string): wymagane; szesnastkowy kod koloru tła komórki zdarzenia, np. #facc3a,
- border (string): opcjonalne; obramowanie komórki zdarzenia, podawane jako CSS, np. 1px #d4d4d4 solid,
- resizeLocked (bit): opcjonalne; blokada zmiany rozmiaru zdarzenia; domyślnie 0,
- moveLocked (bit): opcjonalne; blokada przenoszenia zdarzenia; domyślnie 0,
-
isEmptyEvent (bit): opcjonalne; identyfikator zdarzenia „pustej” komórki, umożliwia przypisanie akcji we właściwości
Akcja dla pustego zaznaczenia
.SELECT f.Id AS [id], f.MachineId AS [column], DATEADD( dd, DATEDIFF(dd, 0, f.[FailureDate]), 0 ) AS [row], '#fac0d4' AS [background], CONCAT( '<p class="m-0 text-center">', f.Description, ' (', f.Code, ')', '</p>' ) AS displayValue FROM dev.MachineFailures AS f
Akcje harmonogramu
Aby prawidłowo korzystać z harmonogramu, należy skonfigurować zestaw akcji wykonywanych podczas interakcji użytkownika z harmonogramem:
-
Akcje dla pustego zaznaczenia
: akcje wykonywane po kliknięciu pustej komórki prawym przyciskiem myszy i wybraniu nazwy akcji do wykonania; na przykład zapytanie SQL dodające wpis do tabeli zdarzeń harmonogramu z nowym zdarzeniem:INSERT INTO [dbo].[ZdarzeniaHarmonogramu] ( TypZdarzenia, Opis, Zakres, DataWykonania ) values ( {& Testy.Dictionaries.EventsTypes.MyEvent}, {@_Section_Description}, {@_Section_Scope}, {@_Section_Date} )
-
Akcje dla zdarzeń
: akcje wykonywane po kliknięciu komórki zdarzenia prawym przyciskiem myszy i wybraniu nazwy akcji do wykonania; może to być na przykład akcja Otwórz formularz, która otworzy formularza z informacjami o zdarzeniu; identyfikator bieżącego zdarzenia należy wskazać w akcji za pomocą zmiennej {@KodSekcjiHarmonogramu_SelectedEvent.Id} wpisanej w polu dla opcjiwskazany dokument
. -
Akcje dla zmiany rozmiaru
: akcje wykonywane po zmianie rozmiaru zdarzenia, np. akcja aktualizacji informacji o nowym zakresie zdarzenia. -
Akcje dla przenoszenia
: akcje wykonywane po przeniesieniu zdarzenia metodą drag & drop.
Powiązane tematy: