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

3.8 KiB
Raw Blame History

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

$sectionedDetails = [];
foreach($resultDetail as $detail) {
    $section = intval($detail->section);
    if (!isset($sectionedDetails[$section])) {
        $sectionedDetails[$section] = [];
    }
    $sectionedDetails[$section][] = $detail;
}

2. Template Row Offset Hesaplama

$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ı

{
    "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

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