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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.04.2011, 17:03   #23  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Настоящие программисты не то что справку, но и комментарии в программах не пишут Тем не менее, если вдруг найдется какой "не настоящий", который решится все-таки писать контекстную справку в Ax2009, то парочка обнаруженых (и исправленных) проблем.

Проблема 1

Если открыть форму настройки отчета и нажать кнопку F1, то будет вызвана справка по форме Dialog. А это не имеет смысла, поскольку эта форма общая для всех классов на базе класса RunBase.

Чтобы исправить эту ошибку необходимо модифицировать метод формы

\Forms\Dialog\Methods\task

X++:
int task(int task)
{
    int         ret;
    // RTG, 27.04.2011, Maksi -->
    TreeNode            treeNode;
    str                 treeNodePath;
    RunBaseReportStd    runBaseReportStd;
    ;

    #AOT
    // Если нажали F1, то следует вызвать справку по классу, созданному на основе RunBase из которого и вызвана форма диалога
    // Вызов справки по самой форме диалога - не имеет смысла, поскольку она одинаковая для всех классов-наследников
    if (task == #taskF1 && this.runBase())
    {
        // Если вызов произошел из класса или наследника RunbaseReportStd, то это означает прямой вызов отчета
        // без обертки в виде RunBaseReport, поэтому надо обратится к узлу отчета
        if (SysDictClass::isEqualOrSuperclass(classIdGet(this.runBase()),classnum(RunBaseReportStd)))
        {
            runBaseReportStd    = this.runBase();
            treeNodePath        = #ApplicationReportsPath + #AOTRootPath + runbaseReportStd.parmReportName();
        }
        else
        {
            treeNodePath        = #ApplicationClassesPath + #AOTRootPath + this.runBase().name();
        }
//        info(treeNodePath);   // debug
        treeNode = TreeNode::findNode(treeNodePath);
        treeNode.AOTedit();
    }
    else
    // RTG, 27.04.2011, Maksi <--
    {
        ret = super(task);
    }

    this.callCallerTask(task);

    return ret;
}

Проблема 2

Если войти в режим редактирования справки нажав кнопку "Править", то в открывшемся окне недоступны объекты ToolBar отвечающие за изменение стиля, имени и размера шрифта. Чтобы "включить" эти объекты необходимо модифицировать метод формы

\Forms\SysInetHTMLEditor\Methods\refreshToolbars

X++:
void refreshToolbars()
{
    // RTG, 20.04.2011, Maksi -->
    //boolean  state;
    int        state;
    // RTG, 20.04.2011, Maksi <--

...
}
Кстати, замечу, что эта ошибка тянется еще с версии Ax2.5, но там из-за этого проблемы не было. Вероятно, что-то изменилось в работе метода FormActiveXControl::QueryStatus(), который и инициирует значение этой переменной.
За это сообщение автора поблагодарили: AlGol (2), Logger (5), gl00mie (3), SVlk (1).
Теги
ax2009, help update, документация, справка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Running AX2009 batches with a recurrence of 1 minute Blog bot DAX Blogs 0 14.04.2011 18:11
sumitax: SharePoint 2010 and AX2009 Blog bot DAX Blogs 0 11.11.2010 11:11
Khue Trinh: Fill Utility in AX2009 Blog bot DAX Blogs 0 28.09.2010 10:05
Shekhar: Dynamics AX2009 : Standalone Installation on Vista with Role centres and workflow. Blog bot DAX Blogs 0 30.03.2010 15:05
ax2009 & SSRS kitty DAX: Программирование 6 02.04.2009 10:38

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

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

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