Posts Tagged ‘web报表’

快逸填报:单选钮radio button

01.15.2010 by hewei - 0 Comment - 0
Posted in web报表应用
使用快逸报表做填报页面的时候,单选钮是一种比较常见的编辑风格,如下图所示: radio_button.png 单选钮比下拉框更加直观,操作更加简便,比如:下拉框选择至少要点击两次鼠标,第一次点击下拉,第二次点击选择;而单选钮只需要点击一次鼠标即可完成选择操作,而且可以一眼看出有哪些选项。因此对于选项不多的情况,如在5个以内的时候,用单选钮更加方便。 单选钮要自己编程实现并不算太困难,如果仅仅是在HTML里写一个也很容易,可是在实际业务中,有很多情况是HTML标准控件无法完成的: 首先,单选钮的选项有几个,往往并不固定,很可能由数据库里的数据动态决定,这就意味着单选钮所占的宽度有可能变化,同理,摆放在单选钮右边的元素就要动态调整位置; 其次,当单选钮所占的位置一行放不下时,可能需要摆两行或者多行,此时不光要动态算宽度,还要动态算高度,因为单选钮下面摆放的元素也得跟着动态挪位置。 所以,看似很简单的功能,一旦和真实业务联系起来,也变得不简单。快逸报表在这方面考虑的非常周到,通过如下几个步骤即可实现:

实现步骤

  1. 设计一个填报表,定义单选钮的编辑属性
  2. 定义单选钮每行摆放几个元素,这样系统会自动计算并且自动摆位,一行不够自动摆放多行
  3. 发布

radio_button1.png

引自:报表工具知识库

原文链接: 单选钮radio button

关文章:普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法

其他相关内容:润乾报表 ; RAQSOFT ; 润乾商业智能解决方案web报表研究专业.net报表工具

如何通过程序连接数据源

01.07.2010 by hewei - 0 Comment - 0
Posted in web相关技术
在开发web报表项目时,链接数据源是必不可少的一部,而且因为用户数据库请求千差万别,所以数据源往往需要自定义,快逸报表提供了的API和JDBC两种编程方式,是程序员可以方便灵活地完成数据源链接。 通过快逸报表编程连接数据源的方式有两种,第一种就是利用快逸报表的api来连接数据源,即程序如下:
context.setDefDataSourceName("demo");
context.setConnection("demo",con);
DataSourceConfig dsoc = new DataSourceConfig(2,
true, "GBK", "GBK", false);
context.setDataSourceConfig("demo", dsoc);
第二种方式就是通过jdbc来连接数据源,即程序如下:
public java.sql.Connection getConnection() throws Exception {
 Connection conn=null;
  try{
   Class.forName("org.hsqldb.jdbcDriver");
  }catch(ClassNotFoundException cne){
   cne.printStackTrace();
  }
 try{
  conn= DriverManager.getConnection("jdbc:hsqldb:hsql://localhost:9001/runqianDB","sa","");

    }catch(SQLException e){
   e.printStackTrace();
  }
 return conn;
 }
上述两种连接数据库的方式,都可以很方便地连接web报表数据源,程序员可以根据客户的实际需求,来决定使用哪种连接方式更方便。
引自:报表工具知识库
原文链接:在开发Web报表时如何通过程序连接数据源
相关文章:快逸报表:在jboss中部署报表的一个异常解决 ; 快逸报表:数据库连接释放问题的解决 ; 主流Java报表工具的比较 ; 利用内建数据集方便地进行博计报表调试
其他相关内容:面向普及的报表工具 ; RAQSOFT ; 用多源关联分片解决复杂报表难题web报表研究专业.net报表工具

设计web报表时如何通过调整行高达到隐藏行的效果

