Form
Repeater
Mengisi beberapa baris data dengan kolom yang sama
Repeater digunakan untuk mengisi data yang berulang per baris, misalnya daftar barang yang dibeli dengan nama barang, jumlah, dan harga satuan. Setiap baris memuat field anak yang sama. Semua baris disimpan dalam satu process variable. Komponen ini ada di grup Data pada palette.
Mapping ke Engine
| Tipe Variable | Tipe Kolom Report | Format Value | Contoh |
|---|---|---|---|
| String | text | JSON array, satu objek per baris berkunci key field anak | [{"item_name":"Laptop","qty":2,"unit_price":15000000,"note":""}] |
- Key field anak disimpan pendek (
qty), bukanitems[0].qty. - Field anak tidak dikirim sebagai variabel tingkat atas.
- Nilai Number tetap angka. Number yang kosong dikirim sebagai
null. Field opsional lain yang kosong dikirim sebagai"". - Subtotal hanya tampilan dan tidak ikut dikirim.
Properties
- Name: Label Repeater dalam dua bahasa (EN & ID), tampil di atas tabel.
- Key: Mengikat Repeater ke process variable yang menyimpan semua baris. Key harus unik. Bila dua Repeater memakai key yang sama, muncul "Duplicate Repeater key: … Each Repeater must have a unique key." dan Save Changes nonaktif.
- Fields in each row: Daftar field anak, ditambah lewat Add field. Tipe yang tersedia hanya Text, Number, Textarea, Date, dan Dropdown. Field bisa diurutkan naik turun dan dihapus, minimal tersisa satu field. Klik field untuk mengubah pengaturannya, termasuk format Rupiah untuk Number. Key ganda di Repeater yang sama ditandai "Duplicate field key: …".
- Required in every row: Field ini wajib diisi di setiap baris.
- Show rows as:
TableatauCards. - On phones: Hanya tampil bila Show rows as =
Table. Mengatur tampilan di layar di bawah 640 px:Cards,Table, atauHidden(Repeater tidak ditampilkan).- Read only on phones: Field Repeater tidak bisa diubah di layar di bawah 640 px.
- Row subtotal: Menampilkan subtotal per baris dari perkalian dua field Number. Hanya bisa diaktifkan bila ada tepat satu Number biasa dan satu Number Rupiah. Bila syarat itu belum terpenuhi, tampil "Requires one Number and one Number Rupiah field".
- Hide If: Ekspresi FEEL untuk menyembunyikan komponen. Komponen disembunyikan ketika ekspresi bernilai
true, dievaluasi ulang saat nilai field lain berubah. - Validation:
- Required: Menandai Repeater sebagai wajib. Repeater tidak memiliki Required If.
- Min rows: Jumlah baris minimal, paling kecil 1. Tidak bisa melebihi Max rows.
- Max rows: Jumlah baris maksimal. Tidak bisa lebih kecil dari Min rows.
Field juga bisa diseret dari palette ke dalam Repeater di kanvas. Tipe selain lima tipe di atas ditolak, begitu juga Repeater di dalam Repeater.
Perilaku saat diisi
- Form dibuka dengan baris kosong sebanyak Min rows. Tombol hapus baris hanya tampil bila jumlah baris lebih dari Min rows.
- Baris ditambah lewat tombol Add row. Saat jumlah baris mencapai Max rows, tombol itu hilang dan tampil "Maximum of 5 rows reached.".
- Field wajib yang kosong dicek per baris, dengan pesan seperti "Row 2: Qty is required".
- Pada tampilan Cards, setiap baris menjadi kartu "Row 1", "Row 2", dan seterusnya. Kartu yang diciutkan menampilkan ringkasan dua nilai pertama.
- Subtotal per baris tampil dalam format Rupiah bila Row subtotal aktif.
- Baris ikut tersimpan di draft dan tampil lagi saat form dibuka ulang.
- History task menampilkan Repeater sebagai tabel baca-saja dengan judul kolom dari label field anak.
