DiaReadOnlyTable, formlarda kullanıcıların sadece görüntüleyebileceği ve satır seçimi yapabileceği çok satırlı bir tablo nesnesidir. Veri düzenleme yapılamaz; satırlar seçilerek işlem yapılır. Liste ekranları, onay kuyrukları, rapor sonuçları gibi salt okunur veri gösterimlerinde kullanılır. Veri kaynağı olarak Özel Rapor sorgusu kullanılır.

Adı Default Değerleri Amacı
🆔 Nesne ID diaReadOnlyTable_1 Örn: onayListesi 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. Özel rapor kullanılmıyorsa bu değer değerlendirilebilir.
🎨 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.
📊 Sorgu - Özel rapor Özel rapor sorgusu ile tabloya veri yüklenir. Alanlar tabından Alan Adı, Görünen Adı, Alan Tipi, Genişlik tanımlanır.
🔀 Mod Çoklu Seçim Tekli Seçim (SELECT) / Çoklu Seçim (MSELECT) Tekli seçimde selectedItem() ile tek satır, çoklu seçimde selectedItems() ile satır listesi döner. Boşluk tuşu ile satır seçimi yapılı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.
🎭 Stil - CSS sınıfı Özel CSS sınıfları ile görsel stil uygulanabilir.
🖱️ Aksiyon (Double Clicked) - Olay bağlanabilir Satıra çift tıklandığında tetiklenir. index parametresi ile satır bilgisi, getRowData(index.row()) ile satır verisi alınır.


Sorgu özelliği, tablonun veri kaynağını özel rapor sorgusu olarak tanımlar. Alanlar tabından ilgili sorgudan dönen kolonlara göre alan tanımları yapılmalı ve bu tanımlar eşleşmelidir. Alanlar otomatik olarak da oluşturulabilir.


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


🎯 Amaç Tekli seçim modunda seçili satır verisini döndürür.

📥 Parametre Yok

📤 Dönüş dict veya None (seçili satır yoksa)

satir = diaReadOnlyTable_1.selectedItem()
if satir:
    print(satir.get('_key'), satir.get('adi'))

🎯 Amaç Çoklu seçim modunda seçili satır verilerini liste olarak döndürür.

📥 Parametre Yok

📤 Dönüş list (dict listesi)

satirlar = diaReadOnlyTable_1.selectedItems()
for satir in satirlar:
    print(satir.get('_key'), satir.get('aciklama'))

🎯 Amaç Belirtilen satır indeksindeki veriyi dict olarak döndürür.

📥 Parametre row (int): Satır indeksi (0 tabanlı)

📤 Dönüş dict

# Double Clicked aksiyonunda kullanım
rowData = diaReadOnlyTable_1.getRowData(index.row())
if rowData:
    print(rowData.get('stokKodu'))


🎯 Amaç Seçim moduna göre seçili veriyi döndürür. Tekli modda selectedItem(), çoklu modda selectedItems() ile aynı sonucu verir. Form gönderildiğinde süreç çıktısına otomatik yazılır.

📥 Parametre Yok

📤 Dönüş dict (SELECT) veya list (MSELECT)

🎯 Amaç Desteklenmemektedir. Tablo özel rapor sorgusu ile beslenir ve doğrudan veri ataması için Düzenlenebilir Tablo kullanılmalıdır.

📥 Parametre

📤 Dönüş Yok


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
setBold(status) Kalın yazı (True/False)
setItalic(status) İtalik yazı (True/False)
setUnderline(status) Altı çizili yazı (True/False)

Double Clicked

Satıra çift tıklandığında tetiklenir. index parametresi QModelIndex tipindedir. index.row() ile satır indeksi alınır, getRowData(index.row()) ile satır verisi dict olarak okunur.


Onay kuyruğu tablosu (Özel rapor ile)

# Sorgu özelliğinde özel rapor tanımlanır.
# Form açıldığında tablo otomatik doldurulur.
# Kullanıcı satır seçip onay/red işlemi yapar.

Seçili satırı al (tekli seçim)

secili = diaReadOnlyTable_1.selectedItem()
if secili:
    onay_key = secili.get('_key')
    # Onay işlemi...

Çoklu seçim ile toplu işlem

secilenler = diaReadOnlyTable_1.selectedItems()
for satir in secilenler:
    print(satir.get('belge_no'), satir.get('tutar'))

Double Clicked aksiyonunda detay açma

rowData = diaReadOnlyTable_1.getRowData(index.row())
if rowData:
    # Detay ekranı aç veya işlem yap
    belge_key = rowData.get('_key')