01.04.2010 by hewei - 0 Comment - 0
Posted in web报表
在设计web报表时,常常需要根据不同的条件,对报表中相应的行进行隐藏。 在一般情况下,我们会选择用条件控制隐藏行的方法,但在快逸报表中,可以有更多灵活的方法。下面介绍一种用条件控制行高实现隐藏行的方法。 方法描述:在分组Web报表中,计算组内的小计时,常常需要根据条件隐藏,用隐藏行是可以做到,但是有时会不方便;用调整行高也可以达到。 问题举例:以快逸安装包自带的demo中的初级教程6.3.raq为例,在此报表中对每个分组都有一个公司数目的小计,当小计为0的时候,希望此小计不要出现。 解决方法:选中此例子中的第3行,在行高表达式中写:if(C3{}==7,0,8), 就可以达到。也就是把为0的C3格的行高都设为0,这样就实现了针对条件的行隐藏。 如何察看快逸报表自带Demo:http://bbs.quiee.com.cn/read.php?tid=4688 快逸报表flash视频教程:http://www.quiee.com.cn/archives/647 快逸报表下载地址:http://www.quiee.com.cn/archives/337
引自:报表工具知识库
原文链接:设计web报表时如何通过调整行高达到隐藏行的效果
相关文章:直观显示带有数据的进度条-快逸报表的实现 ; Web报表工具的填报功能 ; 快逸报表 ; web报表的扩展功能
其他相关内容:强大的Web报表打印 ; .NET Web报表功能介绍; 研究BI报表设计;web报表博客

Web报表中的高精度时间类型的数据的处理

01.03.2010 by hewei - 0 Comment - 0
Posted in web报表
在将Web报表中的高精度时间数据导出到excel和word时,此数据的精度往往会下降,比如web报表中的毫秒在导出后变成了秒。 针对这种情况,快逸报表给出了很方便的解决方案: 问题描述:时间类型的数据,有毫秒的话,导出到excel后,毫秒的值变成和秒的值一样了。在excel中,随便输入带毫秒的时间型的值,都会这样,这个跟excel的显示格式有关系。 问题解决:用str处理一下:显示值表达式:str(value(),”yyyy-MM-dd HH:mm s.S”);这样,导出到excel,word都能正常显示 如何察看快逸报表自带Demo:http://bbs.quiee.com.cn/read.php?tid=4688 快逸报表flash视频教程:http://www.quiee.com.cn/archives/647 快逸报表下载地址:http://www.quiee.com.cn/archives/337
引自:Web报表工具知识库 原文链接:如何将Web报表中的高精度时间类型的数据:毫秒,导出到excel和word文件
相关文章:直观显示带有数据的进度条-快逸报表的实现 ; 导出成pdf,excel,word等文件格式 ; 五种主流web报表工具的功能对比:输出方式 ; “求好用的java开发工具”――从一个”求助”引发的思考
其他相关内容:普及报表系统功能说明; Web报表软件的集成方案 ; 探讨报表工具;.net报表研究;

实现查询条件的保存

12.27.2009 by hewei - 0 Comment - 0
Posted in web相关技术

任务背景

在带参数的报表应用中,在查询的应用中,同一个用户每次查询所用的参数值或者查询条件往往是相同的,或者说常用的总是那几种查询条件,如果每次都让用户输入相同的条件值,用户会觉得很烦,于是用户往往会提出:能否提供查询条件保存的功能。

面临困难

所谓的查询条件的保存,乍一听似乎很简单,实际做起来并不容易。最直接的是要和用户关联,因为某个用户输入的查询条件,只能提供给该用户使用,不能 让别的用户看见。其次,要考虑和报表模块、查询模块关联,因为同一个用户在不同的报表模块、查询模块里用的查询条件是不同的。 另一个要考虑的是查询条件的存储格式,因为不同模块的参数个数、参数名均不相同,所以查询条件的存储格式要能够灵活扩充灵活解析。除了存储格式,还需要考 虑存储位置,由于和用户关联,很多人直接想到的是采用cookies来实现,可是由于是WEB应用,客户端的机器可能随时会发生变化,比如用户可能在办公 室上网,也可能在家里上网,在家里用另一台机器,于是预先存储的查询条件就没了。另外,由于每一个模块用户都可能存储多个查询条件供选择,cookies 用起来还是不方便。因此,查询条件最好保存到服务器上。 接着,还需要考虑界面上的制作,在原先的参数输入页面上,要提供一个历史查询条件的下拉选项,该下拉选项从服务器存储的查询条件里读取;其次还需要做一个 查询条件是否保存的选项,如果保存,则提供保存名称的编辑框。 做好这些之后,服务器端的程序还需要写不少,首先根据客户端的输入情况,判断使用历史查询条件还是使用当前的输入值,如果使用历史查询条件,则到库中读 取;如果使用当前的输入值,还需要处理是否保存查询条件。 总之,做起来非常麻烦!而所有这些程序还要考虑通用性,否则每个模块写一遍,那不是累死了!基于以上的考虑,建议还是采用快逸报表的 参数模板+参数处理类 来实现,简单方便许多,具体步骤描述如下:

