通用展现页面可以通过展现参数和模式来控制报表展现的效果。

使用通用展现页面进行报表展现时,可以通过全局展现设置、资源展现设置及URL来进行展现参数、模式值的设置。由于报表展现标签数量较多,以上3种方式都仅能设置部分常用参数、模式或标签属性的值。

全局展现设置

在首页菜单【报表统计展现】-【全局展现设置】中进行设置。通过此页面进行的设置,对系统中展现的所有报表都生效。

该功能模块为报表展现的参数提供友好的配置界面,该页面可配置的参数分为几大类:工具栏参数,报表显示区域参数,打印导出参数,通用查询参数,填报参数等。 展现设置 - 图1

资源展现设置

在【资源中心】下,报表资源操作列的【更多】操作中包含一个【展现设置】的按钮。点击即可设置该报表资源的展现参数、标签和展现所用模式。 展现设置 - 图2

注意:资源展现设置优先级高于全局展现设置,即在全局展现配置和资源展现配置中同时配置了某个展现属性时,以资源展现设置中的设置为准。

URL中进行设置

报表展现的属性还可以通过URL来进行设置,直接在URL后加上要设置的参数名及参数值即可。如在url中添加参数needPrint=no,隐藏打印按钮。 展现设置 - 图3

相关参数介绍

通用展现页面本身特有的参数主要用于对报表调用和部分展现的控制。使用资源ID进行报表调用时resID或sys_fid必需设置;使用文件名称进行报表展现时raq或rpg参数必需设置;其它参数为非必需参数。通用展现页面特有参数及其具体说明如下:

报表调用相关参数

  • resID或sys_fid 资源ID:新建报表资源时生成的一个ID,可以通过该ID找到报表资源的路径、文件名等信息用于报表展现。

  • resType 资源类型:不同的资源类型的标识。类型为数字,具体资源及其对应的编号如下: 复杂报表:18 报表组:10010 自定义jsp:21

  • resName 资源名称:在资源中心下显示的名称,还用于展现页面默认的标题名称。

  • serverPath V5报表文件路径,展现时不指定此路径,则根据资源ID从数据库中查询得到。指定后使用指定的报表文件路径。不从数据库中进行查询。

  • raq或rpg 报表文件或报表组文件路径及名称:使用文件名称进行报表调用时必须设置的参数,包含路径的文件名称。具体参见展现方式。

  • usemodel 单独模块调用时为 alone,是否似乎单独调用取决于misIniConfig.xml中conf_appType 属性,1为平台,0为单独调用。

工具栏参数

  • needSubscribe 是否显示订阅按钮:不设置时默认为yes

  • needImportExcel 是否需要导入excel:不设置时默认为yes

  • needPage 是否需要分页:不设置时默认为yes

  • needPageMark 是否需要分页按钮:不设置时默认为yes

  • toolbarLocation 工具条位置:不设置时默认为top。top:上端 bottom:底端 none:无工具条

  • needPrint 是否需要打印按钮:不设置时默认为no

  • flashPrint 打印方式(是否使用flash打印):可以选择Flash打印,对应属性值为yes,默认为Flash打印;可以选择Applet打印,对应属性值为no;也可以选择HTML打印,对应属性值为html。

  • needDirectPrint 是否需要直接打印按钮:不设置时默认为no

  • needSaveAsExcel 是否需要导出Excel按钮:不设置时默认为yes

  • needSaveAsPdf 是否需要导出Pdf按钮:不设置时默认为yes

  • needSaveAsWord 是否需要导出Word按钮:不设置时默认为yes

  • needSaveRemote 是否需要远程导出按钮:不设置时默认为yes

  • needSaveAsCsv 是否需要导出csv按钮:不设置时默认为yes

  • needSaveAsText 是否需要导出txt按钮:不设置时默认为yes

工具栏参数(高级设置)

  • needDebug 是否需要导出debug按钮:不设置时默认为no

  • extendButtons 自定义按钮:工具栏添加按钮

