Инструменты отчетности Java/Springboot с открытым исходным кодом - Проблема условного стиля [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Инструменты отчетности Java/Springboot с открытым исходным кодом - Проблема условного стиля [закрыто]

Сообщение Anonymous »

Я недавно начал на Spring Boot и новичок в Java Reporting. JasperReports был хорошим, но менее гибким для динамической отчетности, такой как динамическое количество столбцов и т. Д. Однако я застрял, когда дело дошло до реализации CondentalStyling , например, создание жирного шрифта в полной строке на основе значения определенного столбца. Вот определение проблемы: < /p>
Определение проблемы < /strong>
на основе значения в одном столбце я хочу изменить шрифт всей строки отчета. Столбец Rowtype. Я пытаюсь использовать условное выражение для выполнения задачи. Вот мой код. < /P>
ArrayList conditionalStyles = null;
try{
conditionalStyles = getConditionalStyles(detailStyle);
} catch(Exception e){
System.out.println("XXX-1");
e.printStackTrace();
}

private class FicheCondition extends ConditionStyleExpression implements CustomExpression {
private String fieldName;
private String colorValue;

public FicheCondition(String fieldName, String colorValue) {
System.out.println("XXXX-1-A");
this.fieldName = fieldName;
this.colorValue = colorValue;
System.out.println("XXXX-1-B: " + fieldName + "/" + colorValue);
}

public Object evaluate(Map fields, Map variables, Map parameters) {
System.out.println("XXXX-2-A");
System.out.println("Fields: " + fields);
boolean condition = false;
Object currentValue = fields.get(fieldName);
if (currentValue instanceof String) {
String s = (String) currentValue;
condition = colorValue.equals(s); // Fixed comparison
}
return condition;
}
public String getClassName() {
System.out.println("XXXX-3-A");
return Boolean.class.getName();
}
}

private ArrayList getConditionalStyles(Style baseStyle) throws IllegalAccessException, InstantiationException, InvocationTargetException,
NoSuchFieldException, NoSuchFieldError, NoSuchMethodException {
System.out.println("XXXX-0");

Style style0 = (Style) BeanUtils.cloneBean(baseStyle);
style0.setTextColor(Color.RED);
style0.setFont(Font.GEORGIA_MEDIUM_BOLD);
Style style1 = (Style) BeanUtils.cloneBean(baseStyle);
style1.setTextColor(new Color(128,128,0));

ArrayList conditionalStyles = new ArrayList();

// Create FicheCondition and wrap it in a ConditionalStyle
FicheCondition fc = new FicheCondition("rowType", "H");
ConditionalStyle cs = new ConditionalStyle(fc, style0); // Wrap in ConditionalStyle
conditionalStyles.add(cs); // Add the ConditionalStyle to the list

// Repeat for other conditions
fc = new FicheCondition("rowType", "GROUP");
cs = new ConditionalStyle(fc, style1); // Wrap in ConditionalStyle
conditionalStyles.add(cs); // Add the ConditionalStyle to the list

return conditionalStyles;
}

AbstractColumn cRowType = ColumnBuilder.getNew()
.setColumnProperty("rowType", String.class.getName())
.setTitle("RowType")
.addFieldProperty("rowType", String.class.getName())
.setFieldDescription("rowType")
.setWidth(50)
.addConditionalStyles(conditionalStyles)
.setStyle(detailStyle)
.build();
reportBuilder.addColumn(cRowType);
< /code>
Здесь againation () никогда не вызывается. И я не могу определить, почему.
после того, как потратил два дня по этому вопросу, я в конечном итоге в точке сдачи и поиска какого -то другого решения с открытым исходным кодом, хотя я не уверен, есть ли один из них.

Подробнее здесь: https://stackoverflow.com/questions/794 ... ling-issue
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»