kolumny Generic – podgląd i Generic – edytowalna otrzymują wartość z triggera. Pozwalają pokazać własne wyliczenie w każdym wierszu, a w wariancie edytowalnym także przyjąć wartość zmienioną przez użytkownika.
trigger wskazany w definicji kolumny buduje jej wartość podczas odczytu. Nie jest automatycznie triggerem zapisującym edycję. Tę różnicę trzeba uwzględnić przed udostępnieniem kolumny użytkownikom.
1. Porównanie rodzajów #
| Rodzaj | Źródło wartości | Edycja |
|---|---|---|
| Generic – podgląd | Wynik triggera dla obiektu wiersza | Wyłączona |
| Generic – edytowalna | Wynik triggera dla obiektu wiersza | Użytkownik może zmienić wartość w komórce; zapis wymaga osobnej obsługi |
Jeżeli użytkownik ma edytować bezpośrednio zwykłe pole obiektu, wybierz pole – edytowalna, opisane w instrukcji kolumn.
2. Przygotowanie triggera odczytu #
- Utwórz trigger dla klasy obiektów zestawienia.
- Ustaw Wykonaj natychmiast: Natychmiast.
- Pobierz dane obiektu wiersza, wykonaj potrzebne obliczenie i zwróć wynik przez Zakończ i zwróć wybraną wartość.
- Sprawdź zachowanie przy brakujących danych.
trigger jest wykonywany osobno dla każdego odczytywanego wiersza. Wariant opóźniony lub „Chwilę później” nie dostarczy oczekiwanego wyliczenia do bieżącej komórki. Nie umieszczaj tu niezamierzonych zapisów ani wysyłki wiadomości — odświeżanie tabeli uruchamia odczyt ponownie.
3. Konfiguracja kolumny #
- W konfiguracji kolumn dodaj nową definicję.
- Wybierz Rodzaj: Generic – podgląd albo Generic – edytowalna.
- Uzupełnij Nazwa i właściwą Klasa.
- Wskaż przygotowany trigger.
- Ustaw Szerokość i Zaokrąglaj do miejsc odpowiednio do danych.
- Zapisz definicję i przypisz ją do zestawienia.
Dla tych rodzajów program ustala Format jako liczbę. pole formatu jest informacyjne, a nie dowolnie edytowalne. Nie należy zakładać, że Generic można skonfigurować identycznie jak dowolne pole tekstowe lub listę wyboru.
4. Dlaczego zwykłe „Zapisz” może nie utrwalić wartości? #
Standardowa opcja Zapisz przenosi wartość komórki do przypisanego pola obiektu, jeżeli kolumna ma takie pole. Generic nie udostępnia standardowego wyboru pole jak rodzaj „pole – edytowalna”. Dlatego samo dodanie przycisku zapisu i triggera odczytu nie określa miejsca utrwalenia wartości Generic.
Zmiana komórki może pozostać tylko w danych edycji przesyłanych z przeglądarki. Po przeładowaniu trigger odczytu wyliczy wartość ponownie. Dla trwałej edycji przygotuj własną operację zapisu.
5. Obsługa zmienionych komórek w triggerze #
W triggerze uruchamianym z operacji tego samego zestawienia można wykorzystać komendy:
- Przypisz do zmiennej tablicowej Obiekty wierszy zestawienia na stronie — w tej ścieżce pobiera obiekty wierszy z edycjami przesłanymi przez przeglądarkę, a nie automatycznie wszystkie widoczne wiersze;
- Przypisz do zmiennej wartość z komórki zestawienia — odczytuje wartość wskazanej kolumny dla obiektu w przetwarzanych danych edycji;
- Ustaw pole w Obiekcie oraz komendę zapisującą obiekt — służą do jawnego utrwalenia wyniku.
Operacja musi zachować kontekst edytowanego zestawienia. Zaznaczone wiersze i zmienione wiersze nie są tym samym. Nie wybieraj wyłącznie operacji „dla zaznaczonych”, jeżeli logika ma przetwarzać wszystkie przesłane edycje.
6. Przykład: proponowana liczba godzin i zatwierdzona wartość #
trigger odczytu proponuje liczbę godzin na podstawie danych zlecenia. Użytkownik poprawia ją w kolumnie Generic – edytowalna. Osobna opcja „Zatwierdź godziny” uruchamia trigger, który:
- pobiera obiekty zmienionych wierszy;
- w pętli odczytuje komórkę kolumny Generic;
- sprawdza dozwolony zakres;
- ustawia pole zatwierdzonej liczby godzin;
- zapisuje obiekt i odświeża zestawienie.
Jeżeli po zatwierdzeniu kolumna ma pokazywać zapisaną liczbę, trigger odczytu musi uwzględniać to pole. W przeciwnym razie nadal pokaże pierwotną propozycję. Podstawy opisują pętle w triggerach i operacje na zmiennych i obiektach.
7. Ograniczenia i weryfikacja #
Dla Generic nie są udostępniane wszystkie ustawienia zwykłej kolumny, w szczególności standardowe podsumowanie sumą. Dobierz format do liczb i nie zakładaj sortowania jak po bezpośrednim polu bazy. Odczyt triggera w wielu wierszach może też wydłużyć ładowanie zestawienia.
Sprawdź pojedynczą edycję, kilka zmienionych wierszy, pustą wartość, błędną liczbę oraz ponowne otwarcie strony po zapisie. Przetestuj zwykłego użytkownika z rzeczywistymi uprawnieniami do operacji i pól docelowych.