birt报表动态切换数据源解决方案.doc

birt报表动态切换数据源解决方案.doc

ID:49651578

大小:29.50 KB

页数:5页

时间:2020-03-03

birt报表动态切换数据源解决方案.doc_第1页
birt报表动态切换数据源解决方案.doc_第2页
birt报表动态切换数据源解决方案.doc_第3页
birt报表动态切换数据源解决方案.doc_第4页
birt报表动态切换数据源解决方案.doc_第5页
资源描述:

《birt报表动态切换数据源解决方案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Birt报表动态切换数据源解决方案陈鸿 编写(一)通过library实现连接数据库管理1.理解library(库):可视化的报表开发环境。可以理解为,在使用创建报表的时候有很多的报表资源都会重复的使用,这样为了方便管理,可以将这些部分放在library文件里,这样其它报表只要是引用这些library文件即可。同时也方便了管理,例如当修改数据源的时候,只要修改包含数据源的library文件就可以了,而不必去一个个修改其它的报表文件。这些库可包含任何报表元素,比如样式、数据源、报表条目、脚本等等。2.创建library:增加到应用中用于运行报表,并可以把报表以各种形式导出,如E

2、xcel、HTML分页格式、PDF、RTF等。A.选新建LibraryB.可以看到新类似于创建报表文件的界面C.选择所需的驱动,并添加合法的数据源信息。D.创建数据源完成后,也可以继续创建数据集。3.使用libraryA.下面进行报表文件的制作,制作过程中会用到这个library文件。新建一个报表文件。在视图里选择LibraryExplorer,右击,添加刚才新建好的Library文件。添加完成后记得点上面的刷新。B.进行引用,首先确保DataExplorer和LibraryExplorer同时在界面里显示,之后便是将Library里的我们要用的数据拖拽到DataExplo

3、rer自己的报表Datasources中。便完成了引用数据源。如果Library中还有其它我们要引用的部分也是同样去操作。4.在java中修改birt报表library的数据源//修改.rptlibrary内的数据源信息publicvoidsetDataSource(StringrptdesignPath){DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();DocumentBuilderdb=null;InputStreamis=null;Stringdatasource=null;精选范本,供参考

4、!Documentdoc=null;StringEncodePsd=null;try{db=dbf.newDocumentBuilder();try{is=newFileInputStream(rptdesignPath);try{doc=db.parse(is);is.close();}catch(SAXExceptione){toPrint("SAXException");return;}catch(IOExceptione){toPrint("Can'treadfile["+rptdesignPath+"]");return;}}catch(FileNotFoundE

5、xceptione){toPrint("Can'tfoundfile["+rptdesignPath+"]");return;}}catch(ParserConfigurationExceptione){//TODOAuto-generatedcatchblock精选范本,供参考!toPrint("ParserConfigurationException");return;}//查找data-sources信息NodeListnodeList=doc.getElementsByTagName("data-sources");for(inti=0;i

6、Length();i++){Elemente=(Element)nodeList.item(i);NodeListproperties=e.getChildNodes();if(properties!=null){//得到oda-data-source部分信息Nodeproperty=properties.item(1);for(Nodenode=property.getFirstChild();node!=null;node=node.getNextSibling()){//得到driver、url、username、password四项的值,并重新设置if(node.g

7、etNodeName().equals("property")

8、

9、node.getNodeName().equals("encrypted-property")){Stringname=node.getAttributes().getNamedItem("name").getNodeValue();if(name.equals("odaDriverClass")){node.getFirstChild().setNodeValue(driver);}elseif(name.equals("odaURL")){nod

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。