让birt在ie10中跑起来

一、BIRT简介及安装 一、初识BIRT1.birt是什么?1.1 birt 释义1.2 birt 构成2. birt优势3.birt安装下载 1.本文主要初步了解birt报表工具,并进行安装工作。 2.在本文中你能从开始了解什么是birt,并且知道如何安装 3.报表官网:https://www.eclipse.org/birt/ 1.birt是什么? 1.1 birt 释义 官网原文:          An open source techn 阅读详情

最新版本的birt4.2.2,对于ie的支持仅仅到ie8,好在birt生成的报表是纯网页格式,在ie10里其实是可以显示的,只是在采用frameset方式显示由于birt提供的js版本比较老,所以在ie11,ie10或ie9上不能运行,这个时候开源的好处就来了,下面我介绍下如何进行修改

1:去官方下载property.js 1.7版,放到webcontent\birt\ajax\core\lib\ 里 ,记得原版要备份

2:打开 BrowserUtility.js,进行修改

10-40行左右,修改成如下:

this.isIE = this.__isIE();
		if (document.documentMode==11){
			this.isIE=false;
		}
		if ( this.isIE )
		{
			this.isIE6 = false;
			this.isIE7 = false;
			this.isIE8 = false;
			this.isIE9 = false;
			
			if (document.documentMode) {				
				if (document.documentMode >= 9) {
					this.isIE9 = true;
				}else 	if (document.documentMode >= 8) {
					this.isIE8 = true;
				} else if (document.documentMode >= 7) {
					this.isIE7 = true;
				} else {
					this.isIE6 = true;
				}
			}
			else if ( window.XMLHttpRequest )
			{
				this.isIE7 = true;
			}
			else
			{
				this.isIE6 = true;
			}
		}

3、打开 AbstractBaseReportDocument.js 121行左右,修改如下

if ( BrowserUtility.isIE6 || BrowserUtility.isIE7 || BrowserUtility.isIE8 || BrowserUtility.isIE9 || BrowserUtility.isOpera || BrowserUtility.isKHTML || BrowserUtility.isSafari)

4、打开 AbstractBaseReportDocument.js 160行左右,修改如下

if (BrowserUtility.isIE&&(BrowserUtility.isIE6 || BrowserUtility.isIE7 || BrowserUtility.isIE8))

5、打开刚刚复制过来的property.js 找到7458行左右将以下代码加入

