Fungsi AddColumns, DropColumns, RenameColumns, dan ShowColumns

Berlaku untuk: Aplikasi kanvas Alur desktop Aplikasi Power Platform berbasis model CLI

Membentuk tabel dengan menambahkan, mengecualikan, mengubah nama, dan memilih kolom nya.

Fungsi **ForAll juga bisa digunakan untuk membentuk tabel, dengan mengembalikan tabel rekaman baru yang dibuat dari kolom yang sudah ada.

Gambaran Umum

Fungsi ini membentuk tabel dengan menyesuaikan kolomnya:

  • Mengurangi tabel yang berisi beberapa kolom menjadi satu kolom untuk digunakan dengan fungsi kolom tunggal, seperti Lower atau Sqrt.
  • Tambahkan kolom terhitung ke tabel (misalnya, kolom Harga total yang menampilkan hasil mengalikan Kuantitas dengan Harga Satuan).
  • Ubah nama kolom menjadi sesuatu yang lebih bermakna, untuk ditampilkan kepada pengguna atau untuk digunakan dalam formula.

Tabel adalah nilai dalam Power Apps, seperti string atau angka. Anda dapat menentukan tabel sebagai argumen dalam rumus, dan fungsi dapat mengembalikan tabel sebagai hasilnya.

Catatan

Fungsi yang dijelaskan topik ini tidak akan memodifikasi tabel asli. Sebagai gantinya, fungsi ini mengambil tabel sebagai argumen dan mengembalikan tabel baru dengan transformasi diterapkan. Untuk informasi selengkapnya, lihat bekerja dengan tabel.

Anda tidak dapat memodifikasi kolom sumber data menggunakan fungsi ini. Anda harus memodifikasi data pada sumbernya. Anda dapat menambahkan kolom ke kumpulan dengan fungsi Collect. Untuk informasi selengkapnya, lihat bekerja dengan sumber data.

Description

Fungsi AddColumns menambahkan kolom ke tabel, dan rumus mendefinisikan nilai pada kolom tersebut. Kolom yang ada tetap tidak dimodifikasi.

Rumus dievaluasi untuk setiap rekaman tabel.

Bidang rekaman yang sedang diproses tersedia dalam formula. Menggunakan operator ThisRecord atau hanya bidang referensi berdasarkan nama seperti nilai lainnya. Operator As juga dapat digunakan untuk menamai rekaman yang sedang diproses yang dapat membantu membuat formula lebih mudah dipahami dan membuat rekaman bersarang dapat diakses. Untuk informasi selengkapnya, lihat contoh di bawah ini dan menggunakan cakupan rekaman.

Fungsi DropColumns mengecualikan kolom dari tabel. Semua kolom lainnya tetap tidak dimodifikasi. DropColumns mengecualikan kolom, dan ShowColumns menyertakan kolom.

Gunakan fungsi RenameColumns untuk mengganti nama satu atau beberapa kolom dari tabel dengan memberikan setidaknya satu pasangan argumen yang menentukan nama kolom yang terdapat di tabel (nama lama, yang ingin Anda ganti) dan nama kolom yang tidak terdapat di tabel (nama baru, yang ingin Anda gunakan). Nama lama harus sudah ada dalam tabel, dan nama baru tidak boleh ada. Setiap nama kolom mungkin hanya muncul sekali dalam daftar argumen sebagai nama kolom lama atau nama kolom baru. Untuk mengubah nama kolom ke nama kolom yang ada, pertama kecualikan kolom yang ada dengan DropColumns, atau ubah nama kolom yang ada dengan menumpuk satu fungsi RenameColumns di dalam yang lain.

Fungsi ShowColumns menyertakan kolom pada tabel dan mengecualikan semua kolom lainnya. Anda dapat menggunakan ShowColumns untuk membuat tabel kolom tunggal dari tabel multi-kolom. ShowColumns menyertakan kolom, dan DropColumns mengecualikan kolom.

