DataObjects/Core_company.php
[Pman.Core] / SimpleExcel.php
index a75705f..9cf26af 100644 (file)
@@ -239,38 +239,59 @@ class Pman_Core_SimpleExcel extends Pman
         if (empty($data)) {
             return;
         }
+        foreach($cfg['cols']  as $c => $col_cfg) {
+            if (isset($col_cfg['renderer'])) {
+                $hasRender = true;
+                break;
+            }
+        }
         
         
-        foreach($data as $r=>$clo) {
-            $hasRenderRow = $this->addLine($cfg['workbook'], $clo);
-            $hasRender = ($hasRender  || $hasRenderRow) ? true : false;
-             
-        }
-        /// call user render on any that are defined..
-        if ($hasRender) {
-            foreach($data as $r=>$cl) {
+        
+        if (is_object($data)) {
+            $data_ar = array();
+            $count = $data->count();
+            $data->find();
             
-                foreach($cfg['cols']   as $c=>$col_cfg) {
-                    $v = isset($cl[$col_cfg['dataIndex']]) ? $cl[$col_cfg['dataIndex']] : '';
-                    if (empty($cl[$col_cfg['dataIndex']])) {
-                        continue;
-                    }
-                    if (!empty($col_cfg['renderer'])) {
-                        
-                        if (is_a($col_cfg['renderer'], 'Closure')) {
-                            $col_cfg['renderer'](new StdClass, $cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $cl);
-                        } else {
-                        // not sure if row is correct here...!!!?
-                            call_user_func($col_cfg['renderer'], $cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $cl);
+            while($data->fetch()) {
+                $hasRenderRow = $this->addLine($cfg['workbook'], $data);
+                $hasRender = ($hasRender  || $hasRenderRow) ? true : false;
+            }
+            $start_row += $count;
+        } else { 
+        
+            foreach($data as $r=>$clo) {
+                $hasRenderRow = $this->addLine($cfg['workbook'], $clo);
+                $hasRender = ($hasRender  || $hasRenderRow) ? true : false;
+                 
+            }
+        /// call user render on any that are defined..
+            if ($hasRender) {
+                foreach($data as $r=>$cl) {
+                
+                    foreach($cfg['cols']   as $c=>$col_cfg) {
+                        $v = isset($cl[$col_cfg['dataIndex']]) ? $cl[$col_cfg['dataIndex']] : '';
+                        if (empty($cl[$col_cfg['dataIndex']])) {
+                            continue;
                         }
-                        
+                        if (!empty($col_cfg['renderer'])) {
+                            
+                            if (is_a($col_cfg['renderer'], 'Closure')) {
+                                $col_cfg['renderer']($cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $cl);
+                            } else {
+                            // not sure if row is correct here...!!!?
+                                call_user_func($col_cfg['renderer'], $cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $cl);
+                            }
+                            
+                        }
+                      //  echo "<PRE>WRITE: ". htmlspecialchars(print_r(array($r+1, $c, $cl[$col_cfg['dataIndex']]), true));
+                 
                     }
-                  //  echo "<PRE>WRITE: ". htmlspecialchars(print_r(array($r+1, $c, $cl[$col_cfg['dataIndex']]), true));
-             
                 }
             }
+            $start_row += count($data);
+
         }
-        $start_row += count($data);
         
         if (!empty($cfg['foot'])) {
             foreach($cfg['foot'] as $row) { 
@@ -332,8 +353,8 @@ class Pman_Core_SimpleExcel extends Pman
             if (isset($col_cfg['txtrenderer'])) {
                 
                  if (is_a($col_cfg['txtrenderer'], 'Closure')) {
-                    var_dump($col_cfg['txtrenderer']);
-                    $v =     $col_cfg['txtrenderer'](new StdClass, $cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $clo);
+                     
+                    $v =     $col_cfg['txtrenderer']($cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $clo);
                 } else {
                     $v = call_user_func($col_cfg['txtrenderer'], 
                             $cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $clo);