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)