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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.05.2010, 14:36   #1  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
displayOption Активная строка в гриде
На гриде в форме раскрашен один столбец через displayOption()
При перемещении курсора по строкам, у текущей строки теряется раскраска поля.

Как сохранить раскраску для определенного поля в гриде при активности строки?

Последний раз редактировалось Poleax; 12.05.2010 в 15:52.
Старый 12.05.2010, 14:47   #2  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
возможно у вас где то на форме сбрасывается displayOption...
что типа такого, нигде не вызывается?
X++:
formDataSource.clearDisplayOption(Record);
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.05.2010, 14:50   #3  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от lev Посмотреть сообщение
возможно у вас где то на форме сбрасывается displayOption...
что типа такого, нигде не вызывается?
X++:
formDataSource.clearDisplayOption(Record);
Проверял, нет этого.
Старый 12.05.2010, 14:55   #4  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
а можно посмотреть метод displayOption?
дебажить пробовали этот метод?
явно он не отрабатывает для активной строки.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.05.2010, 14:56   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Poleax Посмотреть сообщение
У текущей строки теряется раскраска поля.
В смысле, что она окрашивается в цвет курсора - так это нормально. А иначе как понять какая из строк активна. Раскрашены же могут быть все столбцы. Когда вы переходите на другю строку цвет восстанавливается? Или я вас не правильно понял?
Старый 12.05.2010, 14:58   #6  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
В смысле, что она окрашивается в цвет курсора - так это нормально. А иначе как понять какая из строк активна. Раскрашены же могут быть все столбцы. Когда вы переходите на другю строку цвет восстанавливается? Или я вас не правильно понял?
когда встаешь на строку она выделяется синим цветом, но то поле в котором стоит курсор окрашивается в нужный цвет. как я понял этого не происходит.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.05.2010, 15:18   #7  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
X++:
public void displayOption(Common _record, FormRowDisplayOption _options)
{
    ImportInventLine  importInventLine = _record.data();
    ;

    switch( importInventLine.ImportInventStatus)
    {
        case ImportInventStatus::Error :
            _options.backColor(WinAPI::rgb2int(255, 70, 70));   //Красный
        break;
        case ImportInventStatus::Checked :
            _options.backColor(WinAPI::rgb2int(0, 240, 120));  //Зеленый
        break;
        case ImportInventStatus::Imported :
            _options.backColor(WinAPI::rgb2int(110, 180, 255));  //Синий
        break;
    }

     _options.affectedElementsByControl(ImportInventLine_ImportInventStatus.id());

    super(_record, _options);
}
Название: do.PNG
Просмотров: 1882

Размер: 10.2 Кб
Старый 12.05.2010, 15:27   #8  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
хм...
попробовал у себя сделать раскраску на форме не всей строки, а только столбца, и нормально работает, все красится как надо.
глупый вопрос: точку останова ставили? у вас вообще выполняется блок mportInventStatus::Error?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.05.2010, 15:29   #9  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
ещё предположение, может на момент выполнения метода displayOption у вас mportInventLine.ImportInventStatus != mportInventStatus::Error

P.S. но это опять же только с помощью трассировки можно выяснить
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.05.2010, 15:37   #10  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
:)
Цитата:
Сообщение от lev Посмотреть сообщение
хм...
попробовал у себя сделать раскраску на форме не всей строки, а только столбца, и нормально работает, все красится как надо.
глупый вопрос: точку останова ставили? у вас вообще выполняется блок mportInventStatus::Error?
Блок отрабатывает при переходе на др строку
X++:
case ImportInventStatus::Error :
            _options.backColor(WinAPI::rgb2int(255, 70, 70));   //Красный
но не красит.

