Operator dan Pengecam dalam Power Apps

Digunakan pada: Aplikasi kanvas Apl berpandukan model

Sesetengah operator ini bergantung pada bahasa pengarang. Untuk maklumat lanjut tentang sokongan bahasa dalam aplikasi kanvas, lihat Aplikasi global.

Simbol Taip Contoh Description
'...' Pengecam 'Nama Akaun' Pengecam yang mengandungi aksara khas, termasuk ruang, akan tertutup dalam satu petikan
"..." Rentetan teks "Helo, Dunia" Rentetan teks ditutup dalam petikan tindan
$"..." Interpolasi rentetan $"Dear {FirstName}," Formula terbenam dalam rentetan teks
. Pemilih Sifat Slider1.Value
Color.Red
Acceleration.X
Ekstrak sifat daripada jadual, kawalan, isyarat atau penghitungan. Untuk keserasian ke belakang, ! juga boleh digunakan.
.
[bergantung kepada bahasa]
Pemisah perpuluhan 1.23 Pemisah antara bahagian keseluruhan dan pecahan nombor. Aksara bergantung pada bahasa.
( ) Kurungan Penapis(T, A < 10)

(1 + 2) * 3
Menguatkuasakan pesanan keutamaan dan sub istilah kumpulan subexpressions dalam istilah yang lebih besar
+ Operator aritmetik 1 + 2 Tambahan
-   2 - 1 Penolakan dan tanda
*   2 * 3 Pendaraban
/   2 / 3 Pembahagian (lihat juga fungsi Mod)
^   2 ^ 3 Pengeksponenan, bersamaan dengan fungsi Power
%   20% Peratusan (bersamaan dengan "* 1/100")
= Operator perbandingan Harga = 100 Sama dengan
>   Harga > 100 Lebih besar daripada
>=   Harga >= 100 Lebih besar daripada atau sama dengan
<   Harga < 100 Kurang daripada
<=   Harga <= 100 Kurang daripada atau sama dengan
<>   Harga <> 100 Tidak sama dengan
& Operator perangkaian rentetan "hello" & " & "dunia" Menjadikan berbilang rentetan muncul berterusan
&&atau Dan Operator logik Harga < 100 && Slider1.Value = 20
atau Harga < 100 Dan Slider1.Value = 20
Penghubung logik, bersamaan dengan fungsi And
|| atau Atau   Price < 100 || Slider1.Value = 20 atau Price < 100 Or Slider1.Value = 20 Disjungsi logik, bersamaan dengan fungsi Or
! atau Bukan   !(Harga < 100) atau Bukan (Harga < 100) Penafian logik, bersamaan dengan fungsi Not
exactin Operator keahlian Gallery1.Selected exactin SavedItems Dimiliki oleh koleksi atau jadual
exactin   "Windows" exactin "Untuk memaparkan Windows dalam sistem pengendalian Windows..." Ujian substring (sensitif huruf)
dalam   Gallery1.Selected dalam SavedItems Dimiliki oleh koleksi atau jadual
dalam   dalam "Papan kekunci dan monitor..." Ujian substring (tidak sensitif huruf)
@ Operator penyahtaksaan MyTable[@fieldname] Penyahtaksaan medan
@   [@MyVariable] Penyahtaksaan global
,
[bergantung kepada bahasa]
Pemisah senarai Jika( X < 10, "Rendah", "Baik" )
{ X: 12, Y: 32 }
[ 1, 2, 3 ]
Memisahkan:
  • Argumen dalam panggilan fungsi
  • medan dalam rekod
  • rekod dalam jadual
Aksara ini bergantung pada bahasa.
;
[bergantung kepada bahasa]
Perantaian formula Collect(T, A); Navigate(S1, "") Penggunaan berasingan fungsi dalam sifat tingkah laku. Operator perantaian bergantung pada bahasa.
Sebagai Operator As SemuaPelanggan Sebagai Pelanggan Ganti ThisItem dan ThisRecord dalam fungsi galeri dan skop rekod. As adalah berguna untuk menyediakan nama yang lebih baik dan khusus dan penting khusus dalam senario tersarang.
Diri Swaoperator Self.Fill Akses ke sifat kawalan semasa
Induk Operator induk Parent.Fill Akses kepada sifat bekas kawalan
ThisItem Operator ThisItem ThisItem.FirstName Akses kepada medan Galeri atau kawalan borang
ThisRecord operator ThisRecord ThisRecord.FirstName Akses kepada rekod lengkap dan medan individu rekod dalam fungsi ForAll, Sum, With dan skop rekod yang lain. Boleh diganti dengan operator As.