报表显示区域参数

  • needScroll 是否锁定表头:不设置时默认为yes

  • resize 是否可以拖拽报表单元格宽高:不设置时默认为no

  • needLinkStyle 是否使用自定义超链接样式:不设置时为no,使用平台默认超链接样式 如果需要自定义超链接样式,在mis2\custom\vrsr vr_ui.css下增加如下样式设置: a{color:blue;text-decoration: underline;}

  • reportAlign 报表位置对齐:不设置时默认为left。包含属性left、right、top 、middle 、bottom

  • allowedFormatAdjust 是否导入排序和换列的JS:不设置时默认为空。colheadsort:排序 ;colheaddrag:换列 ;都要引入的话中间用 | 分隔。 实现排序功能需要报表表头区设置html事件为 “sortable=’true’” ,数据区html事件为 “exchangeable=’true’” ; 实现换列功能需要报表表头区设置html事件为 “dragable=’true’” ,数据区html事件为 “exchangeable=’true’”

  • autoRefresh 是否自动刷新:整数,不设置时默认为yes(默认30秒)

  • fastShowPage 是否快速展现:不设置时默认为yes,快速展现说明可参考 快速展现。

报表显示区域参数(高级设置)

  • width 报表分页宽度:整数,单位为px,负数表示无穷大,不设置时默认为0。

  • height 报表分页高度:整数,单位为px,负数表示无穷大,不设置时默认为0。

  • paddingLeft 报表展现页面左边距:整数,单位为px,整数表示右移,负数表示左移。默认为15px,即右移15个像素。例如:paddingLeft=20

  • paddingTop 报表展现页面上边距:整数,单位为px,整数表示下移,负数表示上移。默认为5px,即下移5个像素。例如:paddingTop=20

  • scale 报表缩放比例: 实数,不设置时默认为1

  • title 页面标题:报表展现页面标题,不设置时默认显示为resName的值。可以通过该参数手动设置该值。

  • reportAreaWidth 报表展现区域宽度:不设置时默认为0。整数,象素值.或者百分数,如80%

  • reportAreaHeight 展现报表区域高度:不设置时默认为0。整数,象素值.或者百分数,如80%

打印导出参数

  • excelPageStyle 存为Excel时的分页方式,不指定此属性值,则系统弹出对话框让用户选否1复杂、报表组0(不分页)或1(分页)

  • flashPrint 使用flash打印:默认为yes,no为Applet打印方式。

  • isNeedFormula 导出excel是否导出公式:不设置时默认为0。0不导出、1导出

  • excelFormat 导出excel的格式:不设置时默认为2003

  • wordFormat 导出word的格式:不设置时默认为2003

  • pdfExportStyle 存为PDF时,导出的文件分页方式及导出类型,导出类型分为图形方式及text方式。否text,0复杂、报表组属性值格式为: “文件类型,是否分页”.文件类型取值为:graph: 将文字导出为图形方式.text:将文字导出为文本方式.1表示要分页,0表示不分页。

打印导出参数(高级设置)

  • remoteSaveHome 远程导出路径,远程导出时导出文件存放的路径。通过文件路径选择弹出框,自定义远程导出路径。

  • appletJarName 报表打印的applet文件名:不设置时默认为runqianReport4Applet.jar、dmGraphApplet.jar、appletPatch.jar、flex-messaging-core-2.0.jar

  • saveAsName 报表导出另存为时的文件名,可自定义报表导出时的文件名称

  • dispRatio 导出excel时显示比例属性:不设置时默认为100

通用查询参数

  • showSelectedFilters 查询面板是否显示已选条件:不设置时默认为yes

  • hiddenReportAfterShow 报表展现后是否收起通用查询面板:不设置时默认为no

  • defaultPackupQryPanel 用于控制首次预览带参数表单或通用查询的报表时,是否显示通用查询面板和参数表单

  • hasQrPanle 是否隐藏查询面板:不设置时默认为no。DBD特有参数 DBD参数,DBD中展现时需要收起查询面板

  • autoDisplay 是否自动显示报表:不设置时默认为0。0:自动显示报表,1:不自动显示报表(有通用查询时不自动显示报表)

  • commonQueryLocation 通用查询面板位置:不设置时默认为top。top:上端; bottom:底端; left:左端; right:右端

  • maxWidth 查询面板最大宽度,不设置时默认为800

  • btnDisTime 查询按钮禁用时间:不设置时默认为30。复杂、报表组、分组、交叉 点击查询按钮之后按钮不可用,btnDisTime秒之后按钮出现,用于防止数据量过大报表未加载完成多次重复发出报表请求

