当前位置: 代码迷 >> 报表 >> 3.ireport设计的报表模板
  详细解决方案

3.ireport设计的报表模板

热度:109   发布时间:2016-05-05 07:36:23.0
ireport设计报表
//别骂,我是比较懒。ireport设计模板做的报表

1.效果图



?

?

?

?

?

2.java、提供数据的后台代码

绑定多个数据源,list放到map中。

public String exportToHTML(){		try {			/*			 * 模板的位置			 */			//指定路径			String fileName = "D:/ireportLib/template/pd_temple_report.jrxml";// 我们就是根据它生成报表的			//动态路径,存放在服务器webroot的路径下//			String fileName = ReportAction.class.getResource("/").toString().substring(6) +"pd_temple_report.jrxml";			//---end						/*			 * --生成html的位置和名稱			 */			//指定路径			Date now = new Date(); 			SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");			String nowTime = dateFormat.format( now ); 						String outFileNameHtml = "D:/ireportLib/output/"+nowTime+".pdf";						//动态路径,存放在服务器指定文件夹下//			String outFileNameHtml = Application.class.getResource("Application.class")	.toString();//			int index = outFileNameHtml.indexOf("WEB-INF");//			if (index == -1) {//				index = outFileNameHtml.indexOf("bin");//			}//			outFileNameHtml = outFileNameHtml.substring(0, index);//			if (outFileNameHtml.startsWith("jar")) {//				outFileNameHtml = outFileNameHtml.substring(10);//			} else if (outFileNameHtml.startsWith("file")) {//				outFileNameHtml = outFileNameHtml.substring(6);//			}//			if (outFileNameHtml.endsWith("/")) {//				outFileNameHtml = outFileNameHtml.substring(0, outFileNameHtml.length() - 1);//			}//		    outFileNameHtml = outFileNameHtml+"/reportOutput/"+"StatisticalReports.html";		    //---end		    			//暂时设置项目id为1			projectId = 1;						/*			 * 饼状图			 */			//获取pie的数据			List<Map<String, Object>> list1 = urlDetailBeanService.getUrlDetailGroupByScore(projectId);			//pie的list			List<Report> pieList = new ArrayList<Report>();			//pieList赋值			for (Map<String, Object> map : list1) {				Report pieData = new Report(//int,string,string						Integer.valueOf(map.get("count").toString()),//个数						map.get("score").toString(),//名称						"分数在["+map.get("score").toString()+"]之间的页面有["+Integer.valueOf(map.get("count").toString())+"]个");//描述								pieList.add(pieData);			}			//--end									/*			 * 柱状图			 */			//获取柱状图的数据			List list2 = urlDetailRuleService.getCountRuleName(projectId);			//柱状图的list			List<Report> barList = new ArrayList<Report>();			//barList赋值			if (list2.size() > 0) {				for (int i = 0; i < list2.size(); i++) {					Object[] obj = (Object[]) list2.get(i);					Report barData  =  new Report(//string,int,string							obj[0].toString(),//名称							Integer.valueOf(obj[1].toString()),//个数							obj[0].toString()+"["+Integer.valueOf(obj[1].toString())+"]个页面");//描述										barList.add(barData);				}			}			//--end						/*			 * 规则评分			 */			//查询所有记录			List<UrlDetailBean> list3 = urlDetailBeanService.getByProjectId("1");			//获取二维数组内部索引的总数			int resultSize=0;						Map<String,String> map = new HashMap<String, String>();						for(int k=0;k<list3.size();k++){				UrlDetailBean udb = list3.get(k);								String str = new String(udb.getRuleInfo(), "GB2312");				JSONObject jsonlist = JSONObject.fromObject(str);				JSONArray results = (JSONArray)jsonlist.get("results");				//netinfo scanid----url				map.put(udb.getScanUrlId().toString(), jsonlist.get("url").toString());								resultSize+=results.size();			}						/*			 * 网络请求			 * start			 */						//pd_url_detail_netinfo查询的条件			String scanid="";			//把map的key全部取出来			Set<Map.Entry<String, String>> set=map.entrySet();    	        for (Iterator <Map.Entry<String, String>> iterator = set.iterator(); iterator.hasNext();) {	            Map.Entry<String, String> entry = (Map.Entry<String, String>) iterator.next();  //	            String key=entry.getKey();  	            scanid =scanid+ entry.getKey()+",";//	            String valueString=entry.getValue();  	        } 	        String  scanidData = scanid.substring(0, scanid.length()-1);						List<UrlDetailNetInfo> list4 = urlDetailNetInfoService.getNetInfoByScanids(scanidData);						String [][] data2 = new String[list4.size()][9];						for(int i=0;i<list4.size();i++){					String [] eachRowData = new String[9];					UrlDetailNetInfo netinfoBean = list4.get(i);										String urlStr = map.get(netinfoBean.getScanUrlId().toString());										data2[i][0] =urlStr;					data2[i][1] =netinfoBean.getStarted().toString();					data2[i][2] =netinfoBean.getTime().toString();					data2[i][3] =netinfoBean.getSent().toString();					data2[i][4] =netinfoBean.getReceived().toString();					data2[i][5] =netinfoBean.getMethod().toString();					data2[i][6] =netinfoBean.getResult().toString();					data2[i][7] =netinfoBean.getMimeType().toString();					data2[i][8] =netinfoBean.getUrl().toString();			}			String [] colName1 = new String[]{"SCANURLID","STARTED","TIME","SENT","RECEIVED","METHOD","RESULT","MIMETYPE","URL"};			DefaultTableModel tableMode1 = new DefaultTableModel(data2,colName1);			JRTableModelDataSource netInfolist = new net.sf.jasperreports.engine.data.JRTableModelDataSource(tableMode1);						//end						/*			 * 规则评分			 * start			 */						//定义一个n行4列的二维数组			String [][] data = new String[resultSize][4];			//往数组封装数据				//作为二维数组的内部索引			int indexOf =0;			for(int k=0;k<list3.size();k++){				UrlDetailBean udb = list3.get(k);								String str = new String(udb.getRuleInfo(), "GB2312");				JSONObject jsonlist = JSONObject.fromObject(str);				JSONArray results = (JSONArray)jsonlist.get("results");				String url = jsonlist.get("url").toString();								if(k==0){					indexOf= results.size();				}				for(int j=0;j<results.size();j++){					String [] eachRowData = new String[4];					JSONObject object =(JSONObject) results.get(j);										if(k!=0){						data[indexOf+j][0] = object.get("name").toString();						data[indexOf+j][1] = object.get("level").toString();						data[indexOf+j][2] = object.get("category").toString();						data[indexOf+j][3] = url.toString();						if(results.size()==(j+1)){							indexOf+=results.size();//保存插入数据的动态索引						}					}else{//刚开始封装数据						data[j][0] = object.get("name").toString();						data[j][1] = object.get("level").toString();						data[j][2] = object.get("category").toString();						data[j][3] = url.toString();					}										}			}//			String name="";//			for(int j=0;j<results.size();j++){//				JSONObject object =(JSONObject) results.get(j);//				 name = object.get("name").toString();//			}						//			String [][] data = new String[20][4];//			for(int i=0;i<20;i++){//				String [] eachRowData = new String[4];//				data[i][0] ="one"+(i+1);//				data[i][1] = "two"+(i+1);//				data[i][2] = "three"+(i+1);//				//				if(i<10){//					data[i][3] = 1+"";//				}else{//					data[i][3] = 2+"";//				}//			}			String [] colName = new String[]{"name","level","category","url"};			DefaultTableModel tableMode = new DefaultTableModel(data,colName);			JRTableModelDataSource rulelist = new net.sf.jasperreports.engine.data.JRTableModelDataSource(tableMode);						//--end						/*			 * 报告的其他指标参数			 */			//获取扫描项目的名称			String appName = "页面检测工具";			//获取扫描页面的总数			Integer total = urlDetailBeanService.getTotalUrlDetail(projectId);			//获取页面总体评分			String avg = urlDetailBeanService.getScoreAvg(projectId);			//获取页面检测结果			String testResults = "  本次检测对目标应用使用了18条页面性能的检测规则,本次检测对目标应用使用了18条页面性能的检测规则,本次检测对目标应用使用了18条页面性能的检测规则,本次检测对目标应用使用了18条页面性能的检测规则,本次检测对目标应用使用了18条页面性能的检测规则,本次检测对目标应用使用了18条页面性能的检测规则,本次检测对目标应用使用了18条页面性能的检测规则,本次检测对目标应用使用了18条页面性能的检测规则,本次检测对目标应用使用了18条页面性能的检测规则,本次检测对目标应用使用了18条页面性能的检测规则,共发现有85个影响页面性能的页面,影响性能百分比为29%。按影响性能等级分为:检查出0个页面评分为F级的页面,占总检查的0%";			//--end						/*			 * 数据封装			 */			//数据封装到map			Map mapData = new HashMap();			//list			mapData.put("pieList", pieList);			mapData.put("barList", barList);			mapData.put("ruleSetScoreList", rulelist);			mapData.put("netInfoList",netInfolist);						//static text			mapData.put("appName",appName);			mapData.put("pageTotals",total.toString()); 			mapData.put("pageScores",avg);			mapData.put("testResults",testResults);			//--end						//  用list方式读取数据时需要转换			//JRBeanCollectionDataSource dataSource = new JRBeanCollectionDataSource(Reportlist);						//转换为jasper文件			JasperReport jasperReport = (JasperReport)JasperCompileManager.compileReport(fileName);						//将Collection填充到模板文件类中			//如果没有用list方式读取数据,则dataSource可写成new JREmptyDataSource();//			JasperPrint print = JasperFillManager.fillReport(jasperReport, mapData, dataSource);			//只读取自定义的map			JasperPrint print = JasperFillManager.fillReport(jasperReport, mapData, new JREmptyDataSource());						/*			 * 報表的一些設置			 */									 //* 导出html格式的报表			 //			JRHtmlExporter exporter_html = new JRHtmlExporter();//			exporter_html.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,outFileNameHtml);//			exporter_html.setParameter(JRExporterParameter.JASPER_PRINT, print);//			exporter_html.setParameter(JRHtmlExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,	Boolean.TRUE);//			exporter_html.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean.TRUE);						//			exporter_html.exportReport();						 //* 导出pdf格式的报表			JRExporter exporter_pdf = new JRPdfExporter();			exporter_pdf.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,outFileNameHtml);			exporter_pdf.setParameter(JRExporterParameter.JASPER_PRINT, print);			exporter_pdf.exportReport();					} catch (JRException e) {			e.printStackTrace();			System.exit(1);		} catch (UnsupportedEncodingException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		return SUCCESS;	}

?

3.ireport设计的报表模板

建议copy下来保存为jrxml格式,然后用ireport4.6打开,可以看到柱状图,饼形图,table(多个,并分组),静态文本,动态文本,是如何设置的,其中绑定了四个数据源。

<?xml version="1.0" encoding="UTF-8"?><jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="pd_temple_report" language="groovy" pageWidth="595" pageHeight="3500" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"   >	<property name="ireport.zoom" value="1.0000000000000067"/>	<property name="ireport.x" value="0"/>	<property name="ireport.y" value="384"/>	<style name="table">		<box>			<pen lineWidth="1.0" lineColor="#000000"/>		</box>	</style>	<style name="table_TH" mode="Opaque" backcolor="#F0F8FF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table_CH" mode="Opaque" backcolor="#BFE1FF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table_TD" mode="Opaque" backcolor="#FFFFFF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 1">		<box>			<topPen lineWidth="1.0" lineColor="#000000"/>			<bottomPen lineWidth="1.0" lineColor="#000000"/>		</box>	</style>	<style name="table 1_TH" mode="Opaque" backcolor="#F0F8FF">		<box>			<topPen lineWidth="0.5" lineColor="#000000"/>			<bottomPen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 1_CH" mode="Opaque" backcolor="#BFE1FF">		<box>			<topPen lineWidth="0.5" lineColor="#000000"/>			<bottomPen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 1_TD" mode="Opaque" backcolor="#FFFFFF">		<box>			<topPen lineWidth="0.5" lineColor="#000000"/>			<bottomPen lineWidth="0.5" lineColor="#000000"/>		</box>		<conditionalStyle>			<conditionExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue()%2==0)]]></conditionExpression>			<style backcolor="#EFF7FF"/>		</conditionalStyle>	</style>	<style name="table 2">		<box>			<pen lineWidth="1.0" lineColor="#000000"/>		</box>	</style>	<style name="table 2_TH" mode="Opaque" backcolor="#F0F8FF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 2_CH" mode="Opaque" backcolor="#BFE1FF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 2_TD" mode="Opaque" backcolor="#FFFFFF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 3">		<box>			<pen lineWidth="1.0" lineColor="#000000"/>		</box>	</style>	<style name="table 3_TH" mode="Opaque" backcolor="#73B0E6">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 3_CH" mode="Opaque" backcolor="#CFDBE6">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 3_TD" mode="Opaque" backcolor="#FFFFFF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>		<conditionalStyle>			<conditionExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue()%2==0)]]></conditionExpression>			<style backcolor="#F3F6F8"/>		</conditionalStyle>	</style>	<style name="table 4">		<box>			<pen lineWidth="1.0" lineColor="#000000"/>		</box>	</style>	<style name="table 4_TH" mode="Opaque" backcolor="#73B0E6">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 4_CH" mode="Opaque" backcolor="#CFDBE6">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 4_TD" mode="Opaque" backcolor="#FFFFFF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>		<conditionalStyle>			<conditionExpression><![CDATA[new Boolean($V{REPORT_COUNT}.intValue()%2==0)]]></conditionExpression>			<style backcolor="#F3F6F8"/>		</conditionalStyle>	</style>	<style name="table 5">		<box>			<pen lineWidth="1.0" lineColor="#000000"/>		</box>	</style>	<style name="table 5_TH" mode="Opaque" backcolor="#BFE1FF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 5_CH" mode="Opaque" backcolor="#E6F3FF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 5_TD" mode="Opaque" backcolor="#FFFFFF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 6">		<box>			<pen lineWidth="1.0" lineColor="#000000"/>		</box>	</style>	<style name="table 6_TH" mode="Opaque" backcolor="#F0F8FF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 6_CH" mode="Opaque" backcolor="#BFE1FF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<style name="table 6_TD" mode="Opaque" backcolor="#FFFFFF">		<box>			<pen lineWidth="0.5" lineColor="#000000"/>		</box>	</style>	<subDataset name="pieDataset"   >		<queryString>			<![CDATA[]]>		</queryString>		<field name="pieCount" class="java.lang.Integer">			<fieldDescription><![CDATA[pieCount]]></fieldDescription>		</field>		<field name="pieDescription" class="java.lang.String">			<fieldDescription><![CDATA[pieDescription]]></fieldDescription>		</field>		<field name="pieScore" class="java.lang.String">			<fieldDescription><![CDATA[pieScore]]></fieldDescription>		</field>	</subDataset>	<subDataset name="barDataset"   >		<queryString>			<![CDATA[]]>		</queryString>		<field name="barCount" class="java.lang.Integer">			<fieldDescription><![CDATA[barCount]]></fieldDescription>		</field>		<field name="barDescription" class="java.lang.String">			<fieldDescription><![CDATA[barDescription]]></fieldDescription>		</field>		<field name="barRuleInfo" class="java.lang.String">			<fieldDescription><![CDATA[barRuleInfo]]></fieldDescription>		</field>	</subDataset>	<subDataset name="ruleDataSet"   >		<queryString>			<![CDATA[]]>		</queryString>		<field name="name" class="java.lang.String"/>		<field name="level" class="java.lang.String"/>		<field name="category" class="java.lang.String"/>		<field name="url" class="java.lang.String"/>		<group name="url">			<groupExpression><![CDATA[$F{url}]]></groupExpression>		</group>	</subDataset>	<subDataset name="netInfoDataSet"   >		<queryString>			<![CDATA[]]>		</queryString>		<field name="SCANURLID" class="java.lang.String"/>		<field name="STARTED" class="java.lang.String"/>		<field name="TIME" class="java.lang.String"/>		<field name="SENT" class="java.lang.String"/>		<field name="RECEIVED" class="java.lang.String"/>		<field name="RESULT" class="java.lang.String"/>		<field name="METHOD" class="java.lang.String"/>		<field name="MIMETYPE" class="java.lang.String"/>		<field name="URL" class="java.lang.String"/>		<group name="SCANURLID">			<groupExpression><![CDATA[$F{SCANURLID}]]></groupExpression>		</group>	</subDataset>	<parameter name="pageTotals" class="java.lang.String" isForPrompting="false"/>	<parameter name="pageScores" class="java.lang.String" isForPrompting="false"/>	<parameter name="appName" class="java.lang.String" isForPrompting="false"/>	<parameter name="pieList" class="java.util.Collection" isForPrompting="false"/>	<parameter name="barList" class="java.util.Collection" isForPrompting="false"/>	<parameter name="testResults" class="java.lang.String" isForPrompting="false"/>	<parameter name="ruleSetScoreList" class="java.lang.Object" isForPrompting="false"/>	<parameter name="netInfoList" class="java.lang.Object" isForPrompting="false"/>	<background>		<band splitType="Stretch"/>	</background>	<title>		<band height="157">			<staticText>				<reportElement   x="0" y="59" width="555" height="36"/>				<textElement verticalAlignment="Middle">					<font size="18" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<text><![CDATA[  1.综述]]></text>			</staticText>			<staticText>				<reportElement   x="36" y="95" width="100" height="20"/>				<textElement textAlignment="Left" verticalAlignment="Middle">					<font fontName="微软雅黑" size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<text><![CDATA[应用名称:]]></text>			</staticText>			<staticText>				<reportElement   x="36" y="115" width="100" height="20"/>				<textElement textAlignment="Left" verticalAlignment="Middle">					<font fontName="微软雅黑" size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<text><![CDATA[扫描页面:]]></text>			</staticText>			<textField>				<reportElement   x="136" y="115" width="113" height="20"/>				<textElement textAlignment="Left" verticalAlignment="Middle">					<font size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<textFieldExpression><![CDATA[$P{pageTotals}]]></textFieldExpression>			</textField>			<textField>				<reportElement   x="136" y="135" width="113" height="20"/>				<textElement textAlignment="Left" verticalAlignment="Middle">					<font size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<textFieldExpression><![CDATA[$P{pageScores}]]></textFieldExpression>			</textField>			<textField>				<reportElement   x="136" y="95" width="113" height="20"/>				<textElement textAlignment="Left" verticalAlignment="Middle">					<font size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<textFieldExpression><![CDATA[$P{appName}]]></textFieldExpression>			</textField>			<staticText>				<reportElement   x="36" y="135" width="100" height="20"/>				<textElement textAlignment="Left" verticalAlignment="Middle">					<font fontName="微软雅黑" size="14" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<text><![CDATA[页面总体评分:]]></text>			</staticText>			<textField>				<reportElement   x="0" y="0" width="555" height="59"/>				<textElement textAlignment="Center">					<font fontName="华文仿宋" size="20" isBold="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<textFieldExpression><![CDATA[$P{appName}+"分析报告"]]></textFieldExpression>			</textField>		</band>	</title>	<pageHeader>		<band height="13"/>	</pageHeader>	<detail>		<band height="766" splitType="Stretch">			<stackedBar3DChart>				<chart renderType="draw" theme="default">					<reportElement   x="11" y="353" width="526" height="400"/>					<box>						<pen lineWidth="0.25"/>						<topPen lineWidth="0.25"/>						<leftPen lineWidth="0.25"/>						<bottomPen lineWidth="0.25"/>						<rightPen lineWidth="0.25"/>					</box>					<chartTitle/>					<chartSubtitle/>					<chartLegend/>				</chart>				<categoryDataset>					<dataset>						<datasetRun subDataset="barDataset"   >							<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{barList})]]></dataSourceExpression>						</datasetRun>					</dataset>					<categorySeries>						<seriesExpression><![CDATA[$F{barRuleInfo}]]></seriesExpression>						<categoryExpression><![CDATA[$F{barRuleInfo}]]></categoryExpression>						<valueExpression><![CDATA[$F{barCount}]]></valueExpression>						<labelExpression><![CDATA[$F{barCount}]]></labelExpression>						<itemHyperlink>							<hyperlinkTooltipExpression><![CDATA[$F{barDescription}]]></hyperlinkTooltipExpression>						</itemHyperlink>					</categorySeries>				</categoryDataset>				<bar3DPlot isShowLabels="true">					<plot labelRotation="45.0"/>					<itemLabel>						<font fontName="黑体" size="24" isBold="true" isItalic="true" isUnderline="true" isStrikeThrough="true" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>					</itemLabel>					<categoryAxisLabelExpression><![CDATA["性能指标分析柱状图"]]></categoryAxisLabelExpression>					<categoryAxisFormat labelRotation="45.0">						<axisFormat labelColor="#000000" tickLabelColor="#336600" verticalTickLabels="true" axisLineColor="#999900">							<labelFont>								<font size="12"/>							</labelFont>							<tickLabelFont>								<font size="18" isItalic="true"/>							</tickLabelFont>						</axisFormat>					</categoryAxisFormat>					<valueAxisFormat>						<axisFormat>							<tickLabelFont>								<font size="14" isItalic="true"/>							</tickLabelFont>						</axisFormat>					</valueAxisFormat>				</bar3DPlot>			</stackedBar3DChart>			<pieChart>				<chart renderType="draw" theme="default">					<reportElement   mode="Opaque" x="11" y="53" width="526" height="287" forecolor="#000000"/>					<box>						<pen lineWidth="0.25"/>						<topPen lineWidth="0.25"/>						<leftPen lineWidth="0.25"/>						<bottomPen lineWidth="0.25"/>						<rightPen lineWidth="0.25"/>					</box>					<chartTitle color="#00CC00">						<font size="14"/>						<titleExpression><![CDATA["页面检测统计饼型图"]]></titleExpression>					</chartTitle>					<chartSubtitle/>					<chartLegend position="Right">						<font pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>					</chartLegend>				</chart>				<pieDataset>					<dataset>						<datasetRun subDataset="pieDataset"   >							<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{pieList})]]></dataSourceExpression>						</datasetRun>					</dataset>					<keyExpression><![CDATA[$F{pieScore}]]></keyExpression>					<valueExpression><![CDATA[$F{pieCount}]]></valueExpression>					<labelExpression><![CDATA[$F{pieCount}]]></labelExpression>					<sectionHyperlink>						<hyperlinkTooltipExpression><![CDATA[$F{pieDescription}]]></hyperlinkTooltipExpression>					</sectionHyperlink>					<otherSectionHyperlink>						<hyperlinkTooltipExpression><![CDATA[$F{pieDescription}]]></hyperlinkTooltipExpression>					</otherSectionHyperlink>				</pieDataset>				<piePlot isShowLabels="true" isCircular="true" labelFormat="{1}个" legendLabelFormat="{0}分之间总个数为:{2}">					<plot labelRotation="1.0">						<seriesColor seriesOrder="0" color="#86D260"/>					</plot>					<itemLabel color="#FF3366" backgroundColor="#FFFFFF">						<font fontName="黑体" size="18" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>					</itemLabel>				</piePlot>			</pieChart>			<staticText>				<reportElement   x="0" y="0" width="555" height="36"/>				<textElement>					<font size="18" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<text><![CDATA[  2. 页面性能指标分类]]></text>			</staticText>		</band>		<band height="219">			<componentElement>				<reportElement   key="table 6" style="table 4" x="11" y="31" width="291" height="185"/>				<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">					<datasetRun subDataset="netInfoDataSet"   >						<dataSourceExpression><![CDATA[$P{netInfoList}]]></dataSourceExpression>					</datasetRun>					<jr:columnGroup   width="520">						<jr:groupHeader groupName="SCANURLID">							<jr:cell height="18" rowSpan="1">								<textField>									<reportElement   x="0" y="0" width="517" height="18"/>									<textElement>										<font size="7" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>									</textElement>									<textFieldExpression><![CDATA["页面url:  "+$F{SCANURLID}]]></textFieldExpression>								</textField>							</jr:cell>						</jr:groupHeader>						<jr:columnGroup   width="520">							<jr:columnGroup   width="520">								<jr:tableHeader style="table 6_TH" height="20" rowSpan="1">									<staticText>										<reportElement   x="3" y="0" width="517" height="20"/>										<textElement textAlignment="Center">											<font size="12" isBold="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>										</textElement>										<text><![CDATA[网络请求详细列表]]></text>									</staticText>								</jr:tableHeader>								<jr:columnGroup   width="520">									<jr:groupFooter groupName="SCANURLID">										<jr:cell style="table 6_TH" height="10" rowSpan="1"/>									</jr:groupFooter>									<jr:column   width="34">										<jr:groupHeader groupName="SCANURLID">											<jr:cell style="table 6_TH" height="30" rowSpan="1">												<staticText>													<reportElement   x="0" y="0" width="33" height="30"/>													<textElement textAlignment="Center">														<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>													</textElement>													<text><![CDATA[开始时间]]></text>												</staticText>											</jr:cell>										</jr:groupHeader>										<jr:detailCell style="table 6_TD" height="24" rowSpan="1">											<textField>												<reportElement   x="0" y="0" width="33" height="20"/>												<textElement>													<font size="5"/>												</textElement>												<textFieldExpression><![CDATA[$F{STARTED}]]></textFieldExpression>											</textField>										</jr:detailCell>									</jr:column>									<jr:column   width="22">										<jr:groupHeader groupName="SCANURLID">											<jr:cell style="table 6_TH" height="30" rowSpan="1">												<staticText>													<reportElement   x="1" y="0" width="21" height="30"/>													<textElement textAlignment="Center">														<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>													</textElement>													<text><![CDATA[持续时间]]></text>												</staticText>											</jr:cell>										</jr:groupHeader>										<jr:detailCell style="table 6_TD" height="24" rowSpan="1">											<textField>												<reportElement   x="0" y="0" width="21" height="20"/>												<textElement>													<font size="5"/>												</textElement>												<textFieldExpression><![CDATA[$F{TIME}]]></textFieldExpression>											</textField>										</jr:detailCell>									</jr:column>									<jr:column   width="19">										<jr:groupHeader groupName="SCANURLID">											<jr:cell style="table 6_TH" height="30" rowSpan="1">												<staticText>													<reportElement   x="0" y="0" width="19" height="30"/>													<textElement textAlignment="Center">														<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>													</textElement>													<text><![CDATA[发送]]></text>												</staticText>											</jr:cell>										</jr:groupHeader>										<jr:detailCell style="table 6_TD" height="24" rowSpan="1">											<textField>												<reportElement   x="0" y="0" width="19" height="20"/>												<textElement>													<font size="5"/>												</textElement>												<textFieldExpression><![CDATA[$F{SENT}]]></textFieldExpression>											</textField>										</jr:detailCell>									</jr:column>									<jr:column   width="18">										<jr:groupHeader groupName="SCANURLID">											<jr:cell style="table 6_TH" height="30" rowSpan="1">												<staticText>													<reportElement   x="0" y="0" width="17" height="30"/>													<textElement textAlignment="Center">														<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>													</textElement>													<text><![CDATA[接收]]></text>												</staticText>											</jr:cell>										</jr:groupHeader>										<jr:detailCell style="table 6_TD" height="24" rowSpan="1">											<textField>												<reportElement   x="0" y="0" width="17" height="20"/>												<textElement>													<font size="5"/>												</textElement>												<textFieldExpression><![CDATA[$F{RECEIVED}]]></textFieldExpression>											</textField>										</jr:detailCell>									</jr:column>									<jr:column   width="19">										<jr:groupHeader groupName="SCANURLID">											<jr:cell style="table 6_TH" height="30" rowSpan="1">												<staticText>													<reportElement   x="1" y="0" width="18" height="30"/>													<textElement textAlignment="Center">														<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>													</textElement>													<text><![CDATA[请求结果]]></text>												</staticText>											</jr:cell>										</jr:groupHeader>										<jr:detailCell style="table 6_TD" height="24" rowSpan="1">											<textField>												<reportElement   x="0" y="0" width="19" height="20"/>												<textElement>													<font size="5"/>												</textElement>												<textFieldExpression><![CDATA[$F{RESULT}]]></textFieldExpression>											</textField>										</jr:detailCell>									</jr:column>									<jr:column   width="22">										<jr:groupHeader groupName="SCANURLID">											<jr:cell style="table 6_TH" height="30" rowSpan="1">												<staticText>													<reportElement   x="0" y="0" width="22" height="30"/>													<textElement textAlignment="Center">														<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>													</textElement>													<text><![CDATA[请求方法]]></text>												</staticText>											</jr:cell>										</jr:groupHeader>										<jr:detailCell style="table 6_TD" height="24" rowSpan="1">											<textField>												<reportElement   x="0" y="0" width="22" height="20"/>												<textElement>													<font size="5"/>												</textElement>												<textFieldExpression><![CDATA[$F{METHOD}]]></textFieldExpression>											</textField>										</jr:detailCell>									</jr:column>									<jr:column   width="42">										<jr:groupHeader groupName="SCANURLID">											<jr:cell style="table 6_TH" height="30" rowSpan="1">												<staticText>													<reportElement   x="1" y="0" width="41" height="30"/>													<textElement textAlignment="Center">														<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>													</textElement>													<text><![CDATA[请求类型]]></text>												</staticText>											</jr:cell>										</jr:groupHeader>										<jr:detailCell style="table 6_TD" height="24" rowSpan="1">											<textField>												<reportElement   x="0" y="0" width="42" height="20"/>												<textElement>													<font size="4"/>												</textElement>												<textFieldExpression><![CDATA[$F{MIMETYPE}]]></textFieldExpression>											</textField>										</jr:detailCell>									</jr:column>									<jr:column   width="344">										<jr:groupHeader groupName="SCANURLID">											<jr:cell style="table 6_TH" height="30" rowSpan="1">												<staticText>													<reportElement   x="0" y="0" width="90" height="30"/>													<textElement textAlignment="Center">														<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>													</textElement>													<text><![CDATA[URL]]></text>												</staticText>											</jr:cell>										</jr:groupHeader>										<jr:detailCell style="table 6_TD" height="24" rowSpan="1">											<box topPadding="1" leftPadding="1" bottomPadding="1" rightPadding="1"/>											<textField>												<reportElement   x="0" y="0" width="337" height="20" isPrintWhenDetailOverflows="true"/>												<textElement>													<font size="4"/>												</textElement>												<textFieldExpression><![CDATA[$F{URL}]]></textFieldExpression>											</textField>										</jr:detailCell>									</jr:column>								</jr:columnGroup>							</jr:columnGroup>						</jr:columnGroup>					</jr:columnGroup>				</jr:table>			</componentElement>			<staticText>				<reportElement   x="0" y="0" width="555" height="31"/>				<textElement>					<font size="18" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<text><![CDATA[  3.网络请求详细列表]]></text>			</staticText>		</band>		<band height="218">			<componentElement>				<reportElement   key="table 4" style="table 4" x="11" y="31" width="291" height="187"/>				<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">					<datasetRun subDataset="ruleDataSet"   >						<dataSourceExpression><![CDATA[$P{ruleSetScoreList}]]></dataSourceExpression>					</datasetRun>					<jr:columnGroup   width="521">						<jr:groupHeader groupName="url">							<jr:cell height="32" rowSpan="1">								<textField isBlankWhenNull="false">									<reportElement   style="table" stretchType="RelativeToTallestObject" isPrintRepeatedValues="false" x="0" y="2" width="521" height="30" backcolor="#B6B6D4"/>									<textElement>										<font size="8" isBold="false" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>									</textElement>									<textFieldExpression><![CDATA["页面URL: "+$F{url}]]></textFieldExpression>								</textField>							</jr:cell>						</jr:groupHeader>						<jr:columnGroup   width="521">							<jr:tableHeader style="table 6_TH" height="20" rowSpan="1">								<staticText>									<reportElement   x="0" y="0" width="521" height="20"/>									<textElement textAlignment="Center">										<font size="14" isBold="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>									</textElement>									<text><![CDATA[规则评分详细列表]]></text>								</staticText>							</jr:tableHeader>							<jr:columnGroup   width="521">								<jr:groupFooter groupName="url">									<jr:cell style="table 6_TH" height="9" rowSpan="1"/>								</jr:groupFooter>								<jr:column   width="167">									<jr:groupHeader groupName="url">										<jr:cell style="table 6_TH" height="18" rowSpan="1">											<staticText>												<reportElement   x="22" y="0" width="135" height="15"/>												<textElement textAlignment="Center">													<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>												</textElement>												<text><![CDATA[规则名称]]></text>											</staticText>										</jr:cell>									</jr:groupHeader>									<jr:detailCell style="table 4_TD" height="20" rowSpan="1">										<textField>											<reportElement   x="0" y="0" width="167" height="20"/>											<textElement textAlignment="Center">												<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>											</textElement>											<textFieldExpression><![CDATA[$F{name}]]></textFieldExpression>										</textField>									</jr:detailCell>								</jr:column>								<jr:column   width="96">									<jr:groupHeader groupName="url">										<jr:cell style="table 6_TH" height="18" rowSpan="1">											<staticText>												<reportElement   x="10" y="0" width="44" height="15"/>												<textElement textAlignment="Center">													<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>												</textElement>												<text><![CDATA[分析等级]]></text>											</staticText>										</jr:cell>									</jr:groupHeader>									<jr:detailCell style="table 4_TD" height="20" rowSpan="1">										<textField>											<reportElement   x="25" y="0" width="44" height="20"/>											<textElement>												<font size="8"/>											</textElement>											<textFieldExpression><![CDATA[$F{level}]]></textFieldExpression>										</textField>									</jr:detailCell>								</jr:column>								<jr:column   width="258">									<jr:groupHeader groupName="url">										<jr:cell style="table 6_TH" height="18" rowSpan="1">											<staticText>												<reportElement   x="55" y="3" width="120" height="15"/>												<textElement textAlignment="Center">													<font size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>												</textElement>												<text><![CDATA[规则类别]]></text>											</staticText>										</jr:cell>									</jr:groupHeader>									<jr:detailCell style="table 4_TD" height="20" rowSpan="1">										<textField>											<reportElement   x="92" y="0" width="120" height="20"/>											<textElement>												<font size="8"/>											</textElement>											<textFieldExpression><![CDATA[$F{category}]]></textFieldExpression>										</textField>									</jr:detailCell>								</jr:column>							</jr:columnGroup>						</jr:columnGroup>					</jr:columnGroup>				</jr:table>			</componentElement>			<staticText>				<reportElement   x="0" y="0" width="555" height="31"/>				<textElement>					<font size="18" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<text><![CDATA[  4.规则评分详细列表]]></text>			</staticText>		</band>	</detail>	<columnFooter>		<band height="21"/>	</columnFooter>	<summary>		<band height="160">			<staticText>				<reportElement   x="0" y="0" width="555" height="36"/>				<textElement>					<font size="18" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<text><![CDATA[  5. 检测总结果]]></text>			</staticText>			<textField>				<reportElement   x="22" y="36" width="501" height="113"/>				<textElement>					<font pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>				</textElement>				<textFieldExpression><![CDATA[$P{testResults}]]></textFieldExpression>			</textField>		</band>	</summary></jasperReport>

?

?

?

?

?

?