Nota

@operator juga boleh digunakan untuk mengesahkan jenis objek rekod terhadap sumber data. Sebagai contoh, Collect(coll,Account@{'Account Number: 1111')

operator dalam dan exactin

Gunakan operator in dan exactin untuk mencari rentetan dalam sumber data, seperti koleksi atau jadual yang diimport. Operator dalam mengenal pasti padanan tanpa mengambil kira huruf, dan operator exactinmengenal pasti padanan hanya jika ia dalam huruf besar dengan cara yang sama. Berikut ialah contoh:

  1. Cipta atau import koleksi yang dinamakan Inventori dan tunjukkannya dalam galeri, sebagai prosedur pertama dalam Tunjukkan imej dan teks dalam galeri seperti yang diterangkan.

  2. Tetapkan sifat Item galeri kepada formula ini:
    Penapis(Inventori, "E" dalam ProductName)

    Galeri menunjukkan semua produk kecuali Callisto kerana nama produk tersebut adalah satu-satunya yang tidak mengandungi huruf yang anda tentukan.

  3. Tukar sifat Item galeri kepada formula ini:
    Penapis(Inventori, "E" exactin ProductName)

    Galeri menunjukkan hanya Europa kerana hanya namanya mengandungi huruf yang anda nyatakan dalam huruf yang anda nyatakan.

Operator ThisItem, ThisRecord dan As

Beberapa kawalan dan fungsi menggunakan formula kepada rekod individu dalam jadual. Untuk merujuk kepada rekod individu dalam formula, gunakan salah satu daripada yang berikut:

Operator Terpakai kepada Penerangan
ThisItem kawalan Galeri
kawalan Edit borang
kawalan Borang paparan
Nama lalai untuk rekod semasa dalam Galeri atau kawalan borang.
ThisRecord ForAll, Filter, With, Sum dan fungsi skop rekod lain Nama lalai untuk rekod semasa dalam fungsi ForAll dan skop rekod yang lain.
Sebagainama kawalan Galeri
ForAll, Filter, With, Sum dan fungsi skop rekod lain
Mentakrifkan nama untuk rekod semasa, menggantikan ThisItem atau ThisRecord lalai. Gunakan As untuk membuat formula lebih mudah untuk difahami dan selesaikan kekaburan semasa penyarangan.

Operator ThisItem

Sebagai contoh, dalam kawalan Galeri berikut, sifat Item ditetapkan kepada sumber data Pekerja (seperti jadual Pekerja termasuk sampel Peniaga Northwind):

Employees

Pekerja ditunjukkan dalam galeri.

Item pertama dalam galeri adalah replika templat untuk setiap pekerja. Dalam templat, formula untuk gambar tersebut menggunakan ThisItem untuk merujuk kepada item semasa:

ThisItem.Picture

Formula untuk gambar pekerja.

Begitu juga dengan formula untuk nama tersebut menggunakan ThisItem:

ThisItem.'First Name' & " " & ThisItem.'Last Name'

Formula untuk yang pertama dan nama akhir pekerja.

Operator ThisRecord

ThisRecord digunakan dalam fungsi yang mempunyai skop rekod. Contohnya, kita boleh menggunakan fungsi Filter dengan sifat Items galeri kami untuk hanya menunjukkan nama pertama bermula dengan M:

Filter( Employees, StartsWith( ThisRecord.Employee.'First Name', "M" ) )

Menapis pekerja berdasarkan nama, menggunakan ThisRecord.

ThisRecord adalah pilihan dan tersirat dengan menggunakan medan secara langsung, contohnya, dalam kes ini, kami dapat menulis:

Filter( Employees, StartsWith( 'First Name', "M" ) )

Walaupun pilihan, menggunakan ThisRecord boleh menjadikan formula lebih mudah untuk difahami dan mungkin diperlukan dalam situasi yang kabur yang nama medan mungkin juga menjadi nama perhubungan. ThisRecord adalah pilihan manakala ThisItem sentiasa diperlukan.

Gunakan ThisRecord untuk rujukan rekod keseluruhan dengan fungsi Patch, Collect dan skop rekod yang lain. Contohnya, formula berikut menetapkan status untuk semua pekerja tidak aktif kepada aktif:

With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
      ForAll( InactiveEmployees,
              Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )

Operator As

Gunakan Sebagai operator untuk menamakan rekod dalam galeri atau fungsi skop rekod, menggantikan ThisItem atau ThisRecord lalai. Menamakan rekod boleh menjadikan formula anda lebih mudah untuk difahami dan mungkin diperlukan dalam situasi tersarang untuk mengakses rekod dalam skop lain.

Contohnya, anda boleh mengubah suai sifat Items galeri kami untuk menggunakan As untuk mengenal pasti bahawa kami sedang bekerja dengan Pekerja:

Employees As Employee

Galeri pekerja, menggunakan Sebagai pengendali.

Formula untuk gambar dan nama dilaraskan untuk menggunakan nama ini untuk rekod semasa:

Employee.Picture

Gambar pekerja menggunakan set Nama pekerja dengan operator As.

Employee.'First Name' & " " & Employee.'Last Name'

Pertama dan nama akhir pekerja menggunakan set Nama pekerja dengan pengendali As.

As juga boleh digunakan dengan fungsi skop rekod untuk menggantikan nama lalai ThisRecord. Kita boleh menggunakan ini kepada contoh kami yang sebelumnya untuk menjelaskan rekod yang kami sedang bekerja:

With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
      ForAll( InactiveEmployees As Employee,
              Patch( Employees, Employee, { Status: 'Status (Employees)'.Active } ) ) )

