Skip links

Müşteri cirosunu hesaplayan bir query örneği


Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 117

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 118

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 117

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 118
Müşteri cirosunu hesaplayan bir query örneği

Merhaba
Müşteri adatandırma adıyla yaptığım bir raporda kullandığım müşterinin belli kriterlere göre cirosunu hesaplayan query’ i paylaşıyorum. Burda Query kullanmamın asıl  sebebi range olarak verilecek olan değerlerin bazen boşta gelebiliyor olması. Boş olma durumununda hesaplanması için query de if le kontroller yapmak zorunda kaldım.
Metodu çağıran kod şöyle:
[sourcecode language=”csharp”]
element.sumCiro(CustTrans.AccountNum, CustTrans.OrderAccount,
CustTrans.ETGSalesResponsible , CustTrans.ETGSalesUnitId);
[/sourcecode]
Metodumuz şöyle:
[sourcecode language=”csharp”]
void sumCiro(AccountNum _accountNum , CustAccount _custAccount , EmplId _emplId , smmSalesUnitId _unitId)
{
CustTrans   custTrans;
Query                   q;
QueryRun                qRun;
QueryBuildDataSource    qbdsCustTrans;
QueryBuildRange         qbrEmplID;
QueryBuildRange         qbrCustAccount;
QueryBuildRange         qbrAccountNum;
QueryBuildRange         qbrUnitId;
;
Ciro = 0;
q   = new query();
qbdsCustTrans = q.addDataSource(tableNum(CustTrans));
qbdsCustTrans.addSelectionField(fieldNum(CustTrans, AmountMst), SelectionField::Sum);
if(printAccountNum)
{
qbrAccountNum = qbdsCustTrans.addRange(fieldNum(CustTrans, AccountNum));
qbrAccountNum.value(sysQuery::value(_accountNum));
}
if(printOrderAccount)
{
qbrCustAccount = qbdsCustTrans.addRange(fieldNum(CustTrans, OrderAccount));
qbrCustAccount.value(sysQuery::value(_custAccount));
}
if(printSalesRes)
{
qbrEmplID = qbdsCustTrans.addRange(fieldNum(CustTrans, ETGSalesResponsible));
qbrEmplID.value(sysQuery::value(_emplId));
}
if(printUnitID)
{
qbrUnitId = qbdsCustTrans.addRange(fieldNum(CustTrans, ETGSalesUnitId));
qbrUnitId.value(sysQuery::value(_unitId));
}
qbdsCustTrans.addRange(fieldNum(CustTrans, ETGReversed)).value(sysQuery::value( ETGReverseType::No));
qbdsCustTrans.addRange(fieldNum(CustTrans,
TransType)).value(sysQuery::valueNot( LedgerTransType::Settlement));
qbdsCustTrans.addRange(fieldnum(CustTrans, TransDate)).value(sysquery::range(startDate , endDate));
qbdsCustTrans.addRange(fieldnum(CustTrans, AmountMST)).value(‘( AmountMST > 0 )’);
qRun = new QueryRun(q);
while(qRun.next())
{
custTrans = qRun.get(tableNum(CustTrans));
Ciro = CustTrans.AmountMST;
}
}
[/sourcecode]
Selamlar.

Join the Discussion