Topic: Non Field Data from tables into Reports
When we need extra parameters to be included into reports we generally extend the tables with extra fields that will break db schema compatibilities for upgrades. Instead, we add them as space separated key#value pairs into the relevant tables' notes field and partake of them within reports using the function listed herein.
@joe: please include it in any file that gets universally included into all reports.
Extra Parameters in Reports taken from formatted notes field
Include the following function into any report or it's includes:
/*
// Purpose: Function to parse a string into parameters
// Release Date: 2014-12-26
// Author: ApMuthu <apmuthu@usa.net>
// Usage:
$str = "PPFrt#2000 CID#6378465 TaxEx#2345-038 abcde ertrgdert COD#4253 jdegtd PIN#6473654";
$p = parse_notes_params($str);
echo print_r($p, true);
*/
function parse_notes_params($str, $sep=" ", $delim="#") {
$str_params = explode($sep, $str);
$param_array=Array('notes' => '');
foreach ($str_params AS $str_param) {
$param_set=explode($delim, trim($str_param));
$key = (array_key_exists(0, $param_set) ? trim($param_set[0]) : '');
$val = (array_key_exists(1, $param_set) ? trim($param_set[1]) : '');
if (strlen($key) > 0 && strlen($val) > 0) {
$param_array[$key]=$val;
} else {
// stop at first missing parameter set
// break;
// Collect the rest into notes
$param_array['notes'] .= (" " . $str_param);
}
}
$param_array['notes'] = trim($param_array['notes']);
return $param_array;
}
An example of usage will be in the reporting/rep110.php file at near the end just before the last $rep-Font(); statement:
$notes_params = parse_notes_params($branch['notes']);
if ($packing_slip == 0 && array_key_exists('CID', $notes_params)) {
$rep->NewLine(1);
$rep->TextCol(1, 7, "Old Customer# : " . $notes_params['CID'], - 2);
}