Salt Okunur Tablo (DiaReadOnlyTable)
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.
Özellikler
| 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 (Özel Rapor)
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.
Fonksiyonlar
DiaReadOnlyTable nesnesi için kullanılabilir tüm fonksiyonlar aşağıda kategorize edilmiştir.
📝 Seçim ve Veri İşlemleri
📖 selectedItem()
🎯 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'))
📋 selectedItems()
🎯 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'))
📄 getRowData(row)
🎯 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'))
📤 getValue()
🎯 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)
✏️ setValue(value)
🎯 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
🆔 Kimlik ve Stil
| 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) |
🖱️ Aksiyonlar (Parametreler)
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.
🚀 Kullanım Örnekleri
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')