Apabila galeri penyarangan dan fungsi skop rekod, ThisItem dan ThisRecord sentiasa merujuk kepada skop yang paling dalam, meninggalkan rekod di bahagian luar skop tidak tersedia. Gunakan Sebagai untuk membuat semua skop rekod tersedia dengan setiap satu diberikan nama unik.

Contohnya, formula ini menghasilkan pola papan catur sebagai rentetan teks dengan dua penyarangan fungsi ForAll:

Concat(
    ForAll( Sequence(8) As Rank,
        Concat(
            ForAll( Sequence(8) As File,
                    If( Mod(Rank.Value + File.Value, 2) = 1, " X ", " . " )
            ),
            Value
        ) & Char(10)
    ),
    Value
)

Menetapkan kawalan Label sifat Teks kepada paparan formula ini:

Teks papan catur ditunjukkan dalam kawalan label.

Mari kita bincangkan apa yang berlaku di sini:

  • Kita mulakan dengan mengulangi jadual tidak bernama 8 rekod bernombor dari fungsi Sequence. Gelung ini adalah untuk setiap baris papan dan kami menamakannya ini yang biasa dirujuk sebagai Kedudukan.
  • Untuk setiap baris, kami mengulangi satu lagi jadual 8 lajur tidak bernama dan kami memberikan nama biasa Fail.
  • Jika Rank.Value + File.Value adalah nombor ganjil, kuasa dua ditandakan X, sebaliknya ditandakan titik. Bahagian formula ini merujuk kepada kedua-dua gelung ForAll, boleh dilakukan dengan menggunakan Sebagai operator.
  • Concat digunakan dua kali, pertama untuk memasang lajur dan kemudian baris, dengan Char(10) ditambah untuk mencipta baris baharu.

Contoh sama tidak mustahil dengan kawalan Galeri bersarang berbanding fungsi ForAll. Mari kita mulakan dengan galeri menegak untuk Kedudukan. Kawalan Galeri ini akan mempunyai formula Items:

Sequence(8) as Rank

Ilustrasi galeri luar yang menyediakan lelaran Pangkat.

Dalam galeri ini, kami akan meletakkan galeri mendatar untuk Fail tersebut yang akan replikasi untuk setiap Kedudukan dengan sifat Item:

Sequence(8) as File

Ilustrasi galeri dalaman yang menyediakan lelaran Fail.

