Archive for the ‘web报表’ Category

利用快逸报表内置JS函数实现页码跳转功能

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

Web应用开发中一个很普遍的需求就是页码的跳转,快逸报表已经为项目开发人员提供了起始页,下一页,上一页,最后页的功能,节省了人工编写的复杂度,当然,如果想直接跳转到某一页,就需要稍微做一点工作了,我们知道快逸报表内置的javascript函数中有一个_toPage( )函数,此函数的语法为:tag中的name属性+_toPage( N),N为页数。下面就简单的做一个例子实现这一效果。
(注:更多的函数说明请参考 应用开发教程以及应用开发手册中的网页脚本控制一章节)

首先看一下效果图:

快逸报表 web报表 页面条状 js函数.png

实现步骤:
1:首先制作一张报表,报表属性设置为按行分页,每页十五行,如图所示:

快逸报表 web报表 页面条状 js函数 报表模板 分页

2:写jsp页面发布此报表,jsp代码如下:

<!-
< %@ taglib uri=”/WEB-INF/runqianReport4.tld” prefix=”report” % >
< %
//以下代码是将常用的jsp中input元素拼为字符串
String tpagestr = “< input type=\”text\” style=\”width:30px;\” value=\”\” name=\”atpage\” id=\”atpage\”>< input type=\”submit\” value=\”go\” onclick=\”aa();\” >”;
%>
< html>
< head>
< title>快逸报表输入跳转页数跳转< /title>
< h2 align=”center” >快逸报表输入跳转页数跳转< /h2>
< /head>
< script type=”text/javascript” >
//定义名为aa的js函数,当点击value为”go”的按钮时调用
function aa(){
//获得定义ID为atpage输入框的值
var tpagenum = document.getElementById(”atpage”).value;
//调用快逸内置的_toPage()函数,将获得的值传入即可实现转到某一页
try{report1_toPage(tpagenum);}
catch(e){}
return false;

}
< /script>
< table align=”center”>
< tr >< td>
< %== 以下是用tag标签发布报表==% >
< report:html name=”report1″ reportFileName=”moreData.raq”
< %== userFuncBarElements是自定义的功能条中的功能元素,引入我们自定义的Html元素 ==%>
userFuncBarElements=”"
width=”-1″
/ >
< /td>< /tr>
< /table>
< /html>

总结:快逸报表内置了很多很实用的js函数供开发者调用,可以实现诸如此类的需求,熟练使用快逸报表中的内置js函数可以使开发变得更快速简单。

原文链接:利用快逸报表内置JS函数实现页码跳转功能

单元格中用HTML控制显示个性化文字

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

快逸报表单元格中的文字展现效果基本上可以满足大部分展示需求,但是有时候web报表用户需要在单元格中显示一些个性文字,如文字翻转等,这样的文字就需要做一些特殊处理,本文就来介绍一下怎样实现在单元格中显示个性化文字。 、

实现思路:
个性化文字通常是通过一些css以及html语言来对文字进行修饰而来的,只要能把这些html加载到单元格中就可以实现显示个性化文字了。

下面根据思路来做一个个性化文字的例子–文字翻转,实现步骤如下:
新建一张普通报表,在A1单元格中我们使用快逸中默认的文字。
在A2单元格鼠标右键,将数据类型转成HTML类型,在文本里输入修饰字体的HTML语言,如下图:

快逸报表html格式设计.PNG

这里使用的是div的方式:
< div style=”FILTER:progid:DXImageTransform.Microsoft.BasicImage(Rotation=1);height:1px”>
快逸报表V4
< /div>
其中style这段代码是用来对字体进行反转操作,Rotation=1代表顺时针转九十度。(这样的HTML代码还有很多)。还可以通过 来设定字体的颜色大小等属性。
需要注意的是单元格数据类型为HTML时,尺寸调整方式无效,这是要手动调整单元格的高宽来适应文字显示。
加入HTML后的文字效果如下:

快逸报表单元格中使用html效果.PNG

就这么简单的就可以实现个性化文字的需求了。通过在单元格中嵌入HTML语言,可以使很多web报表用户通过强大的HTML语言对文字数据进行一些个性化的处理,达到更好的效果。

