Funkcje EditForm, NewForm, SubmitForm, ResetForm i ViewForm

Dotyczy: aplikacje kanwy

Te funkcje umożliwiają wyświetlanie, edytowanie i tworzenie elementów, zapisywanie zawartości oraz resetowanie kontrolek w kontrolce Edit form.

Omówienie

Te funkcje zmieniają stan kontrolki Edit form. Kontrolka formularza może być w jednym z następujących trybów:

Tryb Opis
FormMode.Edit Formularz jest wypełniony przy użyciu istniejącego rekordu i użytkownik może modyfikować wartości pól. Następnie użytkownik może zapisać zmiany w rekordzie.
FormMode.New Formularz jest wypełniony wartościami domyślnymi i użytkownik może modyfikować wartości pól. Następnie użytkownik może dodać rekord do źródła danych.
FormMode.View Formularz jest wypełniony przy użyciu istniejącego rekordu, ale użytkownik nie może modyfikować wartości pól.

Opis

Te funkcje są często wywoływane z poziomu formuły OnSelect kontrolki Button lub Image, aby użytkownik mógł zapisywać zmiany, porzucać zmiany lub tworzyć rekordy. Zastosowanie kontrolek w połączeniu z tymi funkcjami umożliwia utworzenie kompletnego rozwiązania.

Te funkcje nie zwracają żadnych wartości.

Tych funkcji można używać tylko w formułach dotyczących zachowań.

SubmitForm

Użycie funkcji SubmitForm we właściwości OnSelect kontrolki Button umożliwia zapisanie wszelkich zmian kontrolki Form w źródle danych.

Przed przesłaniem zmian ta funkcja sprawdza, czy nie występują żadne problemy walidacji dotyczące pól, które są oznaczone jako wymagane lub których wartość ma co najmniej jedno ograniczenie. To zachowanie jest zgodne z zachowaniem funkcji Validate.

Funkcja SubmitForm sprawdza również właściwość Valid kontrolki Form, która jest wartością zagregowaną wszystkich właściwości Valid kontrolek Card w ramach danej kontrolki Form. Jeśli wystąpi problem, dane nie są przesyłane, a właściwości Error i ErrorKind kontrolki Form są odpowiednio ustawiane.

Jeśli walidacja zakończy się pomyślnie, funkcja SubmitForm przesyła zmianę do źródła danych.

  • W przypadku powodzenia uruchamiane jest zachowanie OnSuccess formularza, a właściwości Error i ErrorKind są czyszczone. Jeśli formularz był w trybie FormMode.New, jego tryb jest zmieniany z powrotem na tryb FormMode.Edit.
  • W przypadku niepowodzenia uruchamiane jest zachowanie OnFailure formularza, a właściwości Error i ErrorKind są odpowiednio ustawiane. Tryb formularza pozostaje bez zmian.

EditForm

Funkcja EditForm zmienia tryb kontrolki Form na FormMode.Edit. W tym trybie do wypełnienia formularza jest używana zawartość właściwości Item kontrolki Form. Jeśli funkcja SubmitForm zostanie uruchomiona, gdy formularz jest w tym trybie, rekord zostanie zmieniony, a nie utworzony. Tryb FormMode.Edit jest domyślnym trybem kontrolki Form.

Uwaga

Jeśli formularz znajduje się w trybie edycji, a pozycja ma wartość null, właściwości karty danych nie są sprawdzane i zwracane są wartości domyślne.

NewForm

Funkcja NewForm zmienia tryb kontrolki Form na FormMode.New. W tym trybie zawartość właściwości Item kontrolki Form jest ignorowana, a formularz jest wypełniany wartościami domyślnymi z właściwości DataSource kontrolki. Jeśli funkcja SubmitForm zostanie uruchomiona, gdy formularz jest w tym trybie, rekord zostanie utworzony, a nie zmieniony.

ResetForm

Funkcja ResetForm resetuje zawartość formularza do wartości początkowych, sprzed wprowadzenia zmian przez użytkownika. Jeśli formularz jest w trybie FormMode.New, jego tryb jest resetowany do trybu FormMode.Edit. Dodatkowo jest uruchamiane zachowanie OnReset kontrolki Formularz. Alternatywnie możesz resetować pojedyncze kontrolki za pomocą funkcji Reset, ale tylko z poziomu formularza.

ViewForm

