已阅读5页,还剩86页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
报表编辑过程报表的部署过程1.首先,如果是第一次部署报表,首先拷贝报表引擎所需的文件: 从%安装路径%DeploymentJSP下拷贝Ming.tld到Web应用程序的WEBINF目录下 从%安装路径%DeploymentJSP下拷贝mr.jar(文件名可能不同,可能如mr_Trial.jar等)到Web应用程序的WEBINF/lib目录下,如果lib目录不存在则创建。 选择一个目录作为报表根目录(RootPath),如/YourApp/Reports/,从%安装路径%DeploymentJSP下拷贝ReportCenter.jsp到报表根目录/YourApp/Reports/。 从%安装路径%DeploymentJSP下拷贝文件MREp到目录/YourApp/WEB-INF/下。MREp文件中包含一个MRViewerVersion参数,类似MRViewerVersion=2,1,1,0 ,“2,1,1,0”描述的是报表浏览器的版本号码,浏览器升级之后,需要在此指定新版本的版本号,这样客户端才可以自动下载新版本的浏览器插件。关于配置文件MREp中参数的详细说明请参考配置文件里面注释。 从%安装路径%Deployment下拷贝Viewer文件夹到报表根目录/YourApp/Reports/下,Viewer文件夹中有MRViewer.cab文件,这就是报表浏览器插件。2.拷贝已经用报表设计器设计好的报表模板到报表根目录或者根目录下的子文件夹下面注意:如果你的应用程序是YourApp,那么你可以指定这个应用程序YourApp下的目录“/Reports/”作为你的报表的根目录。即:“/Reports/”。3. 创建JSP页面,嵌入报表浏览器、为报表准备数据:新建一个JSP文件,用于显示报表,如FirstReport.jsp,加入下面代码: 引用Tag Library 引用需要的包 创建MREngine对象 MREngine engine = new MREngine(pageContext); 设置报表根路径 engine.setRootPath(/Reports/);注意此处不应该包含应用程序的虚拟目录“YourApp”,而是从虚拟目录的根开始,应该是“/Reports/”。 添加数据集在数据组件中添加一个数据集,其中titles用来指定数据集名称,这个名称与用报表设计器设计报表模板时指定的数据集名称对应;rs可以是一个com.ming.webReport.DataRecord和com.ming.webReport.MRDataSet,或者java.sql.ResultSet,包含了报表所需数据: engine.addMRDataSet(titles,rs); 1. 可以将其他类型的数据转换成MRDataSet对象,然后使用addMRDataSet添加数据集,下面的代码展示如何将一个java.sql.ResultSet转换为com.ming.webReport.MRDataSet(addMRDataSet方法可以直接使用ResultSet,以下代码仅作为演示): ArrayList ary = new ArrayList();while(rs.next() /rs为一个现有非空的ResultSet对象DataRecord rec = new DataRecord();for(int i=1;i=rs.getMetaData().getColumnCount();i+)Object val = rs.getObject(i);rec.setValue(rs.getMetaData().getColumnName(i),val);ary.add(rec);MRDataSet mrds =new MRDataSet();mrds.addRows(mrds);engine.addMRDataSet(titles,mrds);如果报表用到的数据集超过一个,则可以继续加入这些数据集: engine.addMRDataSet(roysched,rs2); 如果数据集之间存在关联,用下面代码设置数据集之间的关联,其中titles是主数据集的名称,roysched是子数据集的名称,而title_id=title_id是两个数据集之间的关联表达式,表示使用各自表中的title_id字段对应关联。如果关联字段超过一组时用分号(;)分隔: engine.addRelation(titles, roysched, title_id=title_id);2. 如果从数据库从数据库查询出来的数据被封装成了一个对象,并返回。报表并不支持对象显示数据,以下方法可以将对象转换成DataRecord数据集: /o为需要转换成DataRecord数据集的对象 /c为o对象运行时类public MRDataSet objcetToDataRecord(HttpServletRequest request,Object o,Class c) throws Exception DataRecord rec = new DataRecord();MRDataSet mrds = new MRDataSet();BeanInfo beanInfo = Introspector.getBeanInfo(c);PropertyDescriptor descriptors = beanInfo.getPropertyDescriptors();for (PropertyDescriptor descriptor : descriptors) Method method = descriptor.getReadMethod();Object obj = method.invoke(o, new Object );rec.setValue(descriptor.getName().toUpperCase(), obj);mrds.addRow(rec);return mrds;3. 如果从数据库从数据库查询出来的数据被封装成了一个对象集合,并返回。报表并不支持集合显示数据,以下方法可以将该集合转换成含有DataRecord数据集的集合:/list为需要转换的集合/ 为o对象运行时类public List buildDataRecord(List list,Class c)throws Exception List ary = new ArrayList();BeanInfo beanInfo = Introspector.getBeanInfo(c);PropertyDescriptor descriptors = beanInfo.getPropertyDescriptors();for (Object o : list) DataRecord rec = new DataRecord();for (PropertyDescriptor descriptor : descriptors) Method method = descriptor.getReadMethod();Object obj = method.invoke(o, new Object );rec.setValue(descriptor.getName().toUpperCase(), obj);ary.add(rec);return ary;4. 有时候我们需要一些空记录,以下方法是创建一个包含n条空记录的数据集:public ArrayList createEmptyDataRecord(int n)ArrayList ary = new ArrayList();tryDataRecord recs = new DataRecord();for(int j=0;jn;j+) for(int i=0;i”按钮将这些数据集加入右侧列表; 需要屏蔽某些字段时,在右侧列表选中字段,选中下方的“从列表中排除字段”复选框,字段图标将以灰色显示,此时在“数据字段窗口中”该字段将不会显示。 在“别名”文本框中可以为数据集或字段指定别名,在“数据字段”窗口中将以指定的别名来标识该数据集或字段。 Band数据源”页“Band数据源”页主要用来为Band数据源指定别名和屏蔽一些当前报表不用的Band数据源。当右侧列表为空时表示使用所有Band数据源, 可以将当前报表使用的Band数据源添加到右侧列表中,并为其指定别名,这样在为Band选定数据源时就只按别名显示选中的项目,而其他Band数据源都被屏蔽不显示。合并数据字典合并数据字典也就是向当前数据字典添加其它的数据字典定义文件,数据字典文件必须是用如意报表(Ming-WebReport)工具导出的数据字典文件。新的数据字典定义和现有数据字典进行合并时会根据变量分类目录进行相应合并。 菜单项【报表数据字典合并数据字典】导入数据字典导入数据字典也就是先清空当前定义的数据字典,代替为导入的数据字典定义文件,数据字典文件必须是用如意报表(Ming-WebReport)工具导出的数据字典文件。 菜单项【报表数据字典导入数据字典】导出数据字典导出数据字典也就是把当前定义的数据字典导出到一个数据字典文件,生成的数据字典文件还可以被如意报表(Ming-WebReport)工具设计的其它的报表导入或合并。导出的数据字典文件是以.MRD为扩展名的二进制文件。 菜单项【报表数据字典导出数据字典】导入报表模板向当前报表项目导入报表模板。一个报表模板可以被兼容版本的其他如意报表(Ming-WebReport)报表项目重用,还可以对部署好的报表进行回收调试。触发导入报表模板的操作后,会弹处一个选择报表模板的窗口,选择报表模板时可以同时选择多个报表模板进行导入。 菜单项【文件导入报表模板】 【在报表节点或报表对象节点按右键快捷菜单导入报表模板】导出数据模板从当前报表项目中将报表对象导出成独立的报表模板文件,导出的报表模板可以被其它如意报表(Ming-WebReport)项目导入重用,进行报表部署时必须将报表对象导出成报表模板文件。可以选择一个报表文件夹节点进行导出,该操作将把本节点包含的所有报表对象导出倒磁盘上,而且导出的报表文件的目录结构保持项目树中的层次结构。 菜单项【文件导入报表模板】 【在报表文件夹节点或报表对象节点按右键快捷菜单导出报表模板】 其它 【选中报表项目树中的某个文件夹节点之后可以在设计器的右侧当前层的报表文件夹和报表模板列表中选择要导出的模板】报表远程上传将制作完成的报表模板上传到远程的目标服务器上,实现直接的动态部署报表模板。目标服务器可以是局域网上的服务器或本机的指定文件系统路径,也可以是Internet广域网上的目标服务器。向局域网上的服务器上传报表模板采用共享文件夹的方式; 报表远程上传采用FTP文件传输协议实现。 要实现上传操作首先需要对上传参数进行设置:菜单项【工具远程设置】图4.6.17-1远程设置各项属性参数设置如下:l l 无:缺省选项,表示不应用远程上传报表的功能;l l 本地/局域网:选择本机或局域网上其他计算机共享的发布报表模板的文件系统路径;l l FTP: 远程主机:设置远程服务器的域名或IP地址; 端 口:设置远程FTP服务器的FTP协议端口; 用户名和密码:设置FTP用户的登录用户名和密码; 匿名登录:指定是否采用匿名登录,如果选中该选项则“用户名”参数自动变成anonymous,并且只读,“密码”参数清空,只读; 初始目录:参数设定报表模板上传到服务器时的根目录,设置的目录在远程服务器的磁盘上是相对于远程服务器的FTP发布目录的; 使用代理服务启:如果设计报表的客户登录远程服务器需要通过代理服务器,则需要选中该选项,设置代理服务器参数,下面的代理服务器参数缺省为灰色,不可写,只有选中了本选项才可以进行代理服务器参数设置; 代理服务器:指定代理服务器的IP地址或别名; 代理端口:指定代理服务器的端口号。 远程报表上传操作:报表设计客户端与远程服务器成功建立连接之后就可以进行报表的远程上传操作了(如果远程连接没有建立则上传功能无效),在项目树的报表文件夹节点或报表对象节点按右键,弹出快捷菜单,选择“上传”立即开始上传选中的报表文件夹(连同文件夹下面的所有报表对象)或选中的报表对象。注意:报表对象或报表文件夹上传到服务器端时将保持项目树中自“报表”节点开始的完整的目录层结构,上传到服务器端后将自动从“远程设置”中设置的根目录开始检查远程服务器的文件系统目录结构,如果存在本目录层结构,则根据对应的目录结构上传,如果不存在本目录层结构则从根目录开始自动创建目录层结构,然后上传。自动生成代码应用V2.5以前版本的如意报表工具,用户需要手工开发部署报表模版的网页程序,当然用户也可以自行开发报表模版自动调配系统以避免每个模版文件都对应独立的网页程序文件。如果客户没有自行开发报表模版自动调配系统,则需要为每个报表模版开发对应的网页程序,所以为了帮助客户快速部署报表模版文件,如意报表的报表设计器特提供了自动生成网页程序代码文件的功能,也就是说客户根据自己的Web应用程序环境,开发好网页程序的模版文件之后,设计器就可以自动根据指定的网页程序模版文件来生成每个报表模版所对应的网页程序文件。 在报表设计器中实现自动生成代码文件的操作主要包括两个操作步骤:首先根据WEB应用程序环境编写代码文件的模版文件,即扩展名为MCT的文件,并拷贝MCT文件到当前报表设计器程序所在目录的CodeTemplets文件夹中;然后就可以在报表设计器中进行代码文件的生成操作了。 编写代码文件的模版文件: 代码文件的模版文件采用标准的XML文件格式,模版文件必须结合当前WEB应用程序的开发架构和运行环境环境来编写,必须保证根据此模版文件生成的网页代码文件在当前的Web应用程序中是可以正确运行的;另外模版文件的编写方法与如意报表工具的版本无关,也就是说,ASP或者JSP代码文件的模版文件的编写方式都是一样的。下面举例说明ASP代码文件的生成过程:l 根据当前WEB应用程序环境确定正确的代码文件的程序代码:这一步就是定在当前WEB应用程序的环境下,手工编写能够正确显示报表模版的网页程序,然后根据这个网页程序来确定代码文件的模版文件的格式。假设手工编写的能够正确运行的代码文件的程序如下:主从报表示例body font-family: 宋体,Arial; font-size: 10.2pt; background-color:#FFFFFF; margin-left: 0; margin-top: 0; l 根据该程序文件开发代码文件的模版文件代码如下:(2005)Ming Cybertech Co., Ltd.ASP Code Template &_% set conn = Server.CreateObject(ADODB.Connection) conn.Open Application(Connection_String) set Engine = Server.CreateObject(MREngine.Engine) Engine.SetRootPath Application(RootPath) strSQL = set rs = Server.CreateObject(ADODB.RecordSet) rs.Open strSQL, conn,1,1 Engine.AddMRDataSet , rs Engine.AddRelation , , Engine.AddReport Engine.AddLinkReport Engine.Bind Engine.Bind Basic/SimpleList conn.Close%主从报表示例body font-family: 宋体,Arial; font-size: 10.2pt; background-color:#FFFFFF; margin-left: 0; margin-top: 0; %=Engine.CreateViewerEx(Id=;Width=;Height=&viewerHeight&;Simple=&simp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快递网点运营方案
- 鲜花同城活动策划方案范文
- 青少年心理健康公益活动方案
- 母婴类方案策划书3
- 2025年温州平阳县县属国有企业公开招聘61人参考题库含答案详解(完整版)
- 2025广西北海市选聘两新组织党建工作组织员32人参考题库及参考答案详解1套
- 2025年樟树市特聘动物防疫专员招募17人参考题库含答案详解(模拟题)
- 2025广东湛江麻章区市场监督管理局补充招录协管员1人参考题库附答案详解(a卷)
- 2025广东云浮市郁南县事业单位专项招聘“三支一扶”服务期满考核合格人员24人参考题库及答案详解(易错题)
- 2025年黑龙江省省直事业单位招聘考试真题试卷 公共基础知识含答案详解(培优a卷)
- 2025摄影工作室员工合同模板
- 2025年班组化工安全培训试题及答案
- 多媒体教室设备维护与管理操作手册
- 2025人教版九年级全一册Unit1-Unit7期中作文复习专项范文及练习
- 雨课堂在线学堂《现代美学》单元考核测试答案
- 云南省曲靖市实验中学2026届九上物理期中教学质量检测试题含解析
- 网络安全等级保护整改详细方案
- 贵州国企招聘2025中国联通贵州省分公司招聘笔试历年参考题库附带答案详解
- 2025年南京入团考试试题及答案
- 100以内加减法完整版1000道含答案可打印
- 2025贵州黔南州荔波县县直机关事业单位考调工作人员15人笔试考试备考题库及答案解析
评论
0/150
提交评论