Как изменить цвет фона ячейки / группы в Пиксельном отчете в NPrinting Designer с помощью C # - PullRequest
0 голосов
/ 23 октября 2019

В NPrinting Designer (в формате Pixel Perfect) есть возможность использовать условный формат, который будет окрашивать шрифты / фон в соответствии с условием. Это работает для «строк» ​​контейнера / таблицы, но ту же логику нельзя применить к «итогу», который находится в отдельном контейнере / таблице.

Вот почему я пытаюсь решить проблему с итогом с помощью редактора сценариев NPrinting Designer.

Qlik создал видео, в котором демонстрируется, как можно вывести таблицу с 10 строками. используя следующий код C #:

Ссылка: https://www.youtube.com/watch?v=iL-qmau233k

//C# code for printing the first 10 rows
using System.Drawing.Printing;

private int detailRowCount = 0;
private int topNRow = 20;

private void Detail_BeforePrint(object sender, PrintEventArgs e) 
{
        if(++detailRowCount > topNRow)
                e.Cancel = true;
}

Я вообще не эксперт в коде C #, но я пытался использовать ту же логику для достижения условной раскраскииз общей строки:

using System.Drawing.Printing;

//C# code for printing conditional coloring/colorting based on values 

Color redColor = Color.FromArgb(255, 0, 0);
Color greenColor = Color.FromArgb(0, 255, 0);

private void ColorBackground(object sender, ColorEventArgs e) 
{
        if(e.CellValue > 0) 
        {
                e.Cell.ColorBackground = Color.redColor;
        }
        else if(e.CellValue <= 0) 
        {   
                e.Cell.ColorBackground = Color.greenColor;
        }
}

Вот чего я хотел бы добиться в псевдокоде:

Около 100 отчетов (представьте по одному для каждого региона страны).

Когда всего> 0, тогда цвет фона этого контейнера красный

Другой цвет фона этого контейнера зеленый.

Когда я проверяю код в редакторе сценариев NPrinting Designer, я получаю следующееошибка:

The type or namespace name 'ColorEventArgs' could not be found (are you using a directive or an assembly reference?)

Сообщение об ошибке, вероятно, имеет смысл, но опять же, поскольку я не знаком с C # и просто использую это как свой последний вариант, я хотел бы знать, как я могу двигаться дальше.

Есть идеи?

...