Был доработан блок обработки цветов в описании представлений документов (поле "COLOR" в справочнике R170):

Помимо существовавшей ранее возможности изменять цвет шрифта строки таблицы, теперь можно

описать изменение цвета шрифта и фона для каждой колонки, и даже для каждой отдельно взятой

ячейки таблицы. Для этого в блок кода обработки цвета.

 

Рассмотрим все эти возможности на примере отчета смены Производства, Склада, Экспедиции,

(который, как мы знаем также является документом):

 

1. Изменение цвета строки документа по условию.

Предположим, что мы хотим сделать шрифт красного цвета в тех строках отчета, где выходящее

количество<0

 

Тогда нам следует написать в блоке кода обработки цвета у данного представления отчета

следующее:

 

if eamnt<0

  {'clRed','clRed'}//в данном случае первый цвет означает цвет шрифта подсвеченной (выделенной курсором)

                   // строки в таблице, а второй - обычной неподсвеченной строки

else

  nil

endif

 

если мы хотим к тому же написать, чтобы цвет фона ячейки был также изменен -

мы должны писать массив уже из трех элементов:

 

if eamnt<0

  {'clRed','clRed','clLime'}// где третий элемент, в данном случае "clLime" - цвет фона строки

else

  nil

endif

 

Напоминаю, что в качестве цвета, мы можем указывать любые дельфийские цвета,

т.е. не только прямые названия цветов: 'clBlue','clRed','clGreen', но и

указания на цвета элементов WINDOWS например 'SpecialHighlight','SpecialNoHighlight',

'clActiveCaption','clBtnText' и.т.д.

 

2. Изменение цвета шрифта колонки

Если у нас возникла необходимость выделить цветом, например колонки кода номенклатуры

и ее наименование, мы можем это сделать следующим образом:

 

parameters FldName// с помощью этой строки мы указываем, чтобы в блок кода обработки

                  // цветности автоматически передавалось в качестве параметра имя колонки, а дальше

                  // мы уже обрабатываем его как нам необходимо

if fldname='ANAL1' or fldname='PNAME' //не забудте, что необходимо указывать все имена полей ПРОПИСНЫМИ буквами

  {'clRed','clRed'}//соответственно только шрифт или  {'clRed','clRed','clGreen'} шрифт и фон

else

  nil

endif

 

3. Изменение отдельных ячеек в колонке

Немного усложним задачу №1. Предположим нам надо выделять не строку с отрицательным

выходящим остатком, а ячейку в соответствующей колонке, а положительную ячейку выделять

зеленым шрифтом:

 

parameters FldName

 

if fldname='EAMNT'

  if &FldName < 0 //с помощью данного выражения (так называемого макроса знак "&"+Имя переменной) мы получаем

                  // значение данного поля в текущий момент и в зависимости от него раскрашиваем колонку

    {'clWhite','clBlack','clRed'}//ячейка с минусовым значением черным шрифтом на красном фоне

  else

    {'clWhite','clBlack','clLime'}//ячейка с неотрицательным значением черным шрифтом на светло-зеленом фоне

else

  nil

endif

 

Кроме того, естественно можно комбинировать различные варианты цветов...

 

Данная доработка позволяет сделать более наглядным представление данных для пользователей,

и существенно улучшить восприятие ими информации на экране.

ВАЖНО: Пожалуйста не забывайте устанавливать признак частного реквизита после изменения 

       блока обработки цвета, во избежание потери ваших изменений после обновления версии

       программы.