Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Задать цвет шрифта или backcolor ячейки grid в зависимости от даты / 4 сообщений из 4, страница 1 из 1
03.07.2015, 21:15
    #38999399
DmitryKn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать цвет шрифта или backcolor ячейки grid в зависимости от даты
Добрый день,

Возник новый вопрос в ходе освоения grid.

Есть grid на форме и есть таблица, одно из полей которой которой - различные даты. Т.е. колонка с датами и все даты разные.

Источник для grid - эта самая таблица, задача состоит в том, чтобы изменить шрифт в зависимости от текущей даты.

Например, если дата в ячейка на <= 10 дней отличается от системной - то один цвет, на 10<> 30 - другой, на большее число - совсем тогда красный.

В свойстве Column DynamicForeСolor пытался прописывать через iif , и в Init grida пытался задать this ,объявляя переменную и присваивая ей значение из таблицы - никак раскрасить не могу.

Единственный результат, который смог получить - изменяет цвет шрифта во всей колонке, но сразу всю колонку и в один цвет и в результате выполнения iif только по первой строке.

Т.е. решает неравенство (или уравнение, может верней) в первой строке, куда мы встали при активации формы, и идет дальше, не применяя iif для каждой записи.

например, так работает такой код в Init grid-а:

Public gdaDate
SELECT hprice
GO top
gdaDate=hprice.daregdate && поле с разными датами
this.column12.DynamicForeColor="iif(DATE() - gdaDate < 10, RGB(255,255,0), RGB(0,255,0))"

Подскажите, плиз, идею.


пробовал, что бы перебрать все строки - такую конструкцию в методе init grid-а:

SELECT hprice
GO top

DO WHILE .t.
IF EOF()
EXIT
ENDIF

gdaDate=hprice.daregdate
this.column12.DynamicForeColor="iif(DATE() - gdaDate < 10, RGB(255,255,0), RGB(0,255,0))"
SKIP
LOOP
ENDDO

теперь раскрашивает всю колонку по значению последней записи ((


А нужно расцветить каждую строку колонки в зависимости от системной даты и даты в ячейке.

Подскажите, плиз, что я не так делаю, где ошибка? В каком направлении искать?
...
Рейтинг: 0 / 0
04.07.2015, 05:31
    #38999499
alextashk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать цвет шрифта или backcolor ячейки grid в зависимости от даты
DmitryKn,

Ошибка в использовании переменной.
В dynamic надо использовать поля таблицы.
Хоть 10 циклов переназначения переменной в init
в dynamic придет последнее значение переменной созданной в init.
...
Рейтинг: 0 / 0
04.07.2015, 08:01
    #38999508
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать цвет шрифта или backcolor ячейки grid в зависимости от даты
DmitryKngdaDate=hprice.daregdate
this.column12.DynamicForeColor="iif(DATE() - gdaDate < 10, RGB(255,255,0), RGB(0,255,0))"
Выражение DynamicForeColor выполняется во время вывод грида, поэтому не надо делать для каждой записи.
По той же причине не надо использовать промежуточные переменные. Указывай поле.
т.е. один раз так
Код: sql
1.
this.column12.DynamicForeColor="iif(DATE() - hprice.daregdate < 10, RGB(255,255,0), This.ForeColor)"


This.ForeColor - цвет по-умолчанию (он не всегда черный).
Используй icase() чтобы кучу iif() не писать для нескольких цветов.
...
Рейтинг: 0 / 0
04.07.2015, 11:10
    #38999551
DmitryKn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задать цвет шрифта или backcolor ячейки grid в зависимости от даты
Господа, большое Вам спасибо за помощь )

Dima T - так же спасибо за наводку на icase

Все превосходно работает ))
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Задать цвет шрифта или backcolor ячейки grid в зависимости от даты / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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