2

レポートに css クラスを含めようとしています。独自の属性を reportElement タグに追加して、css ファイルの参照リンクを含めることはできますか?

ありがとう

4

1 に答える 1

5

必要なことは、参照したいフィールドにプロパティを追加することです。追加する必要があるクラス名を追加し、プロパティとして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>

iReport では、フィールドを選択してこれらを追加し、プロパティ ウィンドウで の横にある省略記号ボタンをクリックしますProperties expressionsここに画像の説明を入力

JRHtmlExporterParameter.HTML_HEADERエクスポートされたレポートに css ファイルへのリンクを含めるには、エクスポートする前にパラメーターの値を設定する必要があります。このパラメーターは、HTML の意味でのヘッダー (head タグの内容) ではなく、エクスポートされた HTML レポートのヘッダーであることに注意してください。つまり、レポートを含める前に、エクスポートされたレポートに最初に配置されるものです。Jasper Reports が使用するデフォルトは次のとおりです。

<html>
<head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  <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">

そのため、以下を追加して、スタイルシートへのリンクを含めるようにこれを変更する必要があります。

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

head タグ内にあると思われる適切な場所に移動しますが、そうでない場合は適切な領域に移動します。したがって、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();
于 2012-12-19T18:46:37.120 に答える