Sınıf: FrmReportList · Modül: MOD-RAPOR · Türetildiği: DevExpress.XtraEditors.XtraForm · Yaşam döngüsü: ACTIVE_CRITICAL · Kapsam: ERPGOLD_CORE
Nedir?
Report List — Aifa Developer Studio'nun rapor yöneticisi. ERPGOLD'da raporlar koda gömülü değil, veritabanında (AifaDev.Reports = ad + çalıştırılacak SQL, AifaDev.ReportsFilter = parametreler, AifaDev.ReportLayouts = görünümler) saklanır; bu ekran o kayıtları listeler (Id, CreatedDate, ReportName, Developer) ve her satır için ekle / düzelt / sil / yenile / görüntüle ile SQL'e aktar işlemlerini sunar [SOURCE_CODE:ERPPRO/Designer/ReportManager/FrmReportList.vb:1-110] [DOCUMENT:kitap#4.9] [DB_OBJECT:AifaDev.Reports]. Ekle/Düzelt, Report Designer penceresini açar; SQL'e aktar seçili raporun tanımını, filtrelerini ve görünümlerini INSERT betiği olarak .sql dosyasına yazar — böylece rapor başka bir müşteri veritabanına taşınabilir [SOURCE_CODE:FrmReportList.vb:37-109]. Yalnız ADMIN (Aifa Developer Studio yetkisi olan) kullanıcı görür [PROCESS:PROC-63] [DOCUMENT:12_Support/KnownIssues/H-019.md].
Ne zaman kullanılır?
- Yeni rapor eklerken (rapor TVF'si hazırlandıktan sonra) [PROCESS:PROC-57].
- Mevcut raporun SQL'inin hangi fonksiyondan geldiğini bulmak, sütun eklemek/görünüm kaydetmek için [PROCESS:PROC-63] [DOCUMENT:12_Support/KnownIssues/H-134.md].
- Raporu başka müşteriye taşımak için SQL betiği üretirken (BtnSqlExport).
- Rapor sayısı kaynağa göre 88 / 79 / 60 arasında değişir (CTR-042) [DOCUMENT:00_Governance/CONTRADICTIONS.md#ctr-042].
Adım adım kullanım
- ADMIN ile ANA MENÜ ▸ Aifa Developer Studio ▸ Developer Tools ▸ Report Designer → Report List açılır; silinmemiş raporlar listelenir [SOURCE_CODE:FrmReportList.vb:5-8].
- Ekle (mavi artı) → Report Designer
RecordId = 0ile açılır: SQL cümlesi yazılır (ör.Select * from Reports.MadenStokHareketleri(@SubeId,@KasaId,@StokId,@Tarih)), F5 ile parametreler sorulup önizlenir; Report Properties (CreatedDate, ReportName, Developer, IsGrid…) doldurulur; Report Layout ile görünüm kaydedilir; Filter Fields ile her@parametreiçin Field Name, Caption, Control Type (DateEdit / LookUpEdit / ComboBoxEdit / TextBoxEdit), Lookup için SQL + Display/Value Member girilir [PROCESS:PROC-57] [DOCUMENT:kitap#4.9]. - Düzelt (kalem) → aynı pencere seçili raporla; sütun eklemek için görünüm seçilip uygulanır, alan listesine sütun adı birebir yazılır, Column Chooser'dan sürüklenir, yeşil kaydet [DOCUMENT:12_Support/KnownIssues/H-134.md].
- Sil →
Reports.Report.DeleteAt(yumuşak silme). Yenile listeyi yeniler. Görüntüle (göz) → raporu parametre penceresiyle çalıştırır [SOURCE_CODE:FrmReportList.vb:9-35]. - SQL'e aktar → dosya adı sorulur ("Bir Dosya Adi Yazmalısınız." / "İşlem Iptal Edildi."); rapor + filtreler + görünümler
INSERTbetiği olarak yazılır (SCOPE_IDENTITYile@ReportId) [SOURCE_CODE:FrmReportList.vb:37-109]. - Raporun menüde görünmesi için
AifaDev.RibbonPage/Group/Itemtanımı ve kullanıcı yetkisi gerekir; programdan çıkıp girilir [DOCUMENT:03_ERPGOLD_Product/MENU_TREE.md] [DOCUMENT:12_Support/Playbooks/PB-053.md].
Alanların anlamı
| Ekran sütunu / düğmesi | İş anlamı (kolon, AifaDev.Reports) |
|---|---|
| Id | Rapor kaydı (Id); menü ve yetki bu Id'ye bağlanır |
| CreatedDate | Eklenme tarihi (CreatedDate) |
| ReportName | Menüde görünen rapor adı (ReportName) |
| Developer | Raporu yazan (Developer) |
| Ekle / Düzelt / Sil / Yenile / Görüntüle | SimpleList.ButtonType eylemleri |
SQL'e aktar (BtnSqlExport) |
Reports + ReportsFilter (SortIndex, FieldName, Caption, ControlType, SQL, DisplayMember, ValueMember, IsBeetwen) + ReportLayouts (LayoutType, LayoutName, Layout) INSERT betiği |
Rapor tanımının diğer kolonları: SQL (çalıştırılan sorgu), Password (rapor parolası, şifreli), IsGrid / IsPivot / IsReport (görünüm tipi), GroupId [DB_OBJECT:AifaDev.Reports] [DOCUMENT:09_CodeArchitecture/Security/SEC-AUTHN.md#3].
Hesaplama / doğrulama mantığı
- Yalnız dosya adı kontrolü vardır; rapor SQL'inin geçerliliği Report Designer'da F5 ile denenir [PROCESS:PROC-57].
- Export betiği rapor SQL'indeki tek tırnakları çiftler (
Replace("'", "''")), diğer alanları düz birleştirir (TD-DYNAMIC-SQL, 6 ifade); parola alanı betiğe şifreli hâliyle yazılır [SOURCE_CODE:FrmReportList.vb:58]. - Parametre sırası: SQL'de yazıldığı sırayla
@FieldNameolarak geçer; sıra uyumsuzluğu yanlış parametre bağlar [PROCESS:PROC-57 adım 6]. - Rapor fonksiyonları için
FN.Bol(a,b)sıfıra bölme güvenli bölmedir; "Divide by zero" hatası bunu kullanmayan raporlarda çıkar [DOCUMENT:kitap#4.9] [DOCUMENT:12_Support/KnownIssues/H-126.md].
Stok / bakiye / rapor etkisi
Defter etkisi yok — tanım ekranı; Cari.Islemler'e yazmaz. Yalnız AifaDev.* rapor tanım tabloları değişir. Raporun hangi rapor fonksiyonunu (TVF) çağırdığı rapor fonksiyonu makaleleri ve DOC-REPORT-GUIDE ile izlenir.
Sık yapılan kullanıcı hataları
- Aifa Developer Studio sekmesi görünmüyor — yetki [DOCUMENT:12_Support/KnownIssues/H-019.md] [DOCUMENT:12_Support/Playbooks/PB-041.md].
- Rapora sütun eklendi ama programda görünmüyor — görünüm kaydedilmemiş / program yeniden açılmamış [DOCUMENT:12_Support/KnownIssues/H-134.md] [DOCUMENT:12_Support/Playbooks/PB-053.md].
- Rapor alırken "Divide by zero" [DOCUMENT:12_Support/KnownIssues/H-126.md] [DOCUMENT:12_Support/Playbooks/PB-051.md].
- Bakiye ekstresi / rapor zaman aşımı [DOCUMENT:12_Support/KnownIssues/H-127.md] [DOCUMENT:12_Support/Playbooks/PB-052.md] [PROCESS:PROC-15].
- Geniş bilanço raporu istenmiş / raporda yok [DOCUMENT:12_Support/KnownIssues/H-139.md] [PROCESS:PROC-96].
- İşlem listesi sütun düzeni / Excel'e aktarma — rapor tanımı değil liste düzeni [DOCUMENT:12_Support/KnownIssues/H-136.md] [DOCUMENT:12_Support/KnownIssues/H-137.md].
İlgili ticket temaları
- PRB-RAPOR-000; zincir SYM-RAPOR.
- Playbook'lar: PB-053, PB-051, PB-052.
- Süreçler: PROC-57, PROC-63, PROC-185 (temel raporlar kataloğu).
Müşteri varyasyonları
Rapor listesi müşteriye göre değişir (müşteriye özel raporlar PROC-188; MüşteriŞemasıD/MüşteriŞemasıA gibi şemalarda özel fonksiyonlar). AifaDev.ReportLayouts V2 örnek DB'de 119 kayıt [DOCUMENT:kitap#4.9]. Rapor sayısı kaynağa göre farklı (CTR-042).
Kim kullanır? Nereden açılır?
- ANA MENÜ ▸ Aifa Developer Studio ▸ Developer Tools ▸ Report Designer
Yaşam döngüsü kanıtı
ACTIVE_CRITICAL — ANA MENÜ: Aifa Developer Studio ▸ Developer Tools ▸ Report Designer
Kullanıcı olayları
| Olay | Metot | Dosya:satır |
|---|---|---|
Me.Load |
FormInit |
FrmReportList.vb:2 |
SimpleList1.ButtonClick |
SimpleList1_ButtonClick |
FrmReportList.vb:9 |
BtnSqlExport.Click |
BtnSqlExport_Click |
FrmReportList.vb:37 |
Okuduğu / yazdığı tablolar (kod içi SQL, statik)
| Tablo | Fiiller |
|---|---|
AifaDev.ReportLayouts |
INSERT, SELECT |
AifaDev.Reports |
INSERT, SELECT |
AifaDev.ReportsFilter |
INSERT, SELECT |
Kullanıcıya gösterilen mesajlar (doğrulama)
- Bir Dosya Adi Yazmalısınız.
- İşlem Iptal Edildi.
Bilinen kusurlar / dikkat
- Boş
catchbloğu: 1 — hata yutuluyor (TD-EMPTY-CATCH). - Dinamik SQL: 6 ifade — parametresiz birleştirme riski (TD-DYNAMIC-SQL).
Kaynaklar
SOURCE_CODE:ERPPRO/Designer/ReportManager/FrmReportList.Designer.vbSOURCE_CODE:ERPPRO/Designer/ReportManager/FrmReportList.vbDERIVED:docs/knowledge-base/screens/FrmReportList.md(KB-docs statik analiz)DERIVED:kb_src/erppro/scan.json(olay/SQL/çağrı)
Bilinmeyenler
- Hangi sürümde eklendiği: VERSION_UNKNOWN (GAP-CODE-VERSION-DATE).
