Java 如何向iReports中的reportElement标记添加新属性?

Java 如何向iReports中的reportElement标记添加新属性?,java,jasper-reports,Java,Jasper Reports,我试图在我的报告中包含css类。是否可以将我自己的属性添加到reportElement标记中,以便包含css文件引用链接 谢谢您需要做的是向要引用的字段添加属性。要添加类名,您需要添加net.sf.jasperreports.export.html.class,要包含一个id,您需要添加net.sf.jasperreports.export.html.id作为属性。例如,下面是一个文本字段,用于设置: <textField> <reportElement uuid="2

我试图在我的报告中包含css类。是否可以将我自己的属性添加到reportElement标记中,以便包含css文件引用链接


谢谢

您需要做的是向要引用的字段添加属性。要添加类名,您需要添加
net.sf.jasperreports.export.html.class
,要包含一个id,您需要添加
net.sf.jasperreports.export.html.id
作为属性。例如,下面是一个文本字段,用于设置:

<textField>
    <reportElement uuid="2399e4ef-633c-4d17-b964-3e093ece1936" x="0" y="22" width="100" height="20">
        <property name="net.sf.jasperreports.export.html.class" value="TEST"/>
        <property name="net.sf.jasperreports.export.html.id" value="ID"/>
    </reportElement>
    <textElement markup="html"/>
    <textFieldExpression><![CDATA[($F{field1}]]></textFieldExpression>
</textField>
因此,您需要通过添加以下内容对其进行修改,以包含样式表的链接:

<link rel="stylesheet" type="text/css" href="<cssfile you want to point to>" />

在适当的地方,我认为是在头部标签内,但如果没有移动到适当的区域。因此,java代码将以如下方式结束:

JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRHtmlExporterParameter.HTML_HEADER, 
    "<html>"+
    "<head>"+
    "  <title></title>"+
    "  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>"+
    "  <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jasper.css\" />"+
    "  <style type="text/css">"+
    "    a {text-decoration: none}"+
    "  </style>"+
    "</head>"+
    "<body text="#000000" link="#000000" alink="#000000" vlink="#000000">"+
    "<table width="100%" cellpadding="0" cellspacing="0" border="0">"+
    "<tr><td width="50%">&nbsp;</td><td align="center">");
exporter.exportReport();
JRHtmlExporter=newjrhtmlexporter();
exporter.setParameter(jreporterParameter.JASPER_PRINT,jasperPrint);
exporter.setParameter(JRHtmlExporterParameter.HTML_头,
""+
""+
"  "+
"  "+
"  "+
"  "+
“a{文本装饰:无}”+
"  "+
""+
""+
""+
" ");
出口商。出口报告();

非常感谢您的回答。我理解了您答案的第二部分,即设置html_标题。我不理解类和id的设置。是否需要为所有文本字段添加类和id。有没有一种通用的方法可以做到这一点,因为我所有的报告在文本字段中都有相同的样式。而且我们使用的是jasper reports 3.7.4,其中我只看到net.sf.jasperreports.export.html.id。它也不支持reportElement中的uuid标记元素:(@user1103504)您很可能需要更新到更新版本的jasper reports。
net.sf.jasperreports.export.html.class
直到更高版本才添加。此外,不幸的是,我没有看到设置类或id的通用方法。因此,在设计报告时,必须在每个字段上执行此操作。
JRHtmlExporter exporter = new JRHtmlExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRHtmlExporterParameter.HTML_HEADER, 
    "<html>"+
    "<head>"+
    "  <title></title>"+
    "  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>"+
    "  <link rel=\"stylesheet\" type=\"text/css\" href=\"css/jasper.css\" />"+
    "  <style type="text/css">"+
    "    a {text-decoration: none}"+
    "  </style>"+
    "</head>"+
    "<body text="#000000" link="#000000" alink="#000000" vlink="#000000">"+
    "<table width="100%" cellpadding="0" cellspacing="0" border="0">"+
    "<tr><td width="50%">&nbsp;</td><td align="center">");
exporter.exportReport();