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

Возник новый вопрос в ходе освоения 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
Задать цвет шрифта или backcolor ячейки grid в зависимости от даты
    #38999499
alextashk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryKn,

Ошибка в использовании переменной.
В dynamic надо использовать поля таблицы.
Хоть 10 циклов переназначения переменной в init
в dynamic придет последнее значение переменной созданной в init.
...
Рейтинг: 0 / 0
Задать цвет шрифта или backcolor ячейки grid в зависимости от даты
    #38999508
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Задать цвет шрифта или backcolor ячейки grid в зависимости от даты
    #38999551
DmitryKn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, большое Вам спасибо за помощь )

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

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


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