AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.09.2010, 23:05   #1  
Blog bot is offline
Blog bot
Участник
 
25,626 / 848 (80) +++++++
Регистрация: 28.10.2006
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();
}
Selamlar.


Источник: http://www.fatihdemirci.net/index.ph...apabilirsiniz/
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
fatihdemirci: Lookup’ta join ile query yazmak Blog bot DAX Blogs 1 29.08.2010 13:35
fatihdemirci: CrossCopmany ile query yazmak Blog bot DAX Blogs 0 17.08.2010 16:05
Глюки в Query с разными типами Join (в т.ч. NonExistsJoin) к одной таблице gl00mie DAX: Программирование 10 14.02.2007 13:22
Вопрос по query и join tischenko DAX: Программирование 2 20.07.2005 13:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:00.