Изменение цвета фона строк или текстовых полей - PullRequest
1 голос
/ 19 августа 2011

У меня есть данные, поступающие из базы данных в Crystal Report от SAP с VS2010 SQLServer, отображаемые в текстовых полях, поскольку Crystal не имеет сеток данных.

Как я могу чередовать цвета фона этих текстовых полей?

Ответы [ 3 ]

2 голосов
/ 22 августа 2011

Создать пользовательскую формулу; назовите это Colorize:

//Color every other row as light tan (alter RGB to suit tastes)
Function (Numbervar row, Optional Numbervar Color := RGB(239,235,220))

If Remainder(row,2)=0 Then
    Color
Else
    crNoColor

Добавьте в формулу условного форматирования цвета фона раздела «Детали» следующее:

Colorize(RecordNumber)

//or over-ride color
Colorize(RecordNumber, crSilver)

Вы также можете использовать его с разделом заголовка группы, передав ключевое слово GroupNumber:

Colorize(GroupNumber)

Если вы делаете что-то необычное с группировкой, вы можете использовать формулу промежуточного итога:

//{@G1}
WhilePrintingRecords;
Numbervar i;
i:=1+1;

Добавьте эту формулу в раздел заголовка группы, затем отключите ее.

Измените условную формулу заголовка группировщика на:

WhilePrintingRecords;
Numbervar i;
Colorize(i);
2 голосов
/ 20 августа 2011

Есть два способа сделать это.Первый самый простой, но наименее надежный.В разделе сведений вы можете просто добавить формулу форматирования цвета фона следующим образом: if recordnumber mod 2 = 0 then crgray else crnocolor

Во-вторых, если вам нужен больший контроль над форматированием, скажем, если вы вообще не отображаете раздел сведений.и просто групповые колонтитулы.Это просто связано с отслеживанием одной логической переменной.В разделе, который вы хотите перевернуть, добавьте это в формулу форматирования цвета фона:

whileprintingrecords;
booleanvar fliprow;
fliprow := not fliprow;
if fliprow then crgray else crnocolor
0 голосов
/ 29 ноября 2018

Для достижения этого для текстовых полей. Вы собираетесь создать собственную формулу, я создал "Toggle"

WhilePrintingRecords;

Global booleanVar g_bGreyRow := Not(g_bGreyRow);

Затем вставьте текстовое поле и добавьте поле формулы переключения. Затем вы захотите выделить текстовое поле и отформатировать текст. Выберите вкладку границы и установите флажок фона и в редакторе пользовательских формул добавьте

Global booleanVar g_bGreyRow;
If g_bGreyRow
Then color(231, 231, 231)
Else crNoColor

Теперь ваше текстовое поле будет включать и выключать цвет фона. Есть одна небольшая проблема, и вы увидите текст True или False. Я исправил это, сначала выбрав Редактировать текст ... затем выделил текст и щелкнул правой кнопкой мыши для форматирования текста. Я установил белый цвет текста и размер 1, а затем изменил формат текста переключателя с true и false на T и F, что делает его в основном невидимым Также не забудьте переместить текстовое поле назад. Я использую этот метод, когда не хочу или не хочу менять весь фон разделов и только часть.

...