原文链接:单元格中用HTML控制显示个性化文字

Web报表单元格内容竖排显示的制作方法

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

需求说明
普通报表常常需要将文字从纵向方向竖着排列,Web报表自然也不例外有这个需求。
快逸报表单元格的内容默认情况下是横向显示的,如何实现竖排显示单元格内容呢,下面介绍两种制作方法。

一.宽度限制加自动换行

大致思路:将该单元格内容居中显示,并设置单元格的宽度使每行只能显示一个字,然后设置自动换行,就可以实现单元格内容竖排显示了。
新建一个空白报表,然后内建一个数据集,内建数据集的内容如下

Web报表单元格内容竖排显示的制作方法1.png

然后在单元格中输入:
A1: 编号
A2:案卷题名
B1:=ds1.select(案卷_档号)
B2:=ds1.案卷_案卷题名
把没有用到的单元格删除掉。
设置B1的扩展方向为”横向扩展”

Web报表单元格内容竖排显示的制作方法2.png

现在报表已经做好了,浏览报表,单元格的内容是横向显示的。如下图

Web报表单元格内容竖排显示的制作方法3.png

下面添加竖排显示的功能:
设置A、B列的宽度为8,使每列只能显示一个汉字。实际运用中的具体宽度要根据字体具体大小算出。

Web报表单元格内容竖排显示的制作方法4.png

勾选上A1、A2、B2单元格的”自动换行”,使每行只能显示一个汉字

Web报表单元格内容竖排显示的制作方法5.png

设置完成,发布报表,在IE中浏览报表,效果图如下

Web报表单元格内容竖排显示的制作方法6.png

二.缩进控制加自动换行


方法一只能把列的宽度设置的很小,可以一行显示一个汉字;如果把列的宽度加宽,就不会出现上图中的效果。如果要把列的宽度设置的比较宽,一行又只能显示一个字,该怎么制作呢。
大致思路:将该单元格内容居中显示, 调整单元格的缩进值,然后勾选上”自动换行”属性,就可以在比较宽的列中实现单元格内容竖排显示了。
这种制作方法和上面的方法基本上一样,现在就用上面做好的报表,把B列的宽度改为25,然后设置B2单元格的缩进值为10,如下图:

Web报表单元格内容竖排显示的制作方法7.png

设置完成,保存报表,然后在IE中浏览报表,效果图如下:

Web报表单元格内容竖排显示的制作方法8.png

从上面的两种效果图可以看出,第一种不能加宽列的宽度,第二种方法可以调整列的宽度。以后遇到类似的需求就可以用上面的方法实现了。

原文链接:Web报表单元格内容竖排显示的制作方法

关于报表基础知识

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

什么是报表

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

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

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

什么是报表软件

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

报表软件有什么用?

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

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

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

将数据库操作封装到Javabean

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

封装数据库操作,目的就是为了隐藏java.sql包内的类,在编码中去掉核心的数据库操作代码。以杜绝直接数据库操作容易带来的资源未释放问题。同时也减少了数据库操作的编码量。

   但是很多网友在封装时,却喜欢返回结果集(ResultSet对象),那么这个封装就没有意义了。

   1. 又是直接操作核心数据库类,跟封装前几乎没什么变化。

   2. 结果集总是依赖于它使用的连接(Connection)对象。因此当连接对象在方法内被关闭后,你返回的ResultSet就没有用了。

   如果真的要获得查询数据库的结果集,就把结果集对象内的所有数据,转储到以Map为元素的List对象内。

   当然,这种方式,不能适应大数据量的查询,不过如果真的碰到大数据量的查询,那用什么封装都不好,还是得直接数据库操作. :)))

   下面是简单的数据库操作Javabean的代码

   DbWrapper.java

   import java.sql.*;

   import java.util.*;

   public class DbWrapper

   {

   // 定义连接池对象为静态变量,将一直存在,直到工作目录关闭。

   private static DataSource ds = null;

   // 1.用连接池的方式获得连接

   // 如果不是做多数据库程序,推荐使用此方法

   // 相关内容:在tomcat管理界面配置连接池

动态行的自动计算

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

随着B/S方式应用的普及,数据填报也逐渐转移到了网页上进行。数据录入最常见的需求之一就是动态增删行与自动计算。

所谓的动态增删行,即用户录入的过程中可以删除一些已有的行,也可以添加一些新的行,新的行和已有的行除数据外别的属性基本完全相似。

所谓自动计算,是指根据用户录入的某些单元格的值,自动计算出另外一些单元格的值,从而简化用户的输入,同时避免错误数据的录入。

因此,对于可以增加删除行的填报表,同样存在自动计算的问题。新增加的行如何添加到自动计算表达式中,比如sum\count等;已经删除的行如何从自动计算表达式中去掉?

在传统的C/S模式下,增删行的自动计算问题实现较为容易,采用通行的算法(在大多数数据结构教程中都有介绍)编写表达式计算程序来分析处理表达 式,在取单元格时根据当前环境从某逻辑行中取出数据参与运算即可(著名开发工具PowerBuilder中的Datawindow即是这样实现的)。

但是,在HTML页面上完成同样的工作则要困难得多。在纯HTML页面上通行的编程技术只有解释执行的JavaScript语言(以下简称JS)。 理论上采用JS编写表达式计算程序仍然可行,但实践中却会因JS效率过于低下而无法实用;同时由于JS语言本身能力较弱,写出这种复杂功能程序的代码量会 相当大,导致页面过于庞大而不利于下载。因此,在实际应用中不可能在纯HTML页面上实施上面的思路。

所幸的是,JS中固化了一个eval函数可用于计算表达式。但eval计算的表达式中只能出现事先定义过的JS变量或函数,而不能由程序员自行编写重载代码动态地取出某逻辑行的单元格值。

在这种限制下,采用静态报表方案可以有限地解决HTML页面上的表达式计算问题。即在报表发布成HTML之前,由后台程序为所有逻辑行生成由发布后 报表上静态单元格构成的表达式,其中统计表达式都分解成发布后报表上单个单元格的运算。这样,在HTML页面上执行eval函数时将不会再出现未定义的变 量(单元格)从而可以完成计算。

但是,这种方案不允许报表在填写过程中再插入或删除行。新增逻辑行上的行内表达式无法自动被添加出来(用JS自行计算出变换后的表达式与用JS编写计算表达式程序的复杂度是一致的),且统计表达式中将缺少新增行中的单元格。这时计算将不能完整地进行。

对于动态报表填写(即填写过程中要再插入或删除行)上的表达式计算,目前只能采用针对性编程的方案,为每种报表编写一段JS代码,拼出该报表发生变化后需要增加或修改的表达式。但显然这种方案没有通用性。

经过深入研究,快逸报表发明了一种新的算法,可以很轻松地解决增删行的的自动计算问题,其实现步骤如下:

实现步骤

  1. 设计一个行式填报表
  2. 按照业务要求写入自动计算表达式
  3. 现发布,系统会自动实现增删行时的自动计算

效果演示:

auto_computer1.png

报表设计界面

auto_computer2.png

C3单元格里写入的自动计算表达式

auto_computer3.png

浏览界面(尚未添加新行)

auto_computer4.png

浏览界面(添加了新行)

引自:报表工具知识库
原文链接: 快逸报表行式填报:动态行的自动计算
相关文章:普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法
其他相关内容:润乾报表 ; RAQSOFT ; 润乾商业智能解决方案web报表研究专业.net报表工具

动态行的自动计算

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

随着B/S方式应用的普及,数据填报也逐渐转移到了网页上进行。数据录入最常见的需求之一就是动态增删行与自动计算。

所谓的动态增删行,即用户录入的过程中可以删除一些已有的行,也可以添加一些新的行,新的行和已有的行除数据外别的属性基本完全相似。

所谓自动计算,是指根据用户录入的某些单元格的值,自动计算出另外一些单元格的值,从而简化用户的输入,同时避免错误数据的录入。

因此,对于可以增加删除行的填报表,同样存在自动计算的问题。新增加的行如何添加到自动计算表达式中,比如sum\count等;已经删除的行如何从自动计算表达式中去掉?

在传统的C/S模式下,增删行的自动计算问题实现较为容易,采用通行的算法(在大多数数据结构教程中都有介绍)编写表达式计算程序来分析处理表达 式,在取单元格时根据当前环境从某逻辑行中取出数据参与运算即可(著名开发工具PowerBuilder中的Datawindow即是这样实现的)。

但是,在HTML页面上完成同样的工作则要困难得多。在纯HTML页面上通行的编程技术只有解释执行的JavaScript语言(以下简称JS)。 理论上采用JS编写表达式计算程序仍然可行,但实践中却会因JS效率过于低下而无法实用;同时由于JS语言本身能力较弱,写出这种复杂功能程序的代码量会 相当大,导致页面过于庞大而不利于下载。因此,在实际应用中不可能在纯HTML页面上实施上面的思路。

所幸的是,JS中固化了一个eval函数可用于计算表达式。但eval计算的表达式中只能出现事先定义过的JS变量或函数,而不能由程序员自行编写重载代码动态地取出某逻辑行的单元格值。

在这种限制下,采用静态报表方案可以有限地解决HTML页面上的表达式计算问题。即在报表发布成HTML之前,由后台程序为所有逻辑行生成由发布后 报表上静态单元格构成的表达式,其中统计表达式都分解成发布后报表上单个单元格的运算。这样,在HTML页面上执行eval函数时将不会再出现未定义的变 量(单元格)从而可以完成计算。

但是,这种方案不允许报表在填写过程中再插入或删除行。新增逻辑行上的行内表达式无法自动被添加出来(用JS自行计算出变换后的表达式与用JS编写计算表达式程序的复杂度是一致的),且统计表达式中将缺少新增行中的单元格。这时计算将不能完整地进行。

对于动态报表填写(即填写过程中要再插入或删除行)上的表达式计算,目前只能采用针对性编程的方案,为每种报表编写一段JS代码,拼出该报表发生变化后需要增加或修改的表达式。但显然这种方案没有通用性。

经过深入研究,快逸报表发明了一种新的算法,可以很轻松地解决增删行的的自动计算问题,其实现步骤如下:

实现步骤

  1. 设计一个行式填报表
  2. 按照业务要求写入自动计算表达式
  3. 现发布,系统会自动实现增删行时的自动计算

效果演示:

auto_computer1.png

报表设计界面

auto_computer2.png

C3单元格里写入的自动计算表达式

auto_computer3.png

浏览界面(尚未添加新行)

auto_computer4.png

浏览界面(添加了新行)

引自:报表工具知识库
原文链接: 快逸报表行式填报:动态行的自动计算
相关文章:普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法
其他相关内容:润乾报表 ; RAQSOFT ; 润乾商业智能解决方案web报表研究专业.net报表工具

用XML文件作为web报表数据源并建立数据集的方法

01.20.2010 by hewei - 0 Comment - 0
Posted in web报表
快逸报表服务器提供了多种类型的数据集供用户使用,有SQL检索、存储过程、复杂SQL 、Text文件、XML文件、内建数据、语义层视图、EssBase和自定义等数据集类型。 数据集如果是XML文件类型,表示该数据集的数据来自XML文件。 本文就来介绍一下是奶数据集类型为XML文件的报表制作方法 第一步,标准xml文件的写法 首先看个XML文件例子,说一下XML文件的写法,并制作一个xml标准文件 < ?xml version=”1.0″ encoding=”GBK”?> < ROWS> < COLNAME> < col>id< /col> < col>name< /col> < col>sex< /col> < col>born< /col> < col>city< /col> < /COLNAME> < COLTYPE> < col>4< /col> < col>1< /col> < col>4< /col> < col>91< /col> < col>1< /col> < /COLTYPE> < ROW> < col>1< /col> < col>李明< /col> < col>2< /col> < col>1985-07-18< /col> < col>北京< /col> < /ROW> < ROW> < col>2< /col> < col>王明< /col> < col>2< /col> < col>1985-08-28< /col> < col>南京< /col> < /ROW> < /ROWS> Xml文件内容说明: 根节点为ROWS,根节点下第一个节点为列名定义,第二个节点为列的数据类型定义,第三个节点开始是数据。 列名和列的数据类型都可以不定义,如果省略列名定义,那么表达式里引用列时用ds.#n的方式,n代表列号;如果省略列数据类型定义,那么数据类型全部默认为字符型。 数据类型的定义采用java.sql.Types里的标准定义。 一行数据为一个ROW节点定义。 大家可以根据上面的例子和规则自己创建一个xml文件,把文件保存为xmlData.xml(文件名可以另取),存放在reportFiles下。 第二步:把制作好的xml文件设置成数据集 新建一张空白报表,在数据集设置窗口选择”增加”,然后在数据集类型窗口选择”XML文件”,如下图 xml类型数据集的制作方法1.PNG 输入XML文件的名字,或者点击右边的”选择”按钮,选择xml文件,也可以直接输入xml文件的名字,如下图 xml类型数据集的制作方法2.png 然后确定。编辑框中只需要录入XML文件名,可以是绝对路径名,也可以是相对路径名。如果是相对路径,设计器中相对于”配置/选项”中的应用资源路径,WEB发布时,相对于web.xml中配置的ReportFileHome属性中的路径。 第三步,使用设置好的xml数据集设计报表 单元格输入内容如下 A1:ID B1:姓名 C1:性别 D1:出生日期 E1:城市 A2:ds1.select(ID) B2:ds1.name C2:ds1.sex D2:ds1.born E2:ds1.city 单元格内容输入完成,然后把其他没有用到的单元格删除。 至此,报表已经完成。发布报表,启动tomcat,然后在IE中浏览报表。浏览效果如下 xml类型数据集的制作方法3.png 如果数据集的类型是xml文件,就可以用上面的制作方法制作报表。
原文链接: 用XML文件作为web报表数据源并建立数据集的方法

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

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报表用户进行提交操作时的自定义设置,避免了误操作和误填报。
原文链接: 自定义制作填报表的提交确认提示框

能够实现图形化界面设计的免费web控件

01.05.2010 by hewei - 0 Comment - 0
Posted in web报表
下图这样的web程序界面,相信网上程序的开发人员都不会陌生。如果采用流行的SSH(strust+spring+hibernate)结构从头做起,前期的架构、编程加上后期的测试、DEBUG…工作量还真不小。如果希望做成通用的功能,工作量就更大了。 free1.jpg 这时候,广大程序员一定会怀念客户端程序流行的日子:象Powerbuilder(PB)这样的工具,只要简单的可视化编程,数据增删改查的界面就完成了!那么,好日子真的一去不返了么?当然不是,给您推荐一款免费的商用控件--快逸报表,可以轻松的实现这样的通用页面。 快逸报表不仅是一个强大的报表工具,也是一个零代码的强大编程类库!web编程常常遇到的问题,快逸报表都可以解决:下拉列表、自动计算、自动生成流水号、实时数据合法性检查、多选批量操作等等。而且,在图上可以看到,类似导出excel、word、打印、翻页、上传图片这样的通用功能都已经封装好了,不用写代码即可使用! 在图形化设计方面,由于快逸报表采用了类似excel的设计方式,让界面控件更整齐,省去了对齐控件的工作量。看看下面的设计界面,是不是比客户端设计工具还要好用? design.jpg 那么,和网上下载的开源控件相比,用快逸报表来实现这些功能有什么好处呢? 1、快逸报表是免费的商用产品,质量和性能都很可靠。而网上下载的开源控件通常是编程爱好者兴趣之作,质量和性能很难保证,一旦有问题很难解决。 2、快逸报表有商业公司负责维护和升级。而开源控件如果有了需求要修改,找原创的人来修改,更本不可能,只能自己看懂内部的代码--那样比自己写一个还要费时间呀! 3、快逸报表是统一设计,统一开发、测试的商用产品。相比之下,在一个项目或者网站中,过多使用多种开源控件,比如:上述功能全部都用不同的开源控件来拼凑实现,那么应用程序整体都会变的不稳定,不易修改了。 4、快逸报表提供可视化的页面设计界面,可以大大提高web数据维护、录入界面的制作的效率。
引自:Web报表工具知识库
原文链接: 能够实现图形化界面设计的免费web控件
相关文章:好用的java开发工具 ; web报表采购成本 ; 如何在tomcat中实现https安全连接 ; Web报表软件的集成方案
其他相关内容;免费Web报表软件 ; 专业.net报表工具 ; 研究BI报表设计 ; web报表博客