Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Kolumna listy — karta Edycja inline

Podsumowanie:

Ta karta jest dostępna we właściwościach kolumny, jeśli we właściwościach listy włączono edycję inline. Na tej karcie można skonfigurować ustawienia dotyczące pola kolumny wyświetlanej w trybie edycji inline, takie jak rodzaj kontrolki, wartość domyślna, ustawienia dostępności i wymagalności oraz komunikat o błędzie wyświetlany, jeśli pole wymagane nie zostanie wypełnione. W przypadku wyboru jako kontrolki zdefiniowanej osobno listy wyboru można także określić mapowanie wartości z kolumn zwracanych przez tę kontrolkę do kolumn widoku listy.

Na karcie można określić następujące właściwości:

  • Typ pola: rodzaj kontrolki wyświetlanej w danej kolumnie, powinien odpowiadać typowi danych tej kolumny wyświetlanemu poniżej; dostępne wartości:
    • Pole tekstowe
    • Lista wyboru SQL: patrz opis dodatkowej konfiguracji poniżej
    • Pole daty
    • Pole numeryczne
    • Checkbox pojedynczy
  • Wartość domyślna: wartość domyślna wyświetlana w tej kolumnie w nowym rekordzie; w wyrażeniu można odwołać się do wartości z innej kolumny listy ({@NazwaSQL}); w przypadku listy osadzonej na formularzu obsługiwane jest odwołanie się do wartości pola formularza w postaci {@*KodFormularza.PoleFormularza}.
  • Wymagane uzupełnienie komórki: włączenie tego przełącznika spowoduje, że bez wpisania wartosci w tym polu rekordu, nie będzie można go zapisać.
  • Komunikat o błędzie: tekst wyświetlany w przypadku, gdy wymagane pole rekordu nie zostanie wypełnione.

Aby korzystać z listy wyboru do edycji inline, należy określić dodatkowe ustawienia:

  • Zdefiniowana lista wyboru: wybierz predefiniowaną listę wyboru (INTERFEJS UŻYTKOWNIKA > Kontrolki).
  • Lista zależności kolumna - kolumna: umożliwia wypełnianie innych pól w bieżącym rekordzie danymi zwracanymi przez zapytanie źródłowe używanej listy wyboru.

    Można definiować zależności do innych kolumn widoku listy, w których używane są kontrolki listy rozwijanej. W takim przypadku należy przekazać wartość odpowiadającą wartości [key] z kontrolki w kolumnie zależnej. Taka konfiguracja będzie działać poprawnie, to znaczy wybór wartości w kontrolce nadrzędnej spowoduje prawidłowe ustawienie wartości w kontrolce zależnej. Nie zaleca się natomiast definiowania zależności między jedną z kolumn zwracanych przez kontrolkę, a kolumną widoku listy, w której znajduje się ta kontrolka.

  • Tryb aktualizacji pól zależnych: dostępne wartości:
    • Tylko po zmianie na liście wyboru: aktualizacja wartości w polach zależnych odbywa się tylko po zmianie wartości na liście wyboru.
    • Tylko gdy wskazane pole jest puste: wartości zwrócone przez listę wyboru są przekazywane do pól zależnych tylko wtedy, kiedy te pola są puste.

