二次开发
单元格是组成报表的最小元素,FineReport将单元格很多属性开放给应用开发人员进行控制,如新增单元格,设置列宽、行高,字体、前景色,背景色、显示位置、边框样式、边框颜色等等。以下我们将常用的属性设置列出供您参考,效果如下:
1. 实现原理
1.1 新建单元格
//新建一个单元格,位置为(1,1),列向占2个单元格,行向占2个单元格,文本值为 "FineReport",位置从(0,0)开始
TemplateCellElement cellElement = new DefaultTemplateCellElement(1, 1, 2, 2, "FineReport");
1.2 设置单元格行高、列宽
//设置第1列宽为300px,设置第1行高为30px,行列编号都是从0开始
worksheet.setColumnWidth(1, new OLDPIX(300));
worksheet.setRowHeight(1, new OLDPIX(30));
1.3 获取单元格样式
// 得到CellElement的样式,如果没有新建默认样式
Style style = cellElement.getStyle();
if(style == null) {
style = Style.getInstance();
}
1.4 设置单元格样式
// 设置单元格单元格的样式
cellElement.setStyle(style);
1.5 设置字体、字号等
1.6 设置单元格边框
// 设置边框样式和边框颜色
style = style.deriveBorder(Constants.LINE_DASH, Color.red, Constants.LINE_DOT, Color.gray, Constants.LINE_DASH_DOT, Color.BLUE, Constants.LINE_DOUBLE, Color.CYAN);
2. 实现步骤
改变单元格的格式,应先取出该单元格(CellElement)的格式(Style)。若您是新建一个单元格,则Style是null,故当取出Style后应先判断其值是否为null,如果这个值为空,则需先新建一个Style,然后再将该值赋给CellElement。最后根据Style和FRFont中的方法进一步地设置该单元格的各种属性。可执行代码如下:
2.1 发布并预览
将编译后的SetCellElementStyle.class类放置在应用WEB-INF\classes\com\fr\demo下,启动服务器,在浏览器中访问该程序网络报表,地址如下:
http://localhost:8075/WebReport/ReportServer?reportlet=com.fr.demo.SetCellElementStyle便可以看到我们定义的网络报表了。
返回顶部