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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.12.2002, 11:20   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Поле в Grid типа Window
Как этим полем правильно пользоваться ?

1. Создал display метод:

PHP код:
display int imgStatus()
{
    if (
this.Qty>0)  return 835;
                              else return 
929;

Работает, но хотелось бы использовать картинки не только из рисунков, но и свои иконки.
А как ?

2. Есть у этого Window свойство ImageName, благодаря которому я и могу загрузить в Window свою иконку. Вот только как менять это свойство при отрисовке каждой строки ? Да и вообще, есть подозрение, что это свойство всего столбца и играясь этим свойством ничего не добиться.

3. ОК. Попробую рисовать сам. Что-то типа:

PHP код:
   wnd.lockDC();
   
gdi = new dem_ExtendedWinGDI(wnd.hDC());
   ......
  
wnd.unlockDC(); 
Только вот где все это делать ? Вроде бы есть такой метод paint() - казалось бы вот оно, ан нет. Вызывается только тогда, когда я мышью щелкаю по данному столбцу, но не раньше.

Итого:

что хочу: рисовать в поле(Window) как миним свою иконку(или bmp-ку - без разницы), как максимум рисовать просто что-то свое (например с помощью WinGDI).

Вопрос:

как ?

Заранее благодарен за все советы.
Старый 16.12.2002, 13:21   #2  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Мысль
У меня есть подозрение, что указывая номер картинки (ImageResource) мы ссылаемся на некий глобальный ImageList.
Остается только до этого списка добраться и добавить свои картинки

Не знаю на сколько это реально... сам никогда не пробовал
Старый 16.12.2002, 13:49   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Классный вопрос.
Давно не приходилось разбираться. Было интересно.

Wamr правильно сказал, нужно подменить ImageList у FormWindowControl.
После этого номер изображения - это номер в этом ImageList.

В русском СП4 есть форма FactureJournal_RU. Смотри там как задавать соби изображения. Правда там забавно устанавливается размер иконок. А еще лучше посмотри при помощи перекресных ссылок чем используется imageList. Там примеры получше.

Вкратце:
Form\Init
PHP код:
...
imageList = new ImageList(ImageList::smallIconWidth() , ImageList::smallIconHeight());
image = New Image();

image.loadImage('MyImage1.bmp'); // это изображение с индексом 0
imageList.add(image);
image.loadImage('MyImage1.bmp'); // это изображение с индексом 1
imageList.add(image);

MyGridWindowControl.imageList(ImageList);
... 
Далее в контрол при помощи display метода устанавливаешь нужный тебе индекс изображения.

Правда никак не могу понять... А нафига это нужно в учетной системе?
Но было интересно. Спасибо.
Старый 16.12.2002, 19:48   #4  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Правда никак не могу понять... А нафига это нужно в учетной системе?
Но было интересно.
И я не могу понять, но тоже было интересно

А если серьезно, то хочется попробовать отобращать в формах закупок и заказов статус соответственно закупок и заказов. Вместо раскраски строк, что в данном случае будет неудачным решением. Например самый левый, небольшой столбец - много места не занимает и наглядно показывает нужную информацию.

Цитата:
Спасибо.
Вам всем спасибо. Только что попробовал - все работает.
Старый 17.12.2002, 10:38   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Дело в том, что цветовая раскраска штанов удобна только для просмотра.

Если у тебя иконки отображают статус, то в этом случае пользователю, как правило, непонятно как отфильтровывать записи, как делать поиск (поиск ведется по значениям, а не по иконкам).

Поэтому приходится дублировать статусные иконки обычным полем. Что напрочь лишает иконки смысла.

Либо же ограничиваться состоянием да/нет, как в строках журнала.

В общем, с иконками все неоднозначно.
Старый 17.12.2002, 10:48   #6  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Если у тебя иконки отображают статус, то в этом случае пользователю, как правило, непонятно как отфильтровывать записи, как делать поиск (поиск ведется по значениям, а не по иконкам).
Если это действительно нужно, то можно сделать так:
а) группа RadioButton'ов на форме и код фильтрующий и сортирующий набор данных
б-...) другие контролы и все тот же код - все зависит от остального дизайна кода и удобства использования.
Старый 17.12.2002, 11:01   #7  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Цитата:
приходится дублировать статусные иконки обычным полем. Что напрочь лишает иконки смысла
Согласен, что нужно иметь поле статуса, но его можно сделать не Visible и все методы сортировки, фильтраци, поиска на иконках сделать вызовами аналогичных методов на невидимом поле.
Старый 17.12.2002, 11:15   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Главное, чтобы пользователь потом догадался какое поле за что отвечает

