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.
-
Kontrolka listy wyboru
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:
- Zdefiniuj kontrolkę listy wyboru (AdminSPA >
Interfejs uŻytkownika
>Kontrolki
):SELECT [Id] as [key], CONCAT(FirstName, ' ', Lastname) as [value], [Email] as [useremail] FROM [core].[UserProfiles]
- 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.
- 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.
- 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:
- 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
- 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}
- 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).
- 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.
Powiązane tematy: