Kongsi melalui


Fungsi Kemas kini dan Kemas KiniJika

Digunakan pada: Aplikasi kanvas Apl berpandukan model

Kemas kini rekod dalam sumber data.

Description

Fungsi Kemas Kini

Gunakan fungsi Update untuk menggantikan keseluruhan rekod dalam sumber data. Sebaliknya, fungsi UpdateIf dan Patch mengubah suai satu atau lebih nilai dalam rekod, meninggalkan nilai lain bersendirian.

Untuk pengumpulan, kesemua rekod mesti sepadan. Pengumpulan membenarkan duplikasi rekod, supaya berbilang rekod mungkin sepadan. Anda boleh menggunakan argumen RemoveFlags.All untuk mengemas kini semua salinan rekod; jika tidak, hanya satu salinan rekod dikemas kini.

Jika sumber data menjana nilai lajur secara automatik, nilai lajur mesti disahkan semula.

Fungsi UpdateIf

Gunakan fungsi UpdateIf untuk mengubah suai satu atau lebih nilai dalam satu atau lebih rekod yang sepadan dengan satu atau lebih syarat. Syarat boleh menjadi mana-mana formula yang mengembalikan hasil dalam benar atau palsu dan boleh menjadi lajur rujukan sumber data dengan nama. Fungsi menilai syarat untuk setiap rekod dan mengubah suai mana-mana rekod yang hasilnya adalah benar.

Untuk menentukan pengubahsuaian, gunakan rekod berubah yang mengandungi nilai sifat baharu. Jika anda menyediakan rekod berubah sebaris dengan tanda kurung ikal, formula sifat boleh merujuk sifat rekod yang sedang diubah suai. Anda boleh menggunakan tingkah laku ini untuk mengubah suai rekod berasaskan pada formula.

Sama dengan UpdateIf, anda juga boleh menggunakan fungsi Patch untuk mengubah lajur rekod tertentu tanpa memberi kesan pada lajur lain.

Kedua-dua Kemas Kini dan UpdateIf mengembalikan sumber data yang diubah suai sebagai jadual. Anda mesti menggunakan salah satu fungsi dalam formula tingkah laku.

Perwakilan

Apabila digunakan dengan sumber data, fungsi ini tidak boleh diwakilkan. Bahagian pertama sumber data sahaja yang akan diambil, kemudian fungsi ini digunakan. Ini mungkin tidak mewakili cerita lengkap. Amaran mungkin muncul pada masa pengarangan untuk mengingatkan anda tentang batasan ini.

Sokongan perwakilan (Eksperimen)

Sokongan perwakilan untuk UpdateIf dan RemoveIf kini dalam Pratonton Eksperimen (default OFF) untuk sumber data yang menyokongnya. Jika sumber data tidak menyokong ciri ini, kini akan menghantar pertanyaan kepada pelayan dan mengambil semua data yang sepadan dengan ungkapan penapis sehingga maksimum 500, Power Apps 2000 atau saiz halaman data. Kemudian, ia akan mengemas kini rekod tersebut dan menghantar setiap kembali ke pelayan untuk dikemas kini.

Sintaks

Kemas kini( DataSource,OldRecord,NewRecord[, RemoveFlags.All ] )

  • DataSource – Diperlukan. Sumber data yang mengandungi rekod yang anda mahu ganti.
  • OldRecord – Diperlukan. Rekod untuk diganti.
  • NewRecord – Diperlukan. Rekod gantian. Ini bukan rekod berubah. Rekod keseluruhan diganti, dan sifat yang hilang akan mengandungi kosong.
  • RemoveFlags.All – Pilihan. Dalam pengumpulan, rekod yang sama mungkin dipaparkan lebih daripada sekali. Tentukan argumen RemoveFlags.All untuk mengemas kini semua salinan rekod.

UpdateIf( DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • DataSource – Diperlukan. Sumber data yang mengandungi rekod atau rekod yang anda mahu ubah suai.
  • Syarat – Diperlukan. Formula yang menilai kepada benar untuk rekod atau rekod yang anda mahu ubah suai. Anda boleh menggunakan nama lajur DataSource dalam formula.
  • ChangeRecord(s) - Diperlukan. Untuk setiap syarat berkaitan, rekod berubah bagi nilai sifat baharu untuk digunakan ke rekod DataSource yang memenuhi syarat. Jika anda bekalkan rekod sebaris menggunakan tanda kurung ikal, nilai sifat bagi rekod sedia ada boleh digunakan dalam formula sifat.

Contoh

Dalam contoh ini, anda akan ganti atau ubah suai rekod dalam sumber data yang bernama IceCream dan yang bermula dengan data dalam jadual ini:

Contoh Aiskrim.

Formula Penerangan Hasil
Kemas kini( IceCream,
Pertama( Penapis( IceCream, Perisa="Coklat" ) ), { ID: 1, Perisa: "Coklat Pudina", Kuantiti:150 } )
Ganti rekod daripada sumber data. Menggantikan rekod.

Sumber data IceCream telah diubah suai.
UpdateIf( IceCream, Kuantiti > 175, { Kuantiti: Kuantiti + 10 } ) Ubah suai rekod yang mempunyai Kuantiti lebih besar daripada 175. Medan Kuantiti ditambah dengan 10, dan tiada medan lain diubah suai. Ubah suai rekod.

Sumber data IceCream telah diubah suai.
Kemas kini( IceCream,
Pertama( Penapis( IceCream, Perisa="Strawberi" ) ),
{ ID: 3, Perisa: "Pusar Strawberi"} )
Ganti rekod daripada sumber data. Sifat Kuantiti tidak dibekalkan dalam rekod gantian, oleh itu sifat akan menjadi hasil kosong. Gantikan rekod apabila kuantiti tidak dibekalkan.

Sumber data IceCream telah diubah suai.
UpdateIf( IceCream, benar, { Kuantiti: 0 } ) Tetapkan nilai sifat Kuantiti untuk semua rekod dalam sumber data ke 0. Tetapkan kuantiti untuk semua kepada 0.

Sumber data IceCream telah diubah suai.

Langkah demi langkah

  1. Import atau cipta pengumpulan bernama Inventori, dan tunjukkannya dalam galeri sebagai Tunjukkan data dalam galeri seperti yang diterangkan.

  2. Namakan galeri ProductGallery.

  3. Tambah gelangsar bernama UnitsSold, dan tetapkan sifat Maks ke ungkapan ini:
    ProductGallery.Selected.UnitsInStock

  4. Tambah butang, dan tetapkan sifat OnSelect ke formula ini:
    UpdateIf(Inventori, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. Tekan F5, pilih produk dalam galeri, tentukan nilai dengan gelangsar, dan kemudian pilih butang.

    Bilangan unit dalam stok untuk produk yang anda tentukan menurun dengan amaun yang anda tentukan.