12.05.2010, 14:36 | #1 |
Модератор
|
displayOption Активная строка в гриде
На гриде в форме раскрашен один столбец через displayOption()
При перемещении курсора по строкам, у текущей строки теряется раскраска поля. Как сохранить раскраску для определенного поля в гриде при активности строки? Последний раз редактировалось Poleax; 12.05.2010 в 15:52. |
|
12.05.2010, 14:47 | #2 |
Ищущий знания...
|
возможно у вас где то на форме сбрасывается displayOption...
что типа такого, нигде не вызывается? X++: formDataSource.clearDisplayOption(Record);
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
12.05.2010, 14:50 | #3 |
Модератор
|
|
|
12.05.2010, 14:55 | #4 |
Ищущий знания...
|
а можно посмотреть метод displayOption?
дебажить пробовали этот метод? явно он не отрабатывает для активной строки.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
12.05.2010, 14:56 | #5 |
Участник
|
В смысле, что она окрашивается в цвет курсора - так это нормально. А иначе как понять какая из строк активна. Раскрашены же могут быть все столбцы. Когда вы переходите на другю строку цвет восстанавливается? Или я вас не правильно понял?
|
|
12.05.2010, 14:58 | #6 |
Ищущий знания...
|
когда встаешь на строку она выделяется синим цветом, но то поле в котором стоит курсор окрашивается в нужный цвет. как я понял этого не происходит.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
12.05.2010, 15:18 | #7 |
Модератор
|
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); } |
|
12.05.2010, 15:27 | #8 |
Ищущий знания...
|
хм...
попробовал у себя сделать раскраску на форме не всей строки, а только столбца, и нормально работает, все красится как надо. глупый вопрос: точку останова ставили? у вас вообще выполняется блок mportInventStatus::Error?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
12.05.2010, 15:29 | #9 |
Ищущий знания...
|
ещё предположение, может на момент выполнения метода displayOption у вас mportInventLine.ImportInventStatus != mportInventStatus::Error
P.S. но это опять же только с помощью трассировки можно выяснить
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
12.05.2010, 15:37 | #10 |
Модератор
|
Цитата:
X++: case ImportInventStatus::Error : _options.backColor(WinAPI::rgb2int(255, 70, 70)); //Красный P.S. Ax 2009 SP1 |
|
12.05.2010, 15:39 | #11 |
Ищущий знания...
|
у меня Ax 3.0 SP3
полет нормальный все красится как нужно
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
12.05.2010, 15:48 | #12 |
----------------
|
Цитата:
При перемещении курсора по строкам, у текущей строки теряется раскраска поля.
|
|
12.05.2010, 15:54 | #13 |
Developer
|
Если в лоб, то самый простой способ - избавится от выделения активных строк, т.е. установить у грида свойство "HighlightActive" в "No"
|
|
12.05.2010, 16:04 | #14 |
Модератор
|
|
|
12.05.2010, 16:16 | #15 |
Модератор
|
Странно, но даже для грида не работают в active()
X++: grid.activeBackColor(WinAPI::rgb2int(255, 255, 0)); grid.activeForeColor(WinAPI::rgb2int(255, 0, 0)); |
|
12.05.2010, 16:23 | #16 |
Ищущий знания...
|
не красного, а фиалетового, но это моя форма, поэтому не красного
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
12.05.2010, 16:25 | #17 |
Ищущий знания...
|
Цитата:
кто нибудь может проверить как обстоят с этим дела в четверке?
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
12.05.2010, 16:28 | #18 |
Developer
|
|
|
12.05.2010, 17:54 | #19 |
Участник
|
Кажется, Poleax'у уже давно пора выкладывать проект со своей формой.
|
|
13.05.2010, 13:32 | #20 |
Модератор
|
Там выкладывать нечего. Код весь в ветке представлен.
Все по аналогии с 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()); } |
|