projects
/
Pman.Core
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c623872
)
Fix #5884 - add photo to report
author
Alan Knowles
<alan@roojs.com>
Tue, 21 May 2019 09:35:44 +0000
(17:35 +0800)
committer
Alan Knowles
<alan@roojs.com>
Tue, 21 May 2019 09:35:44 +0000
(17:35 +0800)
Bjs.php
patch
|
blob
|
history
SimpleExcel.php
patch
|
blob
|
history
diff --git
a/Bjs.php
b/Bjs.php
index
1950d84
..
d936bcf
100644
(file)
--- a/
Bjs.php
+++ b/
Bjs.php
@@
-10,12
+10,13
@@
class Pman_Core_Bjs {
var $json;
var $fields = array();
var $json;
var $fields = array();
-
+ var $cols = array();
function __construct($file)
{
$this->json = json_decode(file_get_contents($file));
$this->iterateFields($this->json->items);
function __construct($file)
{
$this->json = json_decode(file_get_contents($file));
$this->iterateFields($this->json->items);
+ $this->iterateColumns($this->json->items);
}
function iterateFields($ar)
}
function iterateFields($ar)
@@
-23,7
+24,10
@@
class Pman_Core_Bjs {
foreach($ar as $o) {
switch ($o->xtype) {
foreach($ar as $o) {
switch ($o->xtype) {
- case "ComboBox":
+ case "ComboBox":
+ if (!isset($o->{'String hiddenName'})) {
+ continue;
+ }
$this->fields[] = $o->{'String hiddenName'};
// fall throught..
$k = isset($o->{'String name'}) ? 'String name' : 'string name';
$this->fields[] = $o->{'String hiddenName'};
// fall throught..
$k = isset($o->{'String name'}) ? 'String name' : 'string name';
@@
-66,6
+70,20
@@
class Pman_Core_Bjs {
}
}
}
}
-
+ function iterateColumns($ar)
+ {
+ foreach($ar as $o) {
+ switch ($o->xtype) {
+ case "ColumnModel":
+ $this->cols[] = $o;
+ break;
+ default:
+ if (isset($o->items)) {
+ $this->iterateColumns($o->items);
+ }
+ }
+ }
+ }
+
}
}
diff --git
a/SimpleExcel.php
b/SimpleExcel.php
index
6515710
..
6c36750
100644
(file)
--- a/
SimpleExcel.php
+++ b/
SimpleExcel.php
@@
-74,7
+74,7
@@
class Pman_Core_SimpleExcel extends Pman
var $formats = array();
var $workbook = false;
var $worksheet= false;
var $formats = array();
var $workbook = false;
var $worksheet= false;
-
+ var $postRender = array();
function __construct($data,$cfg)
{
function __construct($data,$cfg)
{
@@
-243,6
+243,7
@@
class Pman_Core_SimpleExcel extends Pman
if (empty($data)) {
return;
}
if (empty($data)) {
return;
}
+
foreach($cfg['cols'] as $c => $col_cfg) {
if (isset($col_cfg['renderer'])) {
$hasRender = true;
foreach($cfg['cols'] as $c => $col_cfg) {
if (isset($col_cfg['renderer'])) {
$hasRender = true;
@@
-279,8
+280,7
@@
class Pman_Core_SimpleExcel extends Pman
continue;
}
if (!empty($col_cfg['renderer'])) {
continue;
}
if (!empty($col_cfg['renderer'])) {
-
- if (is_a($col_cfg['renderer'], 'Closure')) {
+ 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...!!!?
$col_cfg['renderer']($cl[$col_cfg['dataIndex']], $worksheet, $r+1, $c, $cl);
} else {
// not sure if row is correct here...!!!?
@@
-370,6
+370,18
@@
class Pman_Core_SimpleExcel extends Pman
}
if (isset($col_cfg['renderer'])) {
$hasRender = true;
}
if (isset($col_cfg['renderer'])) {
$hasRender = true;
+
+ $v = isset($cl[$col_cfg['dataIndex']]) ? $cl[$col_cfg['dataIndex']] : '';
+ if (empty($cl[$col_cfg['dataIndex']])) {
+ continue;
+ }
+ $this->postRender[] = array(
+ $col_cfg['renderer'], $cl[$col_cfg['dataIndex']], $worksheet, $start_row+$r+1, $c, $cl
+ );
+
+
+
+
continue;
}
continue;
}
@@
-417,6
+429,20
@@
class Pman_Core_SimpleExcel extends Pman
function send($fname)
{
function send($fname)
{
+
+ if (!empty($this->postRender)) {
+ foreach($this->postRender as $ar) {
+ if (is_a($ar[0], 'Closure')) {
+ $ar[0]($ar[1], $ar[2], $ar[3], $ar[4], $ar[5]);
+ } else {
+ // not sure if row is correct here...!!!?
+ call_user_func($ar[0],$ar[1], $ar[2], $ar[3], $ar[4], $ar[5]);
+ }
+ }
+
+ }
+
+
if (!empty($this->workbook)) {
$this->workbook->close();
$this->workbook = false;
if (!empty($this->workbook)) {
$this->workbook->close();
$this->workbook = false;