");
print ('
Motorclothes Summary Report |
');
}
function initializeNewGroup($category, &$groupControl, &$groupOut) {
// & means passing by reference
$groupControl = $category;
$groupOut = $category;
$groupTotal = 0.00; // reset group accumulator
return $groupTotal;
}
function printControlFooting($groupControl, $total) {
$total = sprintf("%7.2f",$total);
print ("$groupControl: | " .
"$total |
");
//print ("  |
");
}
function printFinalFooting($grandTotal) {
$grandTotal = sprintf("%7.2f",$grandTotal);
print("Grand total | $grandTotal |
");
print("");
}
// main
$fp = fopen("motoclozG.txt", "r");
$grandTotal = 0.00;
printReportHeading();
$lineIn = fgets($fp); // primer input
while ( !feof($fp) ) {
$category = substr($lineIn, 30, 11); // extract control field(category)
$groupTotal = initializeNewGroup($category, $groupControl, $groupOut);
while ($category == $groupControl) { // process one group
$price = substr($lineIn, 41, 6);
$groupTotal += $price;
$lineIn = fgets($fp); // get next record(line)
$category = substr($lineIn, 30, 11); // extract control field
} // end inner loop
$grandTotal += $groupTotal;
printControlFooting($groupControl, $groupTotal);
$groupTotal = initializeNewGroup($category, $groupControl, $groupOut);
} // end outer loop
printFinalFooting($grandTotal);
fclose($fp);
?>