09.09.2016, 08:26 | #1 |
Участник
|
Вывод картинки, хранящейся в БД, с помощью 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(); } прикол в том, что в сам метод выполнение даже не заходит. форма повисает и только закрытием аксапты весь этот кошмар прекращается. проблема видимо в том, что аксапте (DAX 2009)не нравится, что для window-контрола display-метод имее возвращаемый тип не int, а container, хотя тут видно, что это не проблема... подскажите, что делать, товарищА |
|
09.09.2016, 08:37 | #2 |
Участник
|
Вы уверены что стандартный подход - отображение иконки из списка ресурсов - вам не подходит?
|
|
|
За это сообщение автора поблагодарили: Logger (1). |
09.09.2016, 09:01 | #3 |
Участник
|
скорее всего, нет. при таком способе картинки хранятся в БД. соответственно, имея доступ к БД на sql-сервере, можно эти картинки тянуть, скажем, в SSRS-отчеты, в .NET приложения, прецеденты бывают постоянно. вот
|
|
09.09.2016, 09:12 | #4 |
Участник
|
При открытии формы считать все необходимые для отображения картинки из БД и загрузить их в отдельный ImageList?
Пример замены стандартного списка картинок на свой \Forms\tutorial_Form_Windowingrid Последний раз редактировалось S.Kuskov; 09.09.2016 в 09:14. |
|
09.09.2016, 11:18 | #5 |
Участник
|
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(); }
__________________
// no comments Последний раз редактировалось dech; 09.09.2016 в 11:22. Причина: Дополнено п.4 |
|
09.09.2016, 12:04 | #6 |
Боец
|
Цитата:
Сообщение от 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(); } прикол в том, что в сам метод выполнение даже не заходит. форма повисает и только закрытием аксапты весь этот кошмар прекращается. проблема видимо в том, что аксапте (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, база, картинка |
|
|