Object.extend(Element, {
  visible: function(element) {
    return $(element).style.display != 'none';
  },

  toggle: function() {
    for (var i = 0; i < arguments.length; i++) {
      var element = $(arguments[i]);
      Element[Element.visible(element) ? 'hide' : 'show'](element);
    }
  },

  hide: function() {
    for (var i = 0; i < arguments.length; i++) {
      var element = $(arguments[i]);
      element.style.display = 'none';
    }
  },

  show: function() {
    for (var i = 0; i < arguments.length; i++) {
      var element = $(arguments[i]);
      element.style.display = '';
    }
  },

  remove: function(element) {
    element = $(element);
    element.parentNode.removeChild(element);
  },

  update: function(element, html) {
    $(element).innerHTML = html.stripScripts();
    setTimeout(function() {html.evalScripts()}, 10);
  },

  getHeight: function(element) {
    element = $(element);
    return element.offsetHeight;
  },

  classNames: function(element) {
    return new Element.ClassNames(element);
  },

  hasClassName: function(element, className) {
    if (!(element = $(element))) return;
    return Element.classNames(element).include(className);
  },

  addClassName: function(element, className) {
    if (!(element = $(element))) return;
    return Element.classNames(element).add(className);
  },

  removeClassName: function(element, className) {
    if (!(element = $(element))) return;
    return Element.classNames(element).remove(className);
  },

  // removes whitespace-only text node children
  cleanWhitespace: function(element) {
    element = $(element);
    for (var i = 0; i < element.childNodes.length; i++) {
      var node = element.childNodes[i];
      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
        Element.remove(node);
    }
  },

  empty: function(element) {
    return $(element).innerHTML.match(/^\s*$/);
  },

  scrollTo: function(element) {
    element = $(element);
    var x = element.x ? element.x : element.offsetLeft,
        y = element.y ? element.y : element.offsetTop;
    window.scrollTo(x, y);
  },

  getStyle: function(element, style) {
    element = $(element);
    var value = element.style[style.camelize()];
    if (!value) {
      if (document.defaultView && document.defaultView.getComputedStyle) {
        var css = document.defaultView.getComputedStyle(element, null);
        value = css ? css.getPropertyValue(style) : null;
      } else if (element.currentStyle) {
        value = element.currentStyle[style.camelize()];
      }
    }

    if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
      if (Element.getStyle(element, 'position') == 'static') value = 'auto';

    return value == 'auto' ? null : value;
  },

  setStyle: function(element, style) {
    element = $(element);
    for (name in style)
      element.style[name.camelize()] = style[name];
  },

  getDimensions: function(element) {
    element = $(element);
    if (Element.getStyle(element, 'display') != 'none')
      return {width: element.offsetWidth, height: element.offsetHeight};

    // All *Width and *Height properties give 0 on elements with display none,
    // so enable the element temporarily
    var els = element.style;
    var originalVisibility = els.visibility;
    var originalPosition = els.position;
    els.visibility = 'hidden';
    els.position = 'absolute';
    els.display = '';
    var originalWidth = element.clientWidth;
    var originalHeight = element.clientHeight;
    els.display = 'none';
    els.position = originalPosition;
    els.visibility = originalVisibility;
    return {width: originalWidth, height: originalHeight};
  },

  makePositioned: function(element) {
    element = $(element);
    var pos = Element.getStyle(element, 'position');
    if (pos == 'static' || !pos) {
      element._madePositioned = true;
      element.style.position = 'relative';
      // Opera returns the offset relative to the positioning context, when an
      // element is position relative but top and left have not been defined
      if (window.opera) {
        element.style.top = 0;
        element.style.left = 0;
      }
    }
  },

  undoPositioned: function(element) {
    element = $(element);
    if (element._madePositioned) {
      element._madePositioned = undefined;
      element.style.position =
        element.style.top =
        element.style.left =
        element.style.bottom =
        element.style.right = '';
    }
  },

  makeClipping: function(element) {
    element = $(element);
    if (element._overflow) return;
    element._overflow = element.style.overflow;
    if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
      element.style.overflow = 'hidden';
  },

  undoClipping: function(element) {
    element = $(element);
    if (element._overflow) return;
    element.style.overflow = element._overflow;
    element._overflow = undefined;
  }
});

以上代码是从 原property.js复制过来的


做完以上改动 就可以在ie10,ie11运行了

由于本人不用ie9  所以未在ie9 测试, ie10,11测试 也不是很充分

如果你的birt报表 没有嵌入到iframe中的话,可以不用修改的,因为birt会强制使用ie7,8 模式,但似乎在iframe中 该强制不好使

希望 能有用


第十六章 BIRT疑难杂惑清理 第十四十五章还在书写中,先就目前BIRT比较集中的一些疑难杂惑进行解决。 问题一:把runtime包中自带的birt.war发布到Tomcat6上,运行后,首页面可以显示,但当点击" View Example "时,加载报表就报错.错误内容如下: 或者在运行过程中出现:Caused by: java.lang.OutOfMemoryError: PermGen spac 阅读详情

相关推荐

报表开发之birt与tomcat整合

从首到尾整合birt与tomcat,一边操作,一边记录。 本机所用:tomcat 6.0 , jdk1.6 , birt-runtime-2_2_0(今天调试了一天才得到结果,期间很多问题都是软件版本问题) 1、下载birt-runtime-2_2_0.zip,解压,得到如图

u012989550的专栏 1501

BIRT 在IE10浏览器显示不全解决方案

