Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Изменение цвета строки грида
|
|||
|---|---|---|---|
|
#18+
Народ, помогите, кто может помочь. Мне нужно реализовать изменение цвета строки грида в зависимости от выбора значения в одной из колонок. Т.е я встроил комбу в колонку (у меня column19), в комбо предлагаются на выбор четыре значения ('zn1','zn2','zn3' и пустое значение) Источником для грида (grdzakupka) служит таблица (У меня 'zakupka') В Init грида прописываю: DO CASE CASE zakupka.column19 = 'zn1' THISFORM.grdzakupka.SETALL("dynamicForeColor","RGB(255,0,0)","column") CASE zakupka.column19= 'zn2' THISFORM.grdzakupka.SETALL("dynamicForeColor","RGB(100,100,100)","column") CASE zakupka.column19 = 'zn3' THISFORM.grdzakupka.SETALL("dynamicForeColor","RGB(100,0,0)","column") OTHERWISE THISFORM.grdzakupka.SETALL("dynamicForeColor","RGB(255,255,0)","column") ENDCASE Дальше обновляю грид. Так вот, получается, что всегда в case выбирается вариант Otherwise, и все строки грида, а не текущая окрашиваются в RGB(255,255,0). В чем ошибка? В поиске смотрел, пробовал другие варианты - не получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 09:58 |
|
||
|
Изменение цвета строки грида
|
|||
|---|---|---|---|
|
#18+
я не совсем понял но я бы попытался сделать так использовать iif в dinamicbackcolour просто в дизайнере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 10:09 |
|
||
|
Изменение цвета строки грида
|
|||
|---|---|---|---|
|
#18+
То что ты написал, это не динамическое изменение цвета строки в зависимости от некоторого условия. Ты сделал просто изменение цвета шрифта ВСЕХ строк БЕЗ каких-либо условий. Перенеси код в INIT- формы в таком виде: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 10:10 |
|
||
|
Изменение цвета строки грида
|
|||
|---|---|---|---|
|
#18+
Да, я так только что и сделал, даже все работает, только вот уж очень громоздкая кострукция получается #DEFINE COLOREXPR "iif(zakupka.column19 = 'Неоплаченные в работе',; rgb(255,0,0),iif(zakupka.column19= 'zn1',rgb(0,128,0),; iif(zakupka.column19= 'zn2',rgb(0,64,128),; iif(zakupka.column19= 'zn3',rgb(100,100,100),rgb(0,0,0)))))" THISFORM.grdzakupka.SETALL("dynamicForeColor",COLOREXPR,"column") Может есть вариант с более дружественной к человеку конструкцией? Хотя ладно, главное работает. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 10:33 |
|
||
|
Изменение цвета строки грида
|
|||
|---|---|---|---|
|
#18+
Да, я так только что и сделал, даже все работает, только вот уж очень громоздкая кострукция получается #DEFINE COLOREXPR "iif(zakupka.column19 = 'Неоплаченные в работе',; rgb(255,0,0),iif(zakupka.column19= 'zn1',rgb(0,128,0),; iif(zakupka.column19= 'zn2',rgb(0,64,128),; iif(zakupka.column19= 'zn3',rgb(100,100,100),rgb(0,0,0)))))" THISFORM.grdzakupka.SETALL("dynamicForeColor",COLOREXPR,"column") Может есть вариант с более дружественной к человеку конструкцией? Хотя ладно, главное работает. Всем спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 10:34 |
|
||
|
Изменение цвета строки грида
|
|||
|---|---|---|---|
|
#18+
Можно создать процедуру и ли метод формы и вставить в выражение THISFORM.grdzakupka.SETALL("dynamicForeColor",; the_color(zakupka.column19 ),"column") procedure the_color parameters P_column19 DO CASE CASE P_column19 = 'zn1' return RGB(255,90,0) CASE P_column19= 'zn2' return RGB(255,20,0) .............................. .............................. CASE P_column19 = 'zn9999' return RGB(255,255,0) OTHERWISE return RGB(0,0,0) ENDCASE return .... и только время боится пирамид! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2004, 10:41 |
|
||
|
Изменение цвета строки грида
|
|||
|---|---|---|---|
|
#18+
Самый удобный способ мне кажется выглядит так : В свойствах формы(properties) щелкаем на Activate Event, в открывшееся окно ввода процедуры вставляем : thisform.Grid1.Columns(2).dynamicforecolor = "IIF(saldnd<0, RGB(255,0,0), RGB(0,0,0))" thisform.Grid1.Columns(2).dynamicbackcolor = "IIF(saldnd<0, RGB(255,255,0), RGB(255,255,255))" здесь Grid1 это имя Grid-таблицы(его видно в левом нижнем углу), Columns(2) это номер колонки Grid1, saldnd<0 это имя поля соответствующее номеру. В результате цифры с отрицательным значением будут красного цвета на желтом фоне. Быстро узнать имя поля соответствующее номеру колонки можно через Builder Grid-таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2004, 22:03 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=354&tid=1595546]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 324ms |

| 0 / 0 |