W podstawowym scenariuszu zakłada się, że lista wyboru zostanie użyta w kolumnie pomocniczej używanej do wyświetlania danych, a w tabeli modelu danych będzie zapisywana wartość klucza zwracana przez listę. Aby skonfigurować korzystanie z listy wyboru podczas edycji inline w tym scenariuszu, wykonaj następujące czynności:

  1. Zdefiniuj kontrolkę listy wyboru (AdminSPA > Interfejs uŻytkownika > Kontrolki):
    SELECT [Id] as [key],
        CONCAT(FirstName, ' ', Lastname) as [value],
        [Email] as [useremail]
    FROM [core].[UserProfiles]
    
  2. Dodaj pomocniczą kolumnę w zapytaniu źródłowym widoku listy:
    SELECT v.*, CONCAT(up.FirstName, ' ', up.Lastname) as UserFullName
    FROM [mytable_View]({@_LangId}) v
    LEFT JOIN core.UserProfiles up ON up.Id = v.EmployeeId
    

    Zwróć uwagę, aby wartości zwracane w kolumnie [value] były identyczne jak wartości w kolumnie dodawanej do źródła widoku listy. W przeciwnym razie kontrolka nie będzie działać poprawnie.

  3. W kolumnie pomocniczej (w przykładzie UserFullName) użyj zdefiniowanej listy wyboru jako kontrolki do edycji inline i zdefiniuj zależność, aby wstawić wartość key zwracaną przez kontrolkę do odpowiedniej kolumny listy (w przykładzie [key] -> EmployeeId). Ustawienie zależności jest konieczne tylko wtedy, gdy kolumna docelowa jest widoczna i użytkownik powinien widzieć podczas edycji inline, że wybór wartości z listy wyboru powoduje zmianę w kolumnie docelowej zależności. Jednak w takim przypadku w akcji zapisu wartości w tej kolumnie należy odwołać się do do nazwy kolumny z kontrolką, dodając przyrostek _key.
  4. Odpowiednio zdefiniuj akcję zapisu inline, aby zapisywała dane z kolumny klucza obcego, np.
    IF ({@Id} IS NULL)
      INSERT INTO [dbo].[MyTable] (Column1, Column2, EmployeeId)
      VALUES ({@Column1},{@Column2}, {@EmployeeId})
    ELSE
      UPDATE [dbo].[MyTable]
      SET Column1 = {@Column1},
       Column2 = {@Column2},
       EmployeeId = {@EmployeeId}
      WHERE Id = {@Id}
    

    Alternatywnie w akcji zapisu można użyć podstawienia EmployeeId = {@UserFullName_key}, aby odwołać się bezpośrednio do wartości z kolumny [key] zwróconej przez listę wyboru.

Edycja inline w kolumnach ze słownikiem

Listy wyboru można także użyć do zasilania kolumny typu int, której w kreatorze modeli danych przypisano słownik. W takim przypadku w definicji widoku listy jest dostępna kolumna o takiej samej nazwie, tylko typu varchar. W tej kolumnie jest wyświetlana wartość słownikowa wybierana na formularzu. Konfiguracja możliwości edycji inline tej wartości wymaga wykonania następujących kroków:

  1. W definicji źródła danych widoku listy dodaj oryginalną kolumnę z tabeli (typu int):
    SELECT v.*,
    mt.MyKey AS MyKeyColumn
    FROM [MyTable_View]({@_LangId}) v
    INNER JOIN [dbo].[MyTable] mt ON v.Id = mt.Id
    
  2. Zdefiniuj kontrolkę, która będzie zwracać odpowiednie wartości słownikowe:
    SELECT dv.Id as [key], t.Value as [value]
    FROM core.TranslationDefinitions td
    INNER JOIN core.Translations t ON td.Id = t.TranslationDefinitionId
    INNER JOIN core.DictionaryValues dv ON td.RecordRowGuid = dv.RowGuid
    WHERE [DictionaryId] = {&MyApp.Dictionaries.MyDict} AND LanguageId = {@_LangId}
    
  3. W definicji widoku listy, we właściwościach kolumny z wartością słownikową dodaj tę kontrolkę dla trybu edycji inline i zdefiniuj mapowanie klucza kontrolki na dodaną kolumnę typu int (w powyższym przykładzie [key] -> MyKeyColumn).
  4. Zdefiniuj akcję zapisu inline, odpowiednio zestawiając kolumnę docelową w tabeli danych z kolumną widoku, w której jest ustawiany klucz wartości słownikowej.

Proste użycie listy wyboru w edycji inline

W prostym scenariuszy można używać listy wyboru w trybie edycji inline do zapisywania wyświetlanych wartości w kolumnie, w której jest osadzona. W tym celu należy zdefiniować kontrolkę i ustawić ją w kolumnie typu varchar. Bez żadnej dodatkowej konfiguracji i dla standardowej akcji zapisu typu:

  UPDATE [dbo].[MyTable]
  SET MyColumn = {@MyColumn}
  WHERE Id = {@Id}

gdzie MyColumn to kolumna typu varchar z ustawioną listą wyboru, w tej kolumnie będą zapisywane wartości tekstowe wybierane z listy wyboru.

W takim przypadku także możliwe jest definiowanie zależności między kolumnami zwracanymi przez kontrolkę a innymi kolumnami widoku listy.

|← Kolumna listy — karta Eksportowanie danych |↑ Do góry |→ Kolumna HTML |

Copyright © 2025 OPTEAM SA. Theme Copyright © 2017-2020 Patrick Marsceill. Distributed by an MIT license.