需求描述:

一般报表模板设计的报表都是固定格式和字段的报表,如果要修改列字段或者排列顺序,需要设计人员修改报表模板。用户需求为可以选择预添加的字段,并且可以增删,最终根据用户选择,生成结果报表,实现web端报表结果自定义功能。如下图所示。

报表实现:

下面例子实现四列的自定义网格式报表。

参数表单:

利用参数,前端js,隐藏行属性等,为用户提供报表自定义的参数页面,用户可以添加或删除报表的列,并选择列字段。

参数模板:param.raq

参数配置:

num,整数,主要用于记录已添加的行,初值为1。

数据集:建立内建数据集,A,B,C,D分别表示四列的可选字段。

报表模板设计:

报表模板设计重点主要包括一些几点

1. 该报表可以填报,并且B2,B3,B4,B5可写,web变量名分别为col1,col2,col3,col4。

2. 设置隐藏行属性,第3,4,5行都需要设置隐藏行属性,设置的方式相同。以第2行为例,隐藏行属性表达式为if(num>=2,false,true),表示如果当前以添加的列(num)大于等于2时,当前行是不隐藏的,否则隐藏该行。

3.下拉编辑风格设置

B2,B3,B4,B5提供下拉数据集的编辑风格,分别绑定ds1的A、B、C、D字段,并且提供动态过滤功能。B3下拉项不包括B2的选择项,B4下拉项不包括B2和B3的选择项,依以此类推。

B2,B3的下拉数据集填报风格设置如下,B4,B5类似。

4 添加超链接属性,利用js实现添加删除参数表单中的列选择。

C2单元格添加了”超链接属性”:”javascript:add_col(“+A1+”)”,其中A1单元格值为num+1,表示的要添加的列数。调用页面js的函数add_col完成列添加。

