28.08.2010, 23:06 | #1 |
Участник
|
fatihdemirci: Lookup’ta join ile query yazmak
Источник: http://www.fatihdemirci.net/index.ph...-query-yazmak/
============== Merhaba Axapta formlarında bir alanın lookup metodunu ezmek zorunda kalabilirsiniz. Örneğimizde bir lookup metedu var. join ile query yazılıp kriter veriliyor. X++: static client void lookupPortfolioPromissory(FormStringControl _ctrl, CurrencyCode _filterStr)// para birimine göre farklı gelsin { SysTableLookup sysTableLookup = SysTableLookup::newParameters(tablenum(BankAccountTable),_ctrl); Query query = new Query(); QueryBuildDataSource queryBuildDataSource = query.addDataSource(tablenum(BankAccountTable)); // birinci tablomuz QueryBuildDataSource qdbs; ; sysTableLookup.addLookupfield(fieldnum(BankAccountTable,AccountId)); / lookup ta necek alanlar sysTableLookup.addLookupfield(fieldnum(BankAccountTable,Name)); qdbs = queryBuildDataSource.addDataSource(tablenum(BankTransType)); // join edilecek tablomuz qdbs.addLink(fieldnum(BankAccountTable , AssignedBankTransType ),fieldnum(BankTransType , BankTransType )); // burası aslında inner joini otomatik yapar qdbs.joinMode(joinmode::InnerJoin); // burda farklı join tiplerini secebileceğinizi göstermek için yazdım // strfmt ile query ye range vermek ile ilgili bir çok örnek mevcut burda enumda bulunan iki değerin dışında kalanlar gelsin demek istiyoruz //dikkat edilmesi gereken bir kaç husus var mesela Sql tek “=” karakteri kullanır eşit değil için “<>” // ve bunun gibi farkları gözönünde bulundurun yoksa bu kod niye çalışmıyor diye tırmalar durusunuz benim gibi qdbs.addRange(fieldnum(BankTransType,ExchangeNoteDocType)).value(strFmt( ((ExchangeNoteDocType <> %1) OR (ExchangeNoteDocType <> %)), any2int( ExchangeNoteDocType::Cheque),any2int(ExchangeNoteDocType::PromissoryNotes ))); queryBuildDataSource.addRange(fieldnum(BankAccountTable,CurrencyCode)).value(_filterStr); // gönderilen para birimine göre kriter ekliyoruz sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); } Selamlar. Источник: http://www.fatihdemirci.net/index.ph...-query-yazmak/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
29.08.2010, 13:35 | #2 |
Участник
|
Мне кажется, кроме fed'а мало кто тут силен в турецком Даже google translate не дает понять, в чем смысл: в том, что из-за join'а lookup валится с ошибкой? Может, просто нужно extended range нормально задать вот здесь?
X++: qdbs.addRange(fieldnum(BankTransType,ExchangeNoteDocType)).value( strFmt(' ((ExchangeNoteDocType <> %1) OR (ExchangeNoteDocType <> "%2?))', any2int( ExchangeNoteDocType::Cheque),any2int(ExchangeNoteDocType::PromissoryNotes ))); |
|
|
За это сообщение автора поблагодарили: mazzy (2). |