实现步骤

  1. 设计一个参数模板,该模板里增加三个多余的参数:是否保存参数值,保存名,历史查询。
  2. 在参数处理类里,如果读取到需要保存参数值,则将参数值按名字存入一张预先设计的参数值表中,该表的结构为:用户名、报表名、保存名、参数名与值,建表SQL如下:
    CREATE TABLE param (
    userName varchar(100) not null ,
    reportName varchar(100) not null ,
    saveName varchar(100) not null,
    argName varchar(100) not null,
    saveValue varchar(200) )
    
  3. 用户访问该参数模板的时候,可以输入新的参数值,并选择是否把新输入的参数值保存下来,也可以选择历史保存的参数值进行查询,不需要重复的输入。
  4. 如果用户选择的是历史保存的参数值,那么在参数处理类里,从数据库中取出历史保存的参数值来进行查询。

效果演示

saveed_query_condition.png

引自:报表工具知识库

原文链接: 用快逸报表轻松实现查询条件的保存

相关文章:如何将多个报表导入同一个Excel中的多个sheet中; 好用的java开发工具用快逸报表不写代码实现Web应用中的下拉日历web报表的扩展功能高效易用的低端JAVA报表工具

其他相关内容:润乾报表 ; Java报表工具 ; 润乾商业智能解决方案商业智能BI联盟

如何使用序号函数给报表加序号

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

快逸报表提供了一个可以给可扩展的单元格自动加序号的函数—&函数,本文就来给大家介绍一下此函数的用法。

首先看一下函数解释和函数功能效果
表达式规则:&Cellx &A2
返回值:整数,当前格所属的Cellx主格在所有扩展出来的格子中的排序
说明:Cellx必须是当前格的主格,这样&Cellx才能够正确运算,其返回值相当于是当前格所属的Cellx主格的位置
效果见下图:(图中B2为A2的主格,即为B2的扩展格排列序号)

快逸报表序号效果

下面我们就用一个简单的例子来体验一下这个函数
正常需求:给报表的每一行都加上序号

第一步:新建报表
连接快逸自带的demo数据源,在订单表上建立数据集ds1,并生成网格式报表,
其sql语句为:SELECT 订单.订单ID,订单.货主名称,订单.货主城市,订单.运货费 FROM 订单
网格表和预览效果如下:

快逸报表网格表

预览效果:

快逸报表网格表预览

第二步:加序号
在A列前插入新列,在新列的单元格中写入下面的表达式
A1:序号 A2:=&B2
然后把A2的左主格设为B2(这个操作时很重要的,A2中的序号是根据B2的扩展排列的)

快逸报表序号函数设置

设置完成后预览就可以看到我们想要的结果了,如下图:

快逸报表序号效果

需求扩展:报表分页后每页都重新从1开始排列序号

上面的设置产生的序号不管报表分页与否都是连续的,但是有些用户想要分页以后序号重新从1开始排,也就是每页都是重新排列序号的效果。
下面就来看快逸报表如何解决这个特殊需求。
一般这样的分页报表发布展示后每页显示的行数是固定的,像我们这个报表每页显示就是29行,我们可以用给序号取模的原理来让每页都从1开始排序,具体操作是把A2单元格中的表达式换成:=&B2%29,然后我们看一下发布后的效果:

快逸报表分页后每页重新生成序号效果

需求解决,我们说一下应该注意的地方:

此方法只能用在每页的数据区行数固定的情况下(报表头必须每页显示或者都不显示),如每页行数不是固定的29行,对29取模就没有意义了,就不能保证每页从1开始排序号了。