Untuk semua fungsi ini, hasilnya adalah tabel baru dengan transformasi diterapkan. Tabel asli tidak dimodifikasi. Anda tidak dapat memodifikasi tabel yang ada dengan rumus. SharePoint, Microsoft Dataverse, SQL Server, dan sumber data lainnya menyediakan alat untuk memodifikasi kolom daftar, tabel, dan tabel yang sering dirujuk sebagai skema. Fungsi dalam artikel ini hanya mengubah tabel input, tanpa memodifikasi aslinya, menjadi tabel output untuk digunakan lebih lanjut.

Argumen untuk fungsi ini mendukung delegasi. Misalnya, fungsi Filter yang digunakan sebagai argumen untuk menarik pencarian rekaman terkait melalui semua cantuman, meskipun sumber data '[dbo].[AllListings]' berisi jutaan baris:

AddColumns( RealEstateAgents,
   Listings,
   Filter(  '[dbo].[AllListings]', ListingAgentName = AgentName )
)

Namun, output dari fungsi ini tunduk pada batas rekaman non-delegasi. Dalam contoh ini, hanya 500 rekaman dikembalikan bahkan jika sumber data RealEstateAgents memiliki 501 atau lebih rekaman.

Jika Anda menggunakan AddColumns dengan cara ini, Filter harus melakukan panggilan terpisah ke sumber data untuk masing-masing catatan pertama di RealEstateAgents, yang menyebabkan banyak obrolan jaringan. Jika [dbo](.[AllListings] cukup kecil dan tidak sering berubah. Anda dapat memanggil fungsi Kumpulkan di OnStart untuk menyimpan sumber data di aplikasi Anda saat dimulai. Sebagai alternatif, Anda dapat mengubah struktur aplikasi Anda sehingga Anda menarik rekaman terkait hanya ketika pengguna memintanya.

Catatan

Sebelum Power Apps versi 3.24042, nama kolom ditentukan dengan string teks menggunakan tanda kutip ganda, dan jika terhubung ke sumber data mereka juga harus nama logis. Misalnya, nama logis"cr43e_name" dengan tanda kutip ganda digunakan sebagai pengganti nama tampilan Nama tanpa tanda kutip. Untuk SharePoint dan sumber data Excel yang berisi nama kolom dengan spasi, setiap spasi ditentukan dengan "_x0020_", misalnya "Nama Kolom"sebagai"Column_x0020_Name". Setelah versi ini, semua aplikasi secara otomatis diperbarui ke sintaks baru yang dijelaskan dalam artikel ini.

Sintaks

AddColumns( Table, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • Table – Wajib. Tabel yang difungsikan.
  • ColumnName(s) - Wajib. Nama kolom yang akan ditambahkan.
  • Formula - Wajib. Rumus untuk dievaluasi untuk setiap catatan. Hasilnya ditambahkan sebagai nilai kolom baru yang sesuai. Anda dapat mereferensikan kolom lain di tabel dalam rumus ini.

DropColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table – Wajib. Tabel yang difungsikan.
  • ColumnName(s) - Wajib. Nama kolom yang akan dijatuhkan.

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

  • Table – Wajib. Tabel yang difungsikan.
  • OldColumnNames - Wajib. Nama kolom yang akan diganti namanya dari tabel asli. Elemen ini muncul pertama di pasangan argumen (atau pertama di setiap pasangan argumen jika rumusnya mencakup lebih dari satu pasangan).
  • NewColumnNames - Wajib. Nama pengganti. Elemen ini muncul terakhir di pasangan argumen (atau terakhir di setiap pasangan argumen jika rumusnya mencakup lebih dari satu pasangan).

ShowColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table – Wajib. Tabel yang difungsikan.
  • ColumnName(s) - Wajib. Nama kolom yang akan disertakan.

Contoh

Contoh di bagian ini menggunakan sumber data IceCreamSales, yang berisi data dalam tabel ini:

Contoh Icecream.

Tidak satu pun dari contoh ini memodifikasi sumber data IceCreamSales. Setiap fungsi mentransformasi nilai sumber data sebagai tabel dan mengembalikan nilai sebagai hasilnya.

Rumus Description Hasil
AddColumns( IceCreamSales, Pendapatan, UnitPrice * KuantitasTerjual ) Menambahkan kolom Pendapatan ke hasil. Untuk setiap rekaman, UnitPrice * QuantitySold dievaluasi, dan hasilnya ditempatkan pada kolom baru. Hasil dengan Stroberi, Cokelat dan Vanila.
DropColumns (IceCreamSales, UnitPrice) Mengecualikan kolom UnitPrice dari hasil. Gunakan fungsi ini untuk mengecualikan kolom, dan menggunakan ShowColumns untuk menyertakannya. Hasil dengan Strawberry, Chocolate, Vanilla hanya memiliki kolom QuantitySold.
ShowColumns (IceCreamSales, Flavor) Hanya menyertakan kolom Flavor pada hasilnya. Gunakan fungsi ini untuk menyertakan kolom, dan menggunakan DropColumns untuk mengecualikannya. Hanya kolom Rasa.
RenameColumns( IceCreamSales, UnitPrice, Harga) Mengganti nama kolom UnitPrice dalam hasil. Hasil dengan Rasa, Harga dan Pendapatan.
RenameColumns( IceCreamSales, UnitPrice, Harga, KuantitasTerjual, Nomor) Mengganti nama kolom UnitPrice dan QuantitySold dalam hasil. Hasil dengan 3 IceCream dan kolom sebagai Rasa, Harga, Pendapatan.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, Pendapatan,
UnitPrice * QuantitySold ),
UnitPrice, Harga ),
Kuantitas )
Melakukan transformasi tabel berikut secara berurutan, mulai dari bagian dalam rumus:
  1. Menambahkan kolom Pendapatan berdasarkan perhitungan per catatan UnitPrice * Kuantitas.
  2. Mengganti nama UnitPrice menjadi Price.
  3. Mengecualikan kolom Quantity.
