壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 240|回复: 1

读取cognos生成图的方案

[复制链接]
发表于 2012/3/12 18:08:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
们现在有个报告模板的需求,客户可以下载一个word文档,对某些统计有图的展示情况,这些图我打算用cognos做,但是不知道怎样用java读取图,各位大侠要是有什么好办法

该贴已经同步到 xiaoerp的微博
 楼主| 发表于 2012/3/12 18:09:06 | 显示全部楼层
private String replaceLocalGraphicsInOutput(CognosServerConnectAL connect,
                        AsynchDetailReportOutput reportOutput, String savePath,
                        String partOfFileoutPutName, String compages) throws IOException {
                BaseClass[] bcGraphic;

                SearchPathMultipleObject graphicSearchPath = new SearchPathMultipleObject();
                graphicSearchPath.setValue(reportOutput.getOutputObjects()[0]
                                .getSearchPath().getValue());
                bcGraphic = connect.getCMService().query(graphicSearchPath,
                                new PropEnum[] { PropEnum.searchPath }, new Sort[] {},
                                new QueryOptions());
                Output out = null;
                if ((bcGraphic.length > 0) && (bcGraphic[0] instanceof Output)) {
                        SearchPathMultipleObject outSearchPath = new SearchPathMultipleObject();
                        out = (Output) bcGraphic[0];
                        outSearchPath.setValue(out.getSearchPath().getValue() + "/graphic");
                        BaseClass[] g = connect.getCMService().query(
                                        outSearchPath,
                                        new PropEnum[] { PropEnum.searchPath, PropEnum.data,
                                                        PropEnum.dataType }, new Sort[] {},
                                        new QueryOptions());

                        StringBuffer finalHtml = new StringBuffer();
                        String[] pages = reportOutput.getOutputPages();
                        String html = pages[0].toString();
                        String start = null;
                        String end = null;

                        String graphicFile = null;

                        // 替换html文件中img标签的属性
                        for (int i = 0; i < g.length; i++) {
                                String pictrueName = partOfFileoutPutName + "_" + compages + i
                                                + ".png";
                                graphicFile = savePath + "/" + pictrueName;

                                // 图表保存本地
                                File gFile = new File(graphicFile);
                                FileOutputStream fos = new FileOutputStream(gFile);
                                fos.write(((Graphic) g).getData().getValue());
                                fos.flush();
                                fos.close();

                                int index = 0;
                                index = html.indexOf("<img", 0);
                                start = html.substring(0, index);
                                end = html.substring(html.indexOf(">", index) + 1);
                                finalHtml.append(start + "<img src='" + pictrueName + "'>");
                                html = end;
                        }
                        finalHtml.append(html);

                        return finalHtml.toString();
                }

                return null;
        }

把返回的String写到文件即可.这样能把图片保存到本地,至于与word文档整合,这个没做过
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 23:44 , Processed in 0.009877 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表