Posts Tagged ‘填报’

关于报表基础知识

01.28.2010 by hewei - 0 Comment - 0
Posted in web报表

什么是报表

一提起报表,人们最经常联想到的就是财务报表,象资产负债表、现金流量表、报销单等。其实除了财务报表,工作生活里还有很多报表,比如课程表、成绩表、员工登记表、工资表、物料登记单,银行记账单、手机话费单等等,各行业中的业务报表更是数不胜数。那么,什么是报表?

报表就是将内容信息(一般是数据、文字、图片等)以某种形式组织起来,并将组织结果呈现出来的文件。

对中国用户而言,凡是能打印出来的都可以叫报表。

什么是报表软件

顾名思义,报表软件就是用来制作报表的系统工具,目的是使做表工作简单化,提高总体工作效率。

报表软件有什么用?

报表软件可以帮助用户快速开发出自己想要的报表。这里的用户主要是指企业级用户市场,是除个人桌面级应用以外的市场。

企业级的用户一般有这么几个特征:
(1)应用复杂。企业级用户因为所处行业以及业务的不同,其应用软件涉及到财务、人员、物料、生产等各环节;
(2)数据量大,因为日常的业务往来会产生大量的生产数据;
(3)报表多且种类不同,处于不同生产环节上的人对报表有不同程度的要求。

专业的报表工具可以帮助企业级用户迅速定制出业务需要的报表。

自定义制作填报表的提交确认提示框

01.19.2010 by hewei - 0 Comment - 0
Posted in web报表
快逸报表发布到web页面以后会自动生成一个提交按钮,点击此按钮后系统不做提示,直接进行 填报,但是有些web报表用户希望在点击提交按钮后会弹出确认提示框,根据确认提示框点击是或者否再确定是否真的要进行填报,以免出现误操作,误填报。本 文就来介绍一下怎样实现这种自定义提交提示框。 实现思路: 1. 提交提示框无非是一段JavaScript代码来实现的,所以先要编写自定义提交提示框的JavaScript并插入到发布报表的jsp中。 2. 在toolbar中添加新功能的按钮。由于报表本身带有提交按钮,如果再添加一个按钮就会重复,所以要屏蔽掉默认的提交按钮或者修改默认按钮调用的JavaScript方法。 下面根据思路来做一个例子,实现步骤如下: 第一步:修改toolbar.Jsp,增加自定义javascript 打开toolbar.jsp(该jsp是在展现报表的showReport.jsp中调用的,是存放功能按钮代码的一个单独的jsp,可修改该jsp来进行增加修改页面中功能条),增加自定义提交提示框的JavaScript代码如下: < script language=”javascript”> function firm()//提交的函数名称 { if(confirm(”是否保存”))//利用对话框返回的值(true 或者 false) { //如果是true ,则调用_submitTable( report1 )进行提交 _submitTable( report1 ); return true; } else { //否则则取消 alert(”你按了取消,返回页面”); return false; } } < /script> 这样一段简单代码就实现了自定义提交提示框的基本功能,接下来只需要修改按钮调用到这段代码就可以实现效果了。如果需要其它提示框功能,也可照上述方法相应地自行添加。 第二步:设置页面提交按钮对应代码如下: 在toolbar.jsp中找到提交按钮的代码段 < a href=”#” onClick=”_submitTable( report1 );return false;”>< %=submitImage%>< /a> 默认是通过一张之前定义的submitImage这张图片触发超链接提交的,提交时激活快逸内置的JavaScript脚本. 现在我们需要对这行代码进行修改,调用第一步编写的自定义提交提示框的JavaScript代码. < a href=”#” onClick=”firm()”>< %=submitImage%>< /a> 修改完jsp以后我们来看下增加了自定义提交提示框填报表的效果: 自定义提交提示框效果.PNG 这样就可以实现在填报表中使用自定义提交确认提示框了,方便了web报表用户进行提交操作时的自定义设置,避免了误操作和误填报。
原文链接: 自定义制作填报表的提交确认提示框

行式填报

12.29.2009 by hewei - 0 Comment - 0
Posted in web报表应用

任务背景