通用查询参数(高级设置)

  • commonQueryPath 通用查询文件路径。通用查询json文件所在路径。

  • commonQueryJson 通用查询结果json:json串,配置该结果串后可以直接查询出报表结果(不展现查询面板和条件值的设定)

  • configProcessor 通用查询预处理类:不设置时默认为no。

移动端展现参数

  • rate 分辨率:不设置时,默认为800*480。新建手机报表时用户可以根据移动应用客户端的分辨率进行重新选择或者自定义

  • scale 分辨率自适应:不设置时,则按原始分辨率。新建手机报表时用户也可以根据需要重新选择分辨率。

  • backColor 报表底色:不设置时,默认为#FFFFFF。客户端报表底色是报表在移动设备上展现时,当报表不能完全填充屏幕大小而出现了空白区域,该空白区域所显示的底色

填报参数

  • keyRepeat 是否使用填报数据主键控制功能:不设置时默认为no

  • validOnSubmit 提交填报时是否校验数据有效性:不设置时默认为yes

  • validOnShow 展现填报表时是否校验数据有效性:不设置时默认为no

  • autoHideEditor 编辑控件是否自动隐藏:不设置时为yes

  • importExcelAppend 导入excel时是否新加行:不设置时默认为yes

  • promptBeforeUnload 离开页面时提示提交数据:不设置时默认为no

  • promptAfterSave 提交后是否弹出确认框:不设置时默认为yes

  • backAndRefresh 填报完成后是否刷新报表:不设置时默认为yes

  • submitTarget 填报完成后刷新方式:不设置时默认为_self

填报参数(高级设置)

  • inputListener 填报监听类

  • submitAsync 控制提交数据的ajax请求是异步还是同步,并根据该值返回提交成功与否的标志。不设置时默认为true,不返回标志。 设置为false时:请求为同步方式,调用rptObj_report1.submit()方法,返回是否填报成功。适用于开发者自行调用该方法提交并处理提交未成功的情况。 设置为true时:请求为异步方式,调用rptObj_report1.submit()方法,不会返回是否填报成功。填报如失败,则会异步跳转到inputExceptionPage页面(inputExceptionPage是vr的一个标签属性,可以设置一个jsp页面;如果不设置会提示提交数据失败)。

数据分析参数

  • showGraphOnly 是否只显示统计图:不设置时默认为yes(数据分析报表)

  • exportPageCount 数据分析类报表导出行数:不设置时默认为5000

  • fastPivot_pageCount 数据分析类报表每页展现行数:不设置时为40

大数据量参数

  • bigData 是否使用大数据分页展现,默认为no。设置该参数后,报表展现标签类型为html,具体标签种类为big

  • dsName 用于指定报表中的大数据量数据集,只能指定一个。没有设置时,默认使用报表的第一个数据集

  • autoMode 是否使用自动分页:不设置时默认为yes。大数据量展现标签特有

  • totalCountExp 总记录数:Big标签返回的值是一个整型数据。如用query执行一个count的sql

  • pageCount 每页记录数,分页后每一页包含的记录数:不设置时默认为10。Big标签,分组整数

  • countPerExportPage 导出时每次取数的条数:整数,不设置时默认为10。Big标签特有

  • cachePageNum 报表每次计算页数:不设置时默认为5。Big标签特有整数

  • exportExcelOneSheet 是否导出到excel的一个sheet页:不设置时默认为no。Big标签特有

  • countPerExportPage 导出时每次取数的条数:整数,不设置时默认为10。Big标签特有

折叠报表参数

  • isCollReport 是否是折叠报表:不设置时默认为 no

  • collReportType 折叠报表类型:不设置时默认为 0。 0:不定层级;1:树形;2:多个报表

  • customJsController 折叠报表设置类型:默认为空。为json格式,行折叠报表设置为:{“treeReport”:”true”};行折叠异步加载报表设置为:{“treeReportAsync”:”true”};列折叠报表设置为:{“colCollapse”:”true”};自定义分组报表设置为:{“customGroup”:”true”}。

