「リスト」JRコンポーネントの各行の前にチェックボックスを配置しようとしているPDFに取り組んでいます。
レポートの [タイトル] セクションには、編集可能なフィールド (テキストとラジオ) が既にいくつかあります。すべてがうまくいきます。
これを行うには、「汎用要素」を使用し、Java で記述されたハンドラーをいくつか用意します。たとえば、iText TextField を四角形 (com.lowagie.text.Rectangle.Rectangle) に生成し、次のように定義します (「要素」は現在の汎用要素です)。 、JRGenericPrintElement 型):
element.getX(),
exporterContext.getExportedReport().getPageHeight() - element.getY(),
element.getX() + element.getWidth(),
exporterContext.getExportedReport().getPageHeight() - element.getY() - element.getHeight()
「汎用要素」は、私の .jrxml で次のように定義されています。
<genericElement>
<reportElement uuid="ec205c41-afe2-44fd-a8b3-03e2d4b07ce6" x="72" y="132" width="143" height="25"/>
<genericElementType namespace="http://namespace" name="simpleEditableTf"/>
<genericElementParameter name="name">
<valueExpression><![CDATA["matricule"]]></valueExpression>
</genericElementParameter>
</genericElement>
リストチェックボックスの位置を定義するために同じコードを使用したいのですが、一般的な要素がリストに使用されている場合、 element.getX() および element.getY() メソッドは相対的に座標を返すようですリストコンポーネントに。
したがって、ページ内の要素の座標 (例: X=50、Y=200) を取得するには、これらをリスト コンポーネント自体 (X=4、Y=7) に対して相対的に取得します。そのため、要素を正しく設定することはできません。
以下は、ジェネリック要素を含むリスト要素のコードです。
<componentElement>
<reportElement uuid="0aa17cac-d5e2-4592-ba0d-ab8e25cc989b" x="10" y="10" width="476" height="23" forecolor="#366798"/>
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="item_ab" uuid="3c25ec33-3a70-497f-b234-0d5ea64cabcf">
<dataSourceExpression><![CDATA[$P{REPORT_DATA_SOURCE}.subDataSource("//item_ab")]]></dataSourceExpression>
</datasetRun>
<jr:listContents height="23" width="476">
<textField isStretchWithOverflow="true">
<reportElement uuid="0158660b-3ab1-4149-8599-77824c64082f" x="20" y="1" width="420" height="20"/>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{libelle_ab}]]></textFieldExpression>
</textField>
<genericElement>
<reportElement uuid="12c64be4-27dd-4aa2-8d50-f412e25d9805" x="4" y="7" width="9" height="9"/>
<genericElementType namespace="http://namespace" name="checkBox"/>
</genericElement>
</jr:listContents>
</jr:list>
</componentElement>
私が何か間違ったことをしたかどうか誰かに教えてもらえますか?バグですか?