Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid в цвете / 6 сообщений из 6, страница 1 из 1
14.03.2005, 06:50
    #32957861
in
in
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid в цвете
Возможно ли выделить цветом строку в Grid по условию (значение одного из поля "равно" заданному значению)? VFP 6.0
Заранее благодарна за помощь.
...
Рейтинг: 0 / 0
14.03.2005, 07:36
    #32957878
Диченка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid в цвете
Dynamicforecolor
Dynamicbackcolor
...
Рейтинг: 0 / 0
14.03.2005, 10:10
    #32958038
MDmitry
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid в цвете
Возможно, вот тебе примерчик из моей программы:
This.SetAll("dynamicbackcolor", "IIF(vNklp_inf.nkl_kod == 'A',RGB(255,255,0), RGB(192,192,192))", "Column")

эта строка из метода Refresh объекта типа Grid
...
Рейтинг: 0 / 0
15.03.2005, 03:02
    #32959892
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid в цвете
Hi MDmitry!

> This.SetAll("dynamicbackcolor", "IIF(vNklp_inf.nkl_kod == 'A',RGB(255,255,0), RGB(192,192,192))", "Column")

Это правильно :)

> эта строка из метода Refresh объекта типа Grid

Какой кошмар! ЭТО достаточно прописать ОДИН раз - например в Init грида. А писать это в Refresh - жестоко и бессмысленно :(

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
15.03.2005, 09:58
    #32960089
Akarak2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid в цвете
Пример из моей программы
в Init
gray=RGB(192,192,192) && серый
green=RGB(180,255,180) && зеленый
red=RGB(255,150,150) && красный
yellow=RGB(255,255,128) && желтый
blue=RGB(200,225,255) && голубой

THIS.SetAll("DynamicBackColor", " ;
IIF(U105.REZULT = 0 , IIF(RECNO() = THIS.nRecno, gray,green),;
IIF(U105.ERR = 'ДА',IIF(RECNO() = THIS.nRecno, gray,yellow),;
IIF(U105.REZULT = 999, IIF(RECNO() = THIS.nRecno, gray,blue),;
IIF(RECNO() = THIS.nRecno, gray,red))))", "Column")

или проще

THIS.SetAll("DynamicBackColor","IIF(U105.REZULT = 1 ,IIF(RECNO() = THIS.nRecno, gray,green),;
IIF(RECNO() = THIS.nRecno, gray,red))", "Column") &&с подсветкой активной строри серым


или еще проще


THIS.SetAll("DynamicBackColor","IIF(U105.REZULT = 1 , green,red)", "Column") &&без подсветки активной строри серым
...
Рейтинг: 0 / 0
15.03.2005, 12:32
    #32960535
Crispy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grid в цвете
Я использовал вот такое (потом поставил VFP9 - и забыл про это , потому что там выделение и так отлично работает):

На форму нужно добавить новое свойство - через главное меню - там:
Form / New Property - и в Name написать: nRecno
(теперь Thisform.nRecno - это новое свойство формы)

Затем в свойство Init грида вставить:

#DEFINE C_BKCOLOR "RGB(0,255,255)"
ThisForm.nRecNo = Recno()
this.SetAll("DynamicBackColor", "IIF(ThisForm.nRecNo = Recno(),"+C_BKCOLOR+", RGB(255,255,255))", "Column")

А в его свойство AfterRowColChange:

Thisform.nRecNo = Recno()
This.Refresh()

Выделяет строку ярко-голубым цветом. Цвет C_BKCOLOR можно задать на свой выбор, например как выше - у Akarak2. Причем выделенная строка - будет и активной строкой в самой таблице DBF. Правда для лучшего использования - нужно поставить в column-ы и text-ы грида ReadOnly=.t. и лучше отключать курсор, пока листаешь грид.
А вообще при таком способе грид листается слегка тормознуто (то ли дело в VFP9 - просто супер, но там ведь DynamicBackColo для этой цели можно уже и не использовать).
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Grid в цвете / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]