X++:
void updateBalances()
{
QueryRun queryRun;
Query query;
QueryBuildDataSource qbd;
CustTrans custTrans;
;
query = new Query(custTransDebit_Q);
qbd = query.dataSourceNo(1);
qbd.findRange(fieldnum(CustTrans,AmountMST)).value(SysQuery::valueUnlimited());
qbd.findRange(fieldnum(CustTrans,TransDate)).value(SysQuery::range(dateNull(),endDate.dateValue()));
queryRun = new QueryRun(query);
startBalance = 0;
turnoverCredit = 0;
turnoverDebit = 0;
settleEndBalance = 0;
while (queryRun.next())
{
custTrans = queryRun.get(tablenum(CustTrans));
settleEndBalance += custTrans.remainAmountMST();
if (custTrans.TransDate < startDate.dateValue())
{
startBalance += custTrans.AmountMST;
}
else
{
if (custTrans.AmountMST > 0)
{
turnoverDebit += custTrans.AmountMST;
}
else
{
turnoverCredit += custTrans.AmountMST;
}
}
}
element.redraw();
}
X++:
//BP deviation documented
display AmountMST endBalance()
{
return startBalance + turnoverDebit + turnoverCredit;
}
код с формы