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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.01.2006, 18:24   #1  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
ImageListAppl, который работает с AOT/Resources
Под впечатлением вот этого обсуждения: http://forum.mazzy.ru/index.php?show...=0&#entry20371 хотел бы поделиться элементарным классом на основе ImageListAppl, который способен работать с именованными ресурсами/картинками, сохраненными в AOT (работает, естественно, только в 3.0).

Задача модифицированного класса - выдавать порядковый номер ресурса не по номеру, а по имени. Сначала объявляем map
PHP код:
    imageNameConvert = new Map(Types::StringTypes::INTEGER); 
Затем реализовываем метод, который может вызываться из build()
PHP код:
public void addNamedResource(IdentifierName _ressName)
{
    
int             imageNum;
    
Image           image;
    
ResourceNode    resourceNode;
    try
    {
        if (
_ressName)
        {
            
Image = new Image();
            
resourceNode SysResource::getResourceNode(_ressName);
            
resourceNode.AOTload();
            
image.setData(SysResource::getResourceNodeData(resourceNode));

            
imageNum imagelist.add(image);
            
imageNameConvert.insert(_ressNameimageNum);
        }
    }
    catch
    {
        
warning(strfmt("@SYS70565"_ressName));
    }

После этого аналогом метода image() будет следующий:
PHP код:
public int imageName(IdentifierName _ressName)
{
    if (
imageNameConvert.exists(_ressName))
        return 
imageNameConvert.lookup(_ressName);
   ...

Преимещества по сравнению с картинками, которые хранятся на диске и которые надо каждый раз копировать на новую инсталляцию, очевидны.
За это сообщение автора поблагодарили: belugin (3), Kabardian (3), sashanka (1), YoungPadawan (1).
Старый 31.01.2006, 19:30   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от EVGL
хотел бы поделиться
Спасибо!

Спрошу для полноты картины в этой ветке:
Предложенный тобой код берет картинку из ресурсов.
Как ты предлагаешь добавить картинку в SysResource?
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 20:04   #3  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Не просто, а очень просто: правый клик по ветке AOT/Resources, пункт "Create from File."
Старый 31.01.2006, 23:08   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Вот теперь совет закончен.
Спасибо.
__________________
полезное на axForum, github, vk, coub.
Старый 31.01.2006, 23:42   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от EVGL
Преимещества по сравнению с картинками, которые хранятся на диске и которые надо каждый раз копировать на новую инсталляцию, очевидны.
Нет. Но, может быть, стоит открыть новую ветку.

Картинки, которые хранятся на диске перегоняются на клиента только один раз - при первом запуске.

Картинки, которые хранятся в AOT перегоняются непонятно когда и непонятно сколько раз.
По идее, должны запоминаться в кэше http://axapta.mazzy.ru/lib/aoscash/
На практике - непонятно.

Но в остальном совет очень даже хорош.
__________________
полезное на axForum, github, vk, coub.
Старый 01.02.2006, 00:12   #6  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Проверить, кешируются ли данные на клиенте, легко: достаточно создать картинку в несколько MB и понаблюдать за трафиком. Проверить легко, но заниматься этим лень, поскольку сам класс ImageListAppl способен сохранять данные в GlobalCache при включенном методе keepInMemory(), и вопрос переходит в чисто теоретическую область.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
gatesasbait: Improved AOT Queries in Ax2009 Blog bot DAX Blogs 3 12.10.2011 15:03
axStart: Please keep the AOT reports in Dynamics AX next release alive Blog bot DAX Blogs 2 13.12.2008 12:18
palleagermark: ImageListAppl classes Blog bot DAX Blogs 0 25.09.2008 15:05
AOT/Resources, error while using on a report gb DAX in English 3 19.08.2008 14:05
daxmy: AOT Find function Blog bot DAX Blogs 0 17.08.2007 01:23

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

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

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