Files
citrus-cms/resources/views/guide/MULTIPLE-SECTION-TEMPLATE-ROW-SYSTEM.md
T
2026-04-28 21:15:09 +03:00

152 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Excel Şablonunda Çoklu Section Template Row Sistemi
## 📋 Genel Bakış
Bu sistem, Excel şablonlarında farklı section'lar için özelleştirilmiş template row'ların yönetimini sağlar. Her section için ayrı template row'lar tanımlanabilir ve veriler bu template'lere göre dinamik olarak yerleştirilir.
## 🔑 Temel Özellikler
- Çoklu section desteği (Section 1, 2, 3)
- Dinamik satır ekleme ve yönetimi
- Akıllı offset hesaplama sistemi
- Formül ve merge işlemlerinin otomatik güncellenmesi
- Detaylı loglama sistemi
## 💡 Çalışma Prensibi
### 1. Section Bazlı Veri Yönetimi
```php
$sectionedDetails = [];
foreach($resultDetail as $detail) {
$section = intval($detail->section);
if (!isset($sectionedDetails[$section])) {
$sectionedDetails[$section] = [];
}
$sectionedDetails[$section][] = $detail;
}
```
### 2. Template Row Offset Hesaplama
```php
$totalAddedRows = 0; // Önceki section'larda eklenen toplam satır
$startRow = $originalStartRow + $totalAddedRows; // Offset uygulanmış satır
```
## 🛠️ Teknik Detaylar
### Template Row İşlemleri
1. **Template Row Tanımlama**
- Her section için ayrı template row numarası belirlenir
- Template row'lar Excel şablonunda önceden tanımlanır
2. **Veri Yerleştirme**
- Her section için template row kopyalanır
- Placeholder'lar gerçek verilerle değiştirilir
- Boş section'lar için placeholder'lar temizlenir
3. **Formül ve Merge Yönetimi**
- Formüller offset'e göre güncellenir
- Merge işlemleri yeni satır numaralarına göre ayarlanır
### Örnek Section Yapısı
```json
{
"section1": {
"template_row": 14,
"data": [...],
},
"section2": {
"template_row": 17,
"data": [...],
},
"section3": {
"template_row": 22,
"data": [...],
}
}
```
## 📊 Veri Akışı
1. SQL sorgusundan section bazlı veri alınır
2. Veriler section'lara göre gruplanır
3. Her section için:
- Template row kopyalanır
- Veriler yerleştirilir
- Offset hesaplanır
- Formüller güncellenir
- Merge işlemleri yapılır
## 🔍 Loglama Sistemi
```php
function logProcessInfo($message, $data = [], $type = 'info') {
$logData = [
'timestamp' => date('Y-m-d H:i:s'),
'type' => $type,
'message' => $message,
'memory_usage' => round(memory_get_usage() / 1024 / 1024, 2) . ' MB',
'data' => $data
];
// Log kayıt işlemleri...
}
```
## ⚠️ Dikkat Edilmesi Gerekenler
1. **Template Row Pozisyonları**
- Template row'lar arası mesafe yeterli olmalı
- Section sıralaması doğru yapılmalı
2. **Veri Doğrulama**
- Section numaraları kontrol edilmeli
- Veri tipleri doğrulanmalı
3. **Performans**
- Büyük veri setlerinde bellek yönetimi
- Formül hesaplama optimizasyonu
## 🔄 İşlem Adımları
1. **Başlangıç**
- Excel şablonu yüklenir
- SQL sorguları çalıştırılır
- Section'lar belirlenir
2. **Veri İşleme**
- Her section için veriler gruplanır
- Template row'lar kopyalanır
- Offset hesaplanır
3. **Sonlandırma**
- Template row'lar temizlenir
- Excel dosyası kaydedilir
- PDF dönüşümü yapılır
## 📈 Performans İyileştirmeleri
- Bellek yönetimi optimizasyonu
- Formül hesaplama stratejisi
- Merge işlemlerinin optimize edilmesi
- Gereksiz döngülerin azaltılması
## 🎯 Kullanım Senaryoları
1. **Çoklu Bölümlü Raporlar**
- Farklı veri grupları
- Özelleştirilmiş formatlar
- Dinamik içerik
2. **Karmaşık Form Şablonları**
- Çoklu veri girişi
- Özel formatlama
- Otomatik hesaplamalar
## 🔧 Hata Yönetimi
- Detaylı loglama sistemi
- Section bazlı hata yakalama
- Veri doğrulama kontrolleri
- Bellek yönetimi izleme