Funkcja ViewForm zmienia tryb kontrolki Form na FormMode.View. W tym trybie do wypełnienia formularza jest używana zawartość właściwości Item kontrolki Form. W tym trybie funkcje SubmitForm i ResetForm nie mają żadnego skutku.

Właściwość DisplayMode

Bieżący tryb można odczytać za pomocą właściwości Mode. Tryb określa również wartość właściwości DisplayMode, która może być używana przez karty danych i kontrolki w kontrolce Formularz. Często właściwość DisplayMode karty danych jest ustawiona na wartość Parent.DisplayMode (odwołującą się do formularza), podobnie jak właściwość DisplayMode kontrolki (odwołująca się do karty danych):

Tryb DisplayMode Opis
FormMode.Edit DisplayMode.Edit Karty danych i kontrolki są dostępne do edycji i za ich pomocą można wprowadzić zmiany w rekordzie.
FormMode.New DisplayMode.Edit Karty danych i kontrolki są dostępne do edycji i za ich pomocą można utworzyć nowy rekord.
FormMode.View DisplayMode.View Karty danych i formanty nie umożliwiają edytowania i są zoptymalizowane do wyświetlania.

Składnia

SubmitForm( nazwa_formularza )

  • FormName – wymagane. Kontrolka Form, która ma zostać przesłana do źródła danych.

EditForm( nazwa_formularza )

  • FormName – wymagane. Kontrolka Form, która ma zostać przełączona w tryb FormMode.Edit.

NewForm( nazwa_formularza )

  • FormName – wymagane. Kontrolka Form, która ma zostać przełączona w tryb FormMode.New.

ResetForm( nazwa_formularza )

  • FormName – wymagane. Kontrolka Form, która ma zostać zresetowana do wartości początkowych. Zmienia także tryb formularza z FormMode.New na FormMode.Edit.

ViewForm( nazwa_formularza )

  • FormName – wymagane. Kontrolka Form, która ma zostać przełączona w tryb FormMode.View.

Przykłady

Kompletne przykłady zawiera artykuł Omówienie formularzy danych.

  1. Dodaj kontrolkę Button, ustaw jej właściwość Text na wartość Zapisz, a właściwość OnSelect na następującą formułę:

    SubmitForm( EditForm )

  2. Ustaw właściwość OnFailure kontrolki Form na wartość pustą, a właściwość OnSuccess na następującą formułę:

    Back()

  3. Nadaj kontrolce Label nazwę ErrorText i ustaw dla jej właściwości Text następującą formułę:

    EditForm.Error

    Gdy użytkownik wybierze przycisk Zapisz, wszystkie zmiany wprowadzone w kontrolce Form zostaną przesłane do podstawowego źródła danych.

    • Jeśli przesyłanie zakończy się powodzeniem, wszystkie zmiany są zapisywane lub, jeśli kontrolka Form jest w trybie New, rekord zostaje utworzony. Kontrolka ErrorText jest pusta i jest ponownie wyświetlany poprzedni ekran.
    • W przypadku niepowodzenia przesyłania kontrolka ErrorText wyświetla przyjazny dla użytkownika komunikat o błędzie i bieżący ekran pozostaje widoczny, aby użytkownik mógł rozwiązać problem i spróbować ponownie.
  4. Dodaj kontrolkę Button, ustaw jej właściwość Text na wartość Anuluj, a właściwość OnSelect na następującą formułę:

    ResetForm( EditForm ); Back()

    Gdy użytkownik wybierze przycisk Anuluj, wartości w kontrolce Form zostaną zresetowane do stanu sprzed rozpoczęcia edycji przez użytkownika, zostanie ponownie wyświetlony poprzedni ekran, a kontrolka Formularz wróci do trybu Edycja, jeśli była w trybie Nowe.

  5. Dodaj kontrolkę Button, ustaw jej właściwość Text na wartość Nowe, a właściwość OnSelect na następującą formułę:

    NewForm( EditForm ); Navigate( EditScreen, None )

    Gdy użytkownik wybierze przycisk Nowe, kontrolka Form przejdzie w tryb Nowe i zostanie wypełniona wartościami domyślnymi swojego źródła danych oraz zostanie wyświetlony ekran zawierający kontrolkę Form. Gdy zostanie uruchomiona funkcja SubmitForm, rekord zostanie utworzony, a nie zaktualizowany.