DiaEditableTable, formlarda kullanıcıların satır ekleyerek, düzenleyerek veya silerek veri girebileceği çok satırlı bir tablo nesnesidir. Fatura kalemleri, sipariş detayları, stok hareketleri gibi master-detay yapılarında kullanılır. Her kolon farklı bir editör türüne (metin, sayı, tarih, seçim listesi, ekrandan seçim vb.) sahip olabilir.

Adı Default Değerleri Amacı
🆔 Nesne ID diaEditableTable_1 Örn: faturaKalemleri Nesneye atanacak benzersiz kimliktir. Süreç tasarımında ve kod tarafında bu ID üzerinden erişim sağlanır.
🏷️ Değer - JSON veri Tablonun başlangıç verisi. Boş bırakılırsa tek boş satır ile başlar.
🎨 Arka Plan Rengi ⚪ Beyaz Renk seçici Tablo arka plan rengini belirler.
✒️ Yazı Rengi ⚫ Siyah Renk seçici Hücre metin rengini belirler.
🔤 Font Helvetica Sistem fontları Tablo yazı tipografisini belirler.
🔠 Font Boyu 12 pt Sayısal değer Yazı boyutunu ayarlar.
🔡 Font Tipi Normal Koyu, İtalik, Altı Çizgili, Üstü Çizgili Metin stilini belirler.
📋 Kalemler - Liste (detay aşağıda) Tablo kolonlarının tanımı. Her kolon için alan adı, başlık, genişlik, editör türü ve parametreleri tanımlanır.
💬 İpucu - Serbest metin Tablo üzerine gelindiğinde görünen açıklama.
👁️ Gösterim Görünür Görünür / Gizli Nesnenin formda görünüp görünmeyeceğini belirler.
🔒 Salt Okunur Hayır Evet / Hayır Alanın sadece okunabilir olmasını sağlar. Kullanıcı içerik değiştiremez.
🎭 Stil - CSS sınıfı Özel CSS sınıfları ile görsel stil uygulanabilir.
🖱️ Aksiyon (Cell Changed) - Olay bağlanabilir Hücre değeri değiştiğinde tetiklenir.
🖱️ Aksiyon (Delete Row) - Olay bağlanabilir Satır silinmeden önce onay/iptal için tetiklenir.
🖱️ Aksiyon (Focus Next) - Olay bağlanabilir Son hücreden sonra focus geçişi öncesi tetiklenir.
🖱️ Aksiyon (Before Edit) - Olay bağlanabilir Hücre düzenlenmeden önce tetiklenir.
🖱️ Aksiyon (Editor Created) - Olay bağlanabilir Hücre editörü oluşturulduğunda tetiklenir.


Kalemler özelliği, tablonun kolon yapısını tanımlar. “Kalemler” butonuna tıklanarak açılan dialog üzerinden kolonlar eklenir, silinir veya sıralanır. Her kolon aşağıdaki alanlara sahiptir:


Alan Zorunlu Açıklama
Alan Kodu Evet Kolonun benzersiz anahtarı. Veri erişiminde bu isim kullanılır. Örn: stokKodu, miktar, birimFiyat
Başlık Hayır Kolon başlığında görünen metin. Boşsa field kullanılır.
Genişlik Hayır Kolon genişliği (piksel). Varsayılan: 120. Negatif değer tablonun genişliğine göre esnek genişlik verir.
Kolon Tipi Hayır normal (düzenlenebilir), readonly (salt okunur), primarykey (gizli anahtar). Varsayılan: normal
Widget Tipi Hayır Hücre editör türü. Varsayılan: text

DiaEditableTable nesnesi için kullanılabilir tüm fonksiyonlar aşağıda kategorize edilmiştir.


🎯 Amaç Tablodaki tüm veriyi döndürür (JSON formatında satır listesi)

📥 Parametre Yok

📤 Dönüş List (dict listesi)

veri = diaEditableTable_1.getValue()
if veri:
    for satir in veri:
        print(satir.get('stokKodu'), satir.get('miktar'))

🎯 Amaç Tabloya veri atar (JSON formatında satır listesi)

📥 Parametre value (list veya dict)

📤 Dönüş Yok

kalemler = [
    {"stokKodu": "STK001", "miktar": 10, "birim": "AD"},
    {"stokKodu": "STK002", "miktar": 5.5, "birim": "KG"}
]
diaEditableTable_1.setValue(kalemler)

🎯 Amaç Tablodaki tüm satırları temizler

📥 Parametre Yok

📤 Dönüş Yok

diaEditableTable_1.clearValue()


Fonksiyon Açıklama
getId() Nesne ID'sini döndürür
setId(id) Nesne ID'sini değiştirir
setBackgroundColor(color) Arka plan rengi
getBackgroundColor() Arka plan rengini okur
setFontColor(color) Yazı rengi
getFontColor() Yazı rengini okur
setFontSize(size) Font boyutu
getFontSize() Font boyutunu okur
setFont(fontName) Font tipi
getFont() Font tipini okur

Cell Changed

Hücre değeri değiştiğinde tetiklenir. row, col, lupData (lookup için) parametreleri kullanılabilir. getCellValue(row, col) ile hücre değeri okunur.

Delete Row

Satır silinmeden önce cmd == 1 (MAY_DELETE_ROW) ile tetiklenir. return False ile silme iptal edilir.

Focus Next

Son hücreden sonra focus geçişi öncesi cmd == 2 (MAY_FOCUS_NEXT) ile tetiklenir.

Before Edit / Editor Created

cmd == 3 (BEFORE_EDIT): Düzenlemeden önce. cmd == 4 (EDITOR_CREATED): Editör oluşturulduğunda tetiklenir.


Fatura kalemleri tablosu

# Kalemler: stokKodu (text), miktar (numeric), birimFiyat (numeric), tutar (readonly)
# setValue ile süreç çıktısından doldurma
kalemler = getFormVariable("onaylanan_kalemler")
if kalemler:
    diaEditableTable_1.setValue(kalemler)

getValue ile veri gönderme

# Form gönderilmeden önce tablo verisini al
tabloVerisi = diaEditableTable_1.getValue()
setFormVariable("gonderilen_kalemler", tabloVerisi)