ikinci temizlik tamamlandı
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user