Home
JavaEE
Java GUI
Framework
DHtml
Android
插画
教程下载

ATOM 2.0   RSS 2.0
Add to iGoogle Add to Live.com
  • 今天终于收到金山快盘的邀请码
  • 利用最短ie判断在不同浏览器上播放背景音乐
  • 对插画方面的一点感受与回忆
  • 网上看到的两个死里逃生的图片,记录一下
  • 今天开通了糖果社区,附几个激活码
  • 终于可以实现我的多个微博实时同步了
  • 备案和现场拍照就是对站长们的瞎折腾
  • 对Android在互联网应用开发上的纠结
  • 收藏夹中的书签都没了,决定写一个自已的书签管理器
  • 测试自已整理的本机的webapps客户端发送博文能否成功。
  • 今天开通了糖果社区,附几个激活码
  • 终于可以实现我的多个微博实时同步了
  • 备案和现场拍照就是对站长们的瞎折腾
  • 昨天借用飞姐的佳作做的一个浪漫爱情网页
  • 有几个腾讯微博的邀请码(实时更新)
  • BB的网站移到了GAE-JAVA上了
  • 一个基于GAE Python Web.py和JQuery的留言本程序
  • 类许愿墙的一个告白网站和一个电子书网站
  • Android中用Bitmap获取图片中某个区域的图象
  • 对暴力破解带密码的QQ相册的可行性分析
  • 对淘宝web旺旺版一些通讯接口的研究

客户端显示JasperViewer并在Jasperview的applet中加超链接

posted by David Chen at July 13, 2009, 3:23 AM    

项目需求:
在客户端弹出jasperviwer的applet,使得客户端可以随意导出为多种格式,同意也省了代码的开发,直接用JasperReport自带
的applet就行了。在客户端弹出jasperviewer在我的旧文章中有说明,现在说的是如果在jasperviwer中弹出另一个applet,
因为看源码,如果HyperLink是REFERENCE,那么是什么也不做的,现改为点击REFERENCE的HyperLink后,弹出新的applet.

在用ireport设计报表的时候, 选中texf-field的属性,然后输入HyperLink的相关内容,
但是在用applet的jasperview是,报表中的链接如果都是外部链接的话,都没反应,,这是因为:
net.sf.jasperreports.view. JRViewer
public void gotoHyperlink(JRPrintHyperlink hyperlink)  中有如下代码
    switch(hyperlink.getHyperlinkType())
        {
        case JRHyperlink.HYPERLINK_TYPE_REFERENCE :
            { // 这里并没有对外部链接进行处理
                if (hyperlinkListeners != null && hyperlinkListeners.size() > 1)
                    {
                        System.out.println("Hyperlink reference : " + hyperlink.getHyperlinkReference());
                        System.out.println("Implement your own JRHyperlinkListener to manage this type of event.");
                }
        break;
}

所以要修改源码,我的做法是:
重新写一个 jasperViewe1和一个jrViewer1放在 net.sf.jasperreports.view包中,jrViewer1的 gotoHyperLink函数体为:

public void gotoHyperlink(JRPrintHyperlink hyperlink) {
    super.gotoHyperlink(hyperlink);
    if(hyperlink.getHyperlinkType() == JRHyperlink.HYPERLINK_TYPE_REFERENCE) {
        //log.info("Hyperlink reference : " + hyperlink.getHyperlinkReference());
        try {
            JasperPrint jprint = (JasperPrint) JRLoader.loadObject(new URL(hyperlink.getHyperlinkReference()));
            JasperViewer.viewReport(jprint, false);
//通过这句话, 在jasperView的applet上点击链接时,将会弹出一个新的applet窗口,显示别的内容
        } catch(Exception ex) {
                JOptionPane.showMessageDialog(this, ex.getMessage());
        }
    }
}

JasperViewer1 代码, 因为 JasperViewer中的代码的 JRViewer 是不能set进去的,,所以必须重一写一个JRViewer1类,
JRViewer对象改为 jrView1对象… 这样才行,然后在applet初始的时候调JasperViewer1来弹出JasperViewer ,

用以上方法,就可以实现在 jasperViewer的applet报表中弹出别的报表,即可以在报表中加外部报表的链接了。
Labels:   Java    JavaEE    JasperReport  
Trackback:   http://cwq.iou1314.com/jasperviewer-applet_a18
微博最近更新
[2010-07-31 16:33]    今天下午又将昨天赢的哎齐出来了,郁闷,一进一出,要有入没出才行啊。
[2010-07-31 07:40]    昨晚又去啊泄度开台,呢次赢左差唔多3旧水,下周星期一请假,回郁南去转社保和入党资料。
本站内的任何文章,只代表个人意见或学习所用,如有版权声明,请尊重作者的劳动成果,在转载时请保留原始链接并注明出处。
Power by David's PhpCms, © 2007 - 2010 CWQ.IOU1314.COM All Rights Reserved.