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:

  • Giảm bảng chứa nhiều cột xuống 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 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 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ó, 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 một bảng đầu vào mà không sửa đổi bản gốc thành bảng đầu ra để sử dụng tiếp.

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, Filter trước tiên bạn phải thực hiện các lệnh gọi riêng tới nguồn dữ liệu cho từng lệnh gọi đó ghi vào Đại lý bất động sản, điều này gây ra nhiều tranh cãi trên mạng. If [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 nguồn dữ liệu vào bộ nhớ đệm trong ứng dụng của bạn khi ứng dụng 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 ý

Trong Power Apps 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 thì chúng cũng cần phải là tên logic. Ví dụ: tên logic "cr43e_name" có dấu ngoặc kép đã được sử dụng thay vì tên hiển thị Tên không có dấu ngoặc kép. Đối với SharePoint và nguồn dữ liệu Excel 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""Cột_x0020_Name". 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( Table, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • Table – Bắt buộc. Bảng cần xử lý.
  • ColumnName(s) - Bắt buộc. Tên các cột cần thêm.
  • Formula(s) – Bắt buộc. Công thức để đánh giá cho mỗi 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( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table – Bắt buộc. Bảng cần xử lý.
  • ColumnName(s) - Bắt buộc. Tên của các cột cần thả.

RenameColumns( Table, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )

  • Table – Bắt buộc. Bảng cần xử lý.
  • Tên cột cũ - 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).
  • Tên cột mới - Bắt buộc. Những 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( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table – Bắt buộc. Bảng cần xử lý.
  • ColumnName(s) - 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:

Ví dụ về IceCream.

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á * Số lượng đã bán ) 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. Kết quả với Dâu, Sô cô la và Vani.
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. Kết quả với Dâu, Sô cô la, Vani chỉ có cột QuantitySold.
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. Chỉ cột Hương vị.
Đổi tên Cột(IceCreamSales, Đơn giá, Giá) Đổi tên cột UnitPrice (Đơn giá) trong kết quả. Kết quả với Hương vị, Giá cả và Doanh thu.
Đổi tên Cột( IceCreamSales, Đơn giá, Giá, Số lượng đã bán, Số lượng) Đổi tên cột UnitPrice (Đơn giá) và QuantitySold (Số lượng bán ra) trong kết quả. Kết quả với 3 IceCream và các cột là Hương vị, Giá cả, Doanh thu.
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:
  1. Thêm cột Doanh thu dựa trên tính toán trên mỗi bản ghi của Đơn giá * Số lượng.
  2. Đổi tên UnitPrice (Đơn giá) thành Price (Giá).
  3. Loại trừ cột Quantity (Số lượng).
Thứ tự rất quan trọng, chẳng hạn như chúng tôi không thể tính toán với UnitPrice sau khi nó được đổi tên.
Ví dụ về IceCream cho đơn giá.

Hướng dẫn chi tiết

Hãy thử một số ví dụ từ phần trước của bài viết này.

  1. 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 }
       )
    )
    
  2. Chạy công thức này bằng cách nút trong khi nhấn giữ phím Alt.

  3. 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 )
    )
    
  4. 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.

    Trình xem bộ sưu tập hiển thị 3 bản ghi của bộ sưu tập Ice Cream Sales (Doanh số kem) không bao gồm cột Revenue (Doanh thu).

  5. 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:

    Trình xem bộ sưu tập hiển thị 3 bản ghi của bộ sưu tập First Example (Ví dụ đầu tiên) bao gồm cột Revenue (Doanh thu) mới.

Ánh xạ các cột trong một thành phần

Xem Ánh xạ cột.