输入页面的动态增删行是个比较头痛的问题。用户在录入数据的时候,往往希望可以动态插入、删除、添加记录,这样操作起来比较方便。 对于比较简单的清单式报表,有这样的要求,但是对于比较复杂的分组报表,或者是分片输入的报表,也同样会提出类似的要求。此时要求能够选择报表区域,针对某个区域进行增删行的操作。 新增加的行要求能够自动生成对应的编辑风格、自动计算、合法性检查等功能

面临困难

如果编程实现上述的功能,面临如下困难: - 需要记录每条记录的修改、删除、新增状态 - 需要写复杂的javascript,实现动态增删的功能 - 对于分组报表和分片输入的报表,还需要智能识别用户需要增删的是哪个报表区域,从而对相应区域进行操作。 动 态增删需要考虑的细节非常多,决不是表面上的增删行那么简单,在增加行的时候需要把编辑风格、自动计算、合法性检查等属性动态解析到新增加的行,这是一个 最复杂的功能,因为每一行的编辑风格、自动计算、合法性检查等属性不会完全一样,因为这些属性往往和当前行的一些数据值有关系。而且还有一些全局的自动计 算,可能和所有行都有关系,例如对所有行的sum操作等,这些自动计算的表达式都要动态的解析和变化。 当然,新增加的行还会有缺省值等属性,例如动态流水号等等,这些功能必然会遇到。 考虑到直接编程实现上述功能太麻烦,建议采用润乾报表的行式填报,快逸报表的行式填报从根本上解决了动态增删行的问题,不仅仅可以对分组报表、分片 输入的报表实现多区域的插入删除,还能够动态解析编辑风格、自动计算、合法性检查等属性,实现了很智能的流水号、缺省值等功能,实现步骤如下:

实现步骤

  1. 设计一个填报表,把报表样式设为”行式报表”
  2. 根据业务需要,添加编辑风格、自动计算、合法性检查、流水号等属性
  3. 在jsp中发布时,往tag里添加insertRowLabel、appendRowLabel、deleteRowLabel等属性,即插入、添加、删除按钮。

于是,功能完美的行式填报完成了,请看效果图:

效果演示

row_report_input.png

引自:报表工具知识库

原文链接:谈谈行式填报

相关文章:普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 利用内建数据集方便地进行快逸报表调试

其他相关内容:润乾报表 ; RAQSOFT ; 润乾商业智能解决方案 ; java报表研究

通过填报监听类获取行式报表的填报数据

12.20.2009 by hewei - 0 Comment - 0
Posted in web报表
行式填报表快逸报表提供的一种特殊的填报表,它相对于普通的填报表而言具有以下优点: 1.在网页上可以动态地实现增加 删除 修改行的数据 2. 增加行时可以引用定义的流水号,实现流水号在增加行时自动计算的功能 3.可以实现在网页上动态地导入不定行的excel数据 除了上述的强大功能外,行式填报表还可以利用快逸报表提供的填报监听类来实现一些特殊功能,在填报前后进行自己的业务操作。本文就用一个填报前获取行式报表每次插入数据的例子来让他家了解一下快逸的填报监听类。
获取每次插入新数据的思路: 报表提交的时候涉及到三种对数据库的操作: 插入(insert) 删除(delete) 更新(update) 行式填报报表具体体现是: (1) 在原有查询的基础上修改数据提交时执行的是update (2) 在原有查询基础上删除查询出来的数据的某一行提交时执行的是delete (3) 在原有查询的基础上插入一行数据提交时执行的是insert 清楚插入数据执行的是insert以后我们就可以通过继承填报监听类AbstractInputListener 在beforeSave()函数中获取提交的sql语句,然后在返回的InputSQL类型的sq语句中进行遍历,查看有没有包含”insert”字符 串,如果含有则说明InputSQL组中的元素就是包含我们想要的插入的新数据的sql语句,然后在根据需要在sql语句中取出填报的数据。
具体实现如下: //需要引用的类 import com.runqian.report4.usermodel.input.AbstractInputListener; import com.runqian.report4.usermodel.input.InputSQL; //继承abstractInputListener 实现beforeSave()函数 public class RowsInputListener extends AbstractInputListener { public void beforeSave()throws Exception { InputSQL[] abc = this.getInputSql(); for(int i=0;i< this.getInputSql().length;i++){ String sql = abc[i].getSql(); InputSQL sql1=abc[i]; if(sql.matches(”insert.*”)){ //判断是否是新增的记录,如果是则从InputSQL 对象中获取对应填报的数据 System.out.println(”这是insert语句”+sql); Object []param =sql1.getParams(); for(int j=0;j String name=param[j].toString(); System.out.println(name); } public void afterSave()throws Exception { // 填报数据后如果还有其它业务逻辑,可以在函数afterSave中实现 }} }}}
原文链接: 通过填报监听类获取行式报表的填报数据