Dan akhirnya, dalam galeri ini, kami akan menambah kawalan Label yang akan replikasi untuk setiap Fail dan Kedudukan. Kami akan mengukurnya untuk mengisi ruang keseluruhan dan menggunakan sifat Isi untuk menyediakan warna dengan formula ini:

If( Mod( Rank.Value + File.Value, 2 ) = 1, Green, Beige )

Kawalan label dalam kedua-dua galeri yang menyediakan warna berselang-seli untuk papan catur.

Swaoperator dan operator induk

Terdapat tiga cara untuk merujuk kepada kawalan dan sifatnya dalam formula:

Kaedah Penerangan
Dengan nama kawalan Sebarang kawalan boleh dirujuk dengan nama daripada mana-mana dalam aplikasi.

Contohnya, Label1.Fill merujuk kepada sifat Isian kawalan bernama Label1.
Swaoperator Ia selalunya sesuai untuk merujuk lain-lain sifat kawalan yang sama apabila menulis formula. Daripada menggunakan rujukan mutlak dengan nama, ianya lebih mudah dan lebih mudah alih untuk menggunakan rujukan berkaitan diri sendiri. Swaoperator menyediakan akses mudah kepada kawalan semasa.

Contohnya, Self.Fill merujuk kepada isian warna kawalan semasa.
operator Induk Sesetengah kawalan menghos kawalan yang lain seperti Skrin dan kawalan Galeri. Kawalan pengehosan bagi kawalan di dalamnya dipanggil induk. Seperti Swaoperator, operator Induk menyediakan rujukan berkaitan yang mudah kepada kawalan bekas.

Contohnya, Parent.Fill merujuk kepada isian sifat kawalan yang merupakan bekas untuk kawalan semasa.

Diri dan Induk adalah operator dan bukan sifat pada kawalan sendiri. Merujuk kepada Parent.Parent, Self.Parent atau Parent.Self tidak disokong.

Nama pengecam

Nama pemboleh ubah, sumber data, lajur dan objek lain boleh mengandungi sebarang Unikod.

Gunakan tanda petikan tunggal di sekitar nama yang mengandungi ruang atau aksara khas lain.
Gunakan dua tanda petikan tunggal bersama untuk mewakili satu tanda petikan tunggal dalam nama. Nama yang tidak mengandungi aksara khas tidak memerlukan tanda petikan tunggal.

Berikut ialah beberapa contoh nama lajur yang mungkin anda temui dalam jadual, dan cara ia diwakili dalam formula:

Nama lajur dalam pangkalan data Rujukan lajur dalam formula
SimpleName SimpleName
NameWith123Numbers NameWith123Numbers
Nama dengan ruang 'Name with spaces'
Nama dengan tanda petikan "berganda" 'Name with "double" quotes'
Nama dengan tanda petikan 'tunggal' 'Name with ''single'' quotes'
Nama dengan tanda @ 'Name with an @ at sign'

Tanda petikan berganda digunakan untuk Menentukan rentetan teks.

Nama paparan dan nama logik

Sesetengah sumber data seperti SharePoint dan Microsoft Dataverse mempunyai dua nama yang berbeza untuk merujuk kepada jadual atau lajur data yang sama:

  • Nama logik - Nama yang dijamin unik, tidak berubah selepas dicipta, biasanya tidak membenarkan ruang atau aksara khas lain, dan tidak disetempatkan ke dalam bahasa yang berbeza. Oleh itu, namanya boleh disembunyikan. Nama ini digunakan oleh pembangun profesional. Contohnya, cra3a_customfield. Nama ini juga mungkin dirujukkan sebagai nama skema atau Nama sahaja.

  • Nama paparan - Nama yang mesra pengguna dan bertujuan untuk dilihat oleh pengguna akhir. Nama ini mungkin tidak unik, mungkin berubah dari semasa ke semasa, mungkin mengandungi ruang dan sebarang aksara Unikod, dan mungkin disetempatkan ke dalam bahasa lain. Sepadan dengan contoh di atas, nama paparan mungkin Medan Tersuai dengan ruang antara perkataan.

Oleh kerana nama paparan lebih mudah untuk difahami, aplikasi kanvas akan mencadangkan ia sebagai pilihan dan tidak mencadangkan nama logik. Walaupun nama logik tidak dicadangkan, ia masih boleh digunakan jika ditaip secara tidak langsung.

