![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неправильная раскраска отчета (и не только) [D7, XP]
madmech © (2009-04-26 15:47:00)У меня 2 проблемы:
1. Когда я пытаюсь программно менять цвет раскрашиваемых ячеек в Кросс-отчете в зависимости от содержимого ячейки, то почему-то при просмотре отчета цвет оказывается совсем не тем, каким должен быть. К примеру, я пишу:
if ColumnIndex < N1 then
case Value of
Null: Memo.Color := clTeal;
0: Memo.Color := $f6eb14;
1: Memo.Color := $deeed7;
2: Memo.Color := $deeed7;
-1: Memo.Color := $ffd7d7;
-2: Memo.Color := $ffd7d7;
end;
Цвета беру из фотошопа, так что с правильностью цветопередачи все в порядке должно быть, да и та же самая матрица в виде DBGrid внутри программы выглядит правильно. Например, ячейки с нулями должны раскрашиваться в бледножелтый цвет, а на деле выходит голубой. Тоже самое со значениями "-1" , "-2" - вместо бледнокрасного выдается фиолетовый. А с "1" и "2" почем-то все нормально. Что тут можно придумать? Может быть, есть смысл использовать функцию rgb? Но тогда как подключить библиотеку Windows? Простоеuses Windows;в начале скрипта выдает ошибку.
2. Почему-то никак не удается поменять ширину последнего итогового столбца ColumnTotal, несмотря на то, что "Авто-размер" отключил. Все остальные столбцы вручную удается отрегулировать (либо ручками, либо в инспекторе объектов), а тут хоть ты лопни, хоть ты тресни, ничего не получается, стоит как вкопанный.
sniknik (2009-04-26 18:17:00) [1]ты правила форума читал? как [3] относится к вопросу в топике
> Неправильная раскраска отчета
?
или это оффтоп?
madmech (2009-04-26 17:45:00) [2]И сразу же, не отходя от кассы, вопрос в догонку ко второй проблеме: а можно ли в итоговый столбец заносить не сумму по строке или результат выполнения какой-либо другой агрегатной функции, а НУЖНЫЙ МНЕ набор чисел?
easy (2009-04-26 16:04:00) [3]
if ColumnIndex < N1 then
case Value of
Null: Memo.Color := clTeal;
0: Memo.Color := $14ebf6;
1: Memo.Color := $d7eede;
2: Memo.Color := $d7eede;
-1: Memo.Color := $d7d7ff;
-2: Memo.Color := $d7d7ff;
end;
sniknik (2009-04-26 16:03:00) [4]> Цвета беру из фотошопа, так что с правильностью цветопередачи все в порядке должно быть
не обязательно. даже скорее всего не так, т.к. в одном случае это массив из байт (r,g,b) а в другом интежер константа в которой чтобы получить туже последовательность, что в массиве нужно изменить порядок. (см. статьи о хранении чисел в памяти)
> Что тут можно придумать?
да просто местами байты по переставляй, найди правильное местоположение. методом "тыка"...