Przejdź do głównej zawartości

Źródła danych: pytanie serwera w trakcie edycji

Pracownik ma 5 dni urlopu, a wnioskuje o 20 — formularz o tym nie wie. Saldo zależy od wybranego pracownika, więc nie da się go wczytać w init. Formularz musi zapytać serwer w trakcie edycji. Do tego służą źródła danych (data sources).

  • Formularz rozmawia z serwerem przez procesy typu Function. Mają wejście i wyjście, a wynik trafia na formularz.
  • Przygotowane procesy:
    • saldo — dostaje pracownika, zwraca liczbę pozostałych dni urlopu,
    • nakładanie się — dostaje pracownika, identyfikator wniosku i daty, zwraca 1 albo 0: czy pracownik ma już nieobecność w tym czasie.
  • Przycisk Data sources na dole palety komponentów.
  • Rodzaje:
    • static — dane wpisane na stałe (np. duża tabela albo JSON), dostępne w każdej chwili,
    • ajax — dane ładowane dynamicznie w reakcji na to, co dzieje się na formularzu. Tego używamy.
  • Name: dowolna nazwa, np. balance.
  • URL: proc: + Guid procesu. Skąd wziąć Guid — lekcja 13.
  • Parametry: wartości dla wejść procesu. personId ← wartość pola pracownika (Guid wybranej osoby). Przy błędzie albo pustym polu zwracasz pusty tekst.
  • Przykładowe dane wyjściowe: jeden przykład, żeby formularz znał kształt wyniku, np. parametr wynik typu number. Wartości nie mają znaczenia.
  • Wynik czytasz w wyrażeniu przez source('balance'), np. w polu tekstowym z informacją o saldzie.
  • Bardzo ważne: source() nie wywołuje procesu. Źródło wywołuje się samo, gdy zmienią się wartości jego parametrów wejściowych (np. wybierzesz innego pracownika). source() tylko odczytuje wynik ostatniego wywołania.
  • W aplikacji: po wyborze pracownika od razu widać jego saldo. Wartość nie przyszła przy otwarciu formularza, tylko z serwera w trakcie pracy.

Źródło danych = proces Function wywoływany przez formularz, gdy zmienią się jego parametry. Te same reguły możesz dodatkowo sprawdzić po stronie serwera w put. W następnej lekcji: elementy wielokrotne, czyli tabele.