`
vakin.jiang
  • 浏览: 147528 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JS实现jasperreport交叉报表输出页面居中效果

阅读更多
    在struts2整合jasperreport报表开发的时候,遇到了这么一个问题。在报表模版使用了交叉报表的时候,
我们知道所有的行和列都是动态生成的。那么我们在设计报表模版的时候一般会根据列的最大值情况设置报表的整体
宽度。当在某一个查询条件下可能只需要用部分列,这样的话,报表整体宽度不会变,默认需要显示的列会靠左显示,
其他部分则通过无色底图或者固定宽的html元素填充。
针对此对简单的解决方案就是通过JS重新布局输出的html,这样的话就不会去jasperreport内部生成机制了。
如果要实现通用性,就必须让输出的html代码是可读的,有规律可循的。所以通过各种尝试,通过设置一下属性,可以让输出的html
尽量小并且便于用JS进行通用解析。
exporter = new JRHtmlExporter();
 exporter.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS, true);
                //不使用嵌套表格
                exporter.setParameter(JRHtmlExporterParameter.FRAMES_AS_NESTED_TABLES, false);
                //忽略默认HEADER,FOOTER
                exporter.setParameter(JRHtmlExporterParameter.HTML_HEADER, " ");
                exporter.setParameter(JRHtmlExporterParameter.HTML_FOOTER, " ");
                //忽略空白处填充图片
                exporter.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN, false);

 

JS代码

function loadReportPage(url){
	
	$("#reportContent").load(url,function(){
		adjustReportHTML();
		//TODO 
	});
}

//重新布局载入的报表内容html代码
function adjustReportHTML(){
	try {
	   var $table = $("#reportContent table:eq(0)");
	    var $headerTR = $("#reportContent tr:eq(0)");
	    var headerTdCount = $headerTR.find("td").length;
	    
	    var $firstInnerTR = $("#reportContent tr:eq(2)");
	    var firstInnerTd = $firstInnerTR.find("td:last-child");
	    
	    //设置报表table宽度
	    var tableOldWidth = $table.css('width').replace("px","");
	    var reduceWidth = firstInnerTd.css('width').replace("px","");
	    var tableNewWidth = tableOldWidth - reduceWidth;
	    tableNewWidth = tableNewWidth<500 ? 500 : tableNewWidth;
	    $table.css('width',tableNewWidth);
	    
	    //设置报表内容空白区域TD宽度
	    var colspan = firstInnerTd.attr("colspan");
	    $("td[colspan='"+colspan+"']").each(function(index){
	        $(this).css("width",colspan+"px");
	    });
	    
	    //设置报表标题区域空白TD宽度
	    for(var i=1;i<=3;i++){
	    	var resetIndex = headerTdCount-i;
	        $headerTR.find("td:eq("+ resetIndex +")").css("width","1px");
	    }
	} catch (e) {}
}

 

分享到:
评论

相关推荐

    JasperReport 中交叉报表指南

    JasperReport 中交叉报表指南 JasperReport 是一个功能强大且灵活的报表生成工具,它提供了许多功能来帮助开发者生成复杂的报表。在报表生成中,交叉报表是一种常用的报表类型,能够将数据按照行和列进行交叉处理,...

    JasperReport动态报表归并行数据

    在“JasperReport动态报表归并行数据”这个主题中,我们主要讨论如何利用JasperReport来处理和展示动态变化的数据,并实现数据的合并。 1. **动态报表设计**: JasperReport支持XML或Java代码定义报表模板(jrxml...

    jasperreport一个子报表的例子

    JasperReport是一个强大的Java报告库,它允许开发者创建复杂、美观的报表,广泛应用于企业级应用中。在JasperReport中,子报表是用于在主报表内部嵌套其他报表的一个功能,可以用来组织和展示更复杂的结构化数据。...

    springboot整合JasperReport实现报表功能

    总的来说,SpringBoot与JasperReport的整合使得报表生成变得简单,它提供了灵活的设计工具和丰富的数据绑定能力,可以帮助开发者快速地实现复杂报表的展示需求。通过学习和掌握这一技术,你可以提升企业应用的报表...

    使用JavaBean构造JasperReport子报表

    综上所述,要使用JavaBean构建JasperReport子报表,你需要理解JasperReport的工作原理,掌握JavaBean数据绑定,了解子报表的概念及其用法,同时确保项目中导入了所有必要的库文件。通过实践和参考相关教程,可以逐步...

    jasperreport 6.4.1报表动态列,以及生成导出html

    HTML导出不仅保留了报表的样式和格式,还支持交互式操作,如点击链接跳转至其他页面或执行JavaScript代码。在jasperreport 6.4.1中,生成HTML可以通过设置导出参数完成,例如设置`...

    使用JasperReport输出image图像

    总的来说,JasperReport可以通过`JRGraphics2DExporter`实现报表到图像的转换,这在需要将报表以图像形式存储或展示时非常有用。通过这种方式,开发者可以避免依赖物理扫描设备,直接在服务器端生成图像并保存到...

    jasperReport测试项目(含报表设计文件).rar_jasperReport 设计报表_jasperreport_报表设

    JasperReport是一款强大的开源报表工具,它允许开发者创建复杂的数据报告并以多种格式输出,如HTML、JSP、PDF等。在本项目中,“jasperReport测试项目(含报表设计文件).rar”是一个压缩包,包含了一系列用于...

    JasperReport报表设计总结

    JasperReport是一款强大的Java报表工具,它允许开发者创建复杂、多格式的报表,并能与各种数据源集成。本文主要总结了JasperReport报表设计的关键点,包括报表格式定制、数据填充以及显示或打印。 首先,报表格式的...

    JasperReport 水晶报表

    - **子报表:** 提供子报表功能,允许在一个报表中嵌套另一个报表,实现复杂的数据层次结构展示。 - **多格式输出:** 报表可导出为PDF、HTML、Excel、CSV等多种格式,满足不同应用场景的需求。 - **图表支持:** ...

    ireport+jsp基于jasperReport 实现导出报表至web页面

    标题中的“ireport+jsp基于jasperReport 实现导出报表至web页面”是指使用iReport工具和JasperReport库,结合JavaServer Pages (JSP) 技术,来创建和展示动态报表,并能将这些报表导出到Web页面上供用户查看。...

    struts2+Ireport+Jasperreport实现报表导出

    Struts2、iReport与JasperReport是Java开发中用于构建高效、动态Web应用程序和报表生成的工具。在这个项目中,这些技术结合在一起,提供了一种强大的报表导出解决方案。以下是对这些关键技术及其在项目中的应用的...

    JasperReport动态生成报表

    **JasperReport动态生成报表** JasperReport是一款强大的开源报表工具,主要用于生成各种复杂的静态和动态报表。它基于Java,可以很好地与Java应用程序、Web应用和企业级应用集成,提供丰富的报表设计和灵活的数据...

    整合Struts2+JasperReport Web报表应用示例

    Struts2是一个强大的MVC(模型-视图-控制器)框架,用于构建结构清晰、可维护性高的Web应用程序,而JasperReport则是一个功能丰富的报告生成库,能够创建复杂的报表并支持多种输出格式,如HTML、PDF等。 在"整合...

    JasperReport6.4.0报表设计

    **JasperReport 6.4.0报表设计详解** JasperReport是一款强大的开源报表工具,广泛应用于Java应用程序中,提供灵活的报告设计和丰富的数据可视化功能。在JasperReport 6.4.0版本中,它继续提升了用户体验,增强了...

    ireport开发交叉报表资料及笔记

    Ireport是一款强大的开源报表设计工具,它是JasperReport库的一部分,专门用于创建复杂的报表,包括交叉报表。在这个资料中,我们将深入探讨ireport如何开发交叉报表,并结合实际项目经验进行讲解。 一、ireport...

    JasperReport+iReport报表工具

    JSP(JavaServer Pages)是一种用于生成动态网页内容的技术,JasperReport可以将报表导出为JSP页面,便于在Web环境中展示。Java是一种广泛使用的编程语言,JasperReport和iReport都是用Java编写,因此运行这些工具...

    JasperReport+ireport实现报表导出功能

    - **预览功能**:可以在设计过程中实时预览报表效果,方便调整。 - **支持多种数据源**:可以连接到数据库、XML文件、JavaBeans等多种数据源。 在实际开发中,JasperReport和iReport的组合使用可以帮助开发者高效地...

Global site tag (gtag.js) - Google Analytics