否,我正在计算总余额amt($ row ['BalanceAmt'])。在此另一个字段中,有发票编号。发票编号将是重复的。如果重复出现,则一次只能计算余额。例如,发票数字为1,1,2,3,4,4,7,余额为10,10,30,40,20,20,80,总余额应为20 + 30 + 20 + 80 = 15 现在的问题是,计算所有余额也包括所有重复的发票编号 有什么办法可以消除此错误?
$sql = "SELECT a.cusName as CustomerName, a.invoiceNo as InvoiceNo,
a.bal_amt as BalanceAmt,
b.itemsName as Items,b.rate as Rate,
ROUND(b.amt_vat + b.amount, 2) as Amount
FROM invoices a, invoice_items b where a.invoiceID=b.invoiceid and a.status IS NULL
and a.invoiceDate between '$getfromdate' and '$gettodate'
order by a.invoiceID desc";
$result = mysqli_query($link, $sql);
$resultpaymenttotal = mysqli_query($link, $sqlgettotalpyment);
// Header info settings
header("Content-Type: application/xls");
header("Content-Disposition: attachment; filename=$xls_filename");
header("Pragma: no-cache");
header("Expires: 0");
/***** Start of Formatting for Excel *****/
// Define separator (defines columns in excel & tabs in word)
$sep = "\t"; // tabbed character
$col_cnt = 0;
// Start of printing column names as names of MySQL fields
for ($i = 0; $i<mysqli_num_fields($result); $i++) {
$field_info = mysqli_fetch_field($result);
$col = "{$field_info->name}";
echo $col . "\t";
$col_cnt++;
}
print("\n");
// End of printing column names
// Start while loop to get data
$row_cnt = 0;
$tot_BalanceAmt = 0;
while($row = mysqli_fetch_assoc($result))
{
$schema_insert = "";
$schema_insert .= $row['CustomerName'].$sep.$row['CustomerMob'].$sep.$row['InvoiceNo'].$sep.$row['AdvanceAmt'].$sep.$row['BalanceAmt'].$sep.$row['Items'].$sep.$row['Rate'].$sep.$row['Amount'];
$tot_BalanceAmt += $row['BalanceAmt'];
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
$schema_insert .= "\t";
print(trim($schema_insert));
print "\n";
$row_cnt ++;
}
print "\n";
$schema_insert = "";
for($i=0;$i<$col_cnt-25;$i++)
{
$schema_insert .= " ".$sep;
}
$schema_insert .= "TOTAL BALANCE = ".$sep;
$schema_insert .= $tot_BalanceAmt.$sep;
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert);
$schema_insert .= "\t";
print($schema_insert);
print "\n";
答案 0 :(得分:1)
尝试一下:
初始化后立即const staticID = "9B60F750-C64F-433A-8C1E-9E88639DC503";
onLoad(object) {
object.uuid = staticID;
}
添加$tot_BalanceAmt = 0;
放入 while循环代码字符串的正文:
$invoiceHasProcessed = array();
替换为
$tot_BalanceAmt += $row['BalanceAmt'];