Board Export
Horizon, board içeriğini iki farklı formatta dışa aktarmaya izin verir:
- PNG snapshot — board canvas'ının ekran görüntüsü
- XLSX — tüm widget'ların verisini içeren Excel dosyası
Her iki format da Kaptan AI sohbeti üzerinden tetiklenir; XLSX ayrıca elle indirilebilir.
Ön Koşul
Board'da en az bir widget bulunmalı ve veri yüklenmiş olmalıdır.
1. PNG Snapshot
Board canvas'ı RepaintBoundary widget'ı içinde tutulur. Snapshot alındığında:
| Adım | Detay |
|---|---|
| 1 | RepaintBoundary.toImage() ile board ekran resmi alınır |
| 2 | ByteData olarak PNG'ye encode edilir |
| 3 | Base64 string'e dönüştürülür |
| 4 | Kaptan AI mesajına ek olarak gönderilir veya kullanıcıya indirme linki sunulur |
Tarayıcı İndirme
PNG indirme tarayıcıda Blob URL üzerinden yapılır:
Dosya adı şablonu: Board_<BoardName>_<yyyyMMdd_HHmmss>.png
2. XLSX Export
XLSX dosyası syncfusion_flutter_xlsio paketi ile üretilir. Tüm widget'ların KpiExportable arayüzü üzerinden veri katkıları toplanır.
| Adım | Detay |
|---|---|
| 1 | Tüm widget'lar dolaşılır; KpiExportable implement edenler veri sağlar |
| 2 | Her widget için ayrı sheet oluşturulur |
| 3 | Sheet adı widget adından türetilir (özel karakterler escape edilir) |
| 4 | ExportWriter.buildWorkbookBase64(sheets: sheets) ile workbook oluşur |
| 5 | Base64 dosya tarayıcıda indirilir |
Dosya adı şablonu: Board_<BoardName>_<yyyyMMdd_HHmmss>.xlsx
2.1 Sheet İçeriği
| Widget Tipi | Sheet Yapısı |
|---|---|
| Cartesian | X kolon + her seri için bir Y kolonu |
| Circular | Etiket + değer iki kolonu |
| DataGrid | Tüm görünür kolonlar olduğu gibi |
| Gauge | Tek hücre — etiket + değer |
| Dynamic Text | Tek hücre — etiket + değer |
| Two-Column List | Label + Value iki kolonu |
| Static Text | Sheet oluşturulmaz (veri yok) |
3. Export Tetikleme
Şu an Horizon UI'sinde doğrudan bir Export butonu yoktur; export işlemi:
- Kaptan AI sohbet diyaloğu üzerinden — AI ile yapılan sohbette XLSX otomatik üretilir ve mesaja eklenir; AI yanıtıyla birlikte XLSX kullanıcıya indirilir.
- (Bazı sürümlerde) Board üst barında Download ikonu — direkt XLSX indirme.
PDF Desteği
PDF export için ayrı bir kanal yoktur; tarayıcıdan Print → Save as PDF ile board dökülebilir. Daha sofistike PDF için Atlas modülünün public link'i tercih edilebilir.
4. Veri Filtreleme
Export anında aktif global filtre değerleri kullanılır. Yani:
- Filtre paneline
:baslangic = 2026-05-01set ettiyseniz XLSX yalnızca bu tarihten itibaren veri içerir. - Filtre paneline değer girmediyseniz default değerler kullanılır.
- Filtre değişikliği sonrası export yapmadan önce Apply butonuna basın.
5. Dosya Boyutu
| Faktör | Etki |
|---|---|
| Widget sayısı | Her widget bir sheet ekler |
| Veri satırı sayısı | Sorgu sonucu büyükse XLSX büyür |
| Embedded format | XLSX, base64 olarak hafıza üzerinden indirilir |
Çok Büyük Sorgular
100k+ satırlı sorgular tarayıcıyı dondurabilir. Bu tip rapor için Compass'ta LIMIT ekleyin veya backend'de tablo halinde tutun.
6. Sık Karşılaşılan Hatalar
| Belirti | Olası Neden | Çözüm |
|---|---|---|
| XLSX indirme tetiklenmiyor | Kaptan AI yanıt vermedi | Langflow servisini kontrol edin |
| PNG resmi boş | RepaintBoundary render edilemedi (CORS / off-screen) | Sayfayı yenileyin, tekrar deneyin |
| Sheet adı görünmüyor | Widget adı sadece özel karakter | Cartography'de adı güncelleyin |
| Dosya adında Türkçe karakter sorunu | İndirme adı encoding bozuk | Tarayıcıyı yeniden başlatın |
7. Sonraki Adım
→ Paylaşım