Показать сообщение отдельно
Старый 05.09.2016, 12:29   #8  
Sada is offline
Sada
Программатор
Аватар для Sada
 
1,450 / 153 (8) ++++++
Регистрация: 29.03.2005
Адрес: Толи Барнаул, толи Москва
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;
}
код с формы