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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.08.2009, 14:15   #1  
Denicce is offline
Denicce
Участник
 
62 / 54 (2) ++++
Регистрация: 22.03.2005
Адрес: Москва
что-то не работает в 4.0SP2ЕЕ функция urlEscape() из формы Tabax. Скопировал в job, также не работает; в 3.0 все ОК. В 4.0 выводит пустую строку.
X++:
static void JobTabaxUrlEscape(Args _args)
{
    str _s = "dsfsdfsdf ndfghghdf";
    DLL             dll = new DLL("shlwapi.dll");
    DLLFunction     URLEscape = new DLLFunction(dll, "UrlEscapeA");
    Binary          escaped = new Binary(strlen(_s)+1);
    Binary          cnt = new Binary(4);
    #define.E_POINTER(0x80004003)
    ;
    URLEscape.arg(ExtTypes::String, ExtTypes::Pointer, ExtTypes::Pointer, ExtTypes::DWord);
    URLEscape.returns(ExtTypes::DWord);
    cnt.dWord(0, strlen(_s)+1);
    if (URLEscape.call(_s, escaped, cnt, 0) == #E_POINTER)
    {
        escaped = new Binary(cnt.dWord(0)+1);
        URLEscape.call(_s, escaped, cnt, 0);
    }
    info(escaped.string(0));
}
ЗЫ Заменил
X++:
        if (URLEscape.call(_s, escaped, cnt, 0) == #E_POINTER)
на
X++:
        if (URLEscape.call(_s, escaped, cnt, 0) == any2int(#E_POINTER))
и все заработало.

Последний раз редактировалось Denicce; 05.08.2009 в 14:53.
За это сообщение автора поблагодарили: belugin (3).
Старый 07.08.2009, 12:10   #2  
Denicce is offline
Denicce
Участник
 
62 / 54 (2) ++++
Регистрация: 22.03.2005
Адрес: Москва
Забыл добавить, с чего я вообще в этот метод полез: не работала функция "Reopen recently closed window" в табаксе, если открывался редактор методов таблиц. В мапе открытых форм и их АОТ адресов хранился путь с "Data dictionary", а этот метод должен пробелы заменить на "%20", чего он не делал (возвращал пустую строку). Поэтому хранился путь только к АОТ.
В 4.0 новый появился тип int64, в который и переводился #E_POINTER при сравнении. А URLEscape.call() возвращает int.
Теги
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
[ANN] Sidax 0.3.6 - многоцелевая боковая панель для Axapta belugin DAX: База знаний и проекты 104 30.06.2008 11:32
axaptafreak: Tabax: tabbed Axapta interface !!!! Blog bot DAX Blogs 0 10.11.2006 01:14
Панель задач в Аксапте wb DAX: Программирование 14 18.04.2006 17:13
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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