集算报表通过API修改单元格属性

有时需要在程序中动态修改已做好报表的单元格属性,包括边框、字号、颜色、对齐方式等。润乾集算报表提供了丰富的API,开发人员可以通过提供的接口快速修改报表单元格属性。

修改单元格属性主要修改报表定义ReportDefine,比如下面已经做好的订单信息表如下:

预览效果:

我们通过代码修改该报表单元格属性:

//设定边框
       for (int i = 2; i <=3; i++) {
           for (int j = 1; j <=6; j++) {
              rd.setBBColor(i,(short)j, -6710887); //设定下边框线色
              rd.setBBStyle(i,(short)j, INormalCell.LINE_SOLID); //设定下边框类型
              rd.setBBWidth(i,(short)j, (float)0.75); //设定下边框线粗
              //左边框
              rd.setLBColor(i,(short)j, -6710887);
              rd.setLBStyle(i,(short)j, INormalCell.LINE_SOLID);
              rd.setLBWidth(i,(short)j, (float)0.75);
              //右边框
              rd.setRBColor(i,(short)j, -6710887);
              rd.setRBStyle(i,(short)j, INormalCell.LINE_SOLID);
              rd.setRBWidth(i,(short)j, (float)0.75);
              //上边框
              rd.setTBColor(i,(short)j, -6710887);
              rd.setTBStyle(i,(short)j, INormalCell.LINE_SOLID);
              rd.setTBWidth(i,(short)j, (float)0.75);
           }
       }
 
       //设置单元格值、字体、字号、颜色、对齐等
       INormalCellinc = rd.getCell(1, (short) 1);
       inc.setValue("订单信息表"); //设置单元格值
       inc.setFontName("宋体"); //设置字体
       inc.setFontSize((short) 20); //设置字号
       inc.setForeColor(-16777216);//设置前景色
       inc.setHAlign(INormalCell.VALIGN_MIDDLE);//设置横向对齐方式
       inc.setHAlign(INormalCell.HALIGN_CENTER);//设置纵向对齐方式

报表定义修改后,使用defineBean方式发布报表:

request.setAttribute("reportDefine",rd);

修改后的报表发布后效果如下:

可以看到,增加了报表标题(内容、字体、颜色、对齐方式等),增加了单元格边框,更多修改单元格属性的方法可以参考《润乾集算报表应用开发手册》。

【附】changeCellProperty.jsp完整代码:

<%@page import="com.raqsoft.report.usermodel.INormalCell"%>
<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib uri="/WEB-INF/raqsoftReport.tld"prefix="report"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="com.raqsoft.report.usermodel.Context"%>
<%@ page import="com.raqsoft.report.model.ReportDefine"%>
<%@ page import="com.raqsoft.report.util.ReportUtils"%>
<%@page import="com.raqsoft.report.usermodel.INormalCell"%>
 
 
<html>
<link type="text/css"href="css/style.css" rel="stylesheet" />
<body topmargin=0 leftmargin=0 rightmargin=0 bottomMargin=0>
    <%
       request.setCharacterEncoding("GBK");
       StringreportPath = request.getRealPath("/reportFiles/ccp.rpx");
       ReportDefinerd = (ReportDefine) ReportUtils.read(reportPath);
       //设定边框
       for (int i = 2; i <=3; i++) {
           for (int j = 1; j <=6; j++) {
              rd.setBBColor(i,(short)j, -6710887); //设定下边框线色
              rd.setBBStyle(i,(short)j, INormalCell.LINE_SOLID); //设定下边框类型
              rd.setBBWidth(i,(short)j, (float)0.75); //设定下边框线粗
              //左边框
              rd.setLBColor(i,(short)j, -6710887);
              rd.setLBStyle(i,(short)j, INormalCell.LINE_SOLID);
              rd.setLBWidth(i,(short)j, (float)0.75);
              //右边框
              rd.setRBColor(i,(short)j, -6710887);
              rd.setRBStyle(i,(short)j, INormalCell.LINE_SOLID);
              rd.setRBWidth(i,(short)j, (float)0.75);
              //上边框
              rd.setTBColor(i,(short)j, -6710887);
              rd.setTBStyle(i,(short)j, INormalCell.LINE_SOLID);
              rd.setTBWidth(i,(short)j, (float)0.75);
           }
       }
 
       //设置单元格值、字体、字号、颜色、对齐等
       INormalCellinc = rd.getCell(1, (short) 1);
       inc.setValue("订单信息表"); //设置单元格值
       inc.setFontName("宋体"); //设置字体
       inc.setFontSize((short) 20); //设置字号
       inc.setForeColor(-16777216);//设置前景色
       inc.setHAlign(INormalCell.VALIGN_MIDDLE);//设置横向对齐方式
       inc.setHAlign(INormalCell.HALIGN_CENTER);//设置纵向对齐方式
       
       request.setAttribute("reportDefine",rd);
       
    %>
    <jsp:include page="toolbar.jsp" flush="false" />
    <table id="rpt" align="center"width=100% height=100%>
       <tr>
           <td align=center valign=top height=100%>
           <report:html name="report1"
              funcBarLocation="" 
              srcType="defineBean" 
              beanName="reportDefine"
              exceptionPage="/reportJsp/jsp/myError.jsp" /></td>
       </tr>
    </table>
 
</body>
</html>
时间: 2024-07-29 09:13:22

集算报表通过API修改单元格属性的相关文章

润乾集算报表优化应用结构之可挂接算法

