Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как раскрасить ячейку dbgrideh в зависимости от значения предыдущей / 8 сообщений из 8, страница 1 из 1
09.02.2018, 13:40
    #39599657
timonbog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как раскрасить ячейку dbgrideh в зависимости от значения предыдущей
как раскрасить ячейку dbgrideh в зависимости от значения предыдущей:
например : 1-ая строка - ячейка 4 = 0 то ячейка 8 окрасить в зеленый цвет, 2-ая строка ячейка 4 = 1 то окрасить ячейку 8 в красный цвет ...(и так остальные строки)
dbgrideh1 подключен к datasourse1, который подключен к adoquery1
делаю запрос select * from table
и надо в Grideh произошла закраска
...
Рейтинг: 0 / 0
09.02.2018, 13:47
    #39599663
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как раскрасить ячейку dbgrideh в зависимости от значения предыдущей
Делай запрос так, чтобы в строке результата было ясно в какой цвет красить
...
Рейтинг: 0 / 0
09.02.2018, 13:49
    #39599667
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как раскрасить ячейку dbgrideh в зависимости от значения предыдущей
timonbog,

сделай другой запрос

Код: sql
1.
 select t1.*, t2.ячейка4 from table t1 join table t2 on t1.номерстроки = 1+t2.номерстроки



ячейку 4 предыдущей строки скрой из грида, но цвет выставляй по ней
...
Рейтинг: 0 / 0
09.02.2018, 14:59
    #39599718
timonbog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как раскрасить ячейку dbgrideh в зависимости от значения предыдущей
вроде бы понятно но вопрос:
t1 - моя таблица
а t2 это моя таблица из одной четвертой колонки определ. цвет или что?
и какой код в каком событии? onDrawDataCell or onGetCellParam
к примеру:
procedure Tplangrafik.DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh;
AFont: TFont; var Background: TColor; State: TGridDrawState);
begin
if условие
end;
просто я никогда не красил не знаю как.

а
запрос примерно:
select base1.Col1, base1.Col2,...,BASE1.IDENT,
base3.god2018,...,base11.god2026,...
from spisok as base1
left join table as Base3 on base1.IDENT=base3.IDENT
. . .
left join table as Base11 on base1.IDENT=base11.IDENT,...

столбцы god2019-god2026 надо закрасить в зависимости от результата другого запроса к примеру
baseColor.color2018,...,baseColor.color2026
left join baseColor on base1.IDENT=baseColor.IDENT

т.е. это значения цветов соотв.ячеек . эти столбцы в gride не показываются.
вообщем в запросе я думаю я могу получить значение цвета для каждой ячейки в допол. столбце 0-не закрашено 1-зеленый

ну а дальше? Допустим у меня уже есть результат запроса
таблица где в строках чередуются ячейки : значение и цвет
а показать нужно в grideh только значение в ячейке опред. цвета
...
Рейтинг: 0 / 0
09.02.2018, 15:12
    #39599727
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как раскрасить ячейку dbgrideh в зависимости от значения предыдущей
timonbog,

эту простыню невозможно читать

напиши по- человечески, чтобы исходные тексты было хоть капельку видно - вот так: http://www.sql.ru/faq/faq_topic.aspx?fid=202
...
Рейтинг: 0 / 0
09.02.2018, 15:20
    #39599732
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как раскрасить ячейку dbgrideh в зависимости от значения предыдущей
и вообще, у тебя зависит от другой (предыдущей) строки ? или другой ячейки той же строки?

если у тебя все в одной строке - то зачем ты пишешь про "первую строку" и "вторую строку", если оит номера строки ничего не зависит? забудь про номер строки.

никогда не пользовался EhGrid но как-то так

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
procedure Tplangrafik.DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh;
 AFont: TFont; var Background: TColor; State: TGridDrawState);
begin

// ячейка 4 = 0 то ячейка 8 окрасить в зеленый цвет,
// ячейка 4 = 1 то окрасить ячейку 8 в красный цвет
if Column.Index = 8-1 then
  case DBGridEh1.DataSource.DataSet.Fields[ 4-1 ].AsInteger of
    0: Background := clGreen;
    1: Background := clRed;
    else {ничего не делать, фон по умолчанию} ;
  end;
end;



Какие там конкретно названия свойств у объектов EhGrid понятия не имею, поправь где надо.
И в else-варианте я не знаю, сбрасывает ли Gird цвет фона в основной, или надо явно его восстанавливтаь, чтобы цвет на все следующие ячейки не переходил. Ну это если что тоже поправишь.
...
Рейтинг: 0 / 0
09.02.2018, 16:56
    #39599821
Док
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как раскрасить ячейку dbgrideh в зависимости от значения предыдущей
timonbog,

раз у тебя ЭхГрид, я бы посоветовал для начала почитать вот эту статью . Возможно, многие вопросы отпадут сами.


Arioch,
тебя с работы уволили что ли? весь форум запостил
...
Рейтинг: 0 / 0
09.02.2018, 17:27
    #39599834
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как раскрасить ячейку dbgrideh в зависимости от значения предыдущей
Док,

Простыл я, очень хочется убить всех человеков, хотя бы виртуально
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как раскрасить ячейку dbgrideh в зависимости от значения предыдущей / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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