ikinci temizlik tamamlandı

This commit is contained in:
Ümit Tunç
2026-04-28 21:15:09 +03:00
parent f80443aec0
commit 37e7296527
8313 changed files with 2400677 additions and 0 deletions
@@ -0,0 +1,152 @@
# 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