2017-04-22 2 views
0
<?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="TestingImage" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" isIgnorePagination="true" uuid="5470e3fc-1c9c-4841-8814-e3a935fa6684"> <property name="ireport.zoom" value="1.0"/><property name="ireport.x" value="0"/><property name="ireport.y" value="229"/><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_TH" mode="Opaque" backcolor="#F0F8FF"><box><pen lineWidth="0.5" lineColor="#000000"/><topPen lineWidth="0.5" lineColor="#000000"/><leftPen lineWidth="0.5" lineColor="#000000"/><bottomPen lineWidth="0.5" lineColor="#000000"/<rightPen lineWidth="0.5" lineColor="#000000"/></box></style><style name="Table_CH" mode="Opaque" backcolor="#BFE1FF"><box><pen lineWidth="0.5" lineColor="#000000"/> 
     <topPen lineWidth="0.5" lineColor="#000000"/> 
     <leftPen lineWidth="0.5" lineColor="#000000"/> 
     <bottomPen lineWidth="0.5" lineColor="#000000"/> 
     <rightPen lineWidth="0.5" lineColor="#000000"/> 
    </box> 
</style> 
<style name="Table_TD" mode="Opaque" backcolor="#FFFFFF"> 
    <box> 
     <pen lineWidth="0.5" lineColor="#000000"/> 
     <topPen lineWidth="0.5" lineColor="#000000"/> 
     <leftPen lineWidth="0.5" lineColor="#000000"/> 
     <bottomPen lineWidth="0.5" lineColor="#000000"/> 
     <rightPen lineWidth="0.5" lineColor="#000000"/> 
    </box> 
</style> 
<subDataset name="ImageDemoDataset" uuid="47414685-b792-4a30-9b14-fc32127ad3cc"> 
    <parameter name="lastname" class="java.lang.String"> 
     <defaultValueExpression><![CDATA[$F{picture}]]></defaultValueExpression> 
    </parameter> 
    <parameter name="firstname" class="java.lang.String"> 
     <defaultValueExpression><![CDATA[$F{firstname}]]></defaultValueExpression> 
    </parameter> 
    <queryString> 
     <![CDATA[]]> 
    </queryString> 
    <field name="firstname" class="java.lang.String"/> 
    <field name="lastname" class="java.lang.String"/> 
    <field name="email" class="java.lang.String"/> 
    <field name="phone_number" class="java.lang.String"/> 
    <field name="picture" class="java.lang.String"/> 
    <variable name="imagePath" class="java.lang.String" resetType="None"> 
     <variableExpression><![CDATA[$F{picture}]]></variableExpression> 
    </variable> 
</subDataset> 
<parameter name="ImageDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/> 
<queryString> 
    <![CDATA[]]> 
</queryString> 
<variable name="varImage" class="java.lang.String" resetType="None"/> 
<detail> 
    <band height="364" splitType="Stretch"> 
     <componentElement> 
      <reportElement x="18" y="0" width="474" height="216" uuid="771aa5d8-1470-4fd9-b062-a913b6014f19"> 
       <property name="net.sf.jasperreports.export.headertoolbar.table.name" value=""/> 
      </reportElement> 
      <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" whenNoDataType="AllSectionsNoDetail"> 
       <datasetRun subDataset="ImageDemoDataset" uuid="c4a063af-d8d1-41c4-98bf-660a9eab651e"> 
        <dataSourceExpression><![CDATA[$P{ImageDataSource}]]></dataSourceExpression> 
        <returnValue fromVariable="imagePath" toVariable="varImage"/> 
       </datasetRun> 
       <jr:column width="70" uuid="6aa96500-79ab-4b8b-aa5f-0c9dbc22638f"> 
        <jr:detailCell height="30" rowSpan="1"> 
         <textField> 
          <reportElement x="0" y="0" width="70" height="30" uuid="9528bbd1-627c-424c-a3f0-872f92799c94"/> 
          <textFieldExpression><![CDATA[$F{firstname}]]></textFieldExpression> 
         </textField> 
        </jr:detailCell> 
       </jr:column> 
       <jr:column width="90" uuid="ba88fb55-d423-4d1e-99a1-b81c44f6e65a"> 
        <jr:detailCell height="30" rowSpan="1"> 
         <textField> 
          <reportElement x="0" y="0" width="90" height="30" uuid="5c85fd56-54ba-4d22-a3e4-adcdbbbc2b4f"/> 
          <textElement> 
           <font size="8"/> 
          </textElement> 
          <textFieldExpression><![CDATA[$F{lastname} ]]></textFieldExpression> 
         </textField> 
        </jr:detailCell> 
       </jr:column> 
       <jr:column width="100" uuid="29524685-b68a-4906-be22-50b0acacba7d"> 
        <jr:detailCell height="30" rowSpan="1"> 
         <textField> 
          <reportElement x="0" y="0" width="100" height="30" uuid="9dacce68-21ca-4bcc-b9cb-bad1b3661611"/> 
          <textFieldExpression><![CDATA[$F{email}]]></textFieldExpression> 
         </textField> 
        </jr:detailCell> 
       </jr:column> 
       <jr:column width="94" uuid="4bb9635f-4173-4c5b-95ce-5a12a2332ea1"> 
        <jr:detailCell height="30" rowSpan="1"> 
         <textField> 
          <reportElement x="0" y="0" width="94" height="30" uuid="8c6c58b1-d3fd-4fad-995a-caaaea6afe8e"/> 
          <textFieldExpression><![CDATA[$F{phone_number}]]></textFieldExpression> 
         </textField> 
        </jr:detailCell> 
       </jr:column> 
       <jr:column width="100" uuid="b500de9f-6abf-41b8-9e5d-d408b94d32ce"> 
        <jr:detailCell height="30" rowSpan="1"> 
         <textField> 
          <reportElement x="0" y="0" width="100" height="30" uuid="0e6a1e56-974f-41a3-af08-0cf5b832b573"/> 
          <textFieldExpression><![CDATA[$F{picture}]]></textFieldExpression> 
         </textField> 
        </jr:detailCell> 
       </jr:column> 
      </jr:table> 
     </componentElement> 
     <image scaleImage="FillFrame" hAlign="Center" vAlign="Middle"> 
      <reportElement x="48" y="266" width="100" height="98" uuid="290e1eb9-3a18-4a65-93d4-d155b98ce964"> 
       <printWhenExpression><![CDATA[!$V{varImage}.equalsIgnoreCase("null")]]></printWhenExpression> 
      </reportElement> 
      <imageExpression><![CDATA["C:\\Users\\jigpra\\Pictures\\"+$V{varImage}]]></imageExpression> 
     </image> 
     <staticText> 
      <reportElement x="48" y="231" width="100" height="20" uuid="32fd136d-d7c4-4256-be6c-e9ad7d5f7592"/> 
      <textElement> 
       <font size="12"/> 
      </textElement> 
      <text><![CDATA[$V{varImage}]]></text> 
     </staticText> 
    </band> 