在报表项目中,有些报表的数据计算方法会经常改变.例如:某企业员工的实际工资是通过绩效得分计算出的,算法经常变动,需要在不改动其他代码的情况下用新算法替换旧算法.如果用Java来实现计算的话,虽然可以实现动态可挂接计算模块,但是存在缺乏基础类库.占用多余内存等问题. 采用润乾集算报表可以很好的解决这些问题,实现低耦合.热部署的动态挂接算法.集算报表挂接算法系统结合和其他报表工具+java的系统结构对比图如下: 上图可以看出,java程序必须要编译.打包才能更新.集算脚本是解释执行的,脚本文件同时也

集算报表用Java动态修改报表数据源

实际应用中通过程序动态修改报表模板的情况很常见,其中动态修改数据源SQL就是一种典型场景.常见于系统中有一些结构相同而数据源不同的报表,为减少报表开发工作量,只开发一套报表模板,使用时通过程序动态修改数据源来满足实际需要. 下面通过一个使用JAVA程序修改集算报表数据源SQL的例子说明使用过程. 编辑报表模板: 由于不同数据源的字段不同,因此这里使用动态表达式ds1.fname()获取字段名,ds1.field()获取字段值.此外,第一行和第一列为辅助行列,设置其隐藏. 编写代码: 1.读入报表

润乾集算报表应用开发之参数输入

参数对于报表的重要性不言自明,润乾集算报表支持两种参数输入方案,可以使用集算报表设计参数模板联合报表一同发布,还可以自定义参数输入后与报表结合.二者并没有显著的差异,前者在开发使用上更加方便快捷,而后者则在灵活性上更胜一筹,用户在使用集算报表参数输入时可以根据实际需要进行选择. 下面就上述两种参数输入方式的使用分别来看一下. 使用参数输入模板 集算报表提供了"参数模板"的报表类型,使用参数模板可以制作参数输入表单,而且其内置了多种编辑风格,如下拉树.下拉日历.列表框.下拉数据集等.使用

润乾集算报表优化应用结构之报表数据源复用

在报表项目中,经常有多个报表的数据源计算方法有共同的部分.使用润乾集算报表,采用可挂接算法的方案时(可参考[润乾集算报表优化应用结构之可挂接算法]),可以更方便地将这些共同部分用同一个脚本来完成,从而实现算法复用.算法复用的好处是:一个算法只实现一次,不会出现同一个算法多处实现导致不一致的情况.同时也避免一个算法实现很多次的重复劳动,减轻工作量. 下面通过两个报表复用同一个算法的例子来看一下具体的实现方法.报表1是"员工绩效工资明细表",可以按照STATE来选择不同的员工例如:STAT

润乾集算报表非常规统计之固定行列交叉表

实际信息系统中很多数据计算是为前端展示而进行的,其中报表是最常见的一种形式.这些计算的实现过程往往并不简单,使用SQL或存储过程实现起来比较困难,从而影响到前端报表设计.像http://bbs.csdn.net/topics/390883416中提的问题,其目的是为了实现一个固定行列的交叉表,用SQL准备好固定行数的数据源很麻烦.而润乾集算报表则有很灵活的计算能力,可以充分利用问题特点应付各种非常规的计算需求.这里就以链接中业务为背景,给出集算报表实现某种固定列交叉报表的方案. 报表背景 源数据

润乾集算报表呈现输出之超链接钻取

报表展现后,经常需要表中数据能够钻取,如汇总数据钻取到明细数据,上级单位钻取到下级单位.而钻取的层级往往有多层,这就需要报表工具支持钻取功能. 润乾集算报表支持超链接钻取,可以满足报表用户数据钻取的需求.这里通过示例来看一下. 1.新建汇总报表 这里以某年度按地区销售情况汇总报表为例,点击地区钻取到相应地区下订单明细数据.设置报表年份参数year,并编辑报表表达式如下: 2.设置超链接 在设计器右侧的属性面板中"超链接-超链接"表达式编辑框中设置A3格超链接表达式为:"rep

润乾集算报表非常规统计之补齐数据

实际系统由于历史设计的原因,业务数据有时无法直接满足报表需求,从而需要在报表中补足数据,以满足报表展现需要.像http://bbs.csdn.net/topics/100074605中提到的问题,就是一个比较典型的此类需求. 这类问题使用SQL或存储过程往往复杂度过高,如帖子中贴出的答案:而使用一般报表工具则需要不断地重复遍历进行数据关联,还要借助隐藏格和做大量的条件判断才能完成,实现难度和报表性能都不理想. 而润乾集算报表则在完成这类报表时则比较简单,这里以上述链接中的实际业务为例,给出集算报

润乾集算报表非常规统计之跨行组运算

报表开发中,经常会碰到一些需要进行非常规统计的报表,固定分组.可重复分组.组内排序,还包括跨行组计算的报表,甚至有些报表本身无数据来源.以及需要对数据源再计算.这些报表本身具备一定的特殊性,使用常规方法往往难于实现. 集算报表完成这类特殊统计报表则非常简单,这里通过一个需要完成跨行组计算的报表为例,说明使用集算报表的实现过程. 报表说明 根据订单表和指定年份(参数)按月统计订单金额,以及与上一订单月金额比,与去年同月金额比.报表样式如下: 这里应该注意的是比去年同期是指与去年同月份的比值,无对应

集算报表与润乾报表的函数语法对照

集算报表5.0在保留润乾报表V4.x的核心功能外,进行了优化和精简.当中报表函数也做了适当优化,这里就常见计算来比較一下二者函数语法之间的差异.         对照函数一览表 1.数据集函数 1.1.ds.group()         润乾报表: datasetName.group(selectExp{,descExp{,filterExp{,sortExp{,groupSortExp{,groupDescExp{,rootGroupExp}}}}}})         集算报表: data