Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Catatan
Microsoft Power Fx adalah nama baru untuk bahasa rumus aplikasi kanvas. Artikel ini sedang berlangsung saat Microsoft mengekstrak bahasa dari aplikasi kanvas, mengintegrasikannya dengan produk Microsoft Power Platform lainnya, dan membuatnya tersedia sebagai sumber terbuka. Mulai dengan Ikhtisar Microsoft Power Fx untuk pengantar bahasa.
Pelajari bagaimana variabel Power Fx berbeda dari variabel dalam alat seperti Visual Basic atau JavaScript, dan kapan rumus adalah pilihan yang lebih baik. Artikel ini menjelaskan cara memilih variabel global, variabel konteks, atau koleksi untuk mengelola nilai dan status aplikasi.
Di alat lain, Anda mungkin secara eksplisit melakukan perhitungan dan menyimpan hasilnya dalam variabel. Namun, Power Fx dan Excel akan secara otomatis menghitung ulang rumus saat data input berubah, sehingga Anda biasanya tidak perlu membuat dan memperbarui variabel. Dengan mengambil pendekatan ini kapanpun bila memungkinkan, Anda dapat lebih mudah membuat, memahami, dan memelihara aplikasi Anda.
Dalam beberapa kasus, Anda perlu menggunakan variabel di Power Fx. Power Fx memperluas model Excel dengan menambahkan rumus perilaku. Rumus ini berjalan saat, misalnya, pengguna memilih tombol. Dalam rumus perilaku, seringkali berguna untuk mengatur variabel yang akan digunakan dalam rumus lain.
Secara umum, hindari penggunaan variabel. Namun terkadang hanya variabel yang dapat mengaktifkan pengalaman yang diinginkan. Anda secara implisit membuat dan mengetik variabel saat muncul dalam fungsi yang mengatur nilainya.
Terjemahkan Excel ke Power Fx
Excel
Mari kita ulas cara kerja Excel. Sel dapat berisi nilai, seperti angka atau string, atau rumus yang didasarkan pada nilai sel lainnya. Setelah pengguna memasukkan nilai yang berbeda ke dalam sel, Excel akan secara otomatis menghitung ulang rumus yang bergantung pada nilai baru. Anda tidak perlu melakukan pemrograman untuk mengaktifkan perilaku ini.
Dalam contoh berikut, sel A3 diatur ke rumus A1+A2. Jika A1 atau A2 berubah, A3 akan secara otomatis dihitung ulang untuk mencerminkan perubahan. Perilaku ini tidak memerlukan pengkodean di luar rumus itu sendiri.
Excel tidak memiliki variabel. Nilai sel yang berisi perubahan rumus berdasarkan inputnya, namun tidak ada cara untuk mengingat hasil rumus dan menyimpannya di sel atau di tempat lain. Jika Anda mengubah nilai sel, seluruh lembar bentang mungkin berubah, dan nilai yang dihitung sebelumnya akan hilang. Pengguna Excel dapat menyalin dan menempelkan sel, namun yang ada di dalam kontrol manual pengguna dan tidak dimungkinkan dengan rumus.
Power Fx
Logika yang Anda buat di Power Fx berperilaku sangat mirip dengan Excel. Alih-alih memperbarui sel, Anda dapat menambahkan kontrol di mana pun Anda inginkan pada layar dan menamai mereka untuk digunakan dalam rumus.
Contoh di Power Apps, Anda dapat mereplikasi perilaku Excel dalam aplikasi dengan menambahkan kontrol Label, bernama Label1, dan dua kontrol Input teks, bernama TextInput1 dan TextInput2. Jika Anda kemudian mengatur properti TeksLabel1 ke TextInput1.Text + TextInput2.Text, selalu menampilkan jumlah angka apa pun yang ada di TextInput1 dan TextInput2 secara otomatis.
Perhatikan bahwa kontrol Label1 dipilih, menampilkan rumus Teks di bilah rumus di bagian atas layar. Di sini Anda menemukan rumus TextInput1.Text + TextInput2.Text. Rumus ini membuat ketergantungan antara kontrol ini, hanya sebagai dependensi dibuat antara sel di buku kerja Excel. Mari kita ubah nilai TextInput1:
Rumus untuk Label1 dihitung ulang secara otomatis, memperlihatkan nilai baru.
Di Power Fx, Anda dapat menggunakan rumus untuk menentukan tidak hanya nilai utama kontrol tetapi juga properti seperti pemformatan. Dalam contoh berikutnya, rumus untuk properti Warna label secara otomatis memperlihatkan nilai negatif berwarna merah. Fungsi If seharusnya terlihat akrab dari Excel:
If( Value(Label1.Text) < 0, Color.Red, Color.Black )
Anda dapat menggunakan rumus untuk berbagai skenario:
- Dengan menggunakan GPS perangkat, kontrol peta dapat menampilkan lokasi Anda saat ini dengan rumus yang menggunakan Location.Latitude dan Location.Longitude. Saat Anda bergerak, peta secara otomatis melacak lokasi Anda.
- Pengguna lain dapat memperbarui sumber data. Misalnya, orang lain di tim Anda mungkin memperbarui item dalam daftar SharePoint. Saat Anda me-refresh sumber data, rumus dependen apa pun secara otomatis dihitung ulang untuk mencerminkan data yang diperbarui. Selanjutnya contoh, Anda mungkin mengatur properti Item galeri ke filter rumus( SharePointList ), yang secara otomatis menampilkan kumpulan rekaman yang baru difilter.
Manfaat rumus Power Fx
Menggunakan rumus untuk membangun aplikasi menawarkan banyak keuntungan:
- Jika Anda mengenal Excel, Anda mengenal Power Fx. Model dan rumus bahasanya sama.
- Jika Anda menggunakan alat pemrograman lain, pertimbangkan berapa banyak kode yang anda perlukan untuk menyelesaikan contoh-contoh ini. Di Visual Basic, Anda harus menulis penanganan aktivitas untuk aktivitas perubahan pada setiap kontrol input teks. Kode untuk melakukan perhitungan di setiap penanganan aktivitas ini berlebihan dan bisa tidak sinkron, atau Anda harus menulis subroutine umum. Di Power Fx, Anda menyelesaikan semua pekerjaan tersebut dengan rumus satu baris.
- Untuk memahami dari mana teks Label1 berasal, Anda tahu persis di mana harus melihat: rumus di properti Teks . Tidak ada cara lain untuk mempengaruhi teks kontrol ini. Di alat pemrograman tradisional, setiap penanganan aktivitas atau subrutin dapat mengubah nilai label, dari mana pun dalam program. Pendekatan ini dapat menyulitkan untuk melacak kapan dan di mana variabel diubah.
- Jika pengguna mengubah kontrol penggeser lalu berubah pikiran, mereka dapat mengubah penggeser kembali ke nilai semula. Seolah-olah tidak ada yang pernah berubah: aplikasi menunjukkan nilai kontrol yang sama seperti sebelumnya. Tidak ada konsekuensi untuk bereksperimen dan bertanya "bagaimana jika," sama seperti di Excel.
Secara umum, jika Anda dapat mencapai efek dengan menggunakan rumus, Anda lebih baik. Biarkan mesin rumus di Power Fx melakukan pekerjaan untuk Anda.
Tahu kapan untuk menggunakan variabel
Mari ubah Adder sederhana kita untuk bertindak seperti mesin penambahan kuno, dengan total yang berjalan. Jika Anda memilih tombol Tambahkan , Anda menambahkan angka ke total yang sedang berjalan. Jika Anda memilih tombol Hapus , Anda mengatur ulang total yang sedang berjalan menjadi nol.
| Tampilan | KETERANGAN |
|---|---|
|
Saat aplikasi dimulai, total yang berjalan adalah 0. Titik merah menunjukkan jari pengguna di kotak input teks, di mana pengguna memasukkan 77. |
|
Pengguna memilih tombol Tambahkan. |
|
77 ditambahkan ke total yang berjalan. Pengguna memilih tombol Tambahkan lagi. |
|
77 lagi ditambahkan ke total yang berjalan, sehingga hasilnya adalah 154. Pengguna memilih tombol Hapus. |
|
Total yang berjalan diatur ulang ke 0. |
Mesin penambahan kami menggunakan sesuatu yang tidak ada di Excel: tombol. Dalam aplikasi ini, Anda tidak dapat menggunakan hanya rumus untuk menghitung total yang berjalan karena nilainya bergantung pada serangkaian tindakan yang diambil pengguna. Sebagai gantinya, Anda harus merekam dan memperbarui total yang berjalan secara manual. Sebagian besar alat pemrograman menyimpan informasi ini dalam variabel.
Terkadang Anda memerlukan variabel untuk aplikasi Anda agar berperilaku seperti yang Anda inginkan. Namun pendekatan datang dengan peringatan:
- Anda harus secara manual memperbarui total yang berjalan. Penghitungan ulang otomatis tidak akan melakukannya untuk Anda.
- Anda tidak dapat menghitung total yang sedang berjalan berdasarkan nilai kontrol lain. Tergantung pada berapa kali pengguna memilih tombol Tambahkan dan nilai apa yang ada di kontrol input teks setiap kali. Apakah pengguna memasukkan 77 dan memilih Tambahkan dua kali, atau apakah mereka menentukan 24 dan 130 untuk setiap penambahan? Anda tidak dapat membedakan setelah total mencapai 154.
- Perubahan terhadap totalnya dapat berasal dari jalur yang berbeda. Pada contoh ini, kedua tombol Tambah dan Hapus dapat memperbarui totalnya. Jika aplikasi tidak berperilaku seperti yang Anda harapkan, tombol apa yang menyebabkan masalah?
Gunakan variabel global
Untuk membuat mesin penambahan, Anda memerlukan variabel untuk menahan total yang sedang berjalan. Variabel paling sederhana untuk bekerja di Power Fx adalah variabel global.
Cara kerja variabel global:
- Gunakan fungsi Atur untuk mengatur nilai variabel global. Set( MyVar, 1 ) menetapkan variabel global MyVar ke nilai 1.
- Gunakan variabel global dengan mereferensikan nama yang Anda gunakan dengan fungsi Set . Dalam hal ini, MyVar mengembalikan 1.
- Variabel global dapat menyimpan nilai apa pun, termasuk string, angka, data, dan tabel.
Mari kita membangun ulang mesin penambahan dengan menggunakan variabel global:
Tambahkan kontrol input teks, bernama TextInput1, dan dua tombol bernama Button1 dan Button2.
Atur properti Teks dari Button1 ke "Tambahkan", dan atur properti Teks dari Button2 menjadi "Hapus".
Untuk memperbarui total yang berjalan setiap kali pengguna memilih tombol Tambahkan, atur properti OnSelect ke rumus ini:
Set( RunningTotal, RunningTotal + TextInput1.Text )
Keberadaan rumus ini membentuk RunningTotal sebagai variabel global yang memiliki angka karena operator +. Anda dapat merujuk RunningTotal di mana pun di aplikasi. Setiap kali pengguna membuka aplikasi ini, RunningTotal memiliki nilai awal kosong.
Pertama kali pengguna memilih tombol Tambahkan dan Atur berjalan, RunningTotal diatur ke nilai RunningTotal + TextInput1.
Untuk mengatur total yang berjalan ke 0 setiap kali pengguna memilih tombol Hapus, atur properti OnSelect ke rumus ini:
Set( RunningTotal, 0 )
Tambahkan kontrol Label, dan atur properti Teks ke RunningTotal.
Rumus ini secara otomatis menghitung ulang dan memperlihatkan nilai RunningTotal kepada pengguna saat berubah berdasarkan tombol yang dipilih pengguna.
Pratinjau aplikasi, dan Anda memiliki mesin penambahan seperti yang dijelaskan sebelumnya. Masukkan angka di kotak teks dan tekan tombol Tambahkan beberapa kali. Setelah siap, kembali ke pengalaman penulisan dengan menggunakan kunci Esc .
Untuk menampilkan nilai variabel global, pilih menu File, lalu pilih Variabel di panel kiri.
Untuk menampilkan semua tempat di mana variabel didefinisikan dan digunakan, pilih.
Jenis variabel
Power Fx memiliki dua jenis variabel:
| Jenis variabel | Scope | KETERANGAN | Fungsi yang menetapkan |
|---|---|---|---|
| Variabel global | App | Mudah untuk digunakan. Menyimpan angka, string teks, Boolean, rekaman, tabel, dan lainnya. Anda dapat mereferensikannya dari mana saja di aplikasi. | Set |
| Koleksi | App | Menyimpan tabel yang dapat Anda referensikan dari mana saja di aplikasi. Anda dapat mengubah konten tabel daripada mengaturnya secara keseluruhan. Anda dapat menyimpannya ke perangkat lokal untuk digunakan nanti. |
Collect ClearCollect |
Saat menggunakan Power Apps, Anda akan melihat jenis variabel ketiga:
| Jenis variabel | Scope | KETERANGAN | Fungsi yang menetapkan |
|---|---|---|---|
| Variabel konteks | Layar | Sangat bagus untuk meluluskan nilai ke layar, seperti parameter ke prosedur dalam bahasa lain. Anda hanya dapat mereferensikannya dari satu layar. |
UpdateContext Navigate |
Membuat dan menghapus variabel
Anda membuat semua variabel secara implisit saat muncul dalam fungsi Set, UpdateContext, Navigate, Collect, atau ClearCollect . Untuk mendeklarasikan variabel dan jenisnya, cukup sertakan dalam salah satu fungsi ini di mana saja di aplikasi Anda. Tidak satu pun dari fungsi ini membuat variabel; mereka hanya mengisi variabel dengan nilai. Anda tidak pernah mendeklarasikan variabel secara eksplisit seperti Anda mungkin melakukannya dalam alat pemrograman lain, dan semua pengetikan bersifat implisit dari penggunaan.
Misalnya, Anda mungkin memiliki kontrol tombol dengan rumus OnSelect sama dengan Set( X, 1 ). Rumus ini menetapkan X sebagai variabel dengan jenis angka. Anda dapat menggunakan X dalam rumus sebagai angka, dan variabel tersebut memiliki nilai kosong setelah Anda membuka aplikasi, namun sebelum Anda memilih tombol. Bila Anda memilih tombolnya, Anda berikan X nilai dari 1.
Jika Anda menambahkan tombol lain dan mengatur properti OnSelect-nya ke Set( X, "Hello" ), kesalahan terjadi karena jenis (string teks) tidak cocok dengan jenis di Set (angka) sebelumnya. Semua definisi implisit dari variabel harus setuju pada jenis. Sekali lagi, semua ini terjadi karena Anda menyebutkan X dalam rumus, bukan karena salah satu rumus tersebut benar-benar berjalan.
Anda menghapus variabel dengan menghapus semua fungsi Atur, UpdateContext, Navigasikan, Kumpulkan, atau ClearCollect yang secara implisit menetapkan variabel. Tanpa fungsi tersebut, variabel tidak ada. Anda juga harus menghapus referensi apa pun ke variabel karena menyebabkan kesalahan.
Variabel seumur hidup dan nilai awal
Aplikasi ini menyimpan semua variabel dalam memori saat berjalan. Setelah aplikasi ditutup, nilai yang disimpan variabel akan hilang.
Anda dapat menyimpan konten variabel di sumber data dengan menggunakan fungsi Patch atau Kumpulkan. Anda juga dapat menyimpan nilai dalam koleksi pada perangkat lokal dengan menggunakan fungsi SaveData.
Saat pengguna membuka aplikasi, semua variabel memiliki nilai awal kosong.
Membaca variabel
Gunakan nama variabel untuk membaca nilainya. Misalnya, Anda dapat menentukan variabel dengan rumus ini:
Set( Radius, 12 )
Kemudian Anda cukup menggunakan Radius di mana saja yang dapat Anda gunakan angka, dan menggantinya dengan 12:
Pi() * Power( Radius, 2 )
Jika Anda memberikan nama variabel konteks yang sama dengan variabel global atau koleksi, variabel konteks akan diutamakan. Namun, Anda masih dapat membuat referensi variabel atau koleksi global jika menggunakan operator disambiguasi[@Radius].
Gunakan variabel konteks (Power Apps saja)
Berikut cara membuat mesin penambahan menggunakan variabel konteks alih-alih variabel global.
Cara kerja variabel konteks:
- Anda secara implisit menetapkan dan mengatur variabel konteks dengan menggunakan fungsi UpdateContext atau Navigate. Saat pengguna membuka aplikasi, nilai awal dari semua variabel konteks adalah kosong.
- Anda memperbarui variabel konteks dengan data. Di alat pemrograman lain, biasanya Anda menggunakan "=" untuk tugas, seperti dalam "x = 1". Untuk variabel konteks, gunakan { x: 1 } sebagai gantinya. Bila Anda menggunakan variabel konteks, gunakan namanya secara langsung tanpa sintaks data.
- Anda juga dapat mengatur variabel konteks saat Anda menggunakan fungsi Navigate untuk menampilkan layar. Jika Anda memikirkan layar sebagai semacam prosedur atau subrutin, pendekatan ini menyerupai parameter yang masuk dalam alat pemrograman lain.
- Kecuali untuk Navigate, variabel konteks terbatas pada konteks layar tunggal, yang merupakan tempat mereka mendapatkan nama mereka. Anda tidak dapat menggunakan atau mengaturnya di luar konteks ini.
- Variabel konteks dapat menyimpan nilai apa pun, termasuk string, angka, data, dan tabel.
Mari kita membangun ulang mesin penambahan dengan menggunakan variabel konteks:
Tambahkan kontrol input teks, bernama TextInput1, dan dua tombol bernama Button1 dan Button2.
Atur properti Teks dari Button1 ke "Tambahkan", dan atur properti Teks dari Button2 menjadi "Hapus".
Untuk memperbarui total yang berjalan setiap kali pengguna memilih tombol Tambahkan, atur properti OnSelect ke rumus ini:
UpdateContext( { RunningTotal: RunningTotal + TextInput1.Text } )
Keberadaan rumus ini membentuk RunningTotal sebagai variabel konteks yang memiliki angka karena operator +. Anda dapat merujuk RunningTotal di mana pun di layar ini. Setiap kali pengguna membuka aplikasi ini, RunningTotal memiliki nilai awal kosong.
Pertama kali pengguna memilih tombol Tambahkan dan UpdateContext berjalan, RunningTotal diatur ke nilai RunningTotal + TextInput1.
Untuk mengatur total yang berjalan ke 0 setiap kali pengguna memilih tombol Hapus, atur properti OnSelect ke rumus ini:
UpdateContext( { RunningTotal: 0 } )
Sekali lagi, UpdateContext digunakan dengan rumus UpdateContext( { RunningTotal: 0 } ).
Tambahkan kontrol Label, dan atur properti Teks ke RunningTotal.
Rumus ini secara otomatis menghitung ulang dan memperlihatkan nilai RunningTotal kepada pengguna saat berubah berdasarkan tombol yang dipilih pengguna.
Pratinjau aplikasi dan Anda memiliki mesin penambahan seperti yang dijelaskan sebelumnya. Masukkan angka di kotak teks dan tekan tombol Tambahkan beberapa kali. Setelah siap, kembali ke pengalaman penulisan dengan menggunakan kunci Esc .
Anda dapat mengatur nilai variabel konteks saat menavigasi ke layar. Teknik ini berguna untuk meneruskan "konteks" atau "parameter" dari satu layar ke layar lainnya. Untuk mendemonstrasikan teknik ini, masukkan layar, masukkan tombol, dan atur properti OnSelect ke rumus ini:
Navigasikan( Screen1, None, { RunningTotal: -1000 } )
Tahan tombol Alt saat Anda memilih tombol ini untuk menampilkan Screen1 dan mengatur variabel konteks RunningTotal ke -1000.
Untuk menampilkan nilai variabel konteks, pilih menu File, lalu pilih Variabel di panel kiri.
Pilih variabel konteks untuk melihat di mana variabel tersebut ditentukan dan digunakan.
Gunakan koleksi
Akhirnya, mari lihat pembuatan mesin penambahan kami dengan koleksi. Karena koleksi menyimpan tabel yang dapat Anda ubah dengan mudah, mesin yang menambahkan ini menyimpan "pita kertas" dari setiap nilai saat Anda memasukkannya.
Cara kerja koleksi:
- Gunakan fungsi ClearCollect untuk membuat dan mengatur koleksi. Anda dapat menggunakan fungsi Kumpulkan sebagai gantinya, tetapi secara efektif memerlukan variabel lain alih-alih mengganti yang lama.
- Koleksi adalah sejenis sumber data dan, oleh karena itu, sebuah tabel. Untuk mengakses nilai tunggal dalam koleksi, gunakan fungsi First, dan ekstrak satu bidang dari data yang dihasilkan. Jika Anda menggunakan satu nilai dengan ClearCollect, nilai ini adalah bidang Nilai , seperti dalam contoh ini:
First(VariableName).Value
Mari buat ulang mesin penambahan kami menggunakan koleksi:
Tambahkan kontrol input teks, bernama TextInput1, dan dua tombol bernama Button1 dan Button2.
Atur properti Teks dari Button1 ke "Tambahkan", dan atur properti Teks dari Button2 menjadi "Hapus".
Untuk memperbarui total yang berjalan setiap kali pengguna memilih tombol Tambahkan, atur properti OnSelect ke rumus ini:
Collect( PaperTape, TextInput1.Text )
Keberadaan rumus ini menetapkan PaperTape sebagai koleksi yang memegang tabel kolom tunggal dari string teks. Anda dapat merujuk PaperTape di mana pun di aplikasi ini. Setiap kali pengguna membuka aplikasi ini, PaperTape adalah tabel kosong.
Saat rumus ini berjalan, ini menambahkan nilai baru ke akhir koleksi. Karena Anda menambahkan satu nilai, Kumpulkan secara otomatis menempatkannya dalam tabel kolom tunggal, dan nama kolom adalah Nilai, yang Anda gunakan nanti.
Untuk menghapus pita kertas saat pengguna memilih tombol Hapus, atur properti OnSelect ke rumus ini:
Clear( PaperTape )
Untuk menampilkan total yang berjalan, tambahkan label, dan atur properti Teks ke rumus ini:
Sum( PaperTape, Value )
Untuk menjalankan mesin penambahan, tekan F5 untuk membuka Pratinjau, masukkan angka dalam kontrol input teks, dan pilih tombol.
Untuk kembali ke ruang kerja default, tekan tombol Esc .
Untuk menampilkan pita kertas, masukkan kontrol Tabel data, dan atur properti Item ke rumus ini:
PaperTape
Di panel kanan, pilih Edit bidang, lalu pilih Tambah bidang, pilih kolom Nilai, lalu pilih Tambah untuk menampilkannya.
Untuk melihat nilai di koleksi Anda, pilih Koleksi pada menu File.
Untuk menyimpan dan mengambil koleksi Anda, tambahkan dua kontrol tombol tambahan, dan atur properti Teks untuk Muat dan Simpan. Atur properti OnSelect dari tombol Muat ke rumus ini:
Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )
Anda harus menghapus koleksi terlebih dulu karena LoadData akan menambahkan nilai tersimpan ke akhir koleksi.
Atur properti OnSelect dari tombol Simpan ke rumus ini:
SaveData( PaperTape, "StoredPaperTape" )
Pratinjau lagi dengan menekan tombol F5 , masukkan angka di kontrol input teks, dan pilih tombol. Pilih tombol Simpan. Tutup dan muat ulang aplikasi, lalu pilih tombol Muat untuk memuat ulang koleksi Anda.