Archive for the ‘web相关技术’ Category

下拉菜单多选参数查询

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

快逸报表的下拉菜单功能可以很方便用在参数模板中,供报表浏览者轻松准确的选择需要的参数进行查询,但是默认的查询参数只能选择一个值如下图:

快逸报表下拉菜单多选的参数传递单选1.png

如果想要选择多个值就需要另外进行设置。本文就来介绍一下快逸报表是怎样利用下拉菜单进行多选查询的。
首先进行报表的设计:

22.PNG

第一步:增加数据集
ds1.SELECT EMPLOYEE.EMPID,EMPLOYEE.EMPNAME,EMPLOYEE.BIRTHDAY,EMPLOYEE.SEX,EMPLOYEE.DEGREE,EMPLOYEE.BONUS
FROM EMPLOYEE
ds2: SELECT DEGREE.ID,DEGREE.NAME FROM DEGREE

第二步:定义表达式
1、将A3单元格表达式修改为:=ds1.Select(int(EMPID),false)
该表达式是将字符串型的EMPID转换成整数,再做排序操作。
2、设置C3单元格的显示格式为:yyyy年MM月dd日
3、设置F3单元格的显示格式为:¥#0.00
4、设置D3的显示值为:map(list(”1″,”2″),list(”男”,”女”))
5、设置E3的显示值为:ds2.select1(name,id==value()),
6、设置E4为”统计时间:”,F5的值为=now(),F6()值为”第”+pno()+”页”。

第三步:添加参数

在报表中配置选项中添加参数,用来接收参数模板传过来的参数,参数名称为arg1,类型为字符串组。
进入到设计数据集的部分,其中的检索条件设置为DEGREE in (?) or ? is null,之后在参数标签中添加两个参数,其中两个参数的表达式的写法是第一个参数表达式为arg1,第二个参数表达式为str(arg1)格式如下:

快逸报表下拉菜单多选的参数传递参数设计3

然后设计参数模板,具体的设计方法如下:

66.PNG

C2单元格填报属性设置为下拉列表框,并在该单元格的web属性的变量名中填写与报表文件对应参数名称,这里填写为arg1:列表框数据如下图所示:

44.PNG

注意,一定要选择 允许多选和增强控件两个选项,否则无法进行多选。
这样报表就设计完了
发布到web,报表可以进行多选,点击查询得到查询结果,如下图:

77.PNG

这样,就在下拉菜单里完成了多选的查询,如果用户想在下拉数据集里进行多选查询的话,将模板的参数下拉菜单改为下拉数据集,然后在设置中除了添加显示列和数据列之外同样勾选上允许多选和增强控件,其他设计方法参照本例即可,就能实现下拉数据集的多选查询。

原文链接:下拉菜单多选参数查询

快逸报表部署中异常信息:no report config file!错误排除步骤

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

在用快逸报表进行Web开发,部署到Web服务器上时,经常会在浏览报表的过程中遇到这样一个报表异常信息”no report config file”,导致报表无法浏览。此异常信息显示在jsp页面上,下图为异常信息显示截图:

快逸报表异常错误信息.png

查看后台报错信息为:
javax.servlet.ServletException: No report config file!
at com.runqian.report4.view.ReportServlet.loadConfig(Unknown Source:75)
at com.runqian.report4.view.ReportServlet.reloadConfig(Unknown Source:823)
at com.runqian.report4.tag.HtmlTag.doStartTag(Unknown Source:20)

从字面的意思上看,是没有报表配置文件,可明明部署的时候,配置文件reportConfig.xml和web.xml都有,为什么还会出现这个异常呢?从异常信息上看不出什么端倪,其实,这个问题的原因是写这些配置文件的时候,有一些小细节被忽略,稍不注意就会出错,下面,就来看一下正确的配置文件写法。

第一步:先来看一下reportConfig.xml中需要注意的地方:

快逸报表reportConfig配置图.png

