Источник:
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();
}
Tabiki bu metodu tabloya yazdım formun ilgili alanının lookup metodunu ezip bu metodu çağırmanız gerek.
Selamlar.
Источник:
http://www.fatihdemirci.net/index.ph...-query-yazmak/