P.S. Ax 2009 SP1
Старый 12.05.2010, 15:39   #11  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Poleax Посмотреть сообщение
P.S. Ax 2009 SP1
у меня Ax 3.0 SP3
полет нормальный все красится как нужно
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.05.2010, 15:48   #12  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Цитата:
При перемещении курсора по строкам, у текущей строки теряется раскраска поля.
lev, у Вас на активной строке раскрашенный столбец красного цвета?
Старый 12.05.2010, 15:54   #13  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от Poleax Посмотреть сообщение
На гриде в форме раскрашен один столбец через displayOption()
При перемещении курсора по строкам, у текущей строки теряется раскраска поля.

Как сохранить раскраску для определенного поля в гриде при активности строки?
Если в лоб, то самый простой способ - избавится от выделения активных строк, т.е. установить у грида свойство "HighlightActive" в "No"
Старый 12.05.2010, 16:04   #14  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от vallys Посмотреть сообщение
Если в лоб, то самый простой способ - избавится от выделения активных строк, т.е. установить у грида свойство "HighlightActive" в "No"
Спасибо, но нет. Подсвечевание (по умолчанию) активной строки в гриде хотелось бы сохранить.
Старый 12.05.2010, 16:16   #15  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Странно, но даже для грида не работают в active()
X++:
    grid.activeBackColor(WinAPI::rgb2int(255, 255, 0));
    grid.activeForeColor(WinAPI::rgb2int(255, 0, 0));
хм.
Старый 12.05.2010, 16:23   #16  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Wamr Посмотреть сообщение
lev, у Вас на активной строке раскрашенный столбец красного цвета?
не красного, а фиалетового, но это моя форма, поэтому не красного
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.05.2010, 16:25   #17  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от Poleax Посмотреть сообщение
Странно, но даже для грида не работают в active()
X++:
    grid.activeBackColor(WinAPI::rgb2int(255, 255, 0));
    grid.activeForeColor(WinAPI::rgb2int(255, 0, 0));
хм.
начинает закрадываться сомнение, что это какой то приобретенный баг...

кто нибудь может проверить как обстоят с этим дела в четверке?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 12.05.2010, 16:28   #18  
vallys is offline
vallys
Developer
 
146 / 108 (0) +++++
Регистрация: 18.01.2005
Цитата:
Сообщение от Poleax Посмотреть сообщение
Странно, но даже для грида не работают в active()
X++:
    grid.activeBackColor(WinAPI::rgb2int(255, 255, 0));
    grid.activeForeColor(WinAPI::rgb2int(255, 0, 0));
хм.
Наверное нужно ColorSсheme изменить на отличное от Default
Старый 12.05.2010, 17:54   #19  
Bober is offline
Bober
Участник
 
311 / 104 (4) +++++
Регистрация: 29.05.2007
Кажется, Poleax'у уже давно пора выкладывать проект со своей формой.
Старый 13.05.2010, 13:32   #20  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от Bober Посмотреть сообщение
Кажется, Poleax'у уже давно пора выкладывать проект со своей формой.
Там выкладывать нечего. Код весь в ветке представлен.
Все по аналогии с http://erpkb.com/Axapta/Klass/FormDa.../displayOption
http://www.axaptapedia.com/Using_colours_in_grids
X++:
public void displayOption(Common _record, FormRowDisplayOption _options)
{
  _options.backColor(WinApi::RGB2int(255,255,0)); // Yellow  
  _options.affectedElementsByControl(Control_Name.id());
  _options.affectedElementsByControl(Another_Control_Name.id());
}
Меня больше интересует раскраска поля при активной строке.
Теги
color, displayoption

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
displayOption и обновление формы Lucky13 DAX: Программирование 21 21.11.2008 15:18
Выделяется не та строка в Lookup списке V.Yelkin DAX: Программирование 13 28.10.2008 09:20
Открытие формы с деталями активной записи в гриде sweeper DAX: Программирование 4 19.09.2008 15:55
DisplayOption() axaLearner DAX: Программирование 3 18.12.2006 19:00
Изменение свойств Grid с помощью метода источника данных displayOption Anton Sk. DAX: База знаний и проекты 0 03.12.2001 18:08
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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