Ambil perhatian
Akses ke halaman ini memerlukan kebenaran. Anda boleh cuba log masuk atau menukar direktori.
Akses ke halaman ini memerlukan kebenaran. Anda boleh cuba menukar direktori.
Terpakai kepada: Apl kanvas Aliran
Desktop Copilot Studio
Apl
dipacu model Power Platform CLI
Fungsi Dataverse Halaman
Kuasa
Mengira nilai dan melakukan tindakan untuk rekod lajur, termasuk rekod sebaris untuk nilai yang dinamakan.
Penerangan
Fungsi ini With menilai formula untuk satu rekod. Formula boleh mengira nilai dan/atau melaksanakan tindakan seperti mengubah suai data atau bekerja dengan sambungan. Gunakan Fungsi ForAll untuk menilai formula bagi semua rekod dalam jadual rekod.
Medan rekod yang sedang diproses tersedia dalam formula. Gunakan operator ThisRecord atau rujuk sahaja medan mengikut nama seperti yang akan anda lakukan bagi mana-mana nilai yang lain. Operator As juga boleh digunakan untuk menamakan rekod yang diproses, yang dapat membantu menjadikan formula anda lebih mudah untuk difahami dan supaya rekod bersarang dapat diakses. Untuk mendapatkan maklumat lanjut, lihat contoh di bawah dan menggunakan skop rekod.
Gunakan With untuk meningkatkan kebolehbacaan formula kompleks dengan membahagikannya kepada sub-formula bernama yang lebih kecil. Nilai yang dinamakan ini bertindak seperti pembolehubah tempatan mudah yang terhad kepada skop .With Sintaks rekod sebaris yang sama yang digunakan dengan fungsi UpdateContext boleh digunakan dengan With. Penggunaan With lebih disukai berbanding konteks atau pembolehubah global kerana ia serba lengkap, mudah difahami dan boleh digunakan dalam mana-mana konteks formula deklaratif.
Gunakan With untuk mengakses medan rekod yang dikembalikan oleh fungsi seperti Patch atau Match. With memegang nilai daripada fungsi ini cukup lama untuk digunakan dalam pengiraan atau tindakan selanjutnya.
Jika hujah Rekod kepada With ialah ralat, ralat itu akan dikembalikan oleh fungsi dan Formula tidak akan dinilai.
Sintaks
With( Rekod, Formula )
-
Rekod - Diperlukan. Rekod untuk diambil tindakan. Untuk nilai nama, gunakan sintaks sebaris
{ name1: value1, name2: value2, ... } - Formula - Diperlukan. Formula untuk dinilai bagi Rekod. Formula boleh merujuk sebarang medan Rekod secara terus sebagai skop rekod.
Contoh
Nilai yang dinamakan dengan mudah
With( { radius: 10,
height: 15 },
Pi() * (radius*radius) * height
)
// Result: 4712.38898038 (as shown in a label control)
Contoh ini menggunakan rekod nilai yang dinamakan untuk mengira volum silinder. With sedang digunakan untuk menangkap semua nilai input bersama-sama, menjadikannya mudah untuk memisahkannya daripada pengiraan itu sendiri.
Bersarang With
With( { AnnualRate: RateSlider/8/100, // slider moves in 1/8th increments and convert to decimal
Amount: AmountSlider*10000, // slider moves by 10,000 increment
Years: YearsSlider, // slider moves in single year increments, no adjustment required
AnnualPayments: 12 }, // number of payments per year
With( { r: AnnualRate/AnnualPayments, // interest rate
P: Amount, // loan amount
n: Years*AnnualPayments }, // number of payments
r*P / (1 - (1+r)^-n) // standard interest calculation
)
)
Contoh ini berfungsi With untuk membuat pengiraan dua peringkat untuk pembayaran gadai janji bulanan. Selagi tiada konflik, semua nilai dinamakan luar With tersedia dalam dalaman With.
Oleh kerana kawalan gelangsar hanya boleh dialihkan dalam tambahan 1, gelangsar dibahagi atau didarab untuk mencipta tambahan tersuai yang berkesan. Dalam kes kadar faedah, RateSlider mempunyai sifat Maks ditetapkan ke 48, dibahagi dengan 8 untuk 1/8 tambahan titik peratusan dan dibahagikan dengan 100 untuk menukar daripada peratusan ke perpuluhan, merangkumi julat 0.125% ke 6%. Dalam kes amaun pinjaman, AmountSlider mempunyai sifat Maks ditetapkan ke 60 dan didarabkan dengan 10,000, merangkumi julat 10,000 ke 600,000.
Ini With dikira semula secara automatik apabila gelangsar bergerak dan pembayaran pinjaman baharu dipaparkan. Tiada pemboleh ubah digunakan dan tiada keperluan untuk menggunakan sifat OnChange bagi kawalan gelangsar.
Berikut adalah arahan terperinci untuk mencipta aplikasi ini:
- Cipta aplikasi baharu
- Tambah Kawalan Gelangsar dan namakannya RateSlider. Tetapkan sifat Maks ke 48.
- Tambah Kawalan Label ke bahagian kiri kawalan gelangsar. Tetapkan sifat Teks ke "Kadar Faedah:".
- Tambah kawalan Label ke bahagian kanan kawalan gelangsar. Tetapkan sifat Teksnya kepada formula RateSlider/8 & " %".
- Tambah kawalan Gelangsar yang lain dan namakannya AmountSlider. Tetapkan sifat Maks ke 60.
- Tambah kawalan Label ke bahagian kiri kawalan gelangsar. Tetapkan sifat Teks ke "Amaun Pinjaman:".
- Tambah kawalan Label ke bahagian kanan kawalan gelangsar. Tetapkan sifat Teks ke formula AmountSlider/8 * 10000.
- Tambah kawalan Gelangsar yang lain dan namakannya YearsSlider. Tetapkan sifat Maks ke 40.
- Tambah kawalan Label ke bahagian kiri kawalan gelangsar. Tetapkan sifat Teks ke "Bilangan Tahun:".
- Tambah kawalan Label ke bahagian kanan kawalan gelangsar. Tetapkan sifat Teks ke formula YearsSlider.
- Tambah kawalan Label dan tetapkan sifat Teks ke formula yang ditunjukkan di atas.
- Tambah kawalan Label ke bahagian kiri kawalan label terakhir. Tetapkan sifat Teks ke "Recurring Monthly Payment:".
Kunci utama dikembalikan daripada Tampalan
With( Patch( Orders, Defaults( Orders ), { OrderStatus: "New" } ),
ForAll( NewOrderDetails,
Patch( OrderDetails, Defaults( OrderDetails ),
{ Order: OrderID, // from With's first argument, primary key of Patch result
Quantity: Quantity, // from ForAll's NewOrderDetails table
ProductID: ProductID } // from ForAll's NewOrderDetails table
)
)
)
Contoh ini menambah rekod kepada jadual Pesanan dalam SQL Server. Ianya kemudian menggunakan kunci utama yang dikembalikan untuk pesanan, dikembalikan oleh fungsi Patch dalam medan OrderID, untuk mencipta rekod berkaitan dalam jadual OrderDetails.
Nilai yang diekstrak dengan ungkapan biasa
With(
Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
// Result: 2:01 AM (as shown in a label control, use the Text function to see the seconds)
Contoh ini mengekstrak jam, minit, dan saat daripada nilai tempoh ISO 8601 dan kemudian menggunakan sub sepadan untuk mencipta nilai Tarikh/Masa.
Perlu diingatkan bahawa walaupun sub sepadan mengandungi nombor ianya masih dalam rentetan teks. Gunakan fungsi Value untuk menukarkan nombor sebelum melakukan operasi matematik.
Petakan rekod dalam komponen
Lihat Rekod peta.