Тема: Fact boxes
Показать сообщение отдельно
Старый 26.07.2016, 16:33   #3  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от macklakov Посмотреть сообщение
Добрый день

У нас возникли некоторые затруднения с производительностью, поэтому хотелось бы отключить те Fact Boxes, которые пользователям не нужны. Иначе говоря, задача отключить все Fact Boxes, кроме некоторых.
Не подскажите способ как это сделать с минимальными телодвижениями?
Заранее благодарю

AX 2012 R2 CU9
Способ 1 "Если хочется покодить"
- набросал на скорую руку, произв. эксплуатацию не проходило
- можно вынести в настройке конкретизацию, какие именно фактбоксы отключить

\Classes\SysFormRun\isFormPart
X++:
// EVGA: 26.07.2016
public client static boolean isFormPart(FormRun _formRun, Args _args = null)
{
    boolean             ret;
    MenuItemName        menuItemName;
    MenuItemObjectType  menuItemObjectType;
    Args                args;
    
    args = _formRun ? _formRun.args() : _args;

    if (args && args.menuItemType() == MenuItemType::Display)
    {
        menuItemName = args.menuItemName();

        menuItemObjectType = new MenuFunction(menuItemName, MenuItemType::Display).objectType();

        if (menuItemObjectType == MenuItemObjectType::FormPart ||
            menuItemObjectType == MenuItemObjectType::InfoPart || 
            menuItemObjectType == MenuItemObjectType::CueGroup)
        {
            ret = true;
        }
    }

    return ret;
}
\Classes\ClassFactory\formRunClassOnClient
X++:
client static FormRun formRunClassOnClient(xArgs args)
{
    SysSetupFormRun sysSetupFormRun;

    if (SysTaskRecorderEventManager::parmRecording())
    {
        return SysTaskRecorderSetupFormRun::newArgs(args);
    }
    
    // EVGA: 26.07.2016 --> 
    if (SysFormRun::isFormPart(null, args))
    {
       return null;
    }
    // EVGA: 26.07.2016 <--

    sysSetupFormRun = new SysSetupFormRun(args);
    return sysSetupFormRun;
}

Способ 2 "Без кастомизаций, но все-равно покодить"
- Пробежаться по SysLastValue и отключить лишнее
Вложение 10887

Последний раз редактировалось DSPIC; 28.09.2017 в 01:50.
За это сообщение автора поблагодарили: mazzy (2), macklakov (11), Logger (15).