第二步: 需要特别注意的是配置的数据源的名字一定要和报表里连接数据源的名字一致,否则会报找不到数据源的异常。

第三步:我们看一下web.xml文件中关于快逸报表servlet的配置:

快逸报表web.xml文件配置图.png

在web.xml文件中,配置了报表系统中用到的servlet和taglib,如果在项目应用中配置其他功能的servlet和过滤器等,注意一定不要影响到报表的servlet,否则会致使报表不能正常运行。

第四步:看一下数据库连接池的配置文件,一般情况下和应用文件夹同名,这里为demo.xml(weblogic和websphere服务器的数据库连接配置是向导式的,这里不在赘述,详见快逸帮助文档中的J2EE部署手册中的相关介绍):
以Tomcat为例,在Tomcat5.5版本之前的数据库连接池文件如下图:

快逸报表数据库连接池配置1.png

在Tomcat5.5- Tomcat6.0版本之后,数据库连接池文件的写法发生了变化,如下图:

快逸报表数据库连接池配置2.png

第五步:还需要注意一点的是,把配置文件修改后,需要清理Web服务器的缓存并重启服务,重新加载配置文件。
综上,其实”no report config file”异常并不难处理,只要注意配置文正确写法和位置,在异常发生的时候根据上面各项,认真检查,就可以快速的定位异常,解决问题了。
关键字:快逸报表,部署,配置文件,Tomcat。
原文链接: 快逸报表部署中异常信息:no report config file!错误排除步骤

快逸报表部署中异常信息:no report config file!错误排除步骤

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

在用快逸报表进行Web开发,部署到Web服务器上时,经常会在浏览报表的过程中遇到这样一个报表异常信息”no report config file”,导致报表无法浏览。此异常信息显示在jsp页面上,下图为异常信息显示截图:

快逸报表异常错误信息.png

查看后台报错信息为:
javax.servlet.ServletException: No report config file!
at com.runqian.report4.view.ReportServlet.loadConfig(Unknown Source:75)
at com.runqian.report4.view.ReportServlet.reloadConfig(Unknown Source:823)
at com.runqian.report4.tag.HtmlTag.doStartTag(Unknown Source:20)

从字面的意思上看,是没有报表配置文件,可明明部署的时候,配置文件reportConfig.xml和web.xml都有,为什么还会出现这个异常呢?从异常信息上看不出什么端倪,其实,这个问题的原因是写这些配置文件的时候,有一些小细节被忽略,稍不注意就会出错,下面,就来看一下正确的配置文件写法。

第一步:先来看一下reportConfig.xml中需要注意的地方:

快逸报表reportConfig配置图.png

第二步: 需要特别注意的是配置的数据源的名字一定要和报表里连接数据源的名字一致,否则会报找不到数据源的异常。

第三步:我们看一下web.xml文件中关于快逸报表servlet的配置:

快逸报表web.xml文件配置图.png

在web.xml文件中,配置了报表系统中用到的servlet和taglib,如果在项目应用中配置其他功能的servlet和过滤器等,注意一定不要影响到报表的servlet,否则会致使报表不能正常运行。

第四步:看一下数据库连接池的配置文件,一般情况下和应用文件夹同名,这里为demo.xml(weblogic和websphere服务器的数据库连接配置是向导式的,这里不在赘述,详见快逸帮助文档中的J2EE部署手册中的相关介绍):
以Tomcat为例,在Tomcat5.5版本之前的数据库连接池文件如下图:

快逸报表数据库连接池配置1.png

在Tomcat5.5- Tomcat6.0版本之后,数据库连接池文件的写法发生了变化,如下图:

快逸报表数据库连接池配置2.png

第五步:还需要注意一点的是,把配置文件修改后,需要清理Web服务器的缓存并重启服务,重新加载配置文件。
综上,其实”no report config file”异常并不难处理,只要注意配置文正确写法和位置,在异常发生的时候根据上面各项,认真检查,就可以快速的定位异常,解决问题了。
关键字:快逸报表,部署,配置文件,Tomcat。
原文链接: 快逸报表部署中异常信息:no report config file!错误排除步骤

