Form Bind Controls¶
Custom Form üzerindeki Grid'in datasource veya web kontrolünün source değerini dinamik olarak atar.
Kullanım kapsamı
Bu node yalnızca Grid (DataGridView vb.) datasource veya web kontrol source ataması için kullanılır.
Bir Label, Button veya TextBox'ın metnini/rengini değiştirmek için Control Properties nodunu kullan.
Ne Zaman Kullanılır?¶
| Senaryo | Doğru Node |
|---|---|
| Formdaki Grid'e JSON array bağla | Form Bind Controls |
| Web kontrolünün source'unu ata | Form Bind Controls |
| Label Text'ini değiştir | Control Properties |
| Button'u gizle / aktif et | Control Properties |
| TextBox'a değer yaz | Control Properties |
Kullanımı¶
- Form Name listesinden hedef formu seç.
- Data alanına Grid'e atanacak JSON array değişkenini belirt (örn.
msg.→payload). - Add butonuna tıkla; listeye yeni bir satır eklenir.
- Control alanına Grid'in adını gir. Örnek:
dbGrid
Form Name : OrderForm
Data : msg. → payload ← JSON array buradan okunur
Control : dbGrid ← Grid'in XML'deki name değeri
Property Tablosu¶
| Alan | Tip | Varsayılan | Açıklama |
|---|---|---|---|
name |
string | — | Canvas üzerinde gösterilecek ad |
formname |
string | (boş) | Hangi formun kontrollerine bağlanacak? |
formainform |
boolean | false |
Ana form (AppForm) mı? |
props |
array | [] |
Bağlama listesi: {p: controlName, v: fieldName} |
data |
string | (boş) | Veriyi nereden okuyacağız (path) |
dataType |
string | — | Kaynak: msg, flow, global, vs. |
props Yapısı¶
Editör arayüzünde her satır iki sütundan oluşur:
| Sütun | Anahtar | Açıklama |
|---|---|---|
Property (p) |
Kontrol adı | XML'deki name attribute'u (örn. txtOrderNo) |
Value (v) |
Field adı | Verinin içindeki property adı (örn. orderNo) |
[
{ "p": "txtOrderNo", "v": "orderNo" },
{ "p": "txtCustomer", "v": "customer" },
{ "p": "txtQty", "v": "qty" }
]
Veri Kaynağı (data + dataType)¶
dataType ile değer şu kaynaklardan okunabilir:
dataType |
data örneği |
Anlamı |
|---|---|---|
msg |
payload.order |
msg.payload.order |
flow |
currentOrder |
flow.get("currentOrder") |
global |
defaultUser |
global.get("defaultUser") |
Çıkış Mesajı¶
{
"operationtype": "BindControl",
"receiveddata": { /* event data */ },
"name": "OrderForm",
"bindcontrols": [
{ "Name": "txtOrderNo", "FieldName": "orderNo" },
{ "Name": "txtCustomer", "FieldName": "customer" },
{ "Name": "txtQty", "FieldName": "qty" }
],
"value": {
"orderNo": "ORD-001",
"customer": "ACME",
"qty": 100
}
}
formainform Davranışı¶
| Değer | formname Otomatik |
Senaryo |
|---|---|---|
false |
Kullanıcı tanımlı | Custom dialog'a bağlama |
true |
"AppForm" |
Ana form'a bağlama |
Tipik Akış¶
flowchart LR
A[Business Events<br/>OrderStartEvent] --> B[Custom Form<br/>OrderForm]
B --> C[Form Bind Controls<br/>txt* → orderNo,...]
C --> D[Responser]
style A fill:#ccffcc,color:#000
style B fill:#ccffcc,color:#000
style C fill:#ccffcc,color:#000
style D fill:#ccffcc,color:#000
Önemli Konular¶
value Hesaplama Mantığı¶
value alanı tek bir nesne olarak gönderilir; panel her kontrol için kendi FieldName'i bu nesneden okur.
Eğer data boş bırakılırsa value: null olur ve panel receiveddata'yı kullanır.
Birden Fazla Form¶
Her form için ayrı bir Form Bind Controls node'u kullanın. Aynı node birden fazla formu yönetemez.
Sık Karşılaşılan Hatalar¶
Form alanları boş kalıyor
- Kontrol adları (
p) XML'dekinameile birebir eşleşiyor mu? (Büyük/küçük harf duyarlı) dataTypedoğru mu?msgseçtiniz amadatayolu yanlış olabilir.- Akışta
Custom FormForm Bind Controls'tan önce geliyor mu?
Veri yapısı uyumsuz
value nesnesinde FieldName ile eşleşen property olmalı. Örnek: bindcontrol {Name: "txtA", FieldName: "a"} ise value.a mevcut olmalı.
İpuçları¶
JSONata ile dönüştürme
Veriyi olduğu gibi bağlamak yerine dönüştürmek istiyorsanız:
- Önce bir
functionveyachangenode ile veriyi şekillendirin - Sonuçları
flowcontext'e koyun Form Bind Controls'tadataType: flowkullanın
Kontrol isimlendirme standartı
XML form tasarımında kontrol isimlerini tip prefix'leriyle adlandırın (txt* textbox, chk* checkbox, cb* combobox). Bu, debug'ı kolaylaştırır.
İlgili¶
- Custom Form — Form tasarımı
- Control Properties — Statik özellik atama
- Mesaj Yapısı