А также, понял, что красная иконка соответствует статусу None,
а зеленую надо искать как "Норма", желтая еще как нибудь и т.п.
Старый 17.12.2002, 11:22   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Андре
Если это действительно нужно, то можно сделать так:
Все верно.
У такого подхода есть только один недостаток - это надо делать.
Если же в grid просто вставить enum-поле, то все будет работать без дополнительных усилий. И программировать не надо, и пользователь получает полный функционал. И по коду можно ходить через настройку без извратов.
И эцелоп не будет бить. Никогда (С) Кин-дза-дза

Мечта:
Вот бы прямо в ComboBox засунуть картинку.
Чтобы переключатель был - Иконка+текст, только иконка, только текст.
Но пока это только мечта
Старый 17.12.2002, 11:41   #10  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Цитата:
...понял, что красная иконка соответствует статусу None,
Одна строчка кода в toolTip показывающая текст при попадании мышки на иконку

Цитата:
У такого подхода есть только один недостаток - это надо делать.
Еще строчка кода в методе context , а без сортировки по клику на названии столбца можно пережить
Старый 17.12.2002, 12:11   #11  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Изначально опубликовано mazzy
Мечта:
Вот бы прямо в ComboBox засунуть картинку.
Чтобы переключатель был - Иконка+текст, только иконка, только текст.
Но пока это только мечта
Моя мечта:
написать класс, которые бы на основе Window в Design выполнял бы функции Grid. К нему бы тогда было легко подобные фичи прикручивать.

Времени только нет
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 17.12.2002, 12:58   #12  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Мечта:
Вот бы прямо в ComboBox засунуть картинку.
Чтобы переключатель был - Иконка+текст, только иконка, только текст.
Но пока это только мечта
Имеется в виду решение на X++ ?

В принципе можно сделать ActiveX и использовать его в Аксапте. Не такое уж и сложное решение и единственное, что останавливает от такого подхода - необходимость распространения .ocx на всех машинах пользователей.
Старый 18.12.2003, 16:02   #13  
Ruff is offline
Ruff
Дмитрий Ерин
Аватар для Ruff
1C
 
475 / 396 (14) ++++++
Регистрация: 18.09.2003
Адрес: Тула
Подниму старую тему
Надо же!
Сегодня заинтересовался той же проблемой, которая обсуждалась здесь ровно год назад. Перелопатил всю доступную документацию по display методам вообще и по Window компоненту в частности, потратил кучу времени и нервов. Но ситуацию прояснил, только прочитав эту ветку!
Спасибо огромное всем участвовавшим в обсуждении!

Но хотелось бы прояснить еще один момент.
Цитата:
Изначально опубликовано Андре
В принципе можно сделать ActiveX и использовать его в Аксапте. Не такое уж и сложное решение и единственное, что останавливает от такого подхода - необходимость распространения .ocx на всех машинах пользователей.
А каким образом можно вставить ActiveX в Grid? Это вообще реально, или Андре погорячился?
Старый 18.12.2003, 18:22   #14  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
А каким образом можно вставить ActiveX в Grid?
Имелось в виду несколько другое - ActiveX - это грид, который в том числе позволяет содержать в себе и картинки.
И Андре не погорячился - примерно в тоже время была создана на этом форуме ветка, где я сначала в течении недели пытался скрестить Table и Grid в Аксапте, дабы получить необходимую функциональность. А затем плюнул на это дело и написал за час ActiveX, которые позволял делать все то, чего я достиг за неделю.... ... но это были просто эксперименты, не имеющие под собой никакой практической основы.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Label на поле типа SUM в секции FOOTER не показывается Delfins DAX: Программирование 0 22.05.2007 12:12
Ошибка: фантомное дублирующее поле типа "дата" в гриде belugin DAX: Программирование 8 14.06.2006 00:15
Перебор всех таблиц, имеющих поле определенного типа AKIS-Falcon DAX: Программирование 8 11.02.2005 17:07
Почему в InventJournalTrans поле linenum вещественного типа?! ATimTim DAX: Программирование 7 17.06.2004 17:35
Объединить несколько полей таблицы в одном поле Grid-а на форме? storer DAX: Программирование 2 12.11.2003 14:08

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

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

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