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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.10.2008, 20:41   #1  
vitaly85 is offline
vitaly85
Участник
 
34 / 10 (1) +
Регистрация: 05.07.2007
Lookup из ImageListAppl
Всем привет.

Есть cвoй ImageListAppl class. в моей форме ecть oднo полe.
хочy чтобы при лукапе, cмог бы выброть oднo из images из ImageListAppl клac. (чтобы иcпользoвaть image из пapaметpoв в Tree контрол)

Есть тoкoй пример в Standard AX?
Подскажите кaк сделать .
Спасибо!
Старый 18.10.2008, 21:02   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Можно посмотреть форму \Forms\SysPick, где используется ListView. Вот пример запуска этой формы: \Classes\Global\pickList

Если хочется в стандартном гриде, то это делается так:
1) Создается собственная Lookup-форма (здесь: \Forms\SPPResourceLookup) на основе временной таблицы. Временная таблица в одном поле содержит номера из ImageList. Заполняем эту таблицу где-нибудь в init

2) В гриде формы делаем элемент типа Window (здесь: WindowShowImage), ставим ему AutoDeclaration. Этот элемент связываем с упомянутым полем во временной таблице

3) Помимо всего прочего, пишем в \Forms\SPPResourceLookup\Methods\init примерно след. код:
X++:
    super();

    ...
    imageListAppl = new SPPImageListAppl_ResourceTable(WindowShowImage.widthValue(), WindowShowImage.heightValue());
    WindowShowImage.imageList(imageListAppl.imageList());
Старый 21.10.2008, 00:20   #3  
vitaly85 is offline
vitaly85
Участник
 
34 / 10 (1) +
Регистрация: 05.07.2007
Вариант с SysPick чтото не получился.
Пробувал второй, но всетаки есть следующий вопросы:

1) Как зделaть чтобы вернул imageId когда выбираю image из лукап форму. (element.selectMode(WindowShowImage) не работает.)

2) можно ли как небуть получить все images из мой ImageListAppl клас используя while.
(while select imageListAppl.imageList()...
{
info(int2str(imageList.image(#counter)));
}
Старый 21.10.2008, 12:25   #4  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
1) Тогда надо возвращать значение не WindowShowImage, а целочисленного элемента управления, связанного с тем самым полем таблицы.

2) Думаю, примерно так:
X++:
for (i = imageListAppl.imagelist.size(); i >= 1; i--)
{
    // fill the table
}
Старый 25.10.2008, 00:53   #5  
vitaly85 is offline
vitaly85
Участник
 
34 / 10 (1) +
Регистрация: 05.07.2007
2) Пробувал так:

X++:
for(i = 1; i <= imageListAppl.imageList().count(); i++)
{
    tempTable.clear();
    tempTable.ImageId = imageListAppl.image(i);
    tempTable.insert();
}
imageListAppl.image(i); - не работает потомучто параметр для imageListAppl.image() метод должен быть ressNo.
Но я ето хочу узнать - все images(ressNo) из мой клас.

Кто - то знает, как ето зделать?
Спасибо.
Старый 25.10.2008, 07:37   #6  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Цитата:
Сообщение от vitaly85 Посмотреть сообщение
2) Пробувал так:

X++:
for(i = 1; i <= imageListAppl.imageList().count(); i++)
{
    tempTable.clear();
    tempTable.ImageId = imageListAppl.image(i);
    tempTable.insert();
}
imageListAppl.image(i); - не работает потомучто параметр для imageListAppl.image() метод должен быть ressNo.
Но я ето хочу узнать - все images(ressNo) из мой клас.

Кто - то знает, как ето зделать?
Спасибо.
Похоже что в вашем случае это последовательность от 0 до imageListAppl.imageList().count()-1

Посмотрите код методов add() и image() класса ImageListAppl.
В методе image() идет cвязь через Map imageConvert между кодом ресурса ressNo и кодом в списке imagelist. Элементы в imagelist добавляются последовательно в методе build() заполняя imagelist (значения от 0).

X++:
for(i = 0; i < imageListAppl.imageList().count(); i++)
{
    tempTable.clear();
    tempTable.ImageId = i ;
    tempTable.insert();
}
Старый 27.10.2008, 00:02   #7  
vitaly85 is offline
vitaly85
Участник
 
34 / 10 (1) +
Регистрация: 05.07.2007
for(i = 0; i < imageListAppl.imageList().count(); i++), не решает проблему.

Я знаю что элементы в imagelist добавляются в методe build().
Но я именно ето хочу узнать : все images(#ImageError, #ImageInfo...) из build() метод, используя итератор (for, while).

Спасибо.
Старый 27.10.2008, 07:31   #8  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
Цитата:
Сообщение от vitaly85 Посмотреть сообщение
for(i = 0; i < imageListAppl.imageList().count(); i++), не решает проблему.

Я знаю что элементы в imagelist добавляются в методe build().
Но я именно ето хочу узнать : все images(#ImageError, #ImageInfo...) из build() метод, используя итератор (for, while).

Спасибо.
Как вариант, добавить в Ваш класс (неследник ImageListAppl) метод который опубликует внутренний Map в котором хранятся соответсвия ressNo -> imageNo и пробежаться по его содержимому.

Что-то подобное:
X++:
class ImageListAppl_Demo extends ImageListAppl
{
}

Map getMapConvert()
{
    return imageConvert ;
}
X++:
static void jbImageListDemo(Args _args)
{
    ImageListAppl_Demo  imageListAppl = new ImageListAppl_Demo() ;
    MapEnumerator       mapEnumerator ;
    ;

    mapEnumerator = imageListAppl.getMapConvert().getEnumerator() ;
    while( mapEnumerator.moveNext() )
    {
        info( strfmt( "ressNo: %1, imageNo: %2", mapEnumerator.currentKey(), mapEnumerator.currentValue() ) ) ;
    }
}
Результат:
ressNo: 790, imageNo: 3
ressNo: 791, imageNo: 4
ressNo: 875, imageNo: 0
ressNo: 1030, imageNo: 1
ressNo: 1031, imageNo: 2
За это сообщение автора поблагодарили: vitaly85 (1).
Старый 27.10.2008, 21:08   #9  
vitaly85 is offline
vitaly85
Участник
 
34 / 10 (1) +
Регистрация: 05.07.2007
Супер! Спасибо всем за участие.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
palleagermark: ImageListAppl classes Blog bot DAX Blogs 0 25.09.2008 15:05
gatesasbait: How to define a custom lookup form for an extended datatype Blog bot DAX Blogs 0 09.07.2008 22:05
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Нагло глючит lookup Sada DAX: Программирование 1 08.06.2006 10:32
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07

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

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

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