Sebagai contoh, bayangkan anda telah menambah Medan Tersuai ke jadual dalam Dataverse. Nama logik akan ditugaskan untuk anda oleh sistem yang anda boleh ubah suai hanya apabila mencipta medan. Hasilnya akan kelihatan serupa dengan:

Jadual akaun dengan Medan Tersuai ditambah, menunjukkan nama paparan

Apabila mengarang rujukan kepada medan Akaun, cadangan akan dibuat untuk menggunakan 'Medan Tersuai' kerana ini ialah nama paparan. Petikan tunggal mesti digunakan kerana nama ini mempunyai ruang di dalamnya:

Bar formula studio menunjukkan cadangan untuk nama medan Akaun dengan nama paparan 'Medan Tersuai' diserlahkan.

Selepas memilih cadangan, 'Medan Tersuai' ditunjukkan dalam bar formula dan data tersebut didapatkan semula:

Bar formula studio menunjukkan penggunaan nama paparan 'Medan Tersuai' untuk medan.

Walaupun ia tidak dicadangkan, kita juga boleh menggunakan nama logik untuk medan ini. Ini akan menyebabkan data yang sama didapatkan kembali. Petikan tunggal tidak diperlukan kerana nama ini tidak mengandungi ruang atau aksara khas:

Bar formula studio menunjukkan penggunaan cr5e3_customfield nama logik untuk medan.

Di sebalik tabir, pemetaan dikekalkan antara nama paparan yang dilihat dalam formula dan nama logik asas. Oleh sebab nama logik mesti digunakan untuk berinteraksi dengan sumber data, pemetaan ini digunakan untuk menukar nama paparan semasa kepada nama logik secara automatik dan itulah yang dilihat dalam trafik rangkaian. Pemetaan ini juga digunakan untuk menukar kembali kepada nama logik untuk bertukar kepada nama paparan baharu, contohnya, jika nama paparan berubah atau pembuat dalam bahasa lain mengedit aplikasi.

Nota

Nama logik tidak diterjemahkan apabila memindahkan aplikasi antara persekitaran. Untuk jadual sistem dan nama medan Dataverse, ini tidak akan menjadi masalah kerana nama logik adalah konsisten merentasi persekitaran. Tetapi sebarang medan tersuai, seperti cra3a_customfield dalam contoh ini di atas, mungkin mempunyai awalan persekitaran yang berbeza (cra3a dalam kes ini). Nama paparan lebih disukai kerana ia dapat dipadankan dengan nama paparan dalam persekitaran baharu.

Penyahtaksaan nama

Memandangkan nama paparan tidak unik, nama paparan yang sama mungkin muncul lebih daripada sekali dalam jadual yang sama. Apabila ini berlaku, nama logik akan ditambah di hujung nama paparan dalam kurungan untuk salah satu daripada lebih nama yang berkonflik. Berdasarkan contoh di atas, jika terdapat medan kedua dengan nama paparan Medan Tersuai yang sama dengan nama logik cra3a_customfieldalt maka cadangan akan menunjukkan:

Bar formula studio menunjukkan penggunaan nama logik cr5e3_customfieldalt untuk nyahkekaburan dua versi

Nama rentetan penyahtaksaan ditambah dalam situasi lain di mana konflik nama berlaku, seperti nama jadual, pilihan dan item Dataverse yang lain.

Operator penyahtaksaan

Sesetengah fungsi mencipta skop rekod untuk mengakses medan jadual sambil memproses setiap rekod, seperti Filter, AddColumns dan Sum. Nama medan ditambah dengan skop rekod menggantikan nama yang sama dari tempat lain dalam aplikasi. Apabila ini berlaku, anda masih boleh mengakses nilai daripada luar skop rekod dengan operator penyahtaksaan @:

  • Untuk mengakses nilai daripada skop rekod bersarang, gunakan operator @ dengan nama jadual dioperasikan selepas menggunakan corak ini:
    Jadual[@FieldName]
  • Untuk mengakses nilai global, seperti sumber data, koleksi dan pemboleh ubah konteks, gunakan corak [@ObjectName] (tanpa penetapan jadual).

Untuk mendapatkan maklumat lanjut dan contoh, lihat skop rekod.