下拉树介绍

08.22.2009 by hewei - 0 Comment - 0
Posted in web报表

介绍下拉树之前先介绍一下下拉数据集,见下图:

快逸报表填报下拉数据集

图中红色框部分就是下拉数据集,就是把数据集里某个字段的内容用下拉框的形式展现出来,便于填报时候选择。
具体做法请参照教程:设计器—帮助—学习教程—填报基础—3.7.2 下拉数据集

下拉树是下拉数据集的功能延伸,即对下拉数据集的内容再进行扩展就形成了下拉树,效果见下图:

快逸报表填报下拉树

下拉树可以让报表填报人员很方便的选择需要填报的内容,在填报备选内容过多关系过于复杂时我们就可以用它来解决问题了。
下拉树教程:设计器—帮助—学习教程—开发版填报增强— 2.1.3 下拉树

引自:报表工具知识库
原文链接: 下拉树介绍

下拉日历介绍

08.21.2009 by hewei - 0 Comment - 0
Posted in web报表应用

日期在数据库中是一个比较特殊的数据类型,数值比较长,格式比较多,在手工填报过程中总会因为一时的不细心造成很多错误,需要费很多的时间去检查有和修改。

下拉日历是快逸报表为日期填报提供的一个便捷功能,可以让用户快速准确的填写日期信息,避免了手动填写所产生的的格式误差和数值误差。

快逸报表下拉日历

上图就是下拉日历的效果,经常用到下拉日历的地方有:参数模板选择日期、修改报表已有日期数据、填报报表中直接填报日期等。

下拉日历制作教程:设计器—帮助—学习教程—开发版填报增强— 2.1.2 下拉日历

引自:报表工具知识库
原文链接: 下拉日历介绍

填报表中如何在获得焦点的同时选中单元格内容

08.15.2009 by fengzhou - 0 Comment - 0
Posted in java报表相关

在填报表的录入页面,选中单元格对单元格的内容进行修改,默认是以”插入”的方式修改当前单元格的内容,即若不进行删除原有内容依然存在。

1.png

那么,如何做到选中单元格的同时也将该单元格的原有内容全部选中,输入新内容时直接替换掉原有内容呢?

3.png

我们只需要在发布报表的jsp中加个标签,selectText=”yes”,就可以了,selectText标签的含义就是:单元格获得焦点时,是否选中单元格的内容。

2.png
引自:润乾报表知识库
相关文章:可输入的下拉框; 数据库驱动不一致引起的问题;如何实现细粒度的填报表单权限控制——控制到每个单元格是否可写;利用oracle中的序列巧解并发流水号问题

如何设置下拉日历的默认格式

08.14.2009 by fengzhou - 0 Comment - 0
Posted in java报表相关

润乾报表具有强大的填报功能,其多源填报模型真正实现了数据的有来有去、多来多去、来去无关。在细节上,也提供了丰富的编辑风格,只需经过简单几步设置就可以方便用户的数据填写并且保证采集到数据的正确性。

这里我们主要来关注一下下拉日历。在设计一张填报表时,将单元格的编辑风格选择为下拉日历,那么在页面上进行填写的时候就可以直接从点击弹出的日历中进行日期的选择。默认使用下拉日历保存的数据是”yyyy-MM-dd”格式的,如:2009-07-01,显然只有这一种格式远远满足不了实际的需求。那么,如何根据实际情况来自定义下拉日历的日期格式呢?

润乾报表专门提供了一个format.properties文件来设置下拉日历的默认格式,这个文件是打包在report4.jar中的。比如,直接将format.properties中下拉日历的默认格式设置为”yyyyMMdd”,则保存的数据就是符合该格式的八位数字,如20090701。

