2014-09-04 6 views
1

У меня есть таблица, которая сортируется по item_code и status. У меня 3 статуса = 0,1 и 2. Я хочу сделать некоторые вычисления, когда каждый статус будет завершен.PHPExcel перезаписывает строки

В принципе, PXPExcel перезаписывает последнюю строку каждой категории status. Согласно базе данных: 4 строки с status 0, 1 строка с status 1 и 5 строк с status 2. Я застрял на этой части уже пару дней, поэтому любая помощь будет оценена.

Вот мой код:

http://pastebin.com/4FZjZmt4

Вот результат экспорта файла:

http://imgur.com/xR5nP3Q

То, что я уже пытался сделать:

/* 
    * Add +1 to each count so it could count last row as well. 
    *  1. Start adding +1 to each count outside the main loop. 
    *  2. $newCountOne = $countZero + ($countOne +1); 
    *  3. $newCountTwo = $newCountOne + ($countTwo +1); 
    *  4. if ($loopCounter == ($countZero +1)) 
    *  5. To raise $key parameter in "total" row. 
    * 
    */ 

Заранее спасибо.

ответ

0

Это ваша основная проблема.

Петля при добавлении значения в конкретной ячейке должен быть таким образом:

enter image description here

EDIT:

Попробуйте это:

<?php 

    $items = 18; 
    $countZero = 4; 

    $countOne = 10; 

    $countTwo = 4; 

    $newCountOne = $countZero + $countOne; 
    $newCountTwo = $newCountOne + $countTwo; 

    echo "Segundo stop: ".$newCountOne."<br>"; 
    echo "Tercer stop: ".$newCountTwo."<br>"; 

    //Starting point. 
    $loopCounter = 1; 
    $number = 0; 


    //Each status has his own background color 
    // foreach($items AS $key=>$item) { 
     for ($i=0; $i < $items; $i++) { 

     echo "A".($number)."ACTUAL DB VALUE<br>"; 

     //Main loop 
     if($loopCounter == $countZero) { 
      echo $loopCounter."<br>"; 
      $number++; 
      //Status0 
      echo "Status 0 END <br>"; 
      echo "A"." cell number: ".($number)." TOTAL"."<br>"; 
      echo "D"." cell number: ".($number)." VALUE"."<br>"; 
      echo "E"." cell number: ".($number)." QUANTITY"."<br>"; 


     } elseif ($loopCounter == $newCountOne) { 

      $number++; 
      //Status1 
      echo "Status 1 END <br>"; 
      echo "A"." cell number: ".($number)." TOTAL"."<br>"; 
      echo "D"." cell number: ".($number)." VALUE"."<br>"; 
      echo "E"." cell number: ".($number)." QUANTITY"."<br>"; 

     } elseif ($loopCounter == $newCountTwo) { 

      $number++; 
      //Status2 
      echo "Status 2 END <br>"; 
      echo "A"." cell number: ".($number)." TOTAL"."<br>"; 
      echo "D"." cell number: ".($number)." VALUE"."<br>"; 
      echo "E"." cell number: ".($number)." QUANTITY"."<br>"; 

     } 

      //Remove this ELSE! 
      /*echo "B".($number + 7)."ACTUAL DB VALUE<br>"; 
      echo "C".($number + 7)."ACTUAL DB VALUE<br>"; 
      echo "D".($number + 7)."ACTUAL DB VALUE<br>"; 
      echo "E".($number + 7)."ACTUAL DB VALUE<br>"; 
      echo "F".($number + 7)."ACTUAL DB VALUE<br>"; 
      echo "G".($number + 7)."ACTUAL DB VALUE<br>"; 
      echo "H".($number + 7)."ACTUAL DB VALUE<br>"; 
      echo "I".($number + 7)."ACTUAL DB VALUE<br>"; 
      echo "J".($number + 7)."ACTUAL DB VALUE<br>"; 
      echo "K".($number + 7)."ACTUAL DB VALUE<br>"; 
      echo "L".($number + 7)."ACTUAL DB VALUE<br>";*/ 


     $number++; 
     $loopCounter++; 
    } 
?> 
+0

Спасибо большое за но я не могу понять, как передать мой код в ваш цикл идей. Можете ли вы помочь мне разобраться, пожалуйста? –

+0

Я понял, что вы посоветовали сделать, и я сделал это, но, к сожалению, это мне не помогло. У меня есть тот же результат с тем же самым 1 перезаписанным сырым после каждого раздела состояния. –

+0

Я играл вокруг вашего кода, и теперь у меня есть следующие результаты -> http://imgur.com/TTw1KIp, но это все еще не то, что я хотел достичь. Любые предложения? –

Смежные вопросы