Modülün amacı
Programdaki raporlama altyapısı: rapor menüsü veritabanındadır (AifaDev.RibbonPage/RibbonItem/Reports, 88 kayıt — 60 aktif, 57'si üretimde gözlenen gerçek rapor; 1'i GENERATED_PROPOSAL RPT-91, 2'si test), her menü kaydı bir SQL tablo fonksiyonunu (Reports.*, Report.*, ReportsV2.*, Bakiye.*, Bilanco.*, Pozisyon.*, Muhasebe.*, Stok.*, MüşteriŞemasıD.* — 79 rapor TVF) çağırır ve sonucu grid/pivot/yazdırılabilir tasarım (AifaDev.ReportLayouts, filtreler AifaDev.ReportsFilter) ile gösterir. Rapor = menü kaydı (RPT-) + fonksiyon (RFN-); üç sayı (88/79/60) üç ayrı varlıktır (CTR-042). Modül ayrıca bilanço (gün/dönem sonu dondurulmuş bakiye fotoğrafı Bilanco.Bilancolar, 61.778 satır), pozisyon (Pozisyon.Pozisyonlar, 5 sn'de bir servis yazar), fiş/etiket/DOS-print/fatura tasarımcıları ve Aifa Developer Studio araçlarını kapsar. Rapor tasarım dosyaları (.repx) kaynakta yoktur (GAP-CODE-04). [DERIVED:10_Reports/Menu/INDEX.md; DB_OBJECT:AifaDev.Reports]
DB şemaları: Reports, Report, ReportsV2 (sürüm adlı üç şema — TD-43), Bilanco, Pozisyon, Query, AifaDev, Design; müşteri-özel MüşteriŞemasıD, NetEkstre.
Hangi müşteri tipleri kullanır
Tüm tipler; aile bazında ağırlık: Döviz bürosu → POZISYON, HACIM, RESMİ, MUHASEBE, KUR aileleri; Kuyumcu / Toptancı → BAKIYE, MADEN_STOK, KAR, MUTABAKAT; Rafineri → takoz kâr/değişim (Reports.TakozKarRaporu, Report.TakozDegisim); yönetim → BILANCO, Patron Bilançosu, Nabız. Menü raporları yalnız ERPGOLDV2'den (döviz) eşlendi; KUYUMCU kurulumunun rapor menüsü eşlenmedi (GAP-RPT-KUYUMCU). 11 menü raporu CUSTOMER_SPECIFIC (MüşteriŞemasıD).
Ana kavramlar
Bilanço / SEC-BAKIYE, Kâr / SEC-KAR, Pozisyon, Maliyet — son giren ilk çıkar, Rapor detayı NORMAL/EKSTRA, Fiş/rapor kısayolları F1–F11, İşlem kısaltması MGN/NCP/CA, SMiktar/SHas işaretli kolonlar, FN.Bol korumalı bölme, Kur fotoğrafı, DSX bellek listeleri. Metrikler tek kanonik tanımla METRIC_DICTIONARY'dedir: MET-ISLEM-HACMI, MET-CIRO, MET-NET-POZISYON, MET-BAKIYE, MET-KAR, MET-MALIYET, MET-KUR-FARKI, MET-CARI-HACIM, MET-PESIN-HACIM. Rapor yazım rehberi: DOC-REPORT-GUIDE (10 kural: FK yok, IsDeleted=0, StokId/BirimId çok anlamlı, işaret iki katmanlı, FN.Bol, uyumluluk 100).
Menü konumu
Sabit ribbon (MENU_TREE, [SOURCE_CODE:Form/Genel/FrmMainForm.Designer.vb:270]): Hesap Yonetimi › Rapor — Pozisyon (POZISYON), Durum Raporu (POZISYONDEGISIM), Hacim Raporu (STOKHACIMRAPORU), Kasa/Maden Durum Raporu, Bilanco Raporu (BILANCORAPORU → BilancoSimpleView), Patron Bilancosu (PATRONBILANCOSU → FrmPatronBilancosu), Nabız → FrmNabiz. Aifa Developer Studio › Developer Tools — Report Designer (REPORTDESIGNER → FrmReportList), Dashboard Designer, Ribbon Designer, Popup Grid Design (OZELLISTETANIMLAMA), Dos Print Designer, Fatura Dizaynı, Etiket Dizaynı. Rapor menüsünün kendisi AifaDev.RibbonPage (4 sayfa) / RibbonItem (88) tablolarından yüklenir; sıralama Menü raporları'nda. iScreen liste modunda F1–F11 fiş/ekstre kısayolları (BR-YETKI-010).
Ekranlar
48 ekran MOD-RAPOR (20'si AifaDeveloper INTERNAL_TOOL); tam liste 05_Screens/INDEX.md.
| Ekran | Sınıf | Yaşam döngüsü | Bir cümle |
|---|---|---|---|
| Report Designer / FrmReportDesigner | FrmReportList |
ACTIVE_CRITICAL | Rapor kaydı, SQL fonksiyonu bağlama, filtre ve layout (AifaDev.Reports) |
| ReportViewer / ReportsCombo | ReportViewer |
ACTIVE_RARE | Rapor sonucunu grid/pivot/yazdırılabilir gösterir |
| Bilanço / Patron Bilançosu / FrmBilancoSifirla | BilancoSimpleView, FrmPatronBilancosu |
— / ACTIVE_NORMAL / ACTIVE_RARE | Bilanço alma ve kaydetme (Bilanco.SaveAll), patron özeti, bilanço sıfırlama |
| Pozisyon / Hacim / Durum / Pozisyon Detay | FrmPozisyon* |
ACTIVE_CRITICAL / ACTIVE_NORMAL (MOD-DIGER atamalı) | Açık pozisyon, hacim ve durum raporları |
| Nabız | FrmNabiz |
ACTIVE_NORMAL | Anlık şube nabzı (Sistem.Nabiz, Sistem.NabizTick) |
| Popup Grid / Popup Grid Add / ThreadPopupGrid | FrmPopupGrid* |
DYNAMIC | DB tanımlı özel listeler (Design.PopupGrid, 9 kayıt; şifreli olabilir — BR-YETKI-007) |
| Dos Print Designer / DosPrintDesigner / Fatura Dizaynı / Etiket Dizaynı | DosPrintList, FaturaDizaynForm, EtiketDesignList |
ACTIVE_NORMAL | Termal fiş (DOS), fatura ve etiket tasarımları (AifaDev.DosReport*, FaturaDesign, Sistem.Etiket*) |
| Add Ribbon Items | FrmAddRibbonItem |
ACTIVE_NORMAL | Rapor menüsüne kayıt ekleme (DAO hedefi) |
| FormDesigner, DashBoardDesigner, RibbonDesigner, ToolBox, PropertiesBox, CodeViewer … (20) | AifaDeveloper | INTERNAL_TOOL | Form/dashboard/ribbon tasarımcısı; DB'deki kaynak kodu çalışma zamanında derler (TD-11) |
| FrmEmtiaBilanco, ShowFisPrint, DosPrintAddField | — | UNUSED_CANDIDATE | Referans bulunamadı |
Ana iş akışları
06_Workflows/INDEX.md'te MOD-RAPOR'a atanmış akış yok; ilgili: WF-FIS-YAZDIRMA (F1–F11), WF-GUN-SONU (kasa sayımı, bilanço), WF-ISLEM-GECMISI-ARA, WF-YIL-SONU-DEVIR (bilanço devri Bilanco.BilancoDevirleri). Rapor ekleme/sütun ekleme süreci playbook olarak: PB-053. Süreç dokümanları (14, module: MOD-RAPOR) 12_Support/Processes/'ta.
Kullanılan tablolar
| Tablo | Sınıf (08_Database/INDEX.md) | Satır V2 | Rol |
|---|---|---|---|
| AifaDev.Reports, AifaDev.ReportsFilter, AifaDev.ReportLayouts | ACTIVE | 88 / 106 / 119 | Rapor kaydı, filtre tanımı, grid/pivot düzeni |
| AifaDev.RibbonPage, RibbonGroup, RibbonItem | ACTIVE | 4 / 4 / 88 | DB tanımlı rapor menüsü |
| AifaDev.RepositoryData, RepositoryItems, FormSize, Dashboard, FaturaDesign, DosReport/Fields, Forms, DynamicForms, Layouts, GridLayouts | ACTIVE | 183 / 1 / 36 / 2 / 31 / 0… | Tasarımcı deposu (kaynak kod, form/dashboard, fatura ve DOS tasarımı) |
| Bilanco.Bilancolar | CRITICAL | 61.778 | Bilanço anlık görüntüleri (Bilanco.SaveAll) |
| Bilanco.BilancoDevirleri | ACTIVE | 0 | Yıl sonu bilanço devri |
| Pozisyon.Pozisyonlar | INDIRECTLY_USED | 94 | Açık pozisyon (ERPBooster servisi Pozisyon.Write) |
| Design.PopupGrid, Design.Forms, FormControls, Design.Ribbon* | ACTIVE | 9 / 0 | Özel liste ve eski tasarım şeması (Design ↔ AifaDev ikilemi — GAP) |
| AifaDev.ShortKeys | MANUAL_REVIEW | 0 | Kısayol tanımı (Insert Sinnipet düğmesi kodsuz) |
Raporların okuduğu asıl veri MOD-CARI/MOD-STOK/MOD-SISTEM tablolarıdır; başlıca Cari.Islemler, Cari.BakiyeIslem, Stok.StokHaraketleri, Sistem.Kurlar.
Kullanılan fonksiyon / SP / view / trigger'lar
- Rapor TVF'leri (79 → 10_Reports/Functions/INDEX.md): aileler
Reports.*(32),Report.*(13),ReportsV2.*(2),Bakiye.*(8),Bilanco.*(5),Pozisyon.*(11),MüşteriŞemasıD.*(8). Öne çıkanlar: Reports.BakiyeListesi, Reports.IslemRaporu, Reports.IslemKontrolRaporu, Bilanco.OzetBilanco, Bilanco.GetIKar, Bilanco.GetKurFarki, Pozisyon.GetOldPozisyon, Pozisyon.Summary, Report.HistoryList, ReportsV2.BakiyeHaraketRaporu; 98 fonksiyonUNUSED_HIGH_CONFIDENCE(ör.Bilanco.GenisBilanco,Bakiye.GetPivotBakiye) - SP: Bilanco.SaveAll, Pozisyon.Write, Bakiye.DunkiBakiyeler (UNUSED), Sistem.NabizTick
- View: Bilanco.BilancoListesi, Bilanco.Patron, Report.TakozDegisim,
Query.*(7, MOD-DIGER); trigger: AifaDev.ExQueryBuilder; yardımcılar FN.Bol, FN.GetKur, FN.BakiyeDurum, Sistem.GetIslemKodu
Raporlar
Menü raporları (62 kayıt, 15 aile) 10_Reports/Menu/INDEX.md: BAKIYE (RPT-1, RPT-30, RPT-36, RPT-76, RPT-77, RPT-84), ISLEM_KONTROL (RPT-2), VADELI (RPT-3), MUTABAKAT (RPT-5, RPT-83), MADEN_STOK (RPT-6–8), NAKIT_STOK (RPT-9, 10, 82), RESMI (RPT-13–15, 66), HACIM (RPT-17, 28, 81), POZISYON (RPT-18, 80), MUHASEBE (RPT-20, 21, 26, 34, 35, 72, 78, 89, 90), CIRO (RPT-23, 24, 68–70), MASRAF (RPT-27, 75), SILINEN (RPT-29, 73, 74), ISTATISTIK/MIKRO (RPT-31, 32), EVRAK (RPT-33, 87, 88), KAR (RPT-37), KUR (RPT-86), FIS (RPT-12, 25), ENVANTER (RPT-19). Menüde olup fonksiyonu DB'de olmayan 4 rapor (RPT-16, 19, 29, 30 — GAP-RPT-BROKEN-01). RPT-91 (Reports.MusteriUrunHacimRaporu) GENERATED_PROPOSAL — ürün özelliği değildir.
Entegrasyonlar
INT-FIS-YAZICI (termal fiş DOS tasarımı, etiket yazıcısı), INT-ERPBOOSTER (Sistem.Activity + Pozisyon.Write), INT-RDP-SUNUCU (rapor tasarımı genelde sunucuda), INT-ERPMOBIL (ERPMobile rapor fonksiyonları, UNVERIFIED), INT-NETEKSTRE (banka ekstre raporları). Excel/PDF aktarımı DevExpress grid ile (PB-053).
Ayarlar
CFG-SUBE-BILANCOBIRIMID (bilanço birimi şubeye bağlı — BR-BILANCO-002), CFG-SUBE-REVCOSTDATE, CFG-CLIENT-FISDIZAYNI (fiş tasarımı seçimi), CFG-CLIENT-FISPRINTER, CFG-CLIENT-DIREKPRINT, CFG-CLIENT-OTOFISBAS, CFG-ETIKETBASLIK, CFG-USERGROUP-PERMISSION (rapor/Developer Studio yetkisi — H-019), CFG-HARD-TAKOZ-0600 (raporsuz takoz üç farklı değerle değerleniyor). Sistem.Settings'te doğrudan "rapor" kolonu yok.
İş kuralları
BR-BILANCO-001 TOPLAM = BAKİYE+STOK+PIRLANTA+İŞÇİLİK+TAKOZ+TAŞ+MALZEME, KÂR/ZARAR = TOPLAM − DEVİR; BR-BILANCO-002; BR-GUNSONU-001; BR-YON-007 (raporlar Bakiye'yi −1 ile çevirir); BR-BAKIYE-009 raporsuz takoz %60; BR-BAKIYE-018 tarihli toplam bakiye; BR-BAKIYE-019 vadeli bakiye sorgusu boş; BR-BAKIYE-020 fiş bakiyesi; BR-DUZELTME-011 düzeltilmiş satır renkleri; BR-YETKI-007 popup grid şifresi; BR-YETKI-010 F1–F11. Enum: Islem.tRaporTipi, Data.DataListType, Field.DatasourceType, Mizandetay.tObjectType. Metrik hesaplama farkları CONTRADICTIONS.md'de (CTR-042).
Sık sorunlar
PRB-RAPOR-000 (613 — rapor tasarımı/hatası), PRB-BILANCO-000 (458), PRB-POZISYON-000 (68), PRB-PERFORMANS-000 (42). Playbook: PB-051 "Divide by zero", PB-052 ekstre zaman aşımı, PB-053 rapor/sütun ekleme, Excel, PB-054 ALACAK/BORÇ süzgeci boş, PB-055 bilanço eksi / kur değişince değişiyor, PB-056 bilanço kaydı silme / yeni şubede boş, PB-041 Developer Studio görünmüyor.
Bilinen kusurlar
H-124…H-139 rapor ve bilanço hataları (TOPLAM 0, divide by zero, zaman aşımı, bilanço eksi, kur değişince değişiyor, takoz kaynaklı fark, aynı birim iki satır, süzgeç boş, sütun görünmüyor, geniş bilanço yok), H-019 Developer Studio sekmesi yok, H-163 işlem listesi yavaş. Teknik borç: TD-11 DB'deki kaynak kodun çalışma zamanında derlenmesi, TD-43 müşteri adlı şemalar, TD-24 DSX önbelleği, TD-21/TD-22 kur, TD-33 uyumluluk 100, TD-34 kullanılmayan tablolar. Governance: GAP-RPT-BROKEN-01, GAP-RPT-KUYUMCU, GAP-CODE-04, GAP-FN-MODIFY-DATE, CTR-042.
Müşteri varyasyonları
- MüşteriŞemasıD (ERPGOLDV2): 8
CUSTOMER_SPECIFICrapor fonksiyonu — [MüşteriŞemasıD.BakiyeEkstresi], [GetIslemKontrolRaporu]/[2], [GetPozisyon], [GetPozisyonDetay], [GetNakitStoklari], [MusteriCiroRaporu], [FirmaOzetCiroRaporu]; menü raporları RPT-2/16/19/23/24/71/79/80/81/82 (rapor adında kişi adı taşıyan kopyalar — CUSTOMER_SAFE içerikte anılmaz). Bu şema çekirdek DB'de durur (TD-43); ERPGOLD_CORE'a genellenmez. - KUYUMCU (MüşteriŞemasıA/MüşteriŞemasıB/MüşteriŞemasıC):
MüşteriŞemasıA8 fonksiyon +IslemFiyatlar(1,95 M satır) fiyat/rapor amaçlı;NetEkstreraporları; menü raporları eşlenmedi (GAP-RPT-KUYUMCU).
Kritik kod parçaları
Reports.Report, Reports.ReportsFilter, Reports.FaturaDesign, ReportLayout, ReportParameters (rapor kaydı/filtre/layout DAO'ları); Bilanco.Bilanco, Bilanco.BilancoListesi, Bilanco.BilancoDevir; DosPrint.DosReport; Dynamic.DynamicList (DB tanımlı listeler); tasarımcı UiDesigner.Ribbon.RibbonDesigner, UiDesigner.DashBoard.DashBoardDesigner, Design.RibbonItem; Win_Dashboards.iHesapDetails. Sınıf dizini Classes/INDEX.md (85 sınıf MOD-RAPOR). SQL tarafı asıl "kod"dur: rapor mantığı TVF'lerde (QA-SQL-QUERY-MAP).
İlgili eğitimler
TRN-027 bilanço mantığı, TRN-025 kâr, TRN-026 maliyet, TRN-028 sıfıra bölme, TRN-048 fiş ve ekstre kısayolları, TRN-046 işlem listesi, TRN-066 işlem kısaltmaları, TRN-086…TRN-089 kâr/maliyet/bilanço/sıfıra bölme (kitapçık), rapor yazım rehberi DOC-REPORT-GUIDE (Kısım 8).
Kaynaklar
DB_OBJECT: AifaDev.Reports (88 satır, 60 aktif), AifaDev.RibbonPage/RibbonItem, Bilanco.Bilancolar (61.778), Bilanco.SaveAll, Pozisyon.Write · DB_QUERY: OBJECT_ID NULL kontrolü menü raporları (MCP, 2026-09-11) · SOURCE_CODE:Form/Genel/FrmMainForm.Designer.vb:270 · DERIVED: 10_Reports/Menu/INDEX.md, Functions/INDEX.md, METRIC_DICTIONARY.md, DOC-REPORT-GUIDE.md, 05_Screens/_lifecycle.json · GOVERNANCE: CTR-042, GAP-RPT-BROKEN-01, GAP-RPT-KUYUMCU, GAP-CODE-04 · TICKET_THEME: PRB-RAPOR-000, PRB-BILANCO-000.
Bilinmeyenler
- GAP-CODE-04: rapor/fiş tasarım dosyaları (.repx) ve
AIO.Printing.Fiskaynakta yok; layout yalnızAifaDev.ReportLayoutsikili verisinde. - GAP-RPT-BROKEN-01: menüde olup fonksiyonu olmayan 4 rapor (MüşteriŞemasıD.GetCariBakiyeHaraketleri, MüşteriŞemasıD.GetEnvanter, Reports.IptalIslemRaporu, Cari.HesapExtresiDetails) — MüşteriŞemasıD canlı DB'sinde var mı, kontrol edilmedi.
- GAP-RPT-KUYUMCU: KUYUMCU kurulumunun rapor menüsü eşlenmedi;
MüşteriŞemasıAfonksiyonlarının menü kaydı bilinmiyor. - GAP:
Design.*(eski) ileAifaDev.*(yeni) tasarım şemalarının ilişkisi ve geçiş tarihi;Report/Reports/ReportsV2üç sürümün hangisinin güncel olduğu (TD-43). - GAP: Bilanço, pozisyon ve rapor ekranlarının modül ataması
_lifecycle.json'da dağınık (MOD-SISTEM/MOD-DIGER) — CTR adayı; 54 rapor fonksiyonunun özet açıklaması boş (Functions/INDEX "Özet" sütunu).