参数表单参数

  • paramProcessor 参数表单监听类:不设置时默认为No。V4参数表单特有参数

  • reportParamsId 参数池ID:复杂、报表组、v4 报表查询时会将参数名和参数值存放到参数池中,这些参数对应一个参数ID;通过参数ID可以取到报表对应参数值

  • arg 参数表单文件名:V4参数报表 指定V4参数模板文件,此路径为相对于reportConfig.xml中reportFileHome的路径

  • showParam 是否显示参数表单:不设置时默认为TRUE。仅适用于含参数表单的V4报表

报表组参数

  • asyncLoad 报表组异步加载:不设置时默认为 yes

  • settings 报表组settings属性 :格式:{sheets:{sheet1:{inputListener:\”com.runqian.xxx\”,needPage:\”yes\”},sheet2:{needPageMark:\”no\”}}} 可设置属性值,其中前三个如果没有定义的话,就为空值,后面的9个属性如果没有在settings里定义的话,就沿用报表组标签中设置的属性值

其它设置参数

  • showReportListener SR实现类类名:调用SR监听类进行业务逻辑处理上,通过配置该参数进行实现类的调用。具体参见:报表展现标签与API -> showReportListener

  • viewReportListener VR实现类类名:调用VR监听类进行业务逻辑处理上,通过配置该参数进行。实现类的调用。具体参见:报表展现标签与API -> 报表计算客户化

  • schemaId 模式ID:报表展现时使用的的模式ID,具体参见:模式相关说明

  • cssFiles 报表样式文件名称:报表展现页面样式控制的样式文件名称,以及报表中全局样式使用的样式文件名称。使用该参数可以实现页面样式切换,达到动态换肤的效果。当需要设置多个样式文件时以分号分隔。如:cssFiles=test1.css;test2.css。

  • jsFiles js文件的引用,存储展现页面中使用到的JS方法的文件名称。可以配置多个文件,以分号分隔。

  • srCssFiles SR引入CSS文件组:复杂、报表组、分组、交叉 SR页面引入的css文件,可以配置多个文件,以分号分隔

  • srJsFiles SR引入JS文件组:复杂、报表组、分组、交叉 SR页面引入的JS文件,可以配置多个文件,以分号分隔,可参考JS事件 。

  • encodeAllParam 是否对所有参数解密展现:参数值为yes或no,为yes时,对所有参数进行解密后展现,为no时不对参数进行解密,默认值为no。具体参见URL参数加解密。

  • encodeParamName 需要进行解密的参数名:值为需要解密的参数名称,多个参数名之间用逗号分隔。具体参见URL参数加解密。

  • showPageCallBack 展现回调函数

  • errPage 异常信息的显示页面:不设置时默认为/mis2/error.jsp

  • formFilePath 自定义查询form的jsp文件:自定义查询jsp页面的文件路径,相对路径,相对于应用根目录(reportmis)

  • showType 报表展现标签类型:用于手动指定报表使用哪个标签库文件来进行报表展现。不设置时默认自动根据报表类进行判断选择标签展现,可以手动设为viewReport和html。值为viewReport时,使用viewReport.tld中的标签进行展现;值为html时使用runqianReport4.tld中的标签进行展现。

  • vrType 具体的标签种类:用于手动指定报表具体使用哪组标签进行报表展现。不设置时默认自动根据报表类进行判断选择标签展现。与showType参数结合使用,showType为viewReport时,取值为report,input,html,group;showType为html时取值为html,group,big。

模式说明

  • 功能与用途

模式是为了简化报表展现URL,减少标签参数输入与设置所提供的一种展现设置方法。在实际应用中,可以将一组标签及其属性值保存为一个模式。在报表展现时,直接调用模式来进行报表展现。

在使用模式进行展现控制的基础上还能够通过标签来进行控制。下面举例说明模式的作用及使用方法。

例如:

平台中有一部分大数据量报表,达到百万、千万甚至更大的数据量。在对这类报表进行展现时,需要使用分页计算标签来快速展现。

分页取数计算标签需要设置的标签属性不止一个,这时为了方便调用进展现可以进行如下设置:

  • 将分页计算标签的标签属性:showType=html;vrType=big;autoMode=yes;totalCountExp=200000;pageCount=50;cachePageNum=40;cellsNum=0保存为模式1001。
  • 在需要展现此类大数据量报表时,只需要调用模式1001,即可快速展现大数据量报表。而无需设置众多标签属性值。当需要修改或添加其中某个属性值时,只需要在模式的基础上设置其它标签属性的值即可。如:…&schemaId=1001&autoMode=no。

  • 使用说明