并且,还可以分别设置英文版的下拉日历格式和中文版的下拉日历格式,因为通常中英文的日期格式区别是很大的。

润乾报表,不仅拥有着强大的报表模型,同时进行了全面的细节优化,不愧为国内报表工具的领军。
引自:润乾报表知识库
相关文章:可输入的下拉框; 数据库驱动不一致引起的问题;如何实现细粒度的填报表单权限控制——控制到每个单元格是否可写;利用oracle中的序列巧解并发流水号问题

如何通过js执行润乾的下拉日历

07.24.2009 by fengzhou - 0 Comment - 0
Posted in java报表相关

润乾报表中,提供了丰富的编辑风格,如常用的下拉日历。直接将单元格的编辑风格设置为下拉日历即可在页面上点击时弹出下拉日历框供选择。

实际上,下拉日历是调用了一个由润乾提供的js:calendar.js,因此,我们也可以不通过设置单元格的编辑风格来实现下拉日历,比如自己定义一个onclick事件来调用润乾的下拉日历js。同时,也可以自定义数据的格式。

下面以选择月份为例,给出具体的实现:

<form name=from1>选择月份: <input name=reportMonth onClick=”_runqianCalendar.dateFormat=’yyyy-MM’; _runqianCalendar.type= ‘month’;_showCalendar();” >

这样,在报表展现页面上,焦点触发编辑框时就会弹出下拉日历供选择月份。

当然,要首先引入润乾下拉日历自带的js(注意要在定义的文本框后面引入),这里以发布在润乾demo应用中为例:

<script language=javascript src=”http://127.0.0.1:6001/demo/reportServlet?action=10&file=%2Fcom%2Frunqian%2Freport4%2Finput%2Fcalendar.js” mce_src=”http://127.0.0.1:6001/demo/reportServlet?action=10&file=%2Fcom%2Frunqian%2Freport4%2Finput%2Fcalendar.js”></script>

<script language=javascript>_createRunqianCalendar();</script>

否则就会因为找不到润乾自带的下拉日历js定义的对象而报”不可识别的对象:_runqianCalendar”错误。

由此可以看出,润乾报表在设计层面上是非常灵活的,可以很轻松的直接运用润乾提供的一些向导、可视化界面进行设计,也可以根据自己的需要通过少量的代码来实现更大的灵活性。
引自:润乾报表知识库
相关文章:可树形展开的折叠报表的制作;
在润乾参数表单中如何不点击查询按钮自动传参关于润乾报表自定义函数报错的问题决策分析解决方案润乾报表填报处理类问题

如何获取填报表中单元格的值

07.18.2009 by fengzhou - 0 Comment - 0
Posted in java报表相关

润乾报表中,可以在报表模板的设计阶段定义好单元格与数据库表字段间的映射关系,轻松实现零代码数据入库。那么,如果想在填报表中获取某个单元格的值,比如在入库前需要进行进一步的检查或操作等,又该怎么做呢?

润乾报表在web端是以纯html方式展现的,对于每一张报表、报表中的每一个单元格都有对应的ID值,所以我们可以通过ID值来精确定位到某个单元格上,从而可以获取该单元格的值并可以进行进一步的操作。

这里以一个简单的例子来说明如何获取单元格的值。以一个按钮的方式弹出获取到的单元格的值。

1.首先要定位单元格。我们的报表在jsp页面展现的时候是放在一个table表格中去展现,换句话说,报表实际上是在table中去扩展去显示的,这个时候就需要通过报表的name去定位单元格的位置。

2.写一个javaScript函数,得到某个单元格的值,并用alert()函数展示出来。

3.在jsp页面上定义一个按钮,点击触发此javaScript函数。

js函数写法如下:

function _getDispValueByName(){

var cell = document.getElementById(”report1_A4″); //通过ID去定位单元格,这个为扩展后的A4单元格

alert(cell.value); //用alert()函数弹出这个单元格的值

}
引自:润乾报表知识库
相关文章:显示值or真实值?——谈谈导出excel的数据显示; 可树形展开的折叠报表的制作横向分页报表的标题切分用润乾报表轻松实现动态排序
浏览式报表中如何使用checkbox