AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Ekranlar › SCR-FRMREPORTLIST

FrmReportList

SCREENMOD-RAPORERPGOLD_COREACTIVE_CRITICALHIGHSOURCE_IMPLEMENTED
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

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

  1. 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].
  2. Ekle (mavi artı) → Report Designer RecordId = 0 ile 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 @parametre iç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].
  3. 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].
  4. SilReports.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].
  5. SQL'e aktar → dosya adı sorulur ("Bir Dosya Adi Yazmalısınız." / "İşlem Iptal Edildi."); rapor + filtreler + görünümler INSERT betiği olarak yazılır (SCOPE_IDENTITY ile @ReportId) [SOURCE_CODE:FrmReportList.vb:37-109].
  6. Raporun menüde görünmesi için AifaDev.RibbonPage/Group/Item tanı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 @FieldName olarak 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ı

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ş catch bloğ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.vb
  • SOURCE_CODE:ERPPRO/Designer/ReportManager/FrmReportList.vb
  • DERIVED: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).