DataTableの関数について

36 views
Skip to first unread message

rikako

unread,
Jun 19, 2025, 11:04:17 PMJun 19
to RapidReportサポート QAフォーラム
ご担当者さま

先日も別件でサンプルのご提示など大変お世話になっております。
掲載の件について、困っているところがあり質問させていただきたいです。

現在、明細行部分のJava側の実装として、DataTableのsetFieldNamesにて列名、addRecord().putにて各値をセットしています。

具体的には以下のような実装となっております。
final DataTable ret = new DataTable();
ret.setFieldNames("NO", "PRODUCT_NAME",..)
for (ProductBean each : beanList) {
            ret.addRecord().puts(beanToArray(each));
        }

BeanListには明細行のデータが入っており、配列に直した状態でセットしています。
デバッグしていますと、フィールドは正しく入りますが、各行の値のうち一部がaddされない状況です。
eachに当該データが入っているため、なぜRecordにaddできないのか原因特定に苦戦しております。

別帳票で、同じ実装方法で値が入れ替わる事象も発生しており、おそらく上記と同じ箇所に原因があるのではないかと思っています。

初歩的な質問でありましたり、実装の問題でしたら大変申し訳ございませんが、
もし可能でしたらご確認いただけますと幸いです。


RapidReport

unread,
Jun 23, 2025, 10:35:45 PMJun 23
to RapidReportサポート QAフォーラム
返答遅くなりすみません。

beanListがBeanを含んだListならばDataTableに変換する必要はなく、
これをそのままReportDataSourceに渡せばよいはずです。

report.fill(new ReportDataSource(beanList));

もし、beanListがIterable型なのであれば、以下のコードでListに変換できます。
List<Beanの型> list =  
   StreamSupport.stream(beanList.spliterator(), false) .collect(Collectors.toList());
report.fill(new ReportDataSource(list));

2025年6月20日金曜日 12:04:17 UTC+9 rikako:

rikako

unread,
Jun 24, 2025, 9:43:38 AMJun 24
to RapidReportサポート QAフォーラム

ご担当者さま

ご回答下さりありがとうございます。
試してみましたが、うまく帳票に値を渡すことができませんでした。
Beanを宣言しているファイルには、以下のように実装しています。こちらが何か悪さをしていることが考えられますでしょうか。
※JsonPropertyの引数は、デザイナ上でFieldの式に設定した値を同じものを入れております。
@Data
public class ProductInfo {
    @JsonProperty("PRODUCT_NAME")
    private String productName;
.....

もう1点お伺いしたいのですが、帳票出力処理を動かすと以下のような動きとなります。
◎実現したいこと
 ・商品の金額、税抜き金額、売価を商品ごとに表示したい
 ・1ページには10商品の情報までを出力し、空行も表示させたい

◎現状
 ・商品の各金額情報は表示されている
 ・1ページに1商品のみ出力される
  例)
   15商品を出力した場合
   →最初と最後のページには明細行以外の情報(「毎ページ表示」を設定したもの)が表示される
   →1ページに1商品のみが表示され、残りの9行は空行となる

本来であれば、15商品の情報を出力する場合、2ページ(1ページ目に10件、2ページ目に5件+5行の空行)で収まる想定ですが、上記の動きとなります。
BeanListに値は15件分入っているので、おそらくデザイナ上の設定が不足しているのではないか…と考えております。
念のため、デザイナ上での該当箇所設定について、共有させていただきます。

 明細行部分のコンテントには、特段何も設定しておりません。

 配下にグループを挿入し、そちらは「明細」にチェックが入っており、識別子に「productDetail」を入れています。
 また、「配置」の設定には「並べる最大数」に10、「空行を出力」にチェックを入れています。

 さらにその配下にコンテントを追加しており、そちらには「毎ページ表示」と「集計対象」にチェックをそれぞれ入れています。

分かりにくく大変恐れ入りますが、上記ご確認・ご回答いただけますと幸いです。
2025年6月24日火曜日 11:35:45 UTC+9 RapidReport:

rikako

unread,
Jun 24, 2025, 9:40:36 PMJun 24
to RapidReportサポート QAフォーラム

ご担当者さま

五月雨に申し訳ございません。
2点目に追加で質問した内容は自己解決いたしました。
ページあたりに表示する最大行数がページサイズと合っていないことに起因しておりました。

1点目につきましては、依然解消できていないため、もし可能でしたらご助言いただけますと幸いです…!
引き続きよろしくお願いいたします。

2025年6月24日火曜日 22:43:38 UTC+9 rikako:

RapidReport

unread,
Jun 27, 2025, 1:04:10 AMJun 27
to RapidReportサポート QAフォーラム
JavaBeansのデータを帳票に渡すには、
getterメソッドか publicフィールドを用意する必要があります。
提示いただいたコードにはprivateフィールドしか含まれていません。

Javaのコード例がチュートリアル1にあります。
https://rapidreport.systembase.co.jp/tutorial1.html

2025年6月25日水曜日 10:40:36 UTC+9 rikako:
Reply all
Reply to author
Forward
0 new messages