AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.01.2020, 13:45   #421  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
571 / 255 (10) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Оптимизировал немного кастомный код в плане как производительности, так и удобочитаемости
X++:
public Boolean ppoContainerActive(InventDimGroupId _dimGroup)
{
    // > Modified by ---------- ----- (-------@----------------.com), 01-21-2020, zzz_CHG0033895_SFWrkCtrAssignToWasteCode
    InventDimSetup  inventDimSetup;

    select firstonly RecId from inventDimSetup
        where inventDimSetup.DimGroupId == _dimGroup
           && inventDimSetup.Active
           && inventDimSetup.DimFieldId == fieldnum(InventDim, AFCInventContainerId);

    return inventDimSetup.RecId != 0;
    // < Modified by ---------- ----- (-------@----------------.com), 01-21-2020, zzz_CHG0033895_SFWrkCtrAssignToWasteCode
    //InventDimGroup  inventDimGroup;
    //InventDimSetup  inventDimSetup;
    //Boolean         doContainer;
    //;
    //
    //inventDimGroup = InventDimGroup::find(_dimGroup);
    //while select inventDimSetup where inventDimSetup.dimGroupId == _dimGroup
    //{
    //    if (inventDimSetup.Active == NoYes::Yes)
    //    {
    //        if (inventDimSetup.DimFieldId == fieldnum(InventDim, afcInventContainerId))
    //        {
    //            doContainer = true;
    //        }
    //    }
    //}
    //
    //return doContainer;
    // < Modified by ---------- ----- (-------@----------------.com), 01-21-2020, zzz_CHG0033895_SFWrkCtrAssignToWasteCode
}
__________________
// no comments
За это сообщение автора поблагодарили: S.Kuskov (2).
Старый 13.03.2020, 10:15   #422  
axm2017 is offline
axm2017
Участник
 
343 / 172 (6) ++++++
Регистрация: 15.05.2017
strange russian code
X++:
            vendTrans       = this.transBuffer();
            vendTransOpen   = this.transOpenBuffer();

            while select sum(AmountMST) from vendTransOpen
                group by RefRecId
                where vendTransOpen.AccountNum  == this.AccountNum
                   && vendTransOpen.TransDate   >= _fromDate
                   && vendTransOpen.TransDate   <= _toDate
                join  vendTrans
                    where vendTrans.RecId       == vendTransOpen.RefRecId
                       && (vendTrans.Invoice    != ''
                       || (vendTrans.Invoice    == '' && vendTrans.AmountMST    < 0))
            {
                openBalanceMST += vendTransOpen.AmountMST;
            }
из openInvoiceBalanceMST в табличке VendTable.

Последний раз редактировалось axm2017; 13.03.2020 в 10:17.
Старый 13.03.2020, 10:28   #423  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,884 / 1021 (38) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от axm2017 Посмотреть сообщение
strange russian code
...
из openInvoiceBalanceMST в табличке VendTable.
А почему russian? Такой код и в старых версиях есть и полностью на слое SYS. russian там методы, которые баланс по договору считают.
Старый 13.03.2020, 11:15   #424  
axm2017 is offline
axm2017
Участник
 
343 / 172 (6) ++++++
Регистрация: 15.05.2017
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
А почему russian? Такой код и в старых версиях есть и полностью на слое SYS. russian там методы, которые баланс по договору считают.
Sorry, действительно не факт что русский, видимо американо-индийский , а по договорам там кстати подобный же косяк хотя там он имеет хоть какое то объяснение-обоснование.

Последний раз редактировалось axm2017; 13.03.2020 в 11:18.
Старый 24.03.2020, 14:30   #425  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
571 / 255 (10) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Наткнулся в недрах класса JournalRunBaseBatch
X++:
public container  pack()
{
    throw error(Error::missingOverload(funcName()));
}
То же самое и для unpack().
Здесь как бы разница есть, перегружен метод, или переопределен.
Причем в Х++ сроду не было перегруженных методов.
Видимо, не сильно-то и важно. Заходим внутрь и видим:
X++:
//Do not use!
//Declare method as abstract instead or call Error::missingOverride();
#obsolete static LabelType missingOverload(str name)
{
    return Error::missingOverride(name);
}
Ладно, здесь возможно заглушку поставили на случай будущих апгрейдов в сторону нормальных языков.
Но что мешало сразу использовать missingOverride()?
Напомню, кто может не въехал.
Override - переопределение метода в рамках наследования.
Overload - перегрузка метода, т.е. в теле одного класса мы можем разместить дофига методов с одним и тем же именем, но разными параметрами. Что очень распространено в C#, Java и Delphi.
Такое чувство, что разработчики MS просто сами не сильно понимают в чем разница.
__________________
// no comments
Теги
axapta, cil, rasset, баг

 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:56.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.