Setiap masukan dalam formulir diperiksa validitasnya berdasarkan jenisnya. Misalnya, kolom bertipe Number tidak akan menerima "Hello" sebagai input. Sebuah Valid_If kolom kendala adalah jenis ekspresi yang digunakan dalam situasi di mana validitas input membutuhkan lebih kaya logika data-dependent.
Sebuah Valid_If kendala adalah ekspresi kondisi yang menentukan apakah input pengguna untuk kolom terkait berlaku. Misalnya, contoh Kutipan Kalkulator menggunakan kondisi Valid_If untuk memastikan bahwa Biaya Per Jam harus kurang dari $ 20.
Berikut ini contoh batasan Valid_If yang umum digunakan :
- Apakah nilai kolom memenuhi kondisi yang sederhana? Misalnya, membandingkan nilai dengan konstanta (misalnya [_THIS]> 5 ), atau membandingkan nilai dengan kolom lain (misalnya [_THIS]> [ColumnA] ).
- Apakah nilai kolom dalam daftar? Ini menghasilkan menu dropdown seperti yang dijelaskan dalam artikel Dropdown dari Valid_If .
- Ada banyak cara kolom dapat disembunyikan atau dihilangkan dari tampilan (misalnya dikecualikan dari slice, dikecualikan dari urutan kolom, atau pada halaman yang berbeda dalam bentuk percabangan), sehingga sering tidak jelas apakah memblokir pengguna dimaksudkan atau diharapkan.
- Jika pengguna diblokir oleh kolom tersembunyi yang gagal validasi, pengguna biasanya tidak memiliki cara untuk memperbaikinya dan tidak mengerti mengapa mereka macet. Jika pembuat aplikasi tidak berniat memblokirnya di sana, pengguna mungkin tidak mengerti mengapa, menyebabkan hilangnya produktivitas.
Untuk pembaruan yang dilakukan melalui tindakan, Valid_If ketentuan diberlakukan dalam dua kasus:
- Jika kolom sedang diperbarui menjadi tidak valid, pembaruan diblokir.
- Jika pembaruan menyebabkan kolom yang berbeda menjadi tidak valid, pembaruan diblokir.
Valid_If and Dependent Dropdowns
Menu dropdown tergantung adalah pola desain umum di aplikasi yang menangkap input. Misalnya, pertimbangkan aplikasi seperti sampel Pelacak Utama , yang meminta Wilayah Utama (Amerika, Asia, Eropa), lalu untuk Negara di kawasan itu. Ini sebenarnya membutuhkan logika yang relatif rumit, tetapi AppSheet mencoba membuatnya sederhana. Menu dropdown bergantung didorong oleh tabel pencarian terpisah.
Dalam contoh, ada tabel pencarian Wilayah terpisah dengan dua kolom, Wilayah dan Negara , yang berfungsi untuk menggambarkan kombinasi yang diizinkan dari wilayah dan negara. Berikut adalah tabel data yang digunakan dalam sampel.
Kolom Lead Region memiliki batasan Valid_If biasa : Regions [Region] . Oleh karena itu, ketika entri baru ditambahkan, masukan untuk kolom ini menunjukkan tiga pilihan: Amerika, Asia, dan Eropa.
Demikian juga, kolom Negara menentukan batasan Valid_If yang sama : Kawasan [Negara] . Namun, karena mengikuti kolom Lead Region , dan karena keduanya menentukan kolom dari tabel pencarian yang sama, Regions , AppSheet mengenali maksud dan mengimplementasikan menu dropdown bergantung.
Secara internal, AppSheet menciptakan ekspresi untuk menangkap set nilai yang diizinkan untuk kolom Negara . Ungkapan harus mengatakan (dalam bahasa Inggris!):
- Lihatlah tabel Wilayah .
- Filter baris untuk memastikan kolom Wilayah dari tabel sesuai dengan nilai di kolom Wilayah Timbal dari baris yang sedang diedit dalam formulir.
- Ekstrak kolom Negara dari baris yang difilter tersebut.
- Hilangkan duplikat apa pun - ini adalah negara yang diizinkan!
- Hitung ulang daftar ini setiap kali Lead Region diubah.
Meskipun sebagian besar pembuat aplikasi tidak perlu mengungkapkan sesuatu yang rumit ini, Anda sebenarnya dapat memberikan ekspresi ini sebagai Valid_If constraint. Ini berguna untuk mengetahui kasus penggunaan lanjutan. Misalnya, alih-alih menggunakan kondisi kesetaraan, pembuat aplikasi dapat menggunakan ketidaksetaraan atau ekspresi yang lebih kaya untuk membuat menu tarik-turun dinamis yang sangat ekspresif.