フォーラムへの返信
-
投稿者投稿
-
a.suzuki参加者
iReport実践ガイドに「式を記述するデフォルトの言語はJavaですが、プロジェクトの設計にはJavaScriptかGroovyを使用することを推奨します。」とあったため、JavaScriptにしていました。
今まで教えて頂いた式は、全てGroovyまたはJavaであることが前提ということでしたか。大変失礼しました。変更して試してみます。a.suzuki参加者fujita様
指示頂いた通りに設定してみたのですが、同じエラーとなりました。
Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot call property length in object 200000.0. It is not a function, it is ”number”. (bsg_order_form_for_mobile_2_1452644728223_525262#62)
a.suzuki参加者Salesforceからダウンロードしたものを使用しています。
iReport実践ガイドに「Pattern」を使用すると値のフォーマットにマスクをかけることができ、式のクラスが適用するパターンに適合する場合のみ使用するとあります。
つまり、数字フォーマットに対するマスクを適用するには数値が、日付パターンを適用するには日付が必要になるとのことです。
これに基づき、Field Classをjava.lang.Integerに変更したのですが、java.lang.Stringに戻したところ、下記エラーが発生しました。Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot call property length in object 200000.0. It is not a function, it is “number”. (bsg_order_form_for_mobile_2_1452644728223_525262#62)
ちなみに、最初に教えて頂いたnew BigDecimal($F{XXXX})を設定してみたところ、下記エラーが発生しました。
Caused by: org.mozilla.javascript.EcmaError: ReferenceError: “BigDecimal” is not defined. (bsg_order_form_for_mobile_2_1452644879749_879130#62)
特に何も式を設定せずjava.lang.Stringにして$F{TotalPrice}のみとしたところ、テスト印刷と同じ表示でしたので、ReportConnectの場合は、全てがStringとして扱われるということなのですね。
a.suzuki参加者例)の式の「金額」を「TotalPrice」に置き換えてPreviewを表示してみたところ、下記エラーが表示されました。
Error filling print… Error evaluating expression : Source text : $F{TotalPrice}!=”null”&&$F{TotalPrice}.length()>0?new BigDecimal($F{TotalPrice}):0
Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot find function length in object 200000. (bsg_order_form_for_mobile_2_1452582799287_998403#62)
Print not filled. Try to use an EmptyDataSource…
TotalPriceのField Classはjava.lang.Integerにしています。
a.suzuki参加者その他条件が改行されてしまう件ですが、指定のフォントにしたところ、改行せずに出力されました。
a.suzuki参加者Text Field Expressionにnew BigDecimal($F{XXXX})と入力したところエラーなってしまいました。
読み込むデータは数値で、PattenはNumberを選択しています。 -
投稿者投稿