希望这个序号使用的小技巧可以帮的上快逸报表用户的忙,让报表开发更方便一些。

引自:报表工具知识库
原文链接: 如何使用序号函数给报表加序号

tomcat5.0版本以上数据库连接池配置问题

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

快逸报表j2ee部署教程中介绍了tomcat4.1版本和tomcat5.0版本的数据源配置,但是现在报表使用者的tomcat版本很多都是5.5和6.0了,于是就出现了很多配置问题。

常见错误:

部署到tomcat以后发布报错

错误一:

runqianReportLogger : [ERROR] - Making DataFactory:com.runqian.report4.dataset.SQLDataSetFactory failure

: Cannot create JDBC driver of class ” for connect URL ‘null’

Caused:Cannot create JDBC driver of class ” for connect URL ‘null’

错误二:

INFO http-8080-Processor19 runqianReportLogger - 应用的缺省数据源连接错误:
Cannot create JDBC driver of class ” for connect URL ‘null’

错误原因:

用户使用了tomcat5.5以上版本,但是按照教程5.0配置方法进行了配置

解决方案:

Tomcat5.5和tomcat6.0版本的数据源配置是不同于5.0版本的,其在server.xml文件里的具体配置如下:

<?xml version=’1.0′ encoding=’gb2312′?>
<Context docBase=”test” path=”/test” debug=”0″ privileged=”true”>
<Resource name=”oracle”
auth=”Container”
type=”javax.sql.DataSource”
factory=”org.apache.commons.dbcp.BasicDataSourceFactory”
maxActive=”10″
maxIdle=”30″
maxWait=”10000″
username=”runqian”
password=”runqian”
driverClassName=”oracle.jdbc.driver.OracleDriver”
url=”jdbc:oracle:thin:@192.168.0.32:1521:runqian”
/>
</Context>

5.0版本以上的Tomcat按照上面的例子配置就可以成功了。为了避免此类由于版本问题引发的错误,我们建议开发人员在配置tomcat数据库连接池的时候首先要确认版本和相应的正确配置方法后然后再开始操作。

引自:报表工具知识库
原文链接: tomcat5.0版本以上数据库连接池配置问题

隔行变换背景颜色和颜色预警

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

需求说明
隔行变换背景颜色:单一背景颜色的报表会让报表浏览者产生眼晕的感觉,通过适当交替的背景色能增加视觉舒适度,也会给页面美工增色不少。此需求是报表展现时最普通最常见的需求。

颜色预警:报表中的某些数据不同于其他数据时我们需要用一些特殊方式提醒浏览者,比如特殊颜色,此需求在报表设计中叫做:颜色预警

本文就来介绍一下快逸报表如何实现这两个功能。
第一步:新建报表
连接快逸报表自带的demo数据源,新建一张空白报表,在雇员表:EMPLOYEE上建立数据集ds1,
其sql语句为:SELECT EMPLOYEE.EMPID,EMPLOYEE.EMPNAME,EMPLOYEE.BONUS FROM EMPLOYEE
生成网格表如下:

快逸报表网格式报表

预览效果:

快逸报表网格式报表

第二步:设置隔行变换背景颜色和颜色预警

快逸报表隔行变换背景色和颜色预</p

我们对数据区也就是第二行进行操作,背景颜色变换在背景颜色的表达式里设置,颜色预警在前景色里设置 ,我们选择BONUS(奖金)大于15000的的人员信息用红色显示。
具体设置如下:
背景色表达式:if(row()%2==0,-3355393,-1)
能被2整除的行用颜色-3355393作为背景色,不被整除的用颜色-1做背景色,颜色可以在颜色输入框中自己设定。

前景色表达式:if(C2>15000,-65536,-16777216)
C2格中BONUS大于15000的整行雇员信息用颜色-65536来预警显示,不大于15000的黑色-16777216显示。颜色可以自己设定。
设置好以后我们看一下效果:

快逸报表隔行变换背景色和颜色预</p

这么常用的需求就被两个简单的表达式轻松搞定了,赶快动手试一下去吧!
PS:更详细的例子可以参看:\quieeReport\webapps\quiee\reportFiles\基础报表—–颜色预警.raq

