Html 模式发布报表

阅读(1842) 标签: html标签, tag标签,

本章主要介绍html模式发布报表的原理、用途及详细说明。

◆ 实例请参考TAG实例 / html模式发布报表

 

原理和用途:

如下图:通过定义Tag标签的属性及其值,在不需用户调用润乾报表API情况下,用tag标签完成报表的解析及运算,并按用户配置的属性要求将HTML文件流输出到客户端。

图1.1.1:用tag标签发布报表

 

 

详细说明:

html报表在JSP文件中用<prefix:html>标签来发布,prefix是用户在JSP文件头

指定tag定义文件时指定的前缀名。该定义语句如下所示:

  <%@taglib uri="/WEB-INT/raqsoftReport.tld" prefix="report" %>

 

此定义语句必须写在JSP的开头,其中prefix的值可以自己指定,但tag标签中的前缀必须与其保持一致。

然后在要发布报表的地方用上面介绍的tag标签来发布,如:

  <report:html name=”…” reportFileName=”…” …./>

此标签的属性说明见下表:

(属性名都是大小写相关,属性值必须放在双引号中)

属性名

是否必填

属性含义

属性取值

缺省值

浏览式报表和单表参数报表的公共属性

name

是

报表在网页中的ID标识

符合变量命名规则的字符串,在本网页中应是唯一的

无

srcType

否

报表源的类型

见注1

file

reportFileName

否

当报表源类型为file时,要发布的报表文件

报表文件名

无

beanName

否

当报表源类型为defineBean或reportBean时,已保存到request中的bean的名称

符合变量命名规则的字符串,与保存报表源bean时的名称一致,且在整个WEB应用中应唯一

无

contextName

否

用bean的方式发布报表时,计算出报表bean时用的Context对象,存在request中的名称

存储在request中的名称

无

scale

否

报表缩放显示比例

实数

1.0

funcBarLocation

否

功能条的位置

top, bottom, both

top

separator

否

各功能钮间的分隔符

html元素或文字

空格

generateParamForm

否

是否生成缺省报表参数输入表单

yes或no

no

params

否

报表所需要的参数

用户提交的参数值

无

funcBarFontFace

否

功能条的字体

字体名称

宋体

funcBarFontSize

否

功能条的字体大小

与html文件中定义字体大小相同

13px

funcBarFontColor

否

功能条的字体颜色

html文件中使用的颜色

black

functionBarColor

否

功能条背景色

html文件中使用的颜色

无颜色

needSaveAsExcel

否

需要显示将报表存为Excel的功能钮吗

yes或no

no

needSaveAsPdf

否

需要显示将报表存为PDF的功能钮吗

yes或no

No

needSaveAsText

否

需要显示将报表存为Text的功能钮吗

yes或no

No

needSaveAsWord

否

需要显示将报表存为Word的功能钮吗

yes或no

No

needPrint

否

需要显示打印报表的功能钮吗

yes或no

No

needPdfPrint

否

是否需要生成pdf打印的功能按钮

yes或no

No

pdfPrintLabel

否

pdf打印按钮的内容

html元素或文字

pdf打印

printLabel

否

打印按钮外观定义

html元素或文字

打印

needDirectPrint

否

需要显示直接打印报表的Applet按钮吗

yes或no,当为yes时,如果定义了funcBarFontColor和functionBarColor, 那么应该用”#FFFFFF”之类的颜色值,printLabel应该只用文字

No

directPrintLabel

否

直接打印钮外观定义

html元素或文字

打印

needPrintPrompt

否

直接打印报表前是否需要提示确认

yes或no

no

needSelectPrinter

否

直接打印报表时可否选择打印机

yes或no

no

savePrintSetup

否

是否将客户端电脑的打印设置发回服务器保存,以备下次打印这张报表时使用,该属性对直接打印也起作用

yes或no

no

printedRaq

否

被打印的报表文件名,用于打印与显示的报表不是同一张时的情况

报表文件名(.rpx),相对于reportFileHome

无

excelLabel

否

存为Excel钮外观定义

