Archive for the ‘web相关技术’ Category

通过api将Excel转化成raq模板

08.20.2010 by zangmingkun - 0 Comment - 0
Posted in web相关技术

背景说明

Excle文件中的sheet转换成raq模板,在设计器里转换,是非常简单的。下面介绍如何用api代码转换。

应用举例

新建一个类文件,在类文件中写如下代码 :
package com.runqian.test;
import com.runqian.report4.ide.ExcelImporter;
import com.runqian.report4.usermodel.IReport;
import com.runqian.report4.util.ReportUtils;
public class ExcelAsRaq {
public static void main(String[] args) {
String excelFile = “F:/tomcat/Tomcat 5.5/webapps/second/reportFiles/yuangong.xls”;//excel文件的路径
ExcelAsRaq dexcel = new ExcelAsRaq();
try {
IReport iReport = dexcel.excelToReport(excelFile, 0);//excel文件转换,取某个sheet转换成的raq模板,从0开始
ReportUtils.write(”F:/tomcat/Tomcat 5.5/webapps/second/reportFiles/yuangong.raq”,iReport);//保存为raq模板的路径
} catch (Exception ex) {
ex.printStackTrace();
}
}
//将excle文件转换为raq模板,返回的是一个IReport对象
private IReport excelToReport(String excelFile, int sheetNum) throws Exception {
ExcelImporter ei = new ExcelImporter(excelFile);
return ei.getReport(sheetNum);
}
}

这样,在相应路径下就有raq模版了。

当润乾自带的jdk与应用中的jdk发生冲突如何解决

08.18.2010 by zangmingkun - 0 Comment - 0
Posted in web相关技术

JDK (Java Development Kit)是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。所以要想一个Java程序在虚拟机上准确无误的运行,就必须保证JDK环境的正确性。

润乾报表设计器在默认安装的情况下会自带一个1.5版本的JDK。在使用润乾报表自带的DEMO和服务器制作报表的过程中,使用该版本的JDK是完 全不会出任何兼容性或功能性的问题。然而润乾报表自带的数据库和服务器不能满足相当一部分客户的需求,无论是出于高性能或是其他原因而使用其他数据库和服 务器的客户,稍有不慎就会因为JDK版本的问题而苦恼不已。因为有些大型数据在安装过程中会自带JDK,如ORACLE,POSTGRAS等,它们会根据 与自身性能的完美结合选择自带不同版本的JDK。

对于这类自带JDK的大型数据库,在跟润乾报表结合的时候就需要妥善处理JDK环境,否则就会发生冲突。当数据库自带的JDK版本不等于1.5的情况下,就会发生冲突。报错信息如下:

解决这个问题的方法就是将JDK版本统一。首先关闭设计器,在控制面板的程序中卸载润乾报表。然后重新安装,在进行到如下图所示的步骤时:

选择数据库使用的JDK版本,这样就为润乾报表设置了与数据库使用的同一版本的JDK,成功解决了因JDK版本不同所引发的冲突了。

linux中文字体

08.02.2010 by zangmingkun - 0 Comment - 0
Posted in web相关技术

◆ 背景说明

web报表在windows下展现、导出都正常,在linux服务器上时字体变大了。比如,单元格的大小设计好后,里面的字刚好能一行显示完,将报 表放到linux下后字就变大了,一行显示不完,变成了两行,这样会影响报表的美观。本文介绍出现这个问题的原因,以及在润乾报表中如何解决。

◆ 应用举例

原因:linux系统里,没有在windows下,报表中设置的字体。

解决的方法:将windows下,报表中设置的字体拷贝到linux系统安装。

我们以在报表中设置的字体”宋体”为例,看一下具体过程。

1 将windows下的C:\WINDOWS\Fonts下的simsun.ttc拷贝到linux下的/usr/share/fonts/TrueType/;

2 并在终端运行命令 sudo fc-cache;

3 再重启tomcat;

4 再访问报表,就跟windows下的一样了。

下拉菜单多选参数查询

01.31.2010 by hewei - 2 Comments - 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 - 2 Comments - 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 - 1 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报表工具