Các hàm AddColumns, DropColumns, RenameColumns và ShowColumns
Áp dụng cho: Ứng dụng Canvas Luồng máy tính để bàn Ứng dụng dựa trên mô hình Power Platform CLI
Định hình một bảng bằng cách thêm, thả, đổi tên và chọn các cột của bảng.
Hàm **ForAll cũng có thể được sử dụng để định hình một bảng bằng cách trả về một bảng gồm các 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 bằng cách điều chỉnh các cột của bảng:
- Thu gọn một bảng chứa nhiều cột thành một cột duy nhất để sử dụng với các hàm một cột, chẳng hạn như Lower hoặc Sqrt.
- Thêm một cột được tính vào bảng (ví dụ: cột Total Price (Tổng giá) hiển thị kết quả của phép nhân Quantity (Số lượng) x Unit Price (Đơ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 và 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 từng bản ghi của bảng.
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 một bảng. Tất cả các cột khác vẫn không thay đổi. DropColumns loại trừ các cột và ShowColumns bao gồm các cột.
Sử dụng hàm RenameColumns để đổi tên một hoặc nhiều cột của bảng bằng cách cung cấp ít nhất một cặp đối số chỉ định tên của một cột trong bảng (tên cũ mà bạn muốn thay thế) và tên của một cột không nằm trong bảng (tên mới mà bạn muốn sử dụng). Tên cũ phải tồn tại trong bảng từ trước và tên mới không được tồn tại. Mỗi tên cột chỉ có thể 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ó, trước tiên hãy thả cột hiện có bằng hàm DropColumns hoặc đổi tên cột hiện có bằng cách lồng một hàm RenameColumns vào trong một hàm khác.
Hàm ShowColumns bao gồm các cột của bảng và bỏ tất cả các cột khác. Bạn có thể sử dụng ShowColumns để tạo bảng một cột từ bảng 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 mới được áp dụng chuyển đổi. Bảng gốc không thay đổi. Bạn không thể sửa đổi bảng hiện có bằng một công thức. SharePoint,Microsoft Dataverse, SQL Server và các nguồn dữ liệu khác cung cấp công cụ để sửa đổi các cột danh sách, bảng và bảng, thường được gọi là lược đồ. Các hàm trong bài viết này chỉ chuyển đổi bảng đầu vào, mà không sửa đổi bảng gốc, thành bảng đầu ra để sử dụng sau này.
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ử dụng AddColumns theo cách này, Bộ lọc phải thực hiện các lệnh gọi riêng đến nguồn dữ liệu cho mỗi bản ghi đầu tiên trong RealEstateAgents, điều này gây ra nhiều nhiễu loạ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( Bảng, Tên cột1, Công thức 1 [, Tên cột2, Công thức 2, ... ] )
- Bảng - Bắt buộc. Bảng cần xử lý.
- 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 đến các cột khác của bảng trong công thức này.
DropColumns( Bảng, Tên cột1 [, Tên cột2, ... ] )
- Bảng - Bắt buộc. Bảng cần xử lý.
- ColumnNames - Bắt buộc. Tên các cột sẽ bị xóa.
Đổi tênCột( Bảng, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )
- Bảng - Bắt buộc. Bảng cần xử lý.
- OldColumnNames - Bắt buộc. Tên của các cột cần đổi tên từ bảng 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).
Hiển thịCột( Bảng, TênCột1 [, TênCột2, ... ] )
- Bảng - Bắt buộc. Bảng cần xử lý.
- 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, Revenue, UnitPrice * 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, UnitPrice ) | Loại trừ cột UnitPrice (Đơn giá) từ kết quả. Sử dụng hàm này để loại trừ các cột và sử dụng ShowColumns để thêm chúng. | |
ShowColumns(Bán Kem, Hương Vị) | Chỉ bao gồm cột Flavor (Hương vị) trong kết quả. Sử dụng hàm này để thêm các cột và sử dụng DropColumns để loại trừ chúng. | |
Đổi tên các cột ( IceCreamSales, UnitPrice, Price) | Đổ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ả. | |
Thả cột( 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 (Doanh số kem) làm đối số chỉ đọc. Hàm này không sửa đổi bảng mà đối số đó 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.