Các tùy chọn kiểm soát Hiển thị biểu mẫu và Chỉnh sửa biểu mẫu trong Power Apps
Hiển thị, chỉnh sửa và tạo bản ghi trong nguồn dữ liệu.
Mô tả
Nếu bạn thêm tùy chọn kiểm soát Hiển thị biểu mẫu, người dùng có thể hiển thị tất cả các trường của một bản ghi hoặc chỉ các trường mà bạn chỉ định. Nếu bạn thêm tùy chọn kiểm soát Chỉnh sửa biểu mẫu, người dùng có thể chỉnh sửa các trường đó, tạo bản ghi và lưu những thay đổi đó vào nguồn dữ liệu.
Nếu thêm tùy chọn kiểm soát Gallery, bạn có thể đặt cấu hình để hiển thị bảng trong nguồn dữ liệu, sau đó đặt cấu hình biểu mẫu để hiển thị bất kỳ bản ghi nào mà người dùng chọn trong bộ sưu tập. Bạn cũng có thể thêm một hoặc nhiều tùy chọn kiểm soát Button mà người dùng có thể chọn để lưu các chỉnh sửa, hủy các chỉnh sửa và tạo bản ghi. Bằng cách sử dụng kết hợp các tùy chọn kiểm soát, bạn có thể tạo ra giải pháp hoàn chỉnh.
Giới hạn
Việc kiểm soát biểu mẫu có những hạn chế sau:
- Bạn không thể sao chép và dán biểu mẫu vào thẻ dữ liệu. Điều này nhằm ngăn chặn việc tạo ra một số kết hợp kiểm soát nhất định có thể gây rủi ro cho tính ổn định và hiệu suất của ứng dụng.
Lựa chọn bản ghi
Đối với một trong hai loại biểu mẫu, bạn đặt thuộc tính DataSource thành bảng bản ghi và đặt thuộc tính Item của biểu mẫu thành hiển thị một bản ghi cụ thể trong bảng đó. Ví dụ: bạn có thể đặt thuộc tính Item của một biểu mẫu thành thuộc tính SelectedItem của tùy chọn kiểm soát Gallery. Khi người dùng chọn một bản ghi trong bộ sưu tập, bản ghi tương tự sẽ xuất hiện trong biểu mẫu, trừ khi biểu mẫu có thể hiển thị nhiều trường hơn. Nếu người dùng quay lại bộ sưu tập và chọn một bản ghi khác, thuộc tính SelectedItem của bộ sưu tập sẽ thay đổi. Thay đổi này sẽ cập nhật thuộc tính Item của biểu mẫu, sau đó hiển thị bản ghi mới chọn.
Bạn cũng có thể đặt thuộc tính Item của biểu mẫu bằng cách sử dụng tùy chọn kiểm soát Danh sách thả xuống, như Hiển thị, chỉnh sửa hoặc thêm bản ghi mô tả hoặc một hàm như Lookup hoặc First. Ví dụ: bạn có thể đặt thuộc tính Mục thành một trong các công thức này để hiển thị mục Fabrikam trong bảng Tài khoản trong Microsoft Dataverse:
First(Accounts)
Lookup(Accounts, "Fabrikam" in name)
Mỗi tùy chọn kiểm soát biểu mẫu chứa một hoặc nhiều tùy chọn kiểm soát Card. Bằng cách đặt thuộc tính DataField của một thẻ, bạn chỉ định trường mà thẻ hiển thị và các chi tiết khác.
Tạo bản ghi
Khi tùy chọn kiểm soát Chỉnh sửa biểu mẫu ở chế độ Chỉnh sửa, người dùng có thể cập nhật bản ghi được chỉ định trong thuộc tính Item của biểu mẫu. Nếu được kiểm tra, thuộc tính Mode sẽ trả về Chỉnh sửa.
Tuy nhiên, khi tùy chọn kiểm soát Chỉnh sửa biểu mẫu ở chế độ Mới, thuộc tính Item bị bỏ qua. Biểu mẫu không hiển thị bản ghi hiện có; thay vào đó, các giá trị trong mỗi trường khớp với giá trị mặc định của nguồn dữ liệu mà bạn đã đặt cấu hình biểu mẫu. Hàm NewForm khiến biểu mẫu chuyển sang chế độ này.
Ví dụ: bạn có thể đặt thuộc tính Văn bản của một nút thành hiển thị Mới và thuộc tính OnSelect thành một công thức bao gồm hàm NewForm. Nếu người dùng chọn nút đó, biểu mẫu sẽ chuyển sang chế độ Mới để người dùng có thể tạo bản ghi bắt đầu bằng các giá trị đã biết.
Biểu mẫu chuyển lại về chế độ Chỉnh sửa nếu hàm ResetForm chạy hoặc hàm SubmitForm chạy thành công.
- Bạn có thể đặt thuộc tính Văn bản của một nút thành hiển thị Hủy và thuộc tính OnSelect thành một công thức bao gồm hàm ResetForm. Nếu người dùng chọn nút đó, mọi thay đổi đang thực hiện sẽ bị loại bỏ, các giá trị trong biểu mẫu, một lần nữa, sẽ khớp với giá trị mặc định của nguồn dữ liệu.
- Bạn có thể đặt thuộc tính Văn bản của một nút thành hiển thị Lưu thay đổi và thuộc tính OnSelect thành một công thức bao gồm hàm SubmitForm. Nếu người dùng chọn nút đó và nguồn dữ liệu được cập nhật, các giá trị trong biểu mẫu sẽ được đặt lại về giá trị mặc định của nguồn dữ liệu.
Lưu thay đổi
Nếu bạn tạo nút Lưu thay đổi như mô tả ở phần trước, người dùng có thể tạo hoặc cập nhật bản ghi, rồi chọn nút đó để lưu những thay đổi đó vào nguồn dữ liệu. Thay vào đó, bạn có thể đặt cấu hình tùy chọn kiểm soát Image hoặc một số tùy chọn kiểm soát khác để thực hiện cùng một tác vụ, miễn là bạn đặt cấu hình tùy chọn kiểm soát đó bằng hàm SubmitForm. Trong mọi trường hợp, thuộc tính Error, ErrorKind, OnSuccess và OnFailure cung cấp thông tin phản hồi về kết quả.
Khi hàm SubmitForm chạy, đầu tiên, hàm sẽ xác thực dữ liệu mà người dùng muốn gửi. Nếu một trường bắt buộc không chứa giá trị hoặc giá trị khác không tuân thủ một số ràng buộc khác, thuộc tính ErrorKind sẽ được đặt và công thức OnFailure sẽ chạy. Bạn có thể đặt cấu hình nút Lưu thay đổi hoặc tùy chọn kiểm soát khác để người dùng chỉ có thể chọn khi dữ liệu hợp lệ (tức là, nếu thuộc tính Valid của biểu mẫu là đúng). Lưu ý rằng người dùng không chỉ phải khắc phục sự cố mà còn phải chọn lại nút Lưu thay đổi (hoặc loại bỏ các thay đổi bằng cách chọn nút Hủy, như mô tả trước đó) để đặt lại thuộc tính Error và ErrorKind.
Nếu dữ liệu vượt qua xác thực, SubmitForm sẽ gửi dữ liệu đó tới nguồn dữ liệu, việc này có thể mất chút thời gian tùy thuộc vào độ trễ của mạng.
- Nếu gửi thành công, thuộc tính Error sẽ bị xóa, thuộc tính ErrorKind được đặt thành ErrorKind.None và công thức OnSuccess sẽ chạy. Nếu người dùng đã tạo một bản ghi (tức là, nếu biểu mẫu ở chế độ Mới trước đó), biểu mẫu sẽ được chuyển sang chế độ Chỉnh sửa để người dùng có thể chỉnh sửa bản ghi mới tạo hoặc một bản ghi khác.
- Nếu gửi không thành công, thuộc tính Error sẽ chứa thông báo lỗi thân thiện với người dùng từ nguồn dữ liệu, giải thích về sự cố. Thuộc tính ErrorKind được đặt thích hợp, tùy thuộc vào vấn đề và công thức OnFailure sẽ chạy.
Một số nguồn dữ liệu có thể phát hiện thời điểm hai người cố cập nhật cùng một bản ghi đồng thời. Trong trường hợp này, ErrorKind sẽ được đặt thành ErrorKind.Conflict và biện pháp khắc phục là làm mới nguồn dữ liệu bằng các thay đổi của người dùng kia và áp dụng lại thay đổi do người dùng này thực hiện.
Mẹo
Nếu bạn cung cấp nút Hủy trên biểu mẫu để người dùng có thể loại bỏ các thay đổi đang thực hiện, hãy thêm hàm ResetForm vào thuộc tính OnSelect của nút ngay cả khi thuộc tính đó cũng chứa hàm Navigate để thanh đổi màn hình. Nếu không, biểu mẫu sẽ giữ lại các thay đổi của người dùng.
Bố cục
Theo mặc định, thẻ được đặt trong một cột duy nhất cho ứng dụng trên điện thoại và 3 cột cho ứng dụng trên máy tính bảng. Bạn có thể chỉ định số lượng cột của một biểu mẫu và liệu có cần đính thẻ vào đó khi bạn đặt cấu hình biểu mẫu hay không. Các thiết đặt này không hiển thị dưới dạng thuộc tính vì chúng chỉ được dùng để đặt thuộc tính X, Y và Width của thẻ.
Để biết thêm thông tin, hãy xem phần Tìm hiểu bố cục biểu mẫu dữ liệu.
Thuộc tính chính
DataSource – Nguồn dữ liệu chứa bản ghi mà người dùng sẽ hiển thị, chỉnh sửa hoặc tạo.
- Nếu bạn không đặt thuộc tính này, người dùng sẽ không thể hiển thị, chỉnh sửa hoặc tạo bản ghi và không có siêu dữ liệu hay xác thực bổ sung nào được cung cấp.
DefaultMode - Chế độ ban đầu của tùy chọn kiểm soát biểu mẫu. Xem mô tả về Mode dưới đây cho các giá trị được chấp nhận và ý nghĩa của chúng.
DisplayMode - Chế độ sẽ dùng cho thẻ dữ liệu và các tùy chọn kiểm soát trong tùy chọn kiểm soát biểu mẫu.
Được suy ra từ thuộc tính Mode và không thể đặt độc lập:
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. |
Error – Thông báo lỗi thân thiện với người dùng để hiển thị cho biểu mẫu này khi hàm SubmitForm không thành công.
- Thuộc tính này chỉ áp dụng cho tùy chọn kiểm soát Chỉnh sửa biểu mẫu.
- Thuộc tính này chỉ thay đổi khi hàm SubmitForm, EditForm hoặc ResetForm chạy.
- Nếu không xảy ra lỗi, thuộc tính này sẽ trống và ErrorKind được đặt thành ErrorKind.None.
- Khi có thể, thông báo lỗi trả về sẽ hiển thị bằng ngôn ngữ của người dùng. Một số thông báo lỗi đến trực tiếp từ nguồn dữ liệu và có thể không hiển thị bằng ngôn ngữ của người dùng.
ErrorKind – Loại lỗi đã xảy ra nếu có lỗi khi SubmitForm chạy.
- Chỉ áp dụng cho tùy chọn kiểm soát Chỉnh sửa biểu mẫu.
- Thuộc tính này có bảng liệt kê giống như hàm Error. Tùy chọn kiểm soát Chỉnh sửa biểu mẫu có thể trả về các giá trị sau:
ErrorKind | Mô tả |
---|---|
ErrorKind.Conflict | Một người dùng khác đã thay đổi bản ghi tương tự, dẫn đến xung đột thay đổi. Thực thi hàm Refresh để tải lại bản ghi và thử thay đổi lại. |
ErrorKind.None | Đây là loại lỗi không xác định. |
ErrorKind.Sync | Nguồn dữ liệu đã báo cáo lỗi. Kiểm tra thuộc tính Error để biết thêm thông tin. |
ErrorKind.Validation | Đã phát hiện thấy một vấn đề xác thực chung. |
Item – Bản ghi trong Nguồn dữ liệu mà người dùng sẽ hiển thị hoặc chỉnh sửa.
LastSubmit – Bản ghi được gửi thành công lần gần đây nhất, bao gồm mọi trường do máy chủ tạo.
- Thuộc tính này chỉ áp dụng cho tùy chọn kiểm soát Chỉnh sửa biểu mẫu.
- Nếu nguồn dữ liệu tự động tạo hoặc tính toán bất kỳ trường nào, chẳng hạn như trường ID có một số duy nhất, thuộc tính LastSubmit sẽ có giá trị mới này sau khi SubmitForm chạy thành công.
- Giá trị của thuộc tính này có sẵn trong công thức OnSuccess.
Mode – Tùy chọn kiểm soát ở chế độ Chỉnh sửa hoặc Mới.
Chế độ | Mô tả |
---|---|
FormMode.Edit | Người dùng có thể chỉnh sửa bản ghi bằng cách sử dụng biểu mẫu. Các giá trị trong thẻ của biểu mẫu được điền sẵn bằng bản ghi hiện có để người dùng thay đổi. Nếu hàm SubmitForm chạy thành công, một bản ghi hiện có sẽ được sửa đổi. |
FormMode.New | Người dùng có thể tạo bản ghi bằng cách sử dụng biểu mẫu. Các giá trị trong tùy chọn kiểm soát của biểu mẫu được điền sẵn bằng giá trị mặc định cho bản ghi của nguồn dữ liệu. Nếu hàm SubmitForm chạy thành công, một bản ghi sẽ được tạo. |
FormMode.View | Người dùng có thể xem bản ghi bằng cách sử dụng biểu mẫu. Các giá trị trong tùy chọn kiểm soát của biểu mẫu được điền sẵn bằng giá trị mặc định cho bản ghi của nguồn dữ liệu. |
Biểu mẫu chuyển từ chế độ Mới sang chế độ Chỉnh sửa khi có bất kỳ thay đổi nào sau đây:
- Biểu mẫu được gửi thành công và một bản ghi được tạo. Nếu bộ sưu tập được đặt thành tự động di chuyển lựa chọn sang bản ghi mới này, biểu mẫu sẽ ở chế độ Chỉnh sửa cho bản ghi đã tạo để người dùng có thể thực hiện các thay đổi bổ sung.
- Hàm EditForm chạy.
- Hàm ResetForm chạy. Ví dụ: người dùng có thể chọn nút Hủy đã được đặt cấu hình với hàm này.
OnFailure – Các thao tác thực hiện khi thao tác dữ liệu không thành công.
- Thuộc tính này chỉ áp dụng cho tùy chọn kiểm soát Chỉnh sửa biểu mẫu.
OnReset – Các hành động cần thực hiện khi đặt lại tùy chọn điều khiển Chỉnh sửa biểu mẫu.
- Thuộc tính này chỉ áp dụng cho tùy chọn kiểm soát Chỉnh sửa biểu mẫu.
OnSuccess – Các thao tác thực hiện khi thao tác dữ liệu thành công.
- Thuộc tính này chỉ áp dụng cho tùy chọn kiểm soát Chỉnh sửa biểu mẫu.
Unsaved – Đúng nếu tùy chọn kiểm soát Chỉnh sửa biểu mẫu chứa những thay đổi chưa lưu của người dùng.
- Thuộc tính này chỉ áp dụng cho tùy chọn kiểm soát Chỉnh sửa biểu mẫu.
- Sử dụng thuộc tính này để cảnh báo cho người dùng trước khi họ mất mọi thay đổi chưa lưu. Để ngăn người dùng chọn một bản ghi khác trong tùy chọn kiểm soát Gallery trước khi lưu các thay đổi vào bản ghi hiện tại, hãy đặt thuộc tính Disabled của bộ sưu tập thành Form.Unsaved và, tương tự, tắt các thao tác làm mới.
Updates – Các giá trị sẽ ghi lại vào nguồn dữ liệu cho bản ghi đã tải trong tùy chọn kiểm soát biểu mẫu.
- Thuộc tính này chỉ áp dụng cho tùy chọn kiểm soát Chỉnh sửa biểu mẫu.
- Sử dụng thuộc tính này để trích xuất các giá trị trường từ các thẻ trong tùy chọn kiểm soát. Sau đó, bạn có thể sử dụng các giá trị này để cập nhật thủ công nguồn dữ liệu bằng lệnh gọi hàm Patch hoặc phương thức khác biểu thị bằng một kết nối. Bạn không cần sử dụng thuộc tính này nếu đang sử dụng hàm SubmitForm.
- Thuộc tính này trả về một bản ghi giá trị. Ví dụ: nếu tùy chọn kiểm soát biểu mẫu chứa các tùy chọn kiểm soát thẻ cho trường Tên và Số lượng, đồng thời các giá trị của thuộc tính Update cho các thẻ đó trả về "Tiện ích" và 10 tương ứng, thì thuộc tính Updates cho tùy chọn kiểm soát biểu mẫu sẽ trả về { Tên: "Tiện ích", Số lượng: 10 }.
Valid – Liệu tùy chọn kiểm soát Card hoặc Chỉnh sửa biểu mẫu có chứa các mục hợp lệ, sẵn sàng gửi tới nguồn dữ liệu hay không.
Thuộc tính này chỉ áp dụng cho tùy chọn kiểm soát Chỉnh sửa biểu mẫu.
Thuộc tính Valid của tùy chọn kiểm soát Biểu mẫu sẽ tổng hợp các thuộc tính Valid của mọi tùy chọn kiểm soát Card trong biểu mẫu đó. Thuộc tính Valid của biểu mẫu chỉ đúng khi dữ liệu trong mọi thẻ ở biểu mẫu đó là hợp lệ; nếu không, thuộc tính Valid của biểu mẫu sẽ là sai.
Để bật nút chỉ lưu thay đổi khi dữ liệu trong biểu mẫu hợp lệ nhưng chưa gửi, hãy đặt thuộc tính DisplayMode của nút thành công thức sau:
SubmitButton.DisplayMode = If(IsBlank( Form.Error ) || Form.Valid, DisplayMode.Edit, DisplayMode.Disabled)
Thuộc tính bổ sung
BorderColor – Màu viền của tùy chọn kiểm soát.
BorderStyle – Liệu viền của tùy chọn kiểm soát là Nét liền, Nét đứt, Chấm chấm hay Không có.
BorderThickness – Độ dày viền của tùy chọn kiểm soát.
Fill – Màu nền của tùy chọn kiểm soát.
Height – Khoảng cách giữa cạnh trên cùng và cạnh dưới cùng của tùy chọn kiểm soát.
Visible – Liệu tùy chọn kiểm soát sẽ hiển thị hay bị ẩn.
Width – Khoảng cách giữa cạnh trái và cạnh phải của tùy chọn kiểm soát.
X – Khoảng cách giữa cạnh trái của tùy chọn kiểm soát và cạnh trái của vùng chứa chính (màn hình nếu không có vùng chứa chính).
Y – Khoảng cách giữa cạnh trên cùng của tùy chọn kiểm soát và cạnh trên cùng của vùng chứa chính (màn hình nếu không có vùng chứa chính).
Thông tin Thêm
- Để biết thông tin tổng quan toàn diện về cách thức hoạt động của biểu mẫu, hãy xem phần Tìm hiểu biểu mẫu dữ liệu.
- Xem tài liệu tham khảo Power Fx công thức cho EditForm.
Hướng dẫn hỗ trợ tiếp cận
Hỗ trợ bộ đọc màn hình
- Cân nhắc thêm tiêu đề vào biểu mẫu bằng cách sử dụng Label.
Lưu ý
Bạn có thể cho chúng tôi biết bạn thích dùng ngôn ngữ nào cho tài liệu không? Làm một cuộc khảo sát ngắn. (xin lưu ý, khảo sát này bằng tiếng Anh)
Cuộc khảo sát sẽ mất khoảng bảy phút. Không có dữ liệu cá nhân nào được thu thập (điều khoản về quyền riêng tư).