Web报表通过参数动态得到一个参数区间

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

Web报表设计中,经常会遇到从一个时间区间内取得数据的问题,比如查询某个日期所在周的订货信息详情,如果使用普通参数来解决这个问题的话,需要用户手动设置一周的起始时间和结束时间,这样做不但容易出错,而且也增大了开发人员的负担,如果使用动态参数来解决这个问题,用户只需要选择某个日期,系统就会自动计算出该日期所在周的起始时间和结束时间, 简化了客户的操作,提高了准确程度。
下面以一个例子来说明如何实现这个需求:
预期效果如下图所示:

快逸报表Web报表通过参数动态得到一个参数区间预期效果1

第一步:设计报表

使用快逸报表demo数据源,建立两个数据集。
ds1:
SELECT 订单.订购日期,订单.订单ID,订单.货主地区,订单.货主城市,订单.运货商 FROM 订单 WHERE 订单.订购日期 >?AND 订单.订购日期 < ?
并添加两个参数定义arg2和arg3。
ds2:
SELECT 运货商.公司名称,运货商.运货商ID FROM 运货商
报表设计器中添加以下数据:
A2单元格表达式为:=str(arg2)+ ” 到”+str(arg3)+” 订货单 ”
A4单元格表达式为:=ds1.Select(货主地区)
B4单元格表达式为:=ds1.货主城市
C4单元格表达式为:=ds1.订单ID
D4单元格表达式为:=ds1.运货商,显示值表达式为=ds2.select(公司名称,,运货商ID==value())
E4单元格表达式为:=date(ds1.订购日期),显示格式为:yyyy年MM月dd日
设置背景颜色如下:

快逸报表Web报表通过参数动态得到一个参数区间参数设计

第二步:设置参数

在设计器-配置-参数中,为报表添加一个日期型普通参数和两个日期型动态参数,这个普通参数的值设置为1996-07-08(作为首次查询的默认值,可为任意日期),两个动态参数值设置为:
动态参数arg2的值填写weekbegin(arg1),
动态参数arg3的值填写weekend(arg1),
其中weekbegin()和weekend()这两个函数是报表自带的函数,他们的作用是计算一个日期所在周的起始时间和结束时间。
在本例中,通过普通参数得到时间,然后动态通过函数计算,将得到的时间赋给arg2和arg3,然后系统将arg2和arg3作为条件进行检索。

快逸报表Web报表通过参数动态得到一个参数区间参数设计3

第三步:设计报表参数模板


模板为填报报表

快逸报表Web报表通过参数动态得到一个参数区间参数模板

B2: 提示输入日期:
C2: 可写,填报属性中的编辑风格为下拉日历。
在web中预览报表,形式如下:

快逸报表Web报表通过参数动态得到一个参数区间显示效果

参数输入框中通过下拉日历选择日期,系统自动算出日期所在周的起始和截止时间,并根据这个条件显示时间,并最终显示出结果。

点击报表头实现列表排序

01.21.2010 by hewei - 0 Comment - 0
Posted in web相关技术
点击报表头,列表自动从小到大或者从大到小排序是非常常见的需求,传统的报表单纯通过写sql和页面来实现,费时费力,快逸报表作为新一代的类excel智能WEB报表开发工具,在实现这种需求时可谓轻而易举。本文通过下面的小例子介绍一下。一:首先看一下效果图: 点击报表头实现列表排序效果点击类别ID后,效果图如下:点击报表头实现列表排序效果从上面的两个图片中可以看出点击报表头时,类别ID从由小到大排序变为了从大到小排序!二:实现思路:快逸报表中数据集函数可以传入参数,从而控制对某一字段的排序,通过宏和参数以及超链接的结合使用,可以动态为数据集函数传入不同的参数,实现了点标题点击标题实现列表排序。三:实现步骤: 1:首先看报表模版以及参数和宏的设置下图是报表模版及参数设置:点击报表头实现列表排序设置下图为报表模版和宏的设置:点击报表头实现列表排序设置
2:利用宏和超链接实现方法解析快逸报表的数据集函数可以控制排序方式,此例中用到的数据集函数为:ds1.grout(),A2单元格表达式为:=ds1.group(类别ID,${macro2},,${macro1})${macro2}表示分组前记录的排序顺序,true为逆序,false为顺序${macro1}表示分组前纪录的排序依据表达式,默认为类别ID所以只要能动态传入macro2以及macro1的值,就能控制类别ID的排序。(注:ds.group()数据集函数的说明请参考 润乾报表4.0用户手册 第八章 表达式及函数 第四节函数中的内容)第一次访问此报表时接受的宏值为默认值,A2单元格表达式为:=ds1.group(类别ID,false,, 类别ID),所以我们看到的效果是类别ID从小到大排序。接下来每次通过点击报表头单元格触发超链接来传递不同的宏值实现排序改变。我们在类别ID报表头单元格设置超链接,如下图:点击报表头实现列表排序设置
超链接表达式为:”/reportJsp/showReport.jsp?raq=/点列表排序.raq&macro1=类别ID&macro2=”+order+”&order=”+if(order==”true”,”false”,”true”)由表达式可以看出:超链接url中动态控制了macro2的值,macro2的值为报表定义的order参数(macro2=”+order+”),然后通过为参数动态赋值,进而为宏动态赋值,if(order==”true”,”false”,”true”)意思为:如果order为true,那么order赋值为false,否则order赋值为true。这样就实现了点击标题,动态控制排序方式的功能。同样的道理,也可以设置根据销售额的大小动态实现排序的方式,同样可以通过设置超链接,为A2单元格的ds1.group()函数动态传入宏值来控制。具体的实现,可以动手做一下。快逸报表作为新一代的企业级智能WEB报表工具,集成了参数,宏,函数等等,灵活的利用宏和参数能大大提高报表的简易度,灵活度。
原文链接: 点击报表头实现列表排序

行式填报导入excel发生错位的问题

01.13.2010 by hewei - 0 Comment - 0
Posted in web相关技术
快逸报表的行式填报从根本上解决了动态增删行的问题,不仅仅可以对分组报表、分片输入的报表实现多区域的插入删除,还能够动态解析编辑风格、自动计算、合法性检查等属性,实现了很智能的流水号、缺省值等功能。 使用快逸报表行式填报的用户遇到这样的一个问题:行式填报导入excel,发生了错位。比如:excel的第一列本来应该导入到报表的第一列,结果却不见了,excel的第二列反而导入到了报表的第一列。如何解决呢? 解决方案 在用户的填报表中发现,需要导入excel的第一列是个合并格,将这个合并格恢复成普通单元格,就可以正确导入了。例如第一列是A1和B1的合并格,拆分就可以正确导入了。
引自:报表工具知识库
原文链接: 快逸报表:解决行式填报导入excel发生错位的问题
相关文章:普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法 ; 快逸报表行式填报:动态行的自动计算
其他相关内容:润乾报表 ; RAQSOFT ; 润乾商业智能解决方案web报表研究专业.net报表工具

定制填报提交的“确认”提示框

01.11.2010 by hewei - 0 Comment - 0
Posted in web相关技术
快逸报表不仅是一个强大的报表工具,也提供了强大的数据填报功能。web填报常常遇到的问题,快逸报表都可以解决:单选按钮、下拉列表、自动计算、自动生成流水号、实时数据合法性检查、多选批量操作等等。 在用户填报完成点击”提交”的时候,系统可以弹出一个”确认”的提示框,那么是否可以定制这个提示框呢? 解决办法: 比如:想在提示框中添加”取消”等。 设置标签:promptAfterSave=”no” 然后自己写js实现提交按钮和弹出对话框,例如: <input type=”submit” name=”Submit2″ value=”提交” onclick=”firm()” /> function firm() { //利用对话框返回的值 (true 或者 false) if(confirm(”是否保存”)) { //如果是true ,则调用_submitTable( report1 ) _submitTable( report1 ); return true; } else { //否则则取消 //alert(”你按了取消,那就是返回false”); return false; } } </script>
引自: 报表工具知识库 原文链接: 快逸填报:输入为空时候的合法性校验
相关文章: 普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法
其他相关内容: 润乾报表 ; RAQSOFT ; 润乾商业智能解决方案 ; web报表研究 ; 专业.net报表工具

在服务器上保存客户端的打印配置

01.10.2010 by hewei - 0 Comment - 0
Posted in web相关技术
快逸报表提供了很多的打印参数可供选择。例如:页边距设置(左边距、右边距、上边距、下边距)、纸张方向设置(纵向或横向)、纸张类型设置、纸张大小设置等等,为报表的精确打印提供了技术保障。 有些情况下,客户想实现保存客户端打印的设置,不再重复每次都设置打印的边距,快逸报表也可以做到。 说明:考虑到每台客户端电脑一般都会固定连接一个打印机,所以这个功能设计的时候是按照不同报表去保存不同的打印设置的。也就是说,如果用户甲先访 问报表A,保存了打印设置之后,用户乙又访问报表A,看到的就是用户甲先保存的打印设置。在实际的项目中,报表的开发程序员如果要实现按照不同用户保存不 同的打印设置,要调用快逸报表的api,结合项目的用户信息自行编写代码来保存打印设置,具体的api调用请参考相关的用户手册。 解决办法: 在web.xml文件中添加servlet <servlet> <servlet-name>com.runqian.report4.usermodel.PrintSetupServlet</servlet-name> <servlet-class>com.runqian.report4.usermodel.PrintSetupServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>com.runqian.report4.usermodel.PrintSetupServlet</servlet-name> <url-pattern>/servlet/PrintSetupServlet</url-pattern> </servlet-mapping> 在jsp的report:html标签中加上savePrintSetup=”yes” 这样在服务器端就会自动生成一个clientPrintSetup.properties的配置文件用于保存客户端每次打印设置的信息供下次打印时调用。
引自:报表工具知识库 原文链接: 快逸报表:在服务器上保存客户端的打印配置
相关文章:普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法
其他相关内容:润乾报表 ; RAQSOFT ; 润乾商业智能解决方案web报表研究专业.net报表工具

web应用中数值自动计算的零代码实现

01.09.2010 by hewei - 0 Comment - 0
Posted in web相关技术
自动计算,说白了就是计算列或者计算字段。在web系统中,用户在网页上录入了某些数据后,系统会自动算出另外一部分单元格的值,由此简化用户的输入,减少错误率。最典型的例子是,用户录入了”单价”和”数量”之后,网页上的”总价”自动会计算出来,不必用户再次填写了。 这个功能在客户端程序中是比较容易实现的,客户端的编程环境一般都提供”事件”触发机制,一个控件的填写可以触发另外一个控件的自动计算。但是,采 用一般方法来设计java的web程序,就没有这么容易了。网页上的自动计算,不太可能提交给服务端程序去完成--那样的话效率太低了,用户体验也很差。 这里,给您推荐一款免费的商用控件--快逸报表。 快逸报表不仅是一个强大的报表工具,也是一个零代码的强大编程类库!web编程常常遇到的问题,快逸报表都可以解决:下拉列表、自动计算、自动生成流水号、实时数据合法性检查、多选批量操作等等。 那么,和网上下载的开源控件相比,用快逸报表来实现这些功能有什么好处呢? 1、快逸报表是免费的商用产品,质量和性能都很可靠。而网上下载的开源控件通常是编程爱好者兴趣之作,质量和性能很难保证,一旦有问题很难解决。 2、快逸报表有商业公司负责维护和升级。而开源控件如果有了需求要修改,找原创的人来修改,更本不可能,只能自己看懂内部的代码--那样比自己写一个还要费时间呀! 3、快逸报表是统一设计,统一开发、测试的商用产品。相比之下,在一个项目或者网站中,过多使用多种开源控件,比如:上述功能全部都用不同的开源控件来拼凑实现,那么应用程序整体都会变的不稳定,不易修改了。 4、快逸报表提供可视化的页面设计界面,可以很大的提高web数据维护、录入界面的制作的效率。 快逸报表增加一个自动计算十分简单,具体方法如下: 我们假设下图中的运货费是每一件物品的运输费用,我们给定每次订货的数量,那么,总运输费需要根据运输费单价*订货数量作一个动态的自动计算结果。 页面设计的时候,F2是运货费,并且设置H2(货物数量)与I2(总运货费)为可写,设置H2的填报数据类型为整数,然后选中I2单元格,通过鼠标右键弹出数据填报对话框,然后在自动计算中输入${F2*H2},如下图所示: 发布报表,在货物数量中输入20或其它整数,则在相应的总运输费上会根据货运费单价计算出本次订单的总运输费。
引自: 报表工具知识库
原文链接: web应用中自动流水号的零代码实现
关文章: 普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法
其他相关内容: 润乾报表 ; RAQSOFT ; 润乾商业智能解决方案 ; web报表研究 ; 专业.net报表工具

web应用中数据复杂提交的解决办法

01.08.2010 by hewei - 0 Comment - 0
Posted in web相关技术
填报的业务中,往往有这样的需求:用户录入数据后,系统进行合法性检查,发现数据不合法时,弹出友好提示,提醒用户数据不合法,但是面对不合法的数据,用户有三种选择: 1、放弃剩余的检查,直接提交 2、取消提交,修改数据 3、忽略当前的不合法,继续其他的合法性检查 这样的需求在填报业务中非常常见,因为很多时候合法性检查的目的仅仅是警告用户,并非一定得阻止用户提交数据。用户往往由于某些原因,数据就是不合法,但是仍旧需要提交。 这样复杂的需求一定要自己写程序实现么?这里,给您推荐一款免费的商用控件--快逸报表。可以轻松的完成这样复杂的功能! 快逸报表不仅是一个强大的报表工具,也是一个零代码的强大编程类库!web编程常常遇到的问题,快逸报表都可以解决:下拉列表、自动计算、自动生成流水号、实时数据合法性检查、多选批量操作等等。 那么,和网上下载的开源控件相比,用快逸报表来实现这些功能有什么好处呢? 1、快逸报表是免费的商用产品,质量和性能都很可靠。而网上下载的开源控件通常是编程爱好者兴趣之作,质量和性能很难保证,一旦有问题很难解决。 2、快逸报表有商业公司负责维护和升级。而开源控件如果有了需求要修改,找原创的人来修改,更本不可能,只能自己看懂内部的代码--那样比自己写一个还要费时间呀! 3、快逸报表是统一设计,统一开发、测试的商用产品。相比之下,在一个项目或者网站中,过多使用多种开源控件,比如:上述功能全部都用不同的开源控件来拼凑实现,那么应用程序整体都会变的不稳定,不易修改了。 4、快逸报表提供可视化的页面设计界面,可以很大的提高web数据维护、录入界面的制作的效率。
引自:报表工具知识库
原文链接:web应用中数据复杂提交的解决办法
相关文章:定制填报提交的”确认”提示框 ; web应用中自动流水号的零代码实现 ; 填报的数据提交方案 ; Web报表软件的集成方案
其他相关内容:免费的web报表开发工具 ; RAQSOFT ; 用多源关联分片解决复杂报表难题web报表研究专业.net报表工具