Lưu ý
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử đăng nhập hoặc thay đổi thư mục.
Cần có ủy quyền mới truy nhập được vào trang này. Bạn có thể thử thay đổi thư mục.
Áp dụng cho: Ứng dụng Canvas
Xây dựng một kiểu do người dùng định nghĩa để sử dụng với các hàm do người dùng định nghĩa và các giá trị không có kiểu.
Quan trọng
- Các chức năng này đang trong giai đoạn thử nghiệm.
- Các tính năng thử nghiệm không dành cho mục đích sử dụng sản xuất và có thể chưa hoàn thiện. Các tính năng này sẽ khả dụng trước khi phát hành chính thức để bạn có thể truy cập sớm và cung cấp phản hồi. Thông tin thêm: Tìm hiểu các tính năng thử nghiệm, xem trước và ngừng cung cấp trong ứng dụng canvas
- Hành vi này chỉ khả dụng khi tính năng Kiểu do người dùng xác định thử nghiệm trong Cài đặt > Tính năng sắp ra mắt > Thử nghiệm được bật (theo mặc định là tắt).
- Phản hồi của bạn rất có giá trị. Hãy cho chúng tôi biết suy nghĩ của bạn trong Power Apps diễn đàn cộng đồng tính năng thử nghiệm.
Description
Mỗi hàm trong Power Fx đều xác định kiểu giá trị có thể được truyền vào dưới dạng tham số và kiểu đầu ra. Các kiểu dữ liệu được kiểm tra khi bạn viết công thức và lỗi sẽ được hiển thị nếu chúng không khớp với mong đợi. Trình soạn thảo cũng sử dụng các kiểu dữ liệu để gợi ý những tùy chọn tốt cho việc truyền dữ liệu vào hàm và phát hiện lỗi sớm nhất có thể.
Khi tạo các hàm do người dùng tự định nghĩa, bạn cần chỉ định kiểu đầu vào và đầu ra. Đối với các kiểu đơn giản như Decimal hoặc Text, điều này rất dễ dàng vì các kiểu cơ bản này đã được xác định trước. Đối với các kiểu phức tạp hơn, chẳng hạn như các bản ghi hoặc bảng, hãy Type sử dụng hàm này để tạo loại.
Hàm Type này cũng làm cho các giá trị động dễ làm việc hơn. Với các hàm ParseJSON, IsType và AsType , một giá trị động có thể được chuyển đổi thành một đối tượng đã nhập trong đó các cột không còn cần phải được nhập riêng lẻ tại điểm sử dụng.
Hàm Type lấy TypeSpecification làm đối số duy nhất của nó. Kiểu dữ liệu đơn giản nhất là tham chiếu đến một kiểu dữ liệu hiện có, ví dụ Type( Text ). Đặc tả kiểu cho một bản ghi hoặc bảng tương tự như việc xác định một bản ghi hoặc bảng bằng các giá trị theo nghĩa đen, trong đó các giá trị được thay thế bằng tên kiểu. Ví dụ, {Name: "Jane"} sẽ được nhập bằng Type( {Name: Text} ). Bảng được chỉ định bằng dấu ngoặc vuông, không phải hàm Bảng và chỉ có thể cung cấp một bản ghi. Ví dụ, [1,2,3] sẽ được nhập bằng Type( [Number] ).
Sử dụng RecordOf hàm để trích xuất loại bản ghi từ một loại bảng. Ví dụ: Type( RecordOf( Library ) ) sẽ trả về kiểu của một cuốn sách duy nhất trong thư viện. Để tạo bảng, hãy nhập loại bản ghi trong dấu ngoặc vuông từ loại bản ghi, Đóng gói. Ví dụ, Type( [ Book ] ) định nghĩa một thư viện.
RecordOf chỉ có thể được sử dụng trong hàm Type .
Hàm Type và giá trị kiểu mà nó trả về chỉ có thể được dùng ở những vị trí cụ thể trong Power Fx, chẳng hạn như đối số thứ hai cho ParseJSON. Trong ứng dụng Canvas, hàm Type có thể được sử dụng với một công thức có tên trong App.Formulas.
Cú pháp
RecordOf( TableType )
- TableType – Bắt buộc. Tên kiểu của bảng. Câu lệnh này không chấp nhận chỉ định kiểu, mà phải là tên của kiểu đã được xác định trước đó cho một bảng.
Type( TypeSpecification )
- TypeSpecification – Bắt buộc. Một loại thông số kỹ thuật.
Ví dụ
Type chức năng
Hãy xem xét các định nghĩa sau trong App.Formulas:
Library =
[ { Title: "A Study in Scarlet", Author: "Sir Arthur Conan Doyle", Published: 1887 },
{ Title: "And Then There Were None", Author: "Agatha Christie", Published: 1939 },
{ Title: "The Marvelous Land of Oz", Author: "L. Frank Baum", Published: 1904 } ];
// Type definition for a single book
BookType := Type( { Title: Text, Author: Text, Published: Number } );
// Type definition for a table of books
LibraryType := Type( [ BookType ] );
Lưu ý cách văn bản tiêu đề thực tế "A Study in Scarlet" được thay thế bằng tên loại Text trong thông số kỹ thuật loại, một chỗ giữ chỗ cho bất kỳ giá trị văn bản nào. Một tham số hoặc biến có kiểu BookType có thể chứa một trong các cuốn sách trong Library, trong khi LibraryType có thể chứa toàn bộ bảng. Với các kiểu này, chúng ta có thể định nghĩa các hàm do người dùng xác định sau:
SortedBooks( books: LibraryType ): LibraryType =
SortByColumns( Library, Author, SortOrder.Ascending, Title, SortOrder.Ascending );
PublishedInLeapYear( book: BookType ): Boolean =
Mod( book.Published, 4 ) = 0 And
(Mod( book.Published, 100 ) <> 0 Or Mod( book.Published, 400 ) = 0);
Bạn cũng có thể sử dụng BookType để phân tích cú pháp chuỗi JSON có chứa một cuốn sách:
ParseJSON( "{""Title"":""Gulliver's Travels"", ""Author"": ""Jonathan Swift"", ""Published"": 1900}", BookType
)
Sử dụng BookType làm đối số thứ hai cho ParseJSON sẽ tạo ra một bản ghi được gõ có thể được sử dụng như bất kỳ Power Fx bản ghi nào khác.
RecordOf chức năng
Trong ví dụ Type về hàm, bạn bắt đầu và BookType xây dựng LibraryType bằng cách ngắt dòng một bảng xung quanh nó. Chúng ta có thể định nghĩa các kiểu này theo chiều ngược lại như sau:
// Type definition for a table of books
RecordOfLibraryType := Type( [ { Title: Text, Author: Text, Published: Number } ] );
// Type definition for a single book
RecordOfBookType := Type( RecordOf( RecordOfLibraryType ) );