html元素或文字

存为Excel

pdfLabel

否

存为PDF钮外观定义

html元素或文字

存为PDF

textLabel

否

存为Text钮外观定义

html元素或文字

存为Text

wordLabel

否

存为Word钮外观定义

html元素或文字

存为Word

textDataSeparator

否

存为Text时,同行单元格数据间的分隔符

字符

TAB键(\t)

textDataLineBreak

否

存为Text时,自定义换行符

换行符

\n

exportDisp4text

否

导出text文件时是否导出显示值

yes或no

no

excelUsePaperSize

否

存为EXCEL时:yes按报表设计时的纸张尺寸,no采用本TAG标签中指定的width,height值

yes或no

no

excelFormat

否

导出excel的默认格式

导出excel两种格式(xls,xlsx)中的一种

xls

saveAsName

否

报表另存为Excel、PDF的文件名(不用带扩展名)

文本

与报表同名

excelPageStyle

否

存为Excel时的分页方式,不指定此属性值,则系统弹出对话框让用户选

0(不分页)或1(分页)

无

pdfExportStyle

否

存为PDF时,导出的文件分页方式及导出类型,导出类型分为图形方式及text方式。

属性值格式为: "文件类型,是否分页"

文件类型取值为:

graph: 将文字导出为图形方式

text:将文字导出为文本方式

1表示要分页,0表示不分页

无

userFuncBarElements

否

用户自定义的功能条中的功能元素

Html元素,可多个或多层组合,如<table><tr><td>

<a href=”…”>xxx</a>

</td></tr></table>

无

needScroll

否

是否固定上表头和左表头

固定表头后,页面报表不分页,分页方式设置无效

yes或no

no

needPagedScroll

否

固定表头后是否分页,needScroll为no时设置失效

yes或no

no

scrollWidth

否

固定表头报表的显示宽度

整数,象素值

或者百分数,如80%

600

scrollHeight

否

固定表头报表的显示高度

整数,象素值

或者百分数,如80%

400

scrollBorder

否

固定表头报表的边框

HTML的边框表示法,如:“border:1px solid red”,“border-top: 1px solid blue; border-left: 1px solid green;……”

无

appletJarName

否

用于报表打印的applet文件名见注4