C3,C4,C5单元格同样需要添加”超链接属性”,以C3单元格为例,单元格表达式为: =if(num==2,”删除”,”"),如果参数num为2,值为删除,否则为空。超链接属性设置如下图,”javascript:del_col(2,’col2′)” ,调用页面js的函数del_col完成列删除。

Js函数:

add_col(num) 添加列选择,实际上是刷新当前页,传递参数值num,num的值是要添加的列,根据这个num值可以控制参数表单某些行是否隐藏,如num=2时,第3行显示,4,5行隐藏。

del_col(num,col) 删除列选择,实际上也是刷新页面,传递参数num和指定的参数值。如要删除第3行,那么调用”javascript:del_col(2,’col2′)”,最终转向页面showParams.jsp?num=1&col2=,实现效果是隐藏了第三行并且清空了”第二列”(B3)的选择项

function add_col(num)

doPostBack(form1,’showParams.jsp?num=’+num);

function del_col(num,col)

var num1=num-1;

doPostBack(form1,’showParams.jsp?num=’+num1+’&’+col+’=');

//指定提交页面的url

function doPostBack(formObj,actionFile){

formObj.action=actionFile;

formObj.submit();

结果模板:result.raq

利用动态宏实现单元格表达式的动态变化。

参数设置:

分别接收来自于参数模板的4个列选择。

宏设置:

Macro1:if(col1!=null&&col1!=”",”ds1.select(“+col1+”)”,null)

Macro2:if(col2==null ,”",col2==”",”",”ds1.”+col2)

Macro3:if(col3==null ,”",col3==”",”",”ds1.”+col3)

Macro4:if(col4==null ,”",col4==”",”",”ds1.”+col4)

数据集:

注意数据集的设置需要包含所有参数模板里面选择的列,这里取出了所有字段。

报表模板设计:

其中A1,B1,C1,D1代表表头的字段描述,接收对应列名参数col1,col2,col3,col4。

A2根据宏计算动态生成单元格表达式,如果col1为空,表达式为空,如col1为”产品名称

“,表达式就变为ds1.select(产品名称)。B2,C2,D2也是类似,根据宏生成表达式。

小结:

本例利用宏,参数,隐藏行,js实现了比较灵活的自定义报表,打破了报表模板设计只能设计固定格式报表的限制,增强了和终端用户的交互,说明灵活的应用润乾提供的属性功能可以组合设计出更灵活多变的报表。

具体实现可以参考附件。

java 自定义报表_报表模板实现网格式自定义报表相关推荐

  1. java调用帆软cpt文件_报表开发导出各种格式文件的API

    文件输出的多样性,准确性和稳定性对于我们常用的报表软件来说很重要.报表的输入是指从报表的模板文件(XML格式的)创建WorkBook对象,输出则指将报表保存为各种格式文件,比如Pdf.Excel.Wo ...

  2. 十进制转化为二进制java代码_【模板小程序】任意长度十进制数转化为二进制(java实现)...

    妈妈再也不用担心十进制数过大了233 import com.google.common.base.Strings; import java.math.BigInteger; import java.u ...

  3. java反射机制详解_JAVA反射机制详解_JSP/Java编程_互联网开发技术网_传播最新的编程技术_php361.com...

    今天,下午在和朋友聊天的时候,聊起了反射这个话题. 我们就从下面这个段简单的代码开始吧. 这个代码输出什么,想必大部分的读者跟我一样,会很快地知道答案:0 1 2 3 4 5 6 7 8 9.事实也是 ...

  4. 51自学网java壁虎_我要自学网JAVA基础4-26日历补充壁虎老师的完整代码

    import java.util.*; public class RiLi2 { public static void main(String[] args) { Scanner sc=new Sca ...

  5. 去哪儿网java实习_【去哪儿网Java面试】Java实习(机票部门)-看准网

    Java实习(机票部门) 自我介绍,项目介绍,项目中遇到的难题,项目中用到了线程池,用的什么线程池,怎么配置的参数?自定义线程池,new ThreadPoolExecutor(10,20,2000,毫 ...

  6. 网易云音乐java爬虫_一起来写网易云音乐Java爬虫

    k**7添加了笔记:n... c**k向课程作业中提交了代码 l**o向课程作业中提交了代码 Siyi评论了:交了费为啥就用不了实... 七向课程作业中提交了代码 p**a向课程作业中提交了代码 p* ...

  7. 帆软 JAVA扩展_java报表开发工具FineReport教程之报表设计:单元格扩展

    java报表开发工具FineReport教程之报表设计:单元格扩展 报表设计章节适用于对报表业务有一定的了解,需要学习FineReport报表的初学者. 通过该章节的学习,可以掌握设计器的使用,了解报 ...

  8. java pdf 报表_关于Java向PDF模板写入数据,以及java制作pdf报表的问题

    1.关于java向PDF模板写入数据 写的特别全一步一步来就行. (1)首先下载一个pdf编辑工具Adobe Acrobat DC (2)准备一个pdf模板文件(你可以把自己创建一个只有表头没有内容的 ...

  9. java 自定义报表_设计好的报表是如何在 web 上显示的

    润乾报表主要用来开发在 java web 端呈现的报表工具,设计器为桌面版,那么开发后的报表如何发布到 web 端是用户较为关心的问题. 润乾报表 web 端发布,采用 Taglib 方式,只需要在 ...

  10. 如何将网格式报表打印成其它样式

    我们经常要打印报表,也遇到打印上的麻烦,比如有时候我们不想严格按照报表上面的样式,根据实际应用可能有别的样式更适合,这时候怎么办呢,其实报表软件是可以设置,今天我就带大家来了解一下! 1. 问题描述 ...

最新文章

  1. App混合应用Appium自动化测试框架技术难点
  2. javascript:document的属性和方法,title,innerHTML,
  3. 可能存在无限递归_做事永远无头无尾?人生中的递归现象
  4. apple music有一点坏处。。这个乱码有点不本土化啊
  5. boost::log::keywords::format用法的测试程序
  6. unixbench类似_UnixBench的实现介绍-阿里云开发者社区
  7. matlab的annotation,科学网—annotation in matlab Graph - 夏靖的博文
  8. bzoj 1664 (贪心)
  9. Python 爬取 3000 部电影,最具人气烂片排行榜出炉!
  10. Android 开发究竟是选择 Java 还是 Kotlin?Google 有话说
  11. SRv6技术课堂:SRv6可靠性方案(一)
  12. C++:字符串转换成整数
  13. 用excel做线性规划
  14. 如何下载最新Windows10镜像文件(.iso文件)
  15. 虚拟机ubuntu左侧和上方工具栏消失
  16. 【Java中级】8.5 SSH之Hibernate框架(五)——关于Criteria(QBC)过时的补充
  17. c++控制台密码管理系统
  18. 二层三层网络协议-网关
  19. Windows下查看电脑的CPU个数,核心数,线程数
  20. 汶川地震十年祭 | 川大分享会:人如树,把根留住

热门文章

  1. python蒙特卡洛模拟return_蒙特卡罗方法入门
  2. 大话设计模式之爱你一万年:第八章 结构型模式:外观(门面)模式:冬天有你不再寒冷:2.外观模式之一键开关
  3. 相机镜头等效焦距和实际焦距换算
  4. matlab 频域响应,利用MATLAB软件分析系统的频率响应
  5. 教你用优化视频的方法提高视频的质量
  6. 手机连电脑热点,电脑连手机热点的ip分配问题
  7. 手机连上电脑热点发现网络不可用,怎么办?
  8. 人际网络营销与网站运营、策划、推广一体化结合
  9. 如何写论文?新手小白快速入门!
  10. css横向导航栏布局,CSS04--对齐、 布局、导航栏