8.5 KiB
Eleman Tipleri — dreport
Bu belge, dreport toolbar'inda bulunan ve planlanmis tum eleman tiplerini aciklar.
Mevcut Elemanlar
container — Duzen Kutusu
CSS Flexbox mantiginda calisan layout container'i. Cocuk elemanlari direction (row/column) dogrultusunda dizer. Ic ice gecebilir. Tum diger elemanlar bir container icinde yer alir.
- Binding: Yok
- Ozellikler:
direction,gap,padding,align,justify,style
static_text — Sabit Metin
Veri baglantisi olmayan, kullanicinin dogrudan yazdigi metin. Fatura basliklari, etiketler, aciklama satirlari icin kullanilir.
- Binding: Yok
- Ozellikler:
content,style(fontSize, fontWeight, color, align)
text — Dinamik Metin
JSON schema'dan veri ceken metin elemani. Kullanici schema agacindan bir alani surukleyip bu elemana baglar.
- Binding: Scalar (
"binding": { "type": "scalar", "path": "firma.unvan" }) - Ozellikler:
binding,style,format(currency, date, percentage)
repeating_table — Tekrarlayan Tablo
Array verisinden tekrarlayan satirlar ureten tablo bileseni. Fatura kalemleri, stok listeleri gibi tekrarlayan veri icin kullanilir.
- Binding: Array (
"dataSource": "kalemler") - Ozellikler:
columns(alan, genislik, hizalama),headerStyle,rowStyle,zebraStyle
line — Cizgi
Yatay veya dikey ayirici cizgi. Bolum ayirma, dekoratif amaclarla kullanilir.
- Binding: Yok
- Ozellikler:
style(strokeColor, strokeWidth)
image — Gorsel
Statik (base64/URL) veya dinamik (schema'dan) gorsel. Logo, imza, urun gorseli gibi kullanim alanlari.
- Binding: Opsiyonel scalar (dinamik gorsel icin)
- Ozellikler:
src(statik),binding,style(objectFit)
page_number — Sayfa Numarasi
Cok sayfali belgelerde otomatik sayfa numarasi. Format sablonu destekler (or: "Sayfa {current} / {total}").
- Binding: Otomatik
- Ozellikler:
format,style
barcode — Barkod / QR Kod
1D ve 2D barkod ureteci. e-Fatura, e-Arsiv, urun etiketleri icin kullanilir.
- Binding: Scalar (barkod verisi icin)
- Desteklenen formatlar: QR, EAN-13, EAN-8, CODE128, CODE39
- Ozellikler:
barcodeType,binding,style
Planlanmis Elemanlar
rich_text — Zengin Metin [Yapildi]
Tek bir metin blogu icinde karisik formatlama destekleyen eleman. Kalin, italik, farkli font boyutu, renk gibi stilleri ayni paragraf icinde kullanmayi saglar.
- Kullanim alanlari: Fatura aciklama alanlari, sozlesme maddeleri, rapor notlari, uzun formlu metin icerikleri
- Binding: Opsiyonel scalar (dinamik icerik icin)
- Yaklasim: Inline span'lar ile zengin metin. cosmic-text attributed text destekledigi icin layout engine tarafinda uyumlu.
{
"type": "rich_text",
"content": [
{ "text": "Odeme vadesi: ", "style": {} },
{ "text": "30 gun", "style": { "fontWeight": "bold", "color": "#e00" } }
]
}
Referans: Telerik (HtmlTextBox), DevExpress (Rich Text), Stimulsoft, FastReport, CraftMyPDF — hepsinde mevcut. Belge tasarim araclarinda standart bir beklenti.
shape — Sekil (Dikdortgen / Elips) [Yapildi]
Cocuk eleman barindirmayan sade gorsel element. Vurgu kutulari, dekoratif cerceveler, arka plan alanlari icin kullanilir. Container'dan farki: layout'a katilmaz, sadece gorsel amaclidir.
- Kullanim alanlari: Toplam kutusunun arka plani, raporlarda highlight alanlari, dekoratif cerceveler
- Binding: Yok
- Sekil tipleri:
rectangle,ellipse,rounded_rectangle
{
"type": "shape",
"shapeType": "rectangle",
"style": {
"backgroundColor": "#f0f0f0",
"borderColor": "#333",
"borderWidth": 0.5,
"borderRadius": 2
}
}
Referans: JasperReports, Telerik, DevExpress, Stimulsoft, FastReport, CraftMyPDF — neredeyse tum araclarda var.
checkbox — Onay Kutusu [Yapildi]
Boolean deger gosteren isaret kutusu. Isaretsiz kare veya isaretli (checkmark) kare olarak render edilir. Veri baglantisi ile dinamik calisan veya statik olarak kullanilabilen basit bir element.
- Kullanim alanlari: Irsaliyelerde "teslim edildi / edilmedi", faturalarda odeme durumu, raporlarda checklist, form benzeri belgeler
- Binding: Scalar (boolean alan)
{
"type": "checkbox",
"binding": { "type": "scalar", "path": "fatura.odpiendi" },
"style": { "size": 4, "checkColor": "#000", "borderColor": "#333" }
}
Referans: DevExpress, Telerik, Stimulsoft, FastReport, CraftMyPDF.
calculated_text — Hesaplanmis Alan [Yapildi]
Basit ifadeler (expression) ile hesaplanmis deger gosteren metin elemani. Aritmetik islemler, string birlestirme ve kosullu metin destekler.
- Kullanim alanlari: Ara toplam hesaplari (
araToplam * 0.20), string birlestirme ("Fatura No: " + fatura.no), kosullu metin, rapor ozetleri - Binding: Expression-based (birden fazla alana referans verebilir)
- Format: currency, date, percentage, number destegi
{
"type": "calculated_text",
"expression": "toplamlar.araToplam * 0.20",
"format": "currency",
"style": { "fontSize": 10 }
}
Referans: Crystal Reports (Formula Field), JasperReports (Variable), Stimulsoft (Expression).
current_date — Tarih / Zaman [Yapildi]
Belgenin basilma/render anindaki tarihi otomatik gosteren element. page_number gibi otomatik deger uretir, veri baglantisi gerektirmez.
- Kullanim alanlari: Fatura basim tarihi, rapor olusturma zamani, belge altbilgisi
- Binding: Otomatik
- Format: Konfigurasyon ile (or:
DD.MM.YYYY,DD MMMM YYYY,DD.MM.YYYY HH:mm)
{
"type": "current_date",
"format": "DD.MM.YYYY",
"style": { "fontSize": 8, "color": "#666" }
}
Referans: Crystal Reports (Print Date), JasperReports (Current Date), BIRT (AutoText).
page_break — Sayfa Sonu [Yapildi]
Kullanicinin belirli bir noktada yeni sayfaya gecmesini saglayan kontrol elemani. Otomatik sayfa sonu (page_break.rs) zaten mevcut, bu element manuel kontrol saglar.
- Kullanim alanlari: Rapor ozet sayfasi + detay sayfasi ayrimi, faturada ek bilgi sayfasi, belirli bolumlerin ayri sayfada baslamasi
- Binding: Yok
- Gorsel: Editorde kesikli cizgi olarak gosterilir, PDF'te sayfa gecisi uretir.
{
"type": "page_break"
}
Referans: DevExpress (Page Break kontrol), Stimulsoft.
chart — Grafik [Henuz implemente edilmedi]
Veri gorselIestirme icin basit grafik elemani. Rapor ciktilari icin degerli, fatura/irsaliye icin genellikle gereksiz.
- Kullanim alanlari: Satis raporlari, performans ozetleri, karsilastirmali veriler
- Binding: Array veya multiple scalar
- Grafik tipleri:
bar,pie,line(baslangic seti) - Yaklasim: Backend'de SVG olarak render edilip PDF'e image olarak gomulur.
{
"type": "chart",
"chartType": "bar",
"dataSource": "aylik_satislar",
"labelField": "ay",
"valueField": "tutar",
"style": { "width": 120, "height": 80 }
}
Referans: JasperReports, Crystal Reports, Telerik, DevExpress, Stimulsoft, CraftMyPDF — enterprise araclarin tamami destekler.
Toolbar Organizasyonu
Toolbar
├── Duzen
│ ├── Container (mevcut)
│ └── Page Break (mevcut)
├── Metin
│ ├── Statik Metin (mevcut)
│ ├── Rich Text (mevcut)
│ └── Hesaplanmis Alan (mevcut)
├── Veri
│ ├── Tekrarlayan Tablo (mevcut)
│ └── Checkbox (mevcut)
├── Gorsel
│ ├── Gorsel (mevcut)
│ ├── Cizgi (mevcut)
│ ├── Sekil (mevcut)
│ └── Barkod / QR (mevcut)
├── Otomatik
│ ├── Sayfa No (mevcut)
│ └── Tarih (mevcut)
└── Rapor
└── Grafik (planlanmis)
Oncelik Sirasi
| Oncelik | Element | Gerekce | Durum |
|---|---|---|---|
| 1 | rich_text |
Karisik formatlama en cok talep edilen ozellik, cosmic-text uyumlu | Yapildi |
| 2 | shape |
Basit implementasyon, gorsel zenginlik katiyor | Yapildi |
| 3 | checkbox |
Boolean gosterim, form/irsaliye icin onemli | Yapildi |
| 4 | calculated_text |
Hesaplama ihtiyaci fatura/rapor icin kritik | Yapildi |
| 5 | current_date |
Kucuk ama kullanisli, hizli implemente edilir | Yapildi |
| 6 | page_break |
Manuel sayfa kontrolu, rapor senaryolari icin | Yapildi |
| 7 | chart |
En karmasik, rapor fazinda ele alinabilir |