*.jar或者dir/.../*.jar

raqsoftReportApplet.jar

exceptionPage

否

显示报表异常信息的JSP页面

页面相对于应用根目录的路径名

无

needLinkStyle

否

单元格有超链接属性时,是否用设计的字体属性显示

yes或no

yes

paperType

否

纸张类型

纸张类型值,比如A4,B5

报表设计纸张类型

paperWidth

否

纸张宽度

整数(毫米,像素,英寸)

报表设计纸张宽度

paperHeight

否

纸张高度

整数(毫米,像素,英寸)

报表设计纸张高度

leftMargin

否

左边距

整数(毫米,像素,英寸)

报表设计左边距

rightMargin

否

右边距

整数(毫米,像素,英寸)

报表设计右边距

topMargin

否

上边距

整数(毫米,像素,英寸)

报表设计上边距

bottomMargin

否

下边距

整数(毫米,像素,英寸)

报表设计下边距

serverPagedPrint

否

applet打印时是否采用服务器分页后再按页传输的方式。一般大数据量的报表采用此方式

yes或no

yes

  mirrorPrint

否

打印时是否使用镜像打印

取值为yes或no

no

reportEnterUrl

否

访问此报表的url地址,当访问地址不是jsp时需要指定

访问报表的url地址

无

printerName

否

默认打印机名称

操作系统中显示的打印机名称

无

generateCellId

否

是否生成单元格ID

yes或no

no

isOlap

否

是否提供展开、收拢的功能,将该报表称为OLAP式折叠报表

yes 或 no

no

isTreeTable

否

是否以树形报表展现,将该报表称为树形报表

yes 或 no

no

foldIcon

否

折叠图标的类型,适用于OLAP式折叠报表和树形报表

plus(加减号)或arrow(箭头)

plus

foldOnBegin

否

折叠报表初始展现时折叠到第几层,适用于OLAP式折叠报表和树形报表

yes(全折叠)、no(全展开)或整数(可以看见的层数)

no

modifiable

否

是否可在WEB页面中修改单元格数据,此属性必须和报表中的“能否修改”属性同时使用,使用此属性时分页无效

yes 或 no

no

paramCheck

否

是否对禁用参数值做校验。

禁用参数值可通过在WEB-INF/raqsoftConfig.xml中的disallowedParamWordList 属性中配置

yes 或 no

yes

reportAlign

否

设置报表的横向显示位置,needScroll属性值为no时,本属性无效

left或center

center

浏览式报表的属性

useCache

否

显示此报表时是否从缓存系统中取已经计算好的报表

yes或no

如果是实时报表,应该设为no

yes

timeout

否

从缓存系统中取多少分钟内产生的报表,如果没有此时间内的报表,则产生一个新报表

整数,表示分钟

负数表示不限时间

-1

width

否

报表分页宽度

整数,单位为px,负数表示无穷大

报表设计页面宽度

height

否

报表分页高度

整数,单位为px,负数表示无穷大

报表设计页面高度

columns

否

报表分栏数

整数

报表设计分栏数

needPageMark

否

是否显示报表页数及翻页功能

yes或no

yes

firstPageLabel

否

翻到第一页的功能钮外观定义

html元素或文字

最前页

prevPageLabel

否

翻到前一页的功能钮外观定义

html元素或文字

上一页

nextPageLabel

否

翻到后一页的功能钮外观定义

html元素或文字

下一页

lastPageLabel

否

翻到最后页的功能钮外观定义

html元素或文字

最后页

displayNoLinkPageMark

否

是否显示无超链接的页码标识(如第一页时的“最前页”和“上一页”

yes或no

no

注1:srcType的取值:

(1)  如要发布的报表源为报表文件,其值为file。

(2)  如要发布的报表源为经过API处理的

com.raqsfot.report.model.ReportDefine对象,则其值为defineBean。

(3)  如要发布的报表源为经过API处理的

com.raqsoft.report.usermodel.IReport对象,则其值为reportBean。

注2:如果调用TAG前,是用API生成的Context对象来运算报表,那么应将此对象传给TAG,示例如下:

<%

  ……..

  Context context = new Context();

  …….

  request.setAttribute( “myContext”, context );

%>

<report:html ……..

  contextName=”myContext”

/>

注3:

  折叠报表相关的标签属性: isTreeTable, isOlap,foldIcon,foldOnBegin

(1)  OLAP折叠报表(isOlap)和树形报表(isTreeTable)两种展现方式互斥,因此isOlap与isTreeTable不可以同时为yes

(2)  折叠报表同时支持固定表头

(3)  折叠报表不支持分页

(4)  折叠报表是js的功能,因此仅限于网页支持。打印和导出时与普通报表一致

(5)  树形报表对浏览器没有要求,OLAP折叠报表要求IE浏览器为IE9以上版本,其它类浏览器不限

(6)  树形报表格式要求:分组格与它的子格不在同一行上,不能有行上的全包含或半包含关系。

(7)  OLAP折叠报表格式要求:必须全包含,并且必须给每个分组都加上一个统计行,如果分组格是纵向扩展,统计行必须与分组格同行,如果是横向扩展,统计行必须与分组格同列。

注4:如果scrollWidth和scrollHeight采用百分比的格式,那么滚动区域的高度和宽度是根据jsp中报表外面的元素的高度和宽度而定的,如果报表外面的元素没有指定高度和宽度,可能会出问题。

举例如下,在自定义的jsp中,首先定义在报表外面table元素的width和height,这样可以保证滚动区域正常显示。

<table style="width:40%; height:80%;overflow:hidden;table-layout:fixed">

<tr><td valign=top>

<report:html name="report1" reportFileName="<%=file%>"

needScroll="yes"

scrollWidth="80%"

scrollHeight="50%"

...... />

</td></tr></table>