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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.09.2016, 08:26   #1  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Вывод картинки, хранящейся в БД, с помощью display-метода в грид
Добрый день!
Есть таблица, в которой хранятся некие строки, каждой из которых сопоставлена соответствующая иконка. На основе анализа данных из других таблиц с помощью display-метода, необходимо в грид на форме выводить картинку. написал такой метод, вдохновил интернет:

X++:
//BP Deviation Documented
display Bitmap NFY_GetState()
{
    NFYEvent             event = NFYEventLog::GetLastEventByGroupWorkOrder(this.RecId, 2);//достаем строку и из нее берем картинку, хранящуюся как container
    Image                   image = new Image(event? event.EventIcon : [null]);

    return image.getData();
}
на форме в гриде выводится сей метод window-контролом

прикол в том, что в сам метод выполнение даже не заходит. форма повисает и только закрытием аксапты весь этот кошмар прекращается.

проблема видимо в том, что аксапте (DAX 2009)не нравится, что для window-контрола display-метод имее возвращаемый тип не int, а container, хотя тут видно, что это не проблема... подскажите, что делать, товарищА
Старый 09.09.2016, 08:37   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вы уверены что стандартный подход - отображение иконки из списка ресурсов - вам не подходит?
За это сообщение автора поблагодарили: Logger (1).
Старый 09.09.2016, 09:01   #3  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Вы уверены что стандартный подход - отображение иконки из списка ресурсов - вам не подходит?
скорее всего, нет. при таком способе картинки хранятся в БД. соответственно, имея доступ к БД на sql-сервере, можно эти картинки тянуть, скажем, в SSRS-отчеты, в .NET приложения, прецеденты бывают постоянно. вот
Старый 09.09.2016, 09:12   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,427 / 1771 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
При открытии формы считать все необходимые для отображения картинки из БД и загрузить их в отдельный ImageList?

Пример замены стандартного списка картинок на свой \Forms\tutorial_Form_Windowingrid

Последний раз редактировалось S.Kuskov; 09.09.2016 в 09:14.
Старый 09.09.2016, 11:18   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
642 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
1. Удостоверьтесь, что event у вас всегда заполняется
2. Не используйте [null] и даже conNull(). Сделал пример на AX 4.0, так он вообще ушел в runtime error (а на connull() валится вся аксапта).
3. Попробуйте так:
X++:
display Bitmap NFY_GetState()
{
    NFYEvent    event = NFYEventLog::GetLastEventByGroupWorkOrder(this.RecId, 2);//достаем строку и из нее берем картинку, хранящуюся как container
    Image       image = event ? new Image(event.EventIcon) : new Image();

    return image.getData();
}
4. Чтобы у вас получился нормальный контрол, перетащите метод на форму, используя Drag'n'Drop
__________________
// no comments

Последний раз редактировалось dech; 09.09.2016 в 11:22. Причина: Дополнено п.4
Старый 09.09.2016, 12:04   #6  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1234 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Vasiliusis Посмотреть сообщение
Добрый день!
Есть таблица, в которой хранятся некие строки, каждой из которых сопоставлена соответствующая иконка. На основе анализа данных из других таблиц с помощью display-метода, необходимо в грид на форме выводить картинку. написал такой метод, вдохновил интернет:

X++:
//BP Deviation Documented
display Bitmap NFY_GetState()
{
    NFYEvent             event = NFYEventLog::GetLastEventByGroupWorkOrder(this.RecId, 2);//достаем строку и из нее берем картинку, хранящуюся как container
    Image                   image = new Image(event? event.EventIcon : [null]);

    return image.getData();
}
на форме в гриде выводится сей метод window-контролом

прикол в том, что в сам метод выполнение даже не заходит. форма повисает и только закрытием аксапты весь этот кошмар прекращается.

проблема видимо в том, что аксапте (DAX 2009)не нравится, что для window-контрола display-метод имее возвращаемый тип не int, а container, хотя тут видно, что это не проблема... подскажите, что делать, товарищА
Из спортивного интереса.
Вложение 10954
Вложение 10955

Вложение 10956

Последний раз редактировалось DSPIC; 28.09.2017 в 01:50.
За это сообщение автора поблагодарили: sukhanchik (5), Dreadlock (3).
Теги
db, display, grid, icon, image, pic, база, картинка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Значение display метода по его названию Андрей К. DAX: Программирование 41 25.11.2020 06:52
Вывод display-массива на форму в Grid VBF DAX: Программирование 11 21.08.2012 17:23
получить label display - метода NetBus DAX: Программирование 2 05.06.2009 19:08
Вызов display метода Ashir DAX: Программирование 4 08.12.2005 16:32
Не копирует из display-метода в буфер обмена akvi DAX: Программирование 6 08.12.2005 13:14
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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