В 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 # и просто использую это как свой последний вариант, я хотел бы знать, как я могу двигаться дальше.
Есть идеи?