Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 tcxGrid - как запихать значение ячейки в сетку на этапе DataSource.OnDataChange?  [new]
svnvlad
Member

Откуда:
Сообщений: 2270
Нужно раскрасить строку сетки, если скрытое поле принимает некоторое значение. В данной сетке, насколько я знаю, нельзя раскрашивать строки, опираясь на текущее значение FDQuery.FieldByName..., поэтому приходится создавать скрытое поле, где на этапе заполнения сетки вставляется это самое значение FDQuery.FieldByName...
Но вопрос в следующем: есть одна довольно сложная функция, которая стоит отдельно, ее нельзя встроить в SQL-запрос, она может выполняться только после DataSource.OnDataChange. Основываясь на ее значении, нужно раскрасить строки сетки. Как запихнуть значение в ячейку после OnDataChange?

Сообщение было отредактировано: 10 июн 21, 12:39
10 июн 21, 12:48    [22333713]     Ответить | Цитировать Сообщить модератору
 Re: tcxGrid - как запихать значение ячейки в сетку на этапе DataSource.OnDataChange?  [new]
DimaBr
Member

Откуда:
Сообщений: 12091
svnvlad
Основываясь на ее значении, нужно раскрасить строки сетки

Выполнять СЛОЖНЫЕ функции во время прорисовки Грида - ошибочный путь.
10 июн 21, 12:54    [22333722]     Ответить | Цитировать Сообщить модератору
 Re: tcxGrid - как запихать значение ячейки в сетку на этапе DataSource.OnDataChange?  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12901
svnvlad
если скрытое поле принимает некоторое значение
svnvlad
Как запихнуть значение в ячейку после OnDataChange?
Сохраняйте это значение в независимый список, а при отрисовке читайте значения из этого списка
10 июн 21, 13:07    [22333742]     Ответить | Цитировать Сообщить модератору
 Re: tcxGrid - как запихать значение ячейки в сетку на этапе DataSource.OnDataChange?  [new]
svnvlad
Member

Откуда:
Сообщений: 2270
DimaBr
svnvlad
Основываясь на ее значении, нужно раскрасить строки сетки

Выполнять СЛОЖНЫЕ функции во время прорисовки Грида - ошибочный путь.

А как? Там идет рекурсивная функция, собирающая сквозной список id для дочерней сетки.
Вы имеете в виду таймер, включающийся через 200 миллисекунд, чтобы функция выполнялась один раз?

Сообщение было отредактировано: 10 июн 21, 13:32
10 июн 21, 13:39    [22333786]     Ответить | Цитировать Сообщить модератору
 Re: tcxGrid - как запихать значение ячейки в сетку на этапе DataSource.OnDataChange?  [new]
DimaBr
Member

Откуда:
Сообщений: 12091
svnvlad
А как? Там идет рекурсивная функция, собирающая сквозной список id для дочерней сетки.

Зачем вам ДОЧЕНЯЯ сетка в каждой строчке грида ?
10 июн 21, 13:43    [22333790]     Ответить | Цитировать Сообщить модератору
 Re: tcxGrid - как запихать значение ячейки в сетку на этапе DataSource.OnDataChange?  [new]
DimaBr
Member

Откуда:
Сообщений: 12091
навеяло "Зачем вам ДОЧЕНЯЯ сетка в каждой строчке грида ?"
Master/Details в одном гриде

К сообщению приложен файл. Размер - 10Kb
10 июн 21, 14:55    [22333870]     Ответить | Цитировать Сообщить модератору
 Re: tcxGrid - как запихать значение ячейки в сетку на этапе DataSource.OnDataChange?  [new]
Victor Cookin
Member

Откуда: Самара
Сообщений: 799
svnvlad,

Я бы делал локальный датасет на основе полученного серверного и его уже выводил бы в грид.
14 июн 21, 19:12    [22335131]     Ответить | Цитировать Сообщить модератору
 Re: tcxGrid - как запихать значение ячейки в сетку на этапе DataSource.OnDataChange?  [new]
JayDi
Member

Откуда: Сызрань, Россия
Сообщений: 4195
1. Рассчитать все значения, какие нужны. Сохранить данные в датасет ака скрытое поле в гриде на OnCalc датасета. Норм вариант, но на нормальных делфи есть Dictionary<id, value>, как заметили выше -- лучше эти значения не в грид совать, а отдельно хранить.

2. У грида OnGetStyle или как-то так -- присваивать нужный стиль ячейкам на основе значения (ищем по ID). Раскраска тоже подойдет (но тогда не будет поддержки раскраски при выгрузки в какой-нибудь эксель).
14 июн 21, 19:57    [22335143]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить