灵活报表web展现用户手册.docx

上传人:b****6 文档编号:4172778 上传时间:2022-11-28 格式:DOCX 页数:18 大小:236.26KB
下载 相关 举报
灵活报表web展现用户手册.docx_第1页
第1页 / 共18页
灵活报表web展现用户手册.docx_第2页
第2页 / 共18页
灵活报表web展现用户手册.docx_第3页
第3页 / 共18页
灵活报表web展现用户手册.docx_第4页
第4页 / 共18页
灵活报表web展现用户手册.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

灵活报表web展现用户手册.docx

《灵活报表web展现用户手册.docx》由会员分享,可在线阅读,更多相关《灵活报表web展现用户手册.docx(18页珍藏版)》请在冰豆网上搜索。

灵活报表web展现用户手册.docx

灵活报表web展现用户手册

 

灵活报表web展现

用户手册

编号:

版本号:

1.0

作者:

李向阳

时间:

2003年6月27日

山东浪潮齐鲁软件产业股份有限公司

文档修订

修订历史记录

序号

版本号

作者

提交日期

变更内容

变更原因

1.

1.0

李向阳

2003-6-27

始建

2.

1.0

姚新明

2003-7-1

修改

修改部分说明

修订历史记录说明

目的

记录文档的修改记录,同时明确告诉变更的内容

作者

本次修改人

变更内容

简单的描述本次变更内容,同时用蓝色标记近期变更的内容。

变更原因

说明本次变更的原因

编码人

修改、编写程序的人员签字及时间

测试人

根据需求说明,进行测试,当前由编码人员自己指定。

发布人

测试人员签字的通过之后,发布人签字、时间。

目录

1概述4

1.1相关文档4

2界面4

1.2用户使用界面4

3报表使用说明:

5

1.3报表配置文件5

1.3.1报表配置文件说明5

1.3.2已经实现的功能8

1.4服务器配置更改9

1.5Command取数据的变化9

1.6Jsp的变化9

1.7cll文件的变化9

1.8如何开发9

1.9报表实例10

1.9.1XML配置10

1.9.2Command10

1.9.3web展现的jsp:

12

1.10事项13

1概述

灵活报表web展现主要实现报表样式的定义和报表在html中的展现,客户端采用cell控件。

报表分类:

1.动态报表

a)列固定,行不固定

b)列动态增长,行不固定

2.固定报表

c)列固定,行固定

本次只改进a类报表

1.1相关文档

灵活报表_设计_web展现.doc

2界面

1.2用户使用界面

用户所看到的a类报表如下图:

界面的主要元素为:

1.表头

2.表体

3.表尾

要实现的主要功能为:

1.数据显示

2.表头单元格合并

3.行列锁定

4.小计,合计,计算列

5.排序

3报表使用说明:

1.3报表配置文件

1.3.1报表配置文件说明

报表配置文件reports.xml默认存放在WEB-INF\conf\report目录下,其内容如下所示:

xmlversion="1.0"encoding="gb2312"?

>

同其他配置文件相同,可以将报表的格式配置存放在多个文件中,只要在reports.xml包含该文件即可,每一个文件的内容类似,见附件reportsbases.xml。

xml文件大小写敏感,是遵照java属性的命名规范,第一个字母小写,后面单词第一个字母大写。

节点说明:

名称

说明

Report

报表

ReportHead

报表头,由Row组成

Row

报表一行,由Cell组成

Cell

报表单元格

ReportDetail

报表的主体,由Col组成

Col

报表主体的一列

ReportTail

报表尾

节点属性说明:

属性

默认值

必需

类型

描述

id

true

数字

与formatNum组成报表的唯一号

formatNum

true

数字

格式编号,与id组成报表的唯一号

dataSourceType

""

字符串

暂时不使用

fileUrl

""

字符串

画报表的cll文件名,暂不使用

description

""

字符串

Report节点的中文名称,暂不使用

name

""

字符串

Report节点的名称,暂不使用

reportType

""

true

数字

报表类型,1为行动态增长列固定的报表

subTotalCol

"1"

数字

当有小计时候,第“subTotalCol“列填写“小计:

sumTotalCol

"1"

数字

当有合计时候,第“sumTotalCol“列填写“合计:

fixedCol

"0"

数字

第一列到第”fixedCol”列固定

属性

默认值

必需

类型

描述

drawLineRow

"0"

数字

报表列名的级数,表头需要画表格线的行数

Row

Row

报表头由Row组成

属性

默认值

必需

类型

描述

rowHeight

"20"

数字

行高

name

""

字符串

暂时不使用

Cell

Cell

报表行由Cell组成

属性

默认值

必需

类型

描述

name

“”

字符串

暂时不使用

modify

"false"

布尔型

该cell是否允许修改(暂未实现)

colSpan

"1"

数字

列跨度

rowSpan

"1"

数字

行跨度

type

“”

true

字符串

有label、mixed、input三种取值,label表示字符串值,字符串取属性value中存放的值。

input表示从集合键值映射中取值,键值即为Property中的值;mixed则以键值映射中的值代替value中的#从而显示出来

align

"36"

数字

单元格对齐方式

fontSize

"12"

数字

字体大小

fontStyle

"0"

数字

字体风格

color

0x000000

数字

字体颜色

value

“”

字符串

取值为mixed,则value不能为空

property

“”

字符串

取值为input,mixed,则property不能为空

属性

默认值

必需

类型

描述

ifSubTotal

"false"

布尔型

是否要小计

orderby

""

字符串

小计的分组依据

ifSumTotal

"false"

布尔型

是否要合计

sortCols

""

以逗号分割的数字

可排序的列号(“3,4,5“则表示第3,第4,第5列可排序,双击表头则会排序)

rowHeight

"20"

数字

行高

Col

Col

属性

默认值

必需

类型

描述

name

""

字符串

暂时不使用

colSeq

""

数字

列的序号(暂时不使用)

colWidth

"100"

数字

列的宽度

ifColHidden

"false"

布尔型

该列是否隐藏(暂未实现)

type

“”

true

字符串

identity表示列值自动增长、input、mixed(暂未实现)、label同cell节点、formula表示计算公式

dataType

"String"

字符串

该列的数据类型Double,Currency,String

format

""

数字#字符

如果数值类型为double型,小数点的位数和千位的分隔符;dataType为Double时,不能为空,cll只提供逗号空格两种分隔符

align

"36"

数字

该列对齐方式

fontSize

"12"

数字

字体大小

fontStyle

"0"

数字

字体风格

color

"0x000000"

数字

字体颜色

value

""

字符串

type取值为mixed,不能为空

property

""

字符串

type取值为input,mixed,不能为空

subTotalCol

"false"

布尔型

该列是否小计

sumTotalCol

"false"

布尔型

该列是否合计

sortCol

"false"

布尔型

暂时不使用

calFormula

""

字符串

在type=’formula’时的计算公式,取值为formula,不能为空

ifConVert

"false"

布尔型

该列是否可以进行单位转换(暂未实现)

enumeratation

“”

字符串

单位转换的枚举(暂未实现)

1.3.2已经实现的功能

一个报表可以定义多种格式。

可以设定报表名称、列名称、表头、表尾、表体文字的大小,设定单元格对其方式,颜色,风格。

可以设定固定行列,固定列需要指定,表头所占行固定。

可以设置每一行的行高。

能够实现小计、合计。

由于在画表格线时,表头中列名需要画线,所以要指定需要画线的行数。

可以实现表头表尾单元格的合并。

对Cell,已经实现type为label,mixed,input的功能。

对Col,已经实现type为input、identity、formula功能。

可以实现在报表展现之后按某列排序,如果某列数据类型为数值型,可以设定小数位数和千分位的分隔符。

1.4服务器配置更改

1.在services.properties文件中添加如下内容:

#报表服务

services.ReportService.classname=com.loushang.util.service.report.OurReportService

services.ReportService.earlyInit=true

2.报表配置文件的默认路径为/WEB-INF/conf/report/

默认文件名为reports.xml

如果要修改配置文件路径为/WEB-INF/conf/

修改文件名为report.xml

则在services.properties添加如下内容:

services.ReportService.reportsPath=/WEB-INF/conf/

services.ReportService.reportsFile=report.xml

1.5Command取数据的变化

以前的command都是把查询条件放入request中。

根据查询条件从数据库中取出的数据放入ArrayList或Vector,再放入request中。

,在jsp页面取得查询条件和数据库的值,通过jsp、script和Cell脚本来控制其显示格式。

现在要把表头、表体、表尾的数据均放入ReportData中,其参数为Object,List,Object。

第一个参数和第三个参数分别存放表头和表尾的数据,必须要实现Map接口,一般为HashMap或Hashtable。

第二个参数存放表体的数据,必须要实现List接口,一般为ArrayList和Vector。

ReportDatadata=newReportData(head,ret,trail);再把ReportData放入request中。

在页面从request中取到数据,以一定格式展现。

可以把报表的唯一标志号放入查询页面,在command取到后再放入request中,在展示页面获取调用。

1.6Jsp的变化

现在所有的报表共用一个Web展示的Jsp页面,该jsp页面从request中取得报表数据,通过报表id和formatNum得到一个报表对象,然后调用报表对象的getCellHTML得到报表展示的Script脚本。

通过out.println在页面上打出来。

1.7cll文件的变化

由于Cell制造商没有放开是否显示不滚动区域分割线和是否隐藏背景网格线的接口,而我们的报表一般不显示滚动区域分割线,所以需要一个cll文件,该文件不显示滚动区域分割线。

所有的报表共用这个cll文件,该文件是一个空的cll文件。

1.8如何开发

现在灵活报表只进行了Web展现的开发,Command与查询页面还没有作大的改进。

现在可以在查询页面提供查询条件和报表的唯一号,然后在Command中把表头表尾的数据和数据库的数据均放入ReportData。

如果修改了报表的xml配置,则刷新资源即可。

1.9报表实例

客户销售统计表:

1.9.1XML配置

见reportsbase.xml

报表唯一号为01003000,为列固定,行动态增长的报表。

表名为客户销售统计表,占4列。

表列名的级数为1。

查询条件为销售部门和统计日期,根据键值DPT_SALE_NAME,START_DATE,END_DATE,从Map中取得。

列名分别为客户名称、购货卡号、实销数量、实销金额,数据类型分别为String,String,Double,Double,

如果为Double类型,则保存两位小数,千分位用逗号分割。

根据键值CUST_NAME,PURCH_CARD_ID,QTY_SOLD,AMT_SOLD从List中的Map集合中取得。

表尾为制表人和制表日期,根据键值userName,date,从Map中取得。

1.9.2Command

以前的Command:

UserLoginInfouser=

(UserLoginInfo)request.getSession().getAttribute("UserLoginInfo");

StringCom_id=user.getUserDefault().getComId();

//从页面上取得查询条件

Stringstart_date=request.getParameter("BEGIN_DATE");

request.setAttribute("START_DATE",start_date);

Stringend_date=request.getParameter("END_DATE");

request.setAttribute("END_DATE",end_date);

Stringcust_id=request.getParameter("CUST_ID");

if(cust_id==null||cust_id.equals(""))

{

request.setAttribute("CUST_NAME","所有客户");

}

else

{

Stringcust_name=(String)getCustName(cust_id,Com_id);

request.setAttribute("CUST_NAME",cust_name);

}

Stringdpt_sale_id=request.getParameter("DPT_SALE_ID");

if(dpt_sale_id==null||dpt_sale_id.equals(""))

{

Stringdpt_sale_name="所有销售部门";

request.setAttribute("DPT_SALE_NAME",dpt_sale_name);

}

else

{

Stringdpt_sale_name=getDptSaleName(dpt_sale_id,Com_id);

request.setAttribute("DPT_SALE_NAME",dpt_sale_name);

}

Stringpuh_card_id=request.getParameter("PUH_CARD_ID");

//从数据库中取得结果集放入Vector,再放入request中

Vectorret=

getCondition(start_date,end_date,Com_id,dpt_sale_id,cust_id,puh_card_id,request);

request.setAttribute("TEMP",ret);

现在的Command:

UserLoginInfouser=

(UserLoginInfo)request.getSession().getAttribute("UserLoginInfo");

StringCom_id=user.getUserDefault().getComId();

//声明HashMap对象,查询条件放入HashMap;

HashMaphead=newHashMap();

Stringstart_date=request.getParameter("BEGIN_DATE");

head.put("START_DATE",start_date);

Stringend_date=request.getParameter("END_DATE");

head.put("END_DATE",end_date);

Stringcust_id=request.getParameter("CUST_ID");

if(cust_id==null||cust_id.equals(""))

{

head.put("CUST_NAME","所有客户");

}

else

{

Stringcust_name=(String)getCustName(cust_id,Com_id);

head.put("CUST_NAME",cust_name);

}

Stringdpt_sale_id=request.getParameter("DPT_SALE_ID");

if(dpt_sale_id==null||dpt_sale_id.equals(""))

{

Stringdpt_sale_name="所有销售部门";

head.put("DPT_SALE_NAME",dpt_sale_name);

}

else

{

Stringdpt_sale_name=getDptSaleName(dpt_sale_id,Com_id);

head.put("DPT_SALE_NAME",dpt_sale_name);

}

Stringpuh_card_id=request.getParameter("PUH_CARD_ID");

Vectorret=

getCondition(start_date,end_date,Com_id,dpt_sale_id,cust_id,puh_card_id,request);

//声明HashMap对象,制表人制表日期放入HashMap

HashMaptrail=newHashMap();

trail.put("userName",user.getUserName());

trail.put("date",user.getDate());

ReportDatadata=newReportData(head,ret,trail);

request.setAttribute(Contants.REPORTDATA,data);

request.setAttribute((Contants.KEY_REPORTID,”0300000”);

1.9.3web展现的jsp:

<%@pagecontentType="text/html;charset=gb2312"%>

<%@tagliburi="/zhnt/tlds/zhnt.tld"prefix="zhnt"%>

<%@pageimport="com.lc.rpt.base.report.*"%>

useBeanid="UserLoginInfo"type="com.lc.base.permit.user.data.UserLoginInfo"scope="session"/>

if(DCellWeb1.Login("浪潮齐鲁软件","","13040257","5000-1207-7711-6004")==0)

{

alert("注册失败!

");

}

varfilename="

jsppath/>";

filename=filename+"report/common.cll";

varresult=DCellWeb1.OpenFile(filename,"");

if(result!

=1){

alert("打开文件错误");

}

<%

try{

ReportInfoManagerreportInfoManager=ReportInfoManager.getInstance();

StringreportId=request.GetAttribute(Contants.KEY_REPORTID);

BaseReportreport=reportInfoManager.getReportByid(reportId);

ReportDatadata=(ReportData)request.getSession().getAttribute(Contants.KEY_REPORTDATA);

out.print(report.getCellHTML(data));

}catch(Exceptionex){

thrownewJspException(ex.getMessage());

}

%>

//设置允许自动折行,由于报表格式设置了行高,没有设置最合适行高

varheight;

for(m=1;m<=DCellWeb1.getRows(0);m++){

for(n=1;n<=DCellWeb1.getCols(0);n++){

DCellWeb1.SetCellTextStyle(n,m,0,2);

}

}

document.getElementById("Msg").style.display="none";

document.getElementByI

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1