0

私はjrxmlを使用して作成され、を使用iReportしてバーコードを生成しbarcode4jます。

ゴール:

アスタリスクが付いた数値のバーコードを出力します。

以下のようになります。

||||||||||
*123456*

jrxmlのバーコードセクション:

<componentElement>
    <reportElement x="29" y="4" width="209" height="32"/>
    <jr:Code39 xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" textPosition="bottom">
        <jr:codeExpression>
            <![CDATA["*" + $P{barCode} + "*"]]>
        </jr:codeExpression>
    </jr:Code39>
</componentElement>

上記のコードは、出力バーコードにアスタリスクがないことを除いて、正常に実行されます。

したがって、次のようになります。

|||||||||
123456
4

2 に答える 2

2

有効な回答については、**UPDATE**セクションを参照してください。

秘訣は、extendedCharSetEnabled属性をtrueに設定することでした。

私は次のサイトからアイデアを得ました:

http://jasperforge.org/uploads/publish/jasperreportswebsite/trunk/components.schema.reference.html#_extendedCharSetEnabled

http://barcode4j.sourceforge.net/2.1/symbol-code39.html

したがって、バーコードxml部分全体は次のようになります。

<componentElement>
   <reportElement x="29" y="4" width="209" height="32"/>
   <jr:Code39 xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components"              xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" 
textPosition="bottom"
extendedCharSetEnabled="true">

       <jr:codeExpression>
           <![CDATA["*" + $P{barCode} + "*"]]>
       </jr:codeExpression>
   </jr:Code39>
</componentElement>

アップデート:

上記の解決策により、スキャン時にアスタリスクを含むバーコードが出力されます。

真の解決策は、displayStartStop属性を使用してtrueに設定することです。そして、CDATA領域からアスタリスク連結を削除します。

<componentElement>
       <reportElement x="29" y="4" width="209" height="32"/>
       <jr:Code39 xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components"              xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" 
    textPosition="bottom"
    displayStartStop="true">

           <jr:codeExpression>
               <![CDATA[$P{barCode}]]>
           </jr:codeExpression>
       </jr:Code39>
    </componentElement>

ノート:

アスタリスクが表示されないため、extendedCharSetEnabled属性をdisplayStartStopと一緒に使用しないでください。

于 2012-05-08T22:39:38.443 に答える
0

それ以外の

  <![CDATA["*" + $P{barCode} + "*"]]>

使ってみてください

  <![CDATA['*'+$P{barCode}+'*']]>
于 2012-05-08T16:00:37.093 に答える