Java DynamicJasper:基于值的背景色
是否可以使用DynamicAsper API为每行使用给定颜色设置特定单元格的背景色 如果对象产品具有{id、price、name、color}属性Java DynamicJasper:基于值的背景色,java,jasper-reports,dynamic-jasper,Java,Jasper Reports,Dynamic Jasper,是否可以使用DynamicAsper API为每行使用给定颜色设置特定单元格的背景色 如果对象产品具有{id、price、name、color}属性 然后,名称字段的背景色需要更改为颜色字段的值。(JasperReports支持此行为)指南: 在此解决方案中,在创建报告之前,将生成所有可能颜色的列表。, column coloredCell有自己的值,也有颜色值(表示为字段)。 所有颜色都是六边形。 DynamicJasperReport.java public class Dynamic
然后,名称字段的背景色需要更改为颜色字段的值。(JasperReports支持此行为)指南: 在此解决方案中,在创建报告之前,将生成所有可能颜色的列表。, column coloredCell有自己的值,也有颜色值(表示为字段)。 所有颜色都是六边形。 DynamicJasperReport.java
public class DynamicJasperReport{
public DynamicJasperReport(List<String> color){
DynamicReportBuilder drb = new DynamicReportBuilder();
ArrayList<ConditionalStyle> listCondStyle = StyleUtils.getConditonalStyles(color);
AbstractColumn col = ColumnBuilder.getNew()
.setColumnProperty("colordCell", Object.class.getName())
.setTitle("Colored Cell")
.addConditionalStyles(listCondStyle)
.build();
//adding the color value
drb.addField("color", Boolean.class.getName());
}
}
StyleUtils.java:
public abstract class StyleUtils {
public static Style backgroundColorStyle (String hexColor){
Style cellBackgroundStyle = new Style();
cellBackgroundStyle.setTransparency(Transparency.OPAQUE);
cellBackgroundStyle.setBackgroundColor(Color.decode(hexColor));
cellBackgroundStyle.setTextColor(Color.BLACK);
cellBackgroundStyle.setVerticalAlign(VerticalAlign.TOP);
return cellBackgroundStyle;
}
public static ArrayList<ConditionalStyle> getConditonalStyles(List<String> Color) {
ArrayList<ConditionalStyle> conditionalStyles = new ArrayList<ConditionalStyle>();
Color.forEach(c-> {
BackgroundCondition backgroundCondition = new BackgroundCondition("color", c);
ConditionalStyle cs = new ConditionalStyle(backgroundCondition, StyleUtils.backgroundColorStyle(c));
conditionalStyles.add(cs);
});
return conditionalStyles;
}
}
公共抽象类StyleUtils{
公共静态样式backgroundColorStyle(字符串hexColor){
Style cellBackgroundStyle=新样式();
cellBackgroundStyle.setTransparency(Transparency.不透明);
cellBackgroundStyle.setBackgroundColor(Color.decode(hexColor));
cellBackgroundStyle.setTextColor(颜色:黑色);
cellBackgroundStyle.setVerticalAlign(VerticalAlign.TOP);
背景风格;
}
公共静态ArrayList GetConditionAnalStyles(列表颜色){
ArrayList conditionalStyles=新的ArrayList();
颜色。forEach(c->{
背景条件背景条件=新的背景条件(“颜色”,c);
ConditionalStyle cs=新的ConditionalStyle(backgroundCondition,StyleUtils.backgroundColorStyle(c));
条件样式。添加(cs);
});
返回条件样式;
}
}
public abstract class StyleUtils {
public static Style backgroundColorStyle (String hexColor){
Style cellBackgroundStyle = new Style();
cellBackgroundStyle.setTransparency(Transparency.OPAQUE);
cellBackgroundStyle.setBackgroundColor(Color.decode(hexColor));
cellBackgroundStyle.setTextColor(Color.BLACK);
cellBackgroundStyle.setVerticalAlign(VerticalAlign.TOP);
return cellBackgroundStyle;
}
public static ArrayList<ConditionalStyle> getConditonalStyles(List<String> Color) {
ArrayList<ConditionalStyle> conditionalStyles = new ArrayList<ConditionalStyle>();
Color.forEach(c-> {
BackgroundCondition backgroundCondition = new BackgroundCondition("color", c);
ConditionalStyle cs = new ConditionalStyle(backgroundCondition, StyleUtils.backgroundColorStyle(c));
conditionalStyles.add(cs);
});
return conditionalStyles;
}
}