问题描述:              这几天一直在做BIRT,集成到项目中时在IE浏览器上显示不完整,困扰了好长时间,最后通过单个页面的排查成功解决问题。     解决思路:            通过谷歌,百度搜索到解决方案为 在head下加上文档模式(IE=EmulateIE7),页面加上以后还是没有显示,真的纳闷,          搜索结果解决方法基本都是设定文档模式(IE10以后

mingxingxinxing的专栏 2933

jquery1.7和prototype1.7.js以及开发资料

CSS2.0样式表中文手册.chm CSS3.0(飘零雾雨版).chm HTML4.01&XHTML; 1.0参考手册.chm HTML5(W3CSchool版).chm jquery-1.7.2.js jquery-1.7.2.min.js jQuery1.7.1_API中文手册.pdf jQueryAPI_1.7.1_CN.chm prototype1.7.js

birt 用View Report in Web Viewer方式查看报表异常

用View Report in Web Viewer方式查看报表,出现上面的异常, 我的环境:WI

SandayH的专栏 4162

birt IE8-IE9兼容

网上说很多,但是似乎都没具体的解决方法,闲话不多说... 1、 webcontent/birt/layout文件里面 具体路径为:webcontent/birt/pages/layout下 分别在这FramesetFragment.jsp 、RequesterFragment.jsp、RunFragment.jsp 3个文件的头部里面也就是<head>加上 <META HTTP-EQUIV="X-UA-Compatible" CONTENT="IE=EmulateIE7"> 2、 修改webcontent/birt/ajax/lib 文件下 /prototype.js 第564行 var Ajax={这行 交换加载顺序 代码如下: var Ajax = {getTransport: function() { return Try.these( /*function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveX

SCL3400-D01双轴高精度倾角计

简介 两轴高精度加速度计,提供两个模式。 ±30° with 10 Hz LPF ±90° with 40 Hz LPF Resolution up to 32768 LSB/g Ultra-low 0.0009°/√Hz noise density 这款传感器是替换之前村田的停产的模拟量系列的芯片,正在测试中,具体效果大伙可以评测。 一、引脚连接图 引脚图兼容SCL3300 二、SPI接口 1.SCL3300和SCL3400略有区别如下图 左边为SCL3...

专注惯导领域 3808

十二、BIRT报表的部署与配置

12.1 报表的工作模式以及相应的部署和配置 虽然为了示例的需要,在前文的第二章讲过BIRT的配置,以及在文本类报表,网格报表,图表中用过birt jsp tag,也做过一些说明。但报表的工作模式,不仅仅包含这两种。实际上,BIRT有五种工作模式, 第一种是用jsp或者javascript访问url,这个url遵循特定的格式,例如url/frameset?__report=&a...

weixin_41961329的博客 2514

Linux CentOS7文件系统(/dev/var)的容量扩充

原因是之前安装docker后,再想安装Nessus,系统说home、var文件系统的内存都不够。

JHoanna的博客 3226

BIRT常用操作

1. 动态修改chart/report的title      选中并打开一个xxx.rptdesign,先点"Layout"标签,再点"Script"标签,这个时候就能进入整个report的script编辑页面,这个script是"onRender" scripts,里面有各种Event Function,如beforeDataSetFilled, beforeGeneration,

Java Dynamic的专栏 5540

ROS学习笔记之——无人机PID调参过程记录

For cooperaive inquiries, please visit the website:guanweipeng.com

gwpscut的博客 6829

FFTW3库在Windows中的安装和使用

Windows 32位平台下载:FFTW Installation on Windows。

weixin_45397344的博客 951

birt url含义

1.1 报表url说明 http://127.0.0.1:8080/WebViewerExample/frameset?__report=report/reportName.rptdesign说明如下: 1.        Servlet模式说明: Frameset ―― 采用Ajax框架,可以显示工具条,导航条和TOC面板,实现复杂的操作,如分页处理,导出数据,导出报表,打印等等。该模式下

birdCcc的专栏 1904

MIKE水动力笔记7_实测数据与模型输出结果的拟合对比

上一博文【MIKE水动力笔记6】主要讲解如何自己制作实测数据的时间序列文件dfs0,而本博文讲解如何进行实测数据与模型输出结果的拟合对比。

晏长街的博客 1万+

java解析获得birt报表的数据_[JAVA - BIRT] 我的第一个birt报表

还是老习惯,了解完birt的由来,就开始“动粗了”。1、 http://www.eclipse.org/birt/ 大概了解个网站导航内容包括:introduction(简介), download(下载),install(安装指南), tutorial(教程),faq等2、下载,到http://download.eclipse.org/birt/downloads/ 可以一一下载安装bir...

weixin_40001442的博客 240

数字IC行业笔试面试全攻略

数字IC行业迎来快速发展,国产替代加速,技术创新活跃,应用领域持续扩展,但人才缺口扩大。职业发展路径清晰,从初级到首席工程师/架构师的技术路线,或转向管理岗位。薪资待遇优厚,应届生起薪25-35W,5-10年经验可达70-110W,架构师年薪超百万。薪资受公司平台、技术方向、学历背景、项目经验和地域因素影响。AI芯片、汽车电子等热门方向溢价明显,成功流片经验尤其重要。

2301_79143213的博客 759

zynq的irq_f2p 如何增加或修改中断引脚个数(宽度)

ZYNQ开发过程中,如果使用PL到PS的中断,会产生一个疑问,设置界面显示可以有[91:84]、[68:61]共16个中断引脚,但是并没有设置中断口的宽度,如果使用多个中断引脚,应该怎么办?如果通过concat连接多个引脚,则自动调整为对应的引脚数。例如连接3个中断信号,则自动调整为:IRQ_F2P[2:0]

FPGA艺术家的博客 837

birt IE8 IE9 兼容问题

我自己的应用,birt展示报表的时候,在firefox和IE下显示的样式: IE8下的: Firefox下的: 我的项目,应用birt部分的结构如下: 1, prototype.js ,查找下面这段代码,改成下面的顺序形式......     var Ajax = {         getTransport: function() {         r...

weixin_30607659的博客 142

某AI推荐系统项目管理复盘:架构师总结的6大方法论与调优策略

我是张三,某大厂资深AI架构师,主导过5个千万级用户的推荐系统项目(覆盖电商、内容、视频、音乐、外卖等场景)。我的公众号“AI架构师笔记”会分享更多AI项目管理和技术实战经验,欢迎关注。最后的话:推荐系统不是“一锤子买卖”,而是“持续优化的过程”。希望这篇文章能帮你少踩坑,多做对——毕竟,把复杂的事做成,才是架构师的核心能力。

2501_92132293的博客 362

如何用InputStream作为BIRT的xml数据源

如何用InputStream作为BIRT的xml数据源1、  下面是xml数据源:    root> user>         name>henryname>         email>h

mlitsn的专栏 1993

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java获取 birt 结果集_[JAVA-BIRT] eclipse birt 网站一览所获

下班时间再跑到网站上逛了一下,总结几点:1、BIRT 1.0.1 项目计划birt 1.0正式发布后,开发人员将继续处理一些bug以及完善一些功能。计划在2005 7月25日发布新版本 BIRT 1.0.1而BIRT 1.0.1 M1版本 (Including RCP version) 将在 2005 7月11日,界时 1.0.1 将包含Source code release for Ec...

weixin_28691741的博客 152

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

birt hello world(一)

在birt的官网能看到现在最新的版本是4.4.2,以后的例子都会使用这个版本。 进入下载页面,可以看到 All-in-One Framework DTP: DataTools Platform,管理数据源驱动程序,以及访问特殊数据源实例的配置。 EMF:Eclipse...

chucouqi5556的博客 1089

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

BIRT Charting – Scripting Overview

先转过来,有空再来翻译下 The BIRT Chart Engine currently supports building and running charts within the BIRT designer or externally. The engine is fully extensible using the Eclipse extension mechanisms and s

ymkrdfewxf的专栏 1678

Birt学习笔记——birt开发过程中常见的问题

原文:http://xulianglly.blog.163.com/blog/static/4361742220111020642884/ 非常实用 2011-11-02 00:06:42| 分类: 技术 |字号 订阅 这是我自己在学birt的时候做的记录,版本是birt2.5.2,文字功底有限,表达的很不严谨,在这里仅供大家参孝学习: 如果在这里找到有用的信息,请留下您的痕迹,如

ymkrdfewxf的专栏 2万+

关于Birt报表的设计

<br />Birt报表设计步骤:<br />1、下载birt all in one 2.2.1.1,包含eclipse,解开下载文件<br />       启动eclipse,必须使用JDK1.5启动eclipse ,否则新建工程对话框中没有birt的相关选项<br /><br /> 2、新建report project和report<br />       打开data explorer视图,新建一个data sources,定义数据库连接driver/url/用户名/密码,在"Manage

dianfanbo的专栏 1070
上一篇: Hibernate中条件查询的困惑!
下一篇: Hibernate5+sqlserver2008 分页问题
iceheartboy2015
博客等级 码龄19年 9粉丝 3原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iceheartboy2015

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值