1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| function UpdateChartEntry(&$rs, &$cht_smry, &$xfld, $ybase, $sfld, &$arsfld, $smrytype) {
if (is_array($xfld)) { // X = crosstab column field
if ($sfld <> "" && is_array($arsfld)) { // Series field
$tmp_count6=count($cht_smry);
for ($i = 0; $i < $tmp_count6; $i++) {
$tmp_count7=count($xfld);
for ($j = 1; $j < $tmp_count7; $j++) {
if (trim(strval($cht_smry[$i][0])) == trim(strval($xfld[$j][0])) &&
trim(strval($cht_smry[$i][1])) == trim(strval($rs->fields($sfld)))) {
$cht_smry[$i][2] = ewrpt_SummaryValue($cht_smry[$i][2], ColVal($rs, $ybase, $j-1), $smrytype);
}
}
}
return TRUE;
} else { // No series field
$tmp_count8=count($xfld)-1;
for ($i = 0; $i < $tmp_count8; $i++)
$cht_smry[$i][2] = ewrpt_SummaryValue($cht_smry[$i][2], ColVal($rs, $ybase, $i), $smrytype);
return TRUE;
}
} elseif ($xfld <> "") { // X = crosstab row field / column field
if (is_array($sfld)) { // Column field as series field
$ny = count($sfld) - 1;
$tmp_count0=count($cht_smry)-1;
for ($i = 0; $i < $tmp_count0; $i += $ny) {
if (trim(strval($cht_smry[$i][0])) == trim(strval($rs->fields($xfld)))) { // Matched
for ($j = $i; $j <= $i+$ny-1; $j++)
$cht_smry[$j][2] = ewrpt_SummaryValue($cht_smry[$j][2], ColVal($rs, $ybase, $j-$i), $smrytype); // Accumulate Y
return TRUE;
}
}
} elseif ($sfld <> "" && is_array($arsfld)) { // Row field as series field
$tmp_count=count($cht_smry);
for ($i = 0; $i < $tmp_count; $i++) {
if (trim(strval($cht_smry[$i][0])) == trim(strval($rs->fields($xfld))) &&
trim(strval($cht_smry[$i][1])) == trim(strval($rs->fields($sfld)))) {
AccumCol($rs, $ybase, $cht_smry[$i][2], $smrytype); // Accum Y
return TRUE;
}
}
} else { // No series field
$tmp_count=count($cht_smry);
for ($i = 0; $i < $tmp_count; $i++) {
if (trim(strval($cht_smry[$i][0])) == trim(strval($rs->fields($xfld)))) {
AccumCol($rs, $ybase, $cht_smry[$i][2], $smrytype); // Accum Y
return TRUE;
}
}
}
}
return FALSE;
} |
Partager