Order itu penting, misalnya kita tidak bisa menghitung dengan UnitPrice setelah diganti namanya.
Contoh IceCream untuk harga per unit.

Langkah demi langkah

Mari kita coba beberapa contoh dari sebelumnya di artikel ini.

  1. Buat kumpulan dengan menambahkan kontrol Tombol dan mengatur properti OnSelect-nya ke rumus ini:

    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. Jalankan rumus dengan memilih tombol sambil menahan tombol Alt.

  3. Tambahkan kontrol Tombol kedua dan atur properti OnSelect-nya ke rumus ini, lalu jalankan:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. Pada menu File, pilih Kumpulan, lalu pilih IceCreamSales untuk menampilkan kumpulan tersebut.

    Seperti yang ditunjukkan grafis ini, rumus kedua tidak memodifikasi kumpulan ini. Fungsi AddColumns yang menggunakan IceCreamSales sebagai argumen hanya baca; fungsi ini tidak memodifikasi tabel yang dirujuk argumen tersebut.

    Penampil koleksi menampilkan tiga rekaman koleksi Penjualan Es Krim yang tidak mencakup kolom Pendapatan.

  5. Pilih FirstExample.

    Seperti yang ditunjukkan grafis ini, rumus kedua mengembalikan tabel baru dengan kolom tambahan. Fungsi ClearCollect mengambil tabel baru dalam koleksi FirstExample, menambahkan sesuatu ke tabel asli saat diteruskan melalui fungsi tanpa memodifikasi sumber:

    Penampil koleksi menampilkan tiga rekaman koleksi Contoh Pertama yang tidak mencakup kolom Pendapatan baru.

Memetakan kolom dalam komponen

Lihat Petakan kolom.