Query ile yapamadığınız bir join’i nasıl yapabilirsiniz?

Merhaba
BankAccountTable’ı lookup da açtırmak istiyoruz. Kriterlerimiz şöyle.
Lookupta  BankAccountTable.AssignedBankTransType alanı boş olanlar ve BankTransType.BankTransType   <>  BankAccountTable.AssignedBankTransType
İlişkisiyle  BankTransType’ın BankTransType.ExchangeNoteDocType’ı Çek ve senetten farklı olan kayıtlar isteniyor.
Query’de   bu join’in nasıl yapılacağını bulamadım.  Bu sebepten  temp tablo kullanmaya  karar verdim.  while select kullanarak temptabloyu doldurup.
Sonra lookup için query’ı yazdım.
Axaptada joinlerle ilgili bir makaleyi ilerki zamanlarda yayınlayacağım.
Örenk metod şöyledir.
 
static client void lookupPortfolioPromissory(FormStringControl _ctrl, CurrencyCode _filterStr)
{
SysTableLookup                sysTableLookup = SysTableLookup::newParameters(tablenum(tmpBankAccountTable),_ctrl);
Query                                     query = new Query();


QueryBuildDataSource  queryBuildDataSource = query.addDataSource(tablenum(tmpBankAccountTable));
QueryBuildDataSource  qdbs;
str 100                                   strd;
BankAccountTable          BankAccountTable;
BankTransType                 BankTransType;
tmpBankAccountTable  tmpBankAccountTable;
;

  //  delete_from tmpBankAccountTable;  // tablo özelliklerinden  temp true yaparsanız bu satıra gerek kalmaz
    while select BankAccountTable
where BankAccountTable.CurrencyCode == _filterStr
{
if(BankAccountTable.AssignedBankTransType)
{
while select BankTransType
where BankTransType.BankTransType       == BankAccountTable.AssignedBankTransType
&&    BankTransType.ExchangeNoteDocType != ExchangeNoteDocType::PromissoryNotes
&&    BankTransType.ExchangeNoteDocType != ExchangeNoteDocType::Cheque
{
// info(strfmt(“%1”,BankAccountTable.AccountId));

tmpBankAccountTable.clear();
tmpBankAccountTable.AccountID = BankAccountTable.AccountId;
tmpBankAccountTable.Name      = BankAccountTable.Name;
tmpBankAccountTable.insert();
}
}
else
{
// info(strfmt(“%1”,BankAccountTable.AccountId));

tmpBankAccountTable.clear();
tmpBankAccountTable.AccountID = BankAccountTable.AccountId;
tmpBankAccountTable.Name      = BankAccountTable.Name;
tmpBankAccountTable.insert();
}

    }

sysTableLookup.addLookupfield(fieldnum(tmpBankAccountTable,AccountId));
sysTableLookup.addLookupfield(fieldnum(tmpBankAccountTable,Name));

    sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}

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