Các hàm EditForm, NewForm, SubmitForm, ResetForm và ViewForm
Áp dụng cho: Ứng dụng canvas
Xem, chỉnh sửa hoặc tạo một mục, lưu nội dung và đặt lại các công cụ điều khiển trong Edit form (Chỉnh sửa biểu mẫu).
Tổng quan
Các hàm này thay đổi trạng thái của công cụ điều khiển Edit form (Chỉnh sửa biểu mẫu). Công cụ điều khiển biểu mẫu có thể ở một trong các chế độ sau:
Chế độ | Mô tả |
---|---|
FormMode.Edit | Biểu mẫu được điền bằng một bản ghi hiện có và người dùng có thể sửa đổi giá trị của các trường. Sau khi hoàn thành, người dùng có thể lưu các thay đổi với bản ghi. |
FormMode.New | Biểu mẫu được điền các giá trị mặc định và người dùng có thể sửa đổi giá trị của các trường. Sau khi hoàn thành, người dùng có thể thêm bản ghi vào nguồn dữ liệu. |
FormMode.View | Biểu mẫu được điền bằng một bản ghi hiện có nhưng người dùng không thể sửa đổi giá trị của các trường. |
Mô tả
Các hàm này thường được gọi từ công thức OnSelect của a Button hoặc Image control để người dùng có thể lưu chỉnh sửa, hủy chỉnh sửa hoặc tạo bản ghi. Bạn có thể sử dụng các công cụ điều khiển và các hàm này với nhau để tạo ra một giải pháp hoàn chỉnh.
Các hàm này không trả về giá trị.
Bạn chỉ có thể sử dụng các hàm này trong công thức hành vi.
SubmitForm
Sử dụng hàm SubmitForm trong thuộc tính OnSelect của công cụ điều khiển Nút để lưu mọi thay đổi về tùy chọn Biểu mẫu vào nguồn dữ liệu.
Trước khi gửi bất kỳ thay đổi nào, hàm này sẽ kiểm tra xem có vấn đề xác thực nào không với trường bất kỳ được đánh dấu là bắt buộc hoặc có một hoặc nhiều ràng buộc đối với giá trị. Hoạt động này phù hợp với hàm Validate.
SubmitForm cũng kiểm tra thuộc tính Hợp lệ của Biểu mẫu, đây là thuộc tính tổng hợp của tất cả Hợp lệ thuộc tính của điều khiển thẻ mà điều khiển Biểu mẫu chứa. Nếu xảy ra sự cố, hàm sẽ không gửi dữ liệu và các thuộc tính Error và ErrorKind của công cụ điều khiển Biểu mẫu sẽ được đặt tương ứng.
Nếu xác thực thành công, hàm SubmitForm sẽ gửi thay đổi đối với nguồn dữ liệu.
- Nếu thành công, hành vi OnSuccess của Biểu mẫu sẽ chạy và Lỗi và ErrorKind thuộc tính bị xóa. Nếu đã ở chế độ FormMode.New thì biểu mẫu sẽ trở về chế độ FormMode.Edit.
- Nếu không thành công, hành vi OnFailure của Biểu mẫu sẽ chạy và Lỗi và ErrorKind thuộc tính được đặt tương ứng. Chế độ của biểu mẫu không thay đổi.
EditForm
Hàm EditForm thay đổi chế độ của công cụ điều khiển Biểu mẫu thành FormMode.Edit. Ở chế độ này, nội dung của thuộc tính Item của công cụ điều khiển Biểu mẫu sẽ được dùng để điền vào biểu mẫu. Nếu hàm SubmitForm chạy khi biểu mẫu ở chế độ này, bản ghi sẽ được thay đổi, chứ không được tạo. FormMode.Edit là chế độ mặc định của công cụ điều khiển Biểu mẫu.
Lưu ý
Khi biểu mẫu ở dạng kiểu biên tập và Mục là null, thuộc tính dữ liệu thẻ không được đánh giá và sẽ trả về giá trị mặc định.
NewForm
Hàm NewForm thay đổi chế độ của công cụ điều khiển Biểu mẫu thành FormMode.New. Ở chế độ này, nội dung của thuộc tính Item của công cụ điều khiển Biểu mẫu bị bỏ qua và các giá trị mặc định của thuộc tính DataSource của Biểu mẫu sẽ được điền vào biểu mẫu. Nếu hàm SubmitForm chạy khi biểu mẫu ở chế độ này, bản ghi sẽ được tạo, chứ không được thay đổi.
ResetForm
Hàm ResetForm đặt lại nội dung của biểu mẫu về giá trị ban đầu, trước khi người dùng thực hiện bất kỳ thay đổi nào. Nếu ở chế độ FormMode.New thì biểu mẫu sẽ được đặt về chế độ FormMode.Edit. Trạng thái OnReset của công cụ điều khiển biểu mẫu cũng chạy. Bạn cũng có thể đặt lại từng công cụ điều khiển riêng lẻ bằng hàm Reset nhưng chỉ từ trong mẫu.
ViewForm
Hàm ViewForm thay đổi chế độ của công cụ điều khiển Biểu mẫu thành FormMode.View. Ở chế độ này, nội dung của thuộc tính Item của công cụ điều khiển Biểu mẫu sẽ được dùng để điền vào biểu mẫu. Các hàm SubmitForm và ResetForm không có hiệu lực khi ở chế độ này.
Thuộc tính DisplayMode
Chế độ hiện tại có thể được đọc thông qua thuộc tính Mode. Chế độ này cũng xác định giá trị của thuộc tính DisplayMode. Có thể dùng thuộc tính này cho các thẻ dữ liệu và các công cụ điều khiển trong biểu mẫu. Thông thường, thuộc tính DisplayMode của thẻ dữ liệu sẽ được đặt thành Parent.DisplayMode (tham chiếu biểu mẫu) như thuộc tính DisplayMode của công cụ điều khiển (tham chiếu thẻ dữ liệu):
Chế độ | DisplayMode | Mô tả |
---|---|---|
FormMode.Edit | DisplayMode.Edit | Thẻ dữ liệu và công cụ điều khiển có thể chỉnh sửa, sẵn sàng chấp nhận thay đổi đối với bản ghi. |
FormMode.New | DisplayMode.Edit | Thẻ dữ liệu và công cụ điều khiển có thể chỉnh sửa, sẵn sàng chấp nhận một bản ghi mới. |
FormMode.View | DisplayMode.View | Thẻ dữ liệu và công cụ điều khiển không thể chỉnh sửa và được tối ưu hóa cho trải nghiệm xem. |
Cú pháp
SubmitForm( FormName )
- FormName – Bắt buộc. Công cụ điều khiển biểu mẫu sẽ gửi tới nguồn dữ liệu.
EditForm( FormName )
- FormName – Bắt buộc. Công cụ điều khiển biểu mẫu sẽ chuyển sang chế độ FormMode.Edit.
NewForm( FormName )
- FormName – Bắt buộc. Công cụ điều khiển biểu mẫu sẽ chuyển sang chế độ FormMode.New.
ResetForm( FormName )
- FormName – Bắt buộc. Công cụ điều khiển biểu mẫu để đặt lại về giá trị ban đầu. Cũng chuyển biểu mẫu từ chế độ FormMode.New sang chế độ FormMode.Edit.
ViewForm( FormName )
- FormName – Bắt buộc. Công cụ điều khiển biểu mẫu sẽ chuyển sang chế độ FormMode.View.
Ví dụ
Xem phần Tìm hiểu biểu mẫu dữ liệu để biết các ví dụ đầy đủ.
Thêm công cụ điều khiển Nút, đặt thuộc tính Văn bản của nút thành Save, rồi đặt thuộc tính OnSelect của nút thành công thức sau:
SubmitForm( EditForm )
Đặt thuộc tính OnFailure của tùy chọn Biểu mẫu thành trống và thuộc tính OnSuccess thành công thức sau:
Back()
Đặt tên cho tùy chọn Label (Nhãn) thành ErrorText và đặt thuộc tính Văn bản (Văn bản) thành công thức sau:
EditForm.Error
Khi người dùng chọn nút Save, mọi thay đổi trong Biểu mẫu sẽ được gửi tới nguồn dữ liệu cơ sở.
- Nếu gửi thành công, mọi thay đổi sẽ được lưu hoặc nếu Biểu mẫu ở chế độ New, một bản ghi được tạo. ErrorText là blank và màn hình trước xuất hiện lại.
- Nếu không gửi được, ErrorText sẽ hiển thị thông báo lỗi thân thiện với người dùng và màn hình hiện tại vẫn hiển thị để người dùng có thể khắc phục sự cố rồi thử lại.
Thêm Nút, đặt thuộc tính Văn bản của nút thành Cancel, rồi đặt thuộc tính OnSelect của nút thành công thức sau:
ResetForm( EditForm ); Back()
Khi người dùng chọn nút Cancel, các giá trị trong Biểu mẫu được đặt lại về giá trị trước khi người dùng bắt đầu chỉnh sửa, màn hình trước đó xuất hiện lại và Biểu mẫu trở về chế độ Edit nếu đã ở chế độ New.
Thêm Nút, đặt thuộc tính Văn bản của nút thành New, rồi đặt thuộc tính OnSelect của nút thành công thức sau:
NewForm( EditForm ); Navigate( EditScreen, None )
Khi người dùng chọn nút New, Biểu mẫu chuyển sang chế độ New, các giá trị mặc định cho nguồn dữ liệu của Biểu mẫu sẽ được điền vào biểu mẫu đó và màn hình chứa Biểu mẫu xuất hiện. Khi hàm SubmitForm chạy, một bản ghi sẽ được tạo thay vì cập nhật.