模式使用时,先自定义一组属性,可在\mis2\custom\vrsr\SRParamSchema.json 文件中进行定义。完全相同的属性组,在模式池中只保存一份。

设置一种展现模式,设置其它展现参数,输入报表资源ID或名称,当模式和参数中都包含同一属性时,以参数设置的属性值为准。

在进行模式调用时,直接使用schemaId作为模式ID的参数名进行调用即可,模式的设置如下:

[ { “schema”: “1001”, “params”: “showTpe=html&vrType=big&autoMode=yes&totalCountExp=200000&pageCount=50&cachePageNum=40&cellsNum=0” } ]

调用此模式可在展现设置里设置模式为1001,也可在URL后拼接&schemaId=1001。

JS事件

当用户希望使用通用展现页面展现报表过程中时某些操作触发自定义的JS事件,可以通过添加SR事件来实现。

用户可添加SR事件,添加的事件方法会在对应时候触发。

报表展现页面中JS事件调用方法及详细说明如下:

  • 调用方法

通用把表展现页面展现报表时,传递参数srJsFiles=js文件名

在js文件中使用“showReportObj.bind(‘事件名称’, 方法名称,this);”的格式对报表js事件进行调用

  • 事件名称:不相同的事件名称其触发条件不同,具体的事件名称会在下面详细说明。
  • 方法名称:为标签中定义的js方法名,例如:test1。

  • 详细说明

事件名称及对应触发条件: 展现设置 - 图4

  • 示例代码

在报表预览点击查询按钮时触发test1.js中的callBack_loadSuccess方法。

showReportObj.bind('doQuery',callBack_loadSuccess, this);

URL参数加解密

通过url传递参数时可以对参数加密后再进行传递。在报表展现时再对URL中参数进行解密。对URL进行加解密时,既可以选择对URL中所有参数进行加解密,也可以只对部分参数进行加解密。

对参数加解密时有部分参数比较特殊:

1、使用conf_showReportClass为com_runqianapp_showReport_ShowReportGEZ进行展现时(平台默认展现方式),默认会对报表名称、报表路径、资源名称进行加解密展现。

使用conf_showReportClass为com_runqianapp_showReport_ShowReportVR进行展现时默认不对任何参数进行加解密展现。

2、对所有参数进行加解密展现时,有三个特殊参数,由于是在报表URL解密前进行调用,所以不能对它们进行加密:conf_showReportClass、schemaId和resID。

URL参数加密
  • JS中加密方法:

1、在JSP中引用Base64.js 2、调用bases64方法对URL中所有参数值进行加密 3、传递加密后的URL

示例代码如下:

<script type="text/javascript" src="<%=request.getContextPath() %>/mis2/gezComponents/jsUtils/Base64.js"></script>
  <script language="javascript">
  function show_Report(){
  var base64 = new Base64();
  var fid= base64.encode("10052");
  var fname= "5ZCE5Zyw5a6i5oi36ZSA5ZSu5oOF5Ya157uf6K6h6KGo";
  var type=base64.encode("18");   window.open("http://192.168.0.107:8800/reportmis/mis2/reportcenter/showReport1.jsp?  resID="+fid+"&resType="+type+"&resName="+fname+"&resIdForTab="+fid);}</script>
  • 报表中加密方法

使用encode()函数进行加密,加密的内容既可以是值,也可以是表达式。

例如:encode(demo_订单.货主地区)。

URL参数解密
  • 对所有参数解密

当展现报表的URL中所有的参数都进行过加密时,可以通过设置encodeAllParam=yes来对所有参数进行解密,encodeAllParam默认为no,默认不对所有参数进行解密后展现。

resID=”MTAwNTI,&resType=MTg,&resName=5ZCE5Zyw5a6i5oi36ZSA5ZSu5oOF5Ya157uf6K6h6KGo&resIdForTab=MTAwNTI,&encodeAllParam=yes

  • 对指定参数解密

    如果传递展现报表的URL时,只对其中部分参数进行了加密。那么在报表展现时需要指定,进行解密的参数名。设置格式为:encodeParamName=参数名,多个参数名之间用逗号分隔。

    示例:

arg1=5piG5piO&encodeParamName=arg1