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 Copilot Studio Desktop
dòng ứng
dụng dựa trên mô
hình Power Platform CLI
Dataverse chức năng
Định hình bảng hoặc bản ghi bằng cách thêm, thả, đổi tên và chọn các cột của bảng hoặc bản ghi.
Hàm ForAll cũng có thể được sử dụng để định hình bảng bằng cách trả về một bảng bản ghi mới được tạo từ các cột hiện có.
Tổng quan
Các hàm này định hình một bảng hoặc bản ghi bằng cách điều chỉnh các cột của nó:
- Giảm một bảng hoặc bản ghi có chứa nhiều cột xuống một cột duy nhất để sử dụng với các hàm đơn cột, chẳng hạn như Thấp hơn hoặc Sqrt.
- Thêm cột được tính vào bảng hoặc bản ghi (ví dụ: cột Tổng Giá hiển thị kết quả nhân Số lượng với Đơn Giá).
- Đổi tên một cột thành tên nào đó có ý nghĩa hơn, để hiển thị cho người dùng hoặc để sử dụng trong công thức.
Bảng là một giá trị trong Power Apps, giống như một chuỗi hoặc số. Bạn có thể chỉ định một bảng làm đối số trong công thức và kết quả là các hàm có thể trả về bảng.
Lưu ý
Các hàm mà chủ đề này mô tả sẽ không sửa đổi bảng gốc. Thay vào đó, họ lấy bảng đó làm đối số và trả về một bảng mới được áp dụng chuyển đổi. Để biết thêm thông tin, hãy xem làm việc với bảng.
Bạn không thể sửa đổi các cột của một nguồn dữ liệu bằng cách sử dụng các hàm này. Bạn phải sửa đổi dữ liệu tại nguồn của nó. Bạn có thể thêm các cột vào một bộ sưu tập bằng hàm Collect. Để biết thêm thông tin, hãy xem làm việc với các nguồn dữ liệu.
Description
Hàm AddColumns thêm một cột vào bảng hoặc bản ghi và một công thức xác định các giá trị trong cột đó. Các cột hiện tại vẫn không thay đổi.
Công thức được đánh giá cho bản ghi được cung cấp hoặc cho mỗi bản ghi của bảng được cung cấp.
Các trường bản ghi hiện đang được xử lý đều có sẵn trong công thức. Sử dụng toán tử ThisRecord hoặc chỉ đơn giản là tham chiếu các trường theo tên như khi làm với bất kỳ giá trị nào khác. Bạn cũng có thể dùng toán tử As để đặt tên cho bản ghi đang được xử lý, điều này có thể giúp cho công thức của bạn dễ hiểu hơn và làm cho các bản ghi lồng nhau có thể truy cập được. Để biết thêm thông tin, hãy xem ví dụ bên dưới và xử lý phạm vi bản ghi.
Hàm DropColumns loại trừ các cột khỏi bảng hoặc bản ghi. Tất cả các cột khác vẫn không thay đổi. DropColumns loại trừ các cột và bao ShowColumns gồm các cột.
RenameColumns Sử dụng hàm để đổi tên một hoặc nhiều cột của một bảng hoặc bản ghi bằng cách cung cấp ít nhất một cặp đối số xác định tên của một cột mà bảng hoặc bản ghi chứa (tên cũ mà bạn muốn thay thế) và tên của cột mà bảng hoặc bản ghi không chứa (tên mới, mà bạn muốn sử dụng). Tên cũ phải tồn tại trong bảng hoặc bản ghi và tên mới không được tồn tại. Mỗi tên cột có thể chỉ xuất hiện một lần trong danh sách đối số dưới dạng tên cột cũ hoặc tên cột mới. Để đổi tên cột thành tên cột hiện có, DropColumnstrước tiên hãy bỏ cột hiện có bằng hoặc RenameColumns đổi tên cột hiện có bằng cách lồng một hàm vào trong một hàm khác.
Hàm ShowColumns bao gồm các cột của bảng hoặc bản ghi và thả tất cả các cột khác. Bạn có thể ShowColumns sử dụng để tạo bảng hoặc bản ghi một cột từ bảng hoặc bản ghi nhiều cột. ShowColumns bao gồm các cột và DropColumns loại trừ các cột.
Đối với tất cả các hàm này, kết quả là một bảng hoặc bản ghi mới với biến đổi được áp dụng. Bảng hoặc bản ghi gốc không bị sửa đổi. Bạn không thể sửa đổi bảng hoặc bản ghi hiện có bằng công thức. SharePoint, Microsoft Dataverse, SQL Server và các nguồn dữ liệu khác cung cấp các công cụ để sửa đổi các cột của danh sách và bảng, thường được gọi là sơ đồ. Các hàm trong chủ đề này chỉ chuyển đổi bảng hoặc bản ghi đầu vào mà không sửa đổi bản gốc, thành bảng đầu ra hoặc bản ghi để sử dụng thêm.
Các đối số cho những hàm này hỗ trợ ủy nhiệm. Ví dụ: hàm Filter được dùng làm đối số để di chuyển các tìm kiếm bản ghi liên quan qua tất cả danh sách, ngay cả khi nguồn dữ liệu '[dbo].[AllListings]' chứa một triệu hàng:
AddColumns( RealEstateAgents,
Listings,
Filter( '[dbo].[AllListings]', ListingAgentName = AgentName )
)
Tuy nhiên, kết quả của các hàm này phải tuân theo giới hạn bản ghi không ủy nhiệm. Trong ví dụ này, chỉ có 500 bản ghi được trả về ngay cả khi nguồn dữ liệu RealEstateAgents có 501 bản ghi trở lên.
Nếu bạn sử AddColumns dụng theo cách này, Bộ lọc phải thực hiện cuộc gọi riêng biệt đến nguồn dữ liệu cho mỗi bản ghi đầu tiên trong RealEstateAgents, gây ra nhiều cuộc trò chuyện mạng. Nếu [dbo](.[AllListings] đủ nhỏ và không thay đổi thường xuyên. Bạn có thể gọi hàm Collect trong OnStart để lưu trữ đệm nguồn dữ liệu trong ứng dụng của bạn khi nó khởi động. Cách khác là bạn có thể cơ cấu lại ứng dụng của mình để chỉ lấy các bản ghi liên quan khi người dùng yêu cầu chúng.
Lưu ý
Trước phiên bản 3.24042, tên cột được chỉ định bằng chuỗi văn bản sử dụng dấu ngoặc kép và nếu được kết nối với nguồn dữ liệu, chúng cũng cần phải là tên logic. Power Apps Ví dụ, tên logic "cr43e_name" có dấu ngoặc kép đã được sử dụng thay cho tên hiển thị Tên không có dấu ngoặc kép. Đối với SharePoint và các nguồn dữ liệu Excel có chứa tên cột có khoảng trắng, mỗi khoảng trắng được chỉ định bằng "_x0020_", ví dụ "Tên cột" là "Tên cột_x0020". Sau phiên bản này, tất cả các ứng dụng đều được tự động cập nhật theo cú pháp mới được mô tả trong bài viết này.
Cú pháp
AddColumns( TableOrRecord, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )
- TableOrRecord - Bắt buộc. Bảng hoặc bản ghi cần thao tác trên đó.
- ColumnNames - Bắt buộc. Tên các cột cần thêm.
- Công thức - Bắt buộc. Công thức để đánh giá cho từng bản ghi. Kết quả được thêm vào dưới dạng giá trị của cột mới tương ứng. Bạn có thể tham chiếu các cột khác của bảng hoặc bản ghi trong công thức này.
DropColumns( TableOrRecord, ColumnName1 [, ColumnName2, ... ] )
- TableOrRecord - Bắt buộc. Bảng hoặc bản ghi cần thao tác trên đó.
- ColumnNames - Bắt buộc. Tên các cột sẽ bị xóa.
RenameColumns( TableOrRecord, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )
- TableOrRecord - Bắt buộc. Bảng hoặc bản ghi cần thao tác trên đó.
- OldColumnNames - Bắt buộc. Tên của các cột cần đổi tên từ bảng hoặc bản ghi gốc. Phần tử này xuất hiện đầu tiên trong cặp đối số (hoặc đầu tiên trong mỗi cặp đối số nếu công thức bao gồm nhiều cặp).
- NewColumnNames - Bắt buộc. Tên thay thế. Phần tử này xuất hiện cuối cùng trong cặp đối số (hoặc cuối cùng trong mỗi cặp đối số nếu công thức bao gồm nhiều cặp).
ShowColumns( TableOrRecord, ColumnName1 [, ColumnName2, ... ] )
- TableOrRecord - Bắt buộc. Bảng hoặc bản ghi cần thao tác trên đó.
- ColumnNames - Bắt buộc. Tên của các cột cần bao gồm.
Ví dụ
Các ví dụ trong phần này sử dụng nguồn dữ liệu IceCreamSales (Doanh số kem) có chứa dữ liệu trong bảng sau:
Không có ví dụ nào trong số này sửa đổi nguồn dữ liệu IceCreamSales (Doanh số kem). Mỗi hàm chuyển đổi giá trị của nguồn dữ liệu dưới dạng bảng và trả về giá trị đó dưới dạng kết quả.
| Công thức | Description | Kết quả |
|---|---|---|
| AddColumns( IceCreamSales, Doanh thu, Đơn_Giá * QuantitySold ) | Thêm cột Revenue (Doanh thu) vào kết quả. Đối với mỗi bản ghi, UnitPrice * QuantitySold (Đơn giá * Số lượng bán ra) được đánh giá và kết quả được đặt vào trong cột mới. |
|
| DropColumns( IceCreamSales, Đơn_Giá ) | Loại trừ cột UnitPrice (Đơn giá) từ kết quả. Dùng hàm này để loại trừ các cột và dùng ShowColumns để bao gồm chúng. |
|
| ShowColumns( IceCreamSales, Hương vị) | Chỉ bao gồm cột Flavor (Hương vị) trong kết quả. Dùng hàm này bao gồm các cột và dùng để DropColumns loại trừ chúng. |
|
| RenameColumns(IceCreamSales, UnitPrice, Giá) | Đổi tên cột UnitPrice (Đơn giá) trong kết quả. |
|
| RenameColumns( IceCreamSales, UnitPrice, Price, QuantitySold, Number) | Đổi tên cột UnitPrice (Đơn giá) và QuantitySold (Số lượng bán ra) trong kết quả. |
|
|
DropColumns( RenameColumns( AddColumns( IceCreamSales, Doanh thu, UnitPrice * QuantitySold ), Đơn giá, Giá), Số lượng ) |
Thực hiện các chuyển đổi bảng sau theo thứ tự, bắt đầu từ bên trong công thức:
|
|
Hướng dẫn chi tiết
Hãy thử một số ví dụ đã nêu ở đầu bài viết này.
Tạo bộ sưu tập bằng cách thêm một công cụ điều khiển là Button (Nút) và đặt thuộc tính OnSelect theo công thức sau:
ClearCollect( IceCreamSales, Table( { Flavor: "Strawberry", UnitPrice: 1.99, QuantitySold: 20 }, { Flavor: "Chocolate", UnitPrice: 2.99, QuantitySold: 45 }, { Flavor: "Vanilla", UnitPrice: 1.50, QuantitySold: 35 } ) )Chạy công thức này bằng cách nút trong khi nhấn giữ phím Alt.
Thêm một công cụ điều khiển là Button (Nút) thứ hai rồi đặt thuộc tính OnSelect theo công thức sau rồi chạy công thức đó:
ClearCollect( FirstExample, AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) )Trên menu File (Tệp), hãy chọn Collections (Bộ sưu tập) rồi chọn IceCreamSales (Doanh số kem) để hiển thị bộ sưu tập đó.
Hình ảnh này cho thấy công thức thứ hai đã không sửa đổi bộ sưu tập này. Hàm AddColumns sử dụng IceCreamSales làm đối số chỉ đọc; hàm không sửa đổi bảng mà tham đối đó tham chiếu đến.
Chọn FirstExample (Ví dụ đầu tiên).
Hình ảnh này cho thấy công thức thứ hai trả về một bảng mới có cột đã thêm. Hàm ClearCollect đã thu thập bảng mới trong bộ sưu tập FirstExample (Ví dụ đầu tiên), thêm nội dung nào đó vào bảng gốc khi bảng này di chuyển qua hàm mà không sửa đổi nguồn:
Ánh xạ các cột trong một thành phần
Xem Ánh xạ cột.