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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Dijital Dönüşümünüzü AI İle Hızlandırın

Dynamics 365 ve AI destekli çözümlerle iş süreçlerinizi optimize edin, verinizi anlamlı içgörülere dönüştürün ve büyümenizi sürdürülebilir hale getirin.

AI-Ready Enterprise Partner

Microsoft Dynamics 365 ERP, CRM, Power Platform, Azure, Power BI ve yapay zekâ çözümlerini bir araya getirerek kurumsal sistemlerinizi güçlendirir, operasyonel karmaşıklığı azaltır ve geleceğe hazır bir dijital mimari tasarlarız.

DMR olarak Microsoft ekosisteminde Business Applications, Digital & App Innovation ve Data & AI alanlarındaki yetkinliklerimizle; ERP’den CRM’e, bulut çözümlerinden yapay zekâ uygulamalarına kadar uçtan uca dijital dönüşüm hizmetleri sunuyoruz.

Dynamics 365 Finance ve Supply Chain specialization uzmanlığımızı, Tier 1 CSP gücümüzle birleştirerek müşterilerimize danışmanlık, uygulama, lisanslama ve destek süreçlerinde bütünleşik bir hizmet modeli sağlıyoruz.

DMR Göztepe Merkez Ofis

Eğitim Mah. Hızırbey Cad. No:118/5 D:1 Kadıköy İstanbul

Marmara Üniversitesi Göztepe Kampüsü Teknopark

Tel: +90 216 470 79 49

E-posta: info@dmrbt.com

DMR Başıbüyük Ofis

Başıbüyük Mahallesi Süreyyapaşa Başıbüyük Yolu Sk. No: 4/7 Maltepe İstanbul

Marmara Üniversitesi Başıbüyük Kampüsü Teknopark

Tel: +90 216 470 79 49

E-posta: info@dmrbt.com