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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.03.2003, 15:58   #1  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
XppCompiler
Кто-нибудь этим чудом пользовался?

Есть два вопроса: (с)

- Что за метод compileExpr? Никак не могу скормить ему строку, которую он мог бы скомпилировать, в отличие от compile.

- Можно как-то добрать до более подробной, чем XppCompiler.errorText() информации об ошибке? "Ошибка -1. Синтаксическая ошибка." не очень информативно - не указывается место, где ошибка возникла
Старый 25.03.2003, 16:45   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Поискал по классам. Похоже XppCompiler используется только в классе XMLRunScript. Правда этот метод там не используется Зато используется Compile. Как я понял, там в xml'е получется код с параметрами, а в методе он парсится и запускается на выполнение.

Если не секрет, что за задача то такая ?
Старый 25.03.2003, 17:11   #3  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Поискал по классам. Похоже XppCompiler используется только в классе XMLRunScript. Правда этот метод там не используется
Гы. Я тоже поискал перед тем, как сюда написать

Цитата:
Если не секрет, что за задача то такая ?
Не секрет. Расчетная, деньги считать.

Возникает куча очень похожих мелких параметров, расчет которых было бы правильнее в интерфейсе настраивать, а не в коде прописывать. Писать свой макроязык, его интерпретатор - себе дороже. Создавать под каждый параметр классы - не катит, их количество - сотни, если не тысяча-две. А вот простой класс, который умеет эти незатейливые формулы умеет переводить в X++ и там выполнять, очень помог бы.
PHP код:
static void Job4(Args _args)
{
    
XppCompiler     compiler = new XppCompiler();
    
str             execStr;
    
str             cr;
    
str             res;
    ;

    
cr num2char(13) + num2char(10);

    
execStr =
        
"static Date Job1()" cr +
        
"{" cr +
        
";" cr +
        
"return _SystemDateGet::CurrentDate();" cr +
        
"}";

    if (
compiler.compile(execStr))
    {
        
res compiler.executeEx();
    }
    else
    {
        
info(compiler.errorText());
        
error("compile failed");
    }

Для полного счастья не хватает в случае, если код неправильный сформировался, показать точно, где ошибка. Вот с этим и воюю
Старый 25.03.2003, 17:39   #4  
Garic is offline
Garic
NavAx
Аватар для Garic
NavAx Club
 
393 / 63 (3) ++++
Регистрация: 23.07.2002
Адрес: Москва
Я это решал следующим образом:
Сделал некий класс без методов. Туда динамически добавлял нужную ф-цию, запускал AOT.compile(), после чего её удалял. Правда вот после удаления 'Окно сообщений' обновляется. По этому поводу я выкидывал инфобокс до её удаления. Ну а в 'Окне сообщений' собственно вся нужная информация.
Изврат конечно но работает
__________________
С уважением, Игорь Ласийчук.
Старый 25.03.2003, 17:45   #5  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Об этом я тоже подумал, но боюсь эту проблему ты таким способом не решишь:

Цитата:
Для полного счастья не хватает в случае, если код неправильный сформировался, показать точно, где ошибка.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX Geek: Executing external x++ code Blog bot DAX Blogs 0 28.10.2006 16:40
Перебор всех таблиц, имеющих поле определенного типа AKIS-Falcon DAX: Программирование 8 11.02.2005 17:07
Парсер арифметических выражений Андре DAX: База знаний и проекты 22 11.11.2004 09:15

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

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

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