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

Результаты опроса: Как лучше оформлять несколько условий в select where?
Я предпочитаю указывать операторы до условия 27 60.00%
Я предпочитаю указывать операторы после условия 15 33.33%
Нет предпочтений: иногда делаю так, иногда иначе 3 6.67%
Не знаю/Мне все равно 0 0%
Голосовавшие: 45. Вы ещё не голосовали в этом опросе

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.06.2011, 12:26   #2  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
Предпочитаю вариант 2:
X++:
    select firstonly paymentTrans
        where paymentTrans.AccountNum            == factureJour.CustVendInvoiceAccount
           && paymentTrans.Voucher               == factureJour.Voucher
           && paymentTrans.CurrencyCode          == factureJour.CurrencyCode
           && paymentTrans.PrepaymentFactureId_W == factureJour.FactureId
           && paymentTrans.Prepayment            == NoYes::Yes;
Использую данное оформление в силу таких факторов:
1) Более высокая читабельность кода;
2) Знаки && в начале каждого нового условия говорят о том, что данное условие является продолжением одного большого условия. Если же они стоят в конце, как в 1-м варианте, то снижается наглядность соединения условий. Данную привычку выработал, после прочтения книги Стива Макконелла "Секреты совершенного кода".

Третий пример я бы, скорее всего, оформил так:
X++:
while select bankClientPayment_RU
    where bankClientPayment_RU.RContractAccount
        notexists join RContractTable
            where ((RContractTable.RContractPartnerType == RContractPartnerType::Cust
                        && BankClientPayment_RU.PartnerType == ModuleCustVend::Cust)
                    ||(RContractTable.RContractPartnerType == RContractPartnerType::Vend
                        && BankClientPayment_RU.PartnerType == ModuleCustVend::Vend))
                  && RContractTable.RContractAccount == bankClientPayment_RU.RContractAccount
                  && RContractTable.RContractCode == bankClientPayment_RU.RContractCode
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 23.06.2011 в 12:30.
Теги
select, как правильно, оформление кода, условия

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
select в X++ и список значений в условии where Prophetic DAX: Программирование 20 17.08.2010 18:43
QueryBuildRange в select.. where propeller DAX: Программирование 11 30.09.2008 13:35
Разница NotInTTS и Found Logger DAX: База знаний и проекты 6 18.09.2008 12:35
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43
select * where ... Perc DAX: Программирование 10 06.07.2005 12:31

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

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

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