Последняя версия DataExpress 2021.04.16

Изображение Скачать | Изображение Что нового?

Раскрасить ячейки в запросе.

Все о том как сделать что-то с помощью скриптов.
Аватара пользователя
admin
Разработчик
Сообщения: 5657
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 62 раза
Поблагодарили: 483 раза

Раскрасить ячейки в запросе.

Сообщение admin » 27 апр 2021, 13:23

rausNT писал(а):Наверно так было бы более правильно?

Для окраски всей строки поле выбирать не нужно (оставьте ячейку пустой) .

Я поправил текст, но сомневаюсь, что это спасет от невнимательности.

Morozbl4
Опытный
Сообщения: 384
Зарегистрирован: 04 дек 2019, 11:04
Благодарил (а): 165 раз
Поблагодарили: 23 раза

Раскрасить ячейки в запросе.

Сообщение Morozbl4 » 27 апр 2021, 13:26

ну да) я ж когда раскраску осваивал доки не читал, тыкнул в зонтик - сработало на ячейке, ну и надобавляял чтобы строку раскрасить)

DobrijRoman
Новичок
Сообщения: 12
Зарегистрирован: 16 ноя 2020, 19:17
Благодарил (а): 8 раз

Раскрасить ячейки в запросе.

Сообщение DobrijRoman » 27 апр 2021, 16:44

admin писал(а):Наверное или точно? Пусть ТС все объяснит. Если надо всю строку, то просто не указывайте поле.

Спасибо за ответ. Но дело не в этим. Сложно конечно обьяснить что я хочу, но попробую.
У меня БД по перевозкам. В зависимости от того, оплатил клиент или нет, я раскрашивают порядка 10-15 полей. Далее у меня есть еще 10-15 полей по перевозчику (другие цвета оплатили ему или нет. ).
И вот я хочу эти сделать с помощью кода, если клиент оплатил эти 15 ячейки покрасились, а другие 15 остались, как перевозчику оплатили, цвет изменился.
2021-04-27_16-34-32.png
2021-04-27_16-34-32.png (89.03 КБ) 276 просмотров

Пример как то так.

DobrijRoman
Новичок
Сообщения: 12
Зарегистрирован: 16 ноя 2020, 19:17
Благодарил (а): 8 раз

Раскрасить ячейки в запросе.

Сообщение DobrijRoman » 27 апр 2021, 16:47

Просто получится очень много строк. У переводчика 3 состояния : оплатили, нет документов, стоит на очереди.
У клиента 4-ре состояния: Оплатили, ждем оплаты, должник, перевозка еще не осуществлена.

Аватара пользователя
admin
Разработчик
Сообщения: 5657
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 62 раза
Поблагодарили: 483 раза

Раскрасить ячейки в запросе.

Сообщение admin » 27 апр 2021, 16:49

Тогда только красить каждую ячейку индивидуально.

DobrijRoman
Новичок
Сообщения: 12
Зарегистрирован: 16 ноя 2020, 19:17
Благодарил (а): 8 раз

Раскрасить ячейки в запросе.

Сообщение DobrijRoman » 27 апр 2021, 20:08

admin писал(а):Тогда только красить каждую ячейку индивидуально.

А с помощью DX никак это не реализовать?

Аватара пользователя
admin
Разработчик
Сообщения: 5657
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 62 раза
Поблагодарили: 483 раза

Раскрасить ячейки в запросе.

Сообщение admin » 27 апр 2021, 20:20

Вы имеете в виду скриптом? Скриптом можно. Если в скриптах не разбираетесь, то только добавлять в раскраску каждое поле. Можно сделать чуть проще, если раскрасить всю строку для клиента, а для перевозчика красить каждую ячейку.

DobrijRoman
Новичок
Сообщения: 12
Зарегистрирован: 16 ноя 2020, 19:17
Благодарил (а): 8 раз

Раскрасить ячейки в запросе.

Сообщение DobrijRoman » 30 апр 2021, 20:00

admin писал(а):Вы имеете в виду скриптом? Скриптом можно. Если в скриптах не разбираетесь, то только добавлять в раскраску каждое поле. Можно сделать чуть проще, если раскрасить всю строку для клиента, а для перевозчика красить каждую ячейку.

А можете привести пример кода для реализации. Я конечно еще не разобрался в DX, но хотелось бы узнать как.
Уточню заранее, мне нужно менять цвет ячейки в запросах.
Заранее спасибо)

Аватара пользователя
admin
Разработчик
Сообщения: 5657
Зарегистрирован: 14 мар 2016, 11:32
Откуда: Ленинградская
Благодарил (а): 62 раза
Поблагодарили: 483 раза

Раскрасить ячейки в запросе.

Сообщение admin » 30 апр 2021, 20:23

Это довольно сложно для новичка. Давайте пока не лезть в дебри.

Пример:

Код: Выделить всё

procedure QueryPrepareCanvas(Sender: TObject; DataCol: Integer; Column: TColumn; AState: TGridDrawState);
begin
  if Column.Title.Caption in ['Остаток на начало', 'Приход', 'Расход', 'Остаток на конец'] then
    if AState * [gdSelected, gdFocused] = [] then
      TdxQueryGrid(Sender).Canvas.Brush.Color := clGreen;
end;

procedure Form_Create;
begin
  dxQueryGrid4.OnPrepareCanvas := @QueryPrepareCanvas;
end;


Вернуться в «Общие вопросы.»