引自:报表工具知识库
原文链接: 隔行变换背景颜色和颜色预警

一张纸打印多个名片式报表

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

最近一个用户问了这样一个问题:我做了一个名片式的员工信息表,打印效果不是很好,我想每页固定打印6个可以吗?

这个需求其实我们在报表例子中已经提供,只是叫法不同而已,我们叫做: 一纸多页,本文就用现有的例子给大家介绍一下怎样设置一纸打印多页报表

打开例子:\quieeReport\webapps\quiee\reportFiles\增强功能—–一纸多页.raq
例子中正好就是一个名片式的员工信息表。
打开属性—-报表属性—-打印,我们可以看到如下配置界面:

快逸报表一张纸打印多个名片式报表设置

在上图中我们设置了3行2列以后,点击确定、保存,重新发布报表我们看一下打印预览的效果:见下图:

快逸报表一张纸打印多个名片式报表效果

预览效果已经实现,点击打印以后就可以看到每页纸上都有6个名片式报表了。有了此功能,需要在一张纸上打印多张报表的需求就再也不用犯愁了。

引自:报表工具知识库
原文链接: 一张纸打印多个名片式报表

快逸报表如何处理大数据量报表需求

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

大数据量报表的展现在web报表设计中是不可避免的,随之引发的一系列性能问题也着实让报表开发人员头痛不已,内存不足、内存占用太多、内存溢出。。。

本文就来介绍一下快逸报表是怎样对应大数据量的。

方法一:建立快逸数据集时的优化sql语句

原则:尽量在sql里对大量数据进行group
尽量在sql里对大量数据进行sort
尽量在sql里对大量数据进行过滤,如用where子句
尽量不用select * from选取全部大量数据
单元格表达式正确使用select XXX和 ds1.XXX
原理:sql语句中的分组、排序、过滤是在数据库端进行,数据库中有索引,且数据库大都是c语言开发的,数据运算速度快,这样报表服务器端的取数和计算效率就会大大提升,报表服务器压力也会减少很多。

方法二:采用存储过程

将大量数据直接改用存储过程做数据源,快逸报表支持存储过程数据源,原理基本和方法一一样,利用数据库端分担服务器端的压力。

快逸报表如何调用存储过程:点击进入

方法三:合理使用多数据集

原则:在网格式、分组式、交叉式报表中尽量用单数据集
在多源分片、主子报表中尽量用多数据集
原理:多数据集的使用避免了表间叉乘,减少了数据量,加快了取数速度和数据库的运算速度,而且可以大大节省开发和后期维护的费用。

方法四:适当调整应用服务器的JVM值

在硬件允许的情况下适当调整jvm值,可以使服务器效率更高一些。
具体调节方法请参见:五种常用web服务器jvm参数设置:点击进入

方法五:优化快逸配置文件中缓存和并发的设置

在快逸报表服务器配置文件reportconfig.xml中可以设置报表服务器的缓存和并发数,一定程度上可以缓解服务器的压力

缓存:当某个客户端访问某个报表,引擎将其计算出来后,会将运算结果缓存下来。同一个客户端访问完该报表后,如果需要对同一报表结果进行别的操作,例如打印、导出、翻页等,引擎也直接从缓存里取报表结果,而不必重新计算。

并发:服务器的承载能力是有限的,通过并发控制有效控制服务器的内存使用量,来最大程度提高服务器效率
具体配制方法请参看:设计器—帮助—使用手册—J2EE部署手册—3.3.2 reportConfig.xml

方法六:终极杀手锏—分页机制

1. 按页取数
原理:每次只取出一页数据进行报表运算,当翻页时取下一页数据进行运算,这样每次内存中只保留一页的数据,大大加快了运算速度,减轻了内存压力。
2.分页计算标签
原理:以页为单位对数据进行读取和展现及导出等操作,大大降低了内存占有量,提高了运行效率,避免内存溢出等问题。

这两个设置是快逸报表处理大数据量的杀手锏,一般因为大数据量引发的内存问题都可以用这两个设置解决。此功能为收费功能,需要收费版本的用户可以向我们的客服人员索取相应教程。

引自:报表工具知识库
原文链接: 快逸报表如何处理大数据量报表需求