</detail> 

メインレポートで使用するテーブルのデータセットフィールド値を

私は、メインレポートに表データセットのフィールド/パラメータを使用します。私はこのデータを表示するテーブルのコレクションのデータを追加しました。私は1つの値が各列のイメージです。その画像名を取得したい(現在、コレクションデータセットで画像の名前を渡す)。

メインレポートで画像フィールド名を取得するにはどうすればよいですか?

答えて

0

画像が正しく表示されないEvaluation Timeがありません。あなたの場合はBandである必要があります。

staticTextは、このような設定をサポートしていないため、textFieldに変換し、Evaluation Timeプロパティに同じ設定をする必要があります。

でも、上記の提案でも、ImageDemoDatasetsubDatasetの最後の値が表示されます。それがあなたの望むものならば大丈夫です。

ただし、subDatasetに各レコードの画像を表示する場合は、テーブル内で行う必要があります。スペーシングが問題だった場合は、columnGroupを作成し、groupFooterにイメージを置き、メインデータの下にそれを分離することができます。

EDIT:それは何がしたいことは、実際に簡単で、変数を伴うべきではないと思われます。同じデータソースを繰り返し表示するだけです。 これは2通りの方法で行うことができます。

(1)元ImageDataSourceパラメータの使用:次に、あなたがテーブルに使用したのと同じsubDatasetで、テーブルの下にリストコンポーネントを作成

<dataSourceExpression><![CDATA[$P{ImageDataSource}.cloneDataSource()]]></dataSourceExpression>

<parameter name="ImageDataSource" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>

すると、テーブルそうのようなdatasetRunの表現をしています初期データソース式:

<dataSourceExpression><![CDATA[$P{ImageDataSource}]]></dataSourceExpression>

を入力し、一覧のプロパティの[一覧]タブでPrint OrderHorizontalに設定します。 Cell Widthを指定して、繰り返し項目を水平方向に流すことができるようにしてください。

テーブルのdataSourceをクローンすると、テーブルがそれを使い果たすことがなくなり、リストコンポーネントがそれを繰り返し処理できるようになります。

(2)。 JRBeanCollectionDataSourceをパラメータとして渡す代わりに、作成したコレクションだけを渡して、そのパラメータを設定します。あなたはもうデータソースのクローンを作成する必要はありません。この方法:

<parameter name="ImageCollection" class="java.util.Collection"/>

は、そのようにように、テーブルdatasetRunの表情を持っている:

<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{ImageCollection})]]></dataSourceExpression>

が次にあなたが使用したのと同じsubDatasetでリストを作成上記のdataSourceExpressionを使用してください。 (1)と同じ方法でリストを設定する必要があります。

+0

こんにちは@Narcis アドバイスありがとう、 現在のコードでは、データセットフィールドに画像名を渡すと書いてあります。 私は静的なパスのために働いているので、私はvaribaleの名前/テーブルのデータセットのフィールドがメインレポートに必要です。 テーブルデータセットの戻り値を使用していますが、それが機能していません。 –

+0

私の答え(最初の3つの段落)の最初の部分で、私はなぜそれがあなたのケースでは動作していないと、それを修正する方法を説明します。それを試してみましたか? – Narcis

+0

まず、文字列を使ってshow imageのデモを試してみましょう。 画像の評価時間は画像/バイナリですが、画像の時間はblobです。 私の場合、私は直接その画像の場所を使用します 最初に私はこの評価時間(これは本当に悪いです)で作業しているテーブルに画像を表示しようとしました。しかし今は私のメインレポートにこの画像を表示したいと思います。 –

関連する問題