19.09.2010, 23:05 | #1 |
Участник
|
fatihdemirci: Query ile yapamadığınız bir join’i nasıl yapabilirsiniz?
Источник: http://www.fatihdemirci.net/index.ph...apabilirsiniz/
============== 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. X++: 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(); } Источник: http://www.fatihdemirci.net/index.ph...apabilirsiniz/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
20.09.2010, 10:21 | #2 |
MCT
|
Во-первых, всегда думал, что образованные турки могут писать на английском спокойно, тем более, что он у них вроде как государственный.
Во- вторых делать на клиенте в лукапе покурсовый перебор - действительно перебор.
__________________
Axapta book for developer |
|