Wagbyを3年以上使用していますが、
なかなかJasminesoft社(Wagby製造元)以外の情報がないので、こちらに記載します。
ローコード開発(超高速開発)ツール Wagbyとは
Wagbyと基本的な使い方については、こちらが参考になります:
Wagby概要【5年間使用しています】
今回の環境
Wagbyの最新版が2021年に出ました。
最新版は、以下の2種類あります。
・ローコード版(ローカル、オンプレ、クラウドいずれも可)
・ノーコード版(クラウドのみ、今回初めての提供となる)
このうち、ローコード版が、従来のWagby製品の後継版となるため、ローコード版を中心に説明します。
Wagby R9といわれているものです。
自分のPCのスペックは以下:
OS:Windows 10
CPU:Corei7-4770K
メモリ:32GB
帳票
こちらにも記載していますが、Wagbyで帳票を使おうとすると、TIBCO Jaspersoft Studioというものが必要になります。
Wagby概要【5年間使用しています】
このJaspersoft Studio、ネット上では、英語情報が中心なため、かなり苦戦しました。
以下の通り、Wagbyマニュアルにも簡単な説明はありますが、特に帳票に出力する明細の設定が分かりづらいです:
JasperReportsを利用したPDF出力 (2) 一覧表示
トラブルシューティングは、内容がペラペラなため、ほぼ役に立ちません。
トラブルシューティング
最悪、Wagbyの販売代理店に相談すれば、有償で対応いただけるのですが、マニュアルやググればわかるものに
お金を払うのはあれだったのと、コストかつかつ案件だったので、頑張って調べました。
WagbyとJaspersoft Studioの帳票を連携するためには、
Wagby側とJaspersoft Studio(帳票)側の2つの設定が必要です。
Wagby側の設定方法
Wagby側の設定方法は、以下を参照
JasperReportsを利用したPDF出力 (1) 詳細表示
Wagbyが生成するWebアプリに、jasperreports.propertiesを入れる必要があります(空でもOK)。
以下にコピーしておけば、Wagbyが勝手にWebアプリにコピーしてくれて便利です。
wagby_root\customize\resources\jasperreports.properties
Jaspersoft Studio側の設定方法
サブレポートの設定方法
「Dataset and Query Dialog」では「/root/モデル名_p/繰り返し項目名」までをxPathで指定。
※例:/root/model1_p/detail
Field Name、Class Type、Descriptionは、それぞれ以下に設定。
(Descriptionには、親レポートと異なり、パスを設定せず、項目名を設定)
Field Name:フィールド名(項目名に基本あわせる)
Class Type:java.lang.String
Description:項目名
サブレポートをうまく動かすためのコツ(以下2つの設定が必要)
1.Parameters
画面のDetailに配置したサブレポートを選択→右下のPropertiesの下部にある「Subreport Properties」のParametersを選択→
以下を設定:
Name : XML_DATA_DOCUMENT
Expression: $P{XML_DATA_DOCUMENT}
2.Data Source Expression
1と同じ「Subreport Properties」の「Data Source Expression」に以下を設定:
((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).dataSource("/root/model1_p/detail")
※dataSourceの中は、/root/モデル名_p/繰り返し項目名
<subreport>
<reportElement x="-17" y="0" width="595" height="50" uuid="a961f5f8-c9a7-4199-96c1-47ec77c848e7"/>
<subreportParameter name="XML_DATA_DOCUMENT">
<subreportParameterExpression><![CDATA[$P{XML_DATA_DOCUMENT}]]></subreportParameterExpression>
</subreportParameter>
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).dataSource("/root/model1_p/detail")]]></dataSourceExpression>
<subreportExpression><![CDATA["./dorp_detail.jasper"]]></subreportExpression>
</subreport>
その他参考になりそうな情報
1.一部のサブレポート設定方法(レポートに明細行(繰り返しデータがある箇所)がある場合)
こちらのJaspersoftコミュニティの記事が役に立ちます:
Use a subreport in a report which is connected to an xml datasource
2.親レポートのデータソースをサブレポートへ渡す方法(datasourceの具体的な設定例の記載があります)
Processing jasper subreports with JasperStarter
3.Subreportが出力件数分実行される場合の対応方法
SubreportをDetails Bandに設定すると、Subreportのクエリが、出力件数分実行され、同じ出力結果が複数行にわたり出力されます。
例:
サブレポートで3行出力されるデータがあり、これをメインレポートのDetails bandに設定すると、以下の様に3行を3回出力するレポートとなります。
AAA
BBB
CCC
AAA
BBB
CCC
AAA
BBB
CCC
[対策]
この場合は、Summary Bandを追加して、そこにSubreportを追加すること。
Summary Bandがレポートエディタの一番下に表示されても、レポート上は、Column Footerの上に表示されます。
(実際に、previewタブで出力結果を確認すれば、ちゃんと表示されていることを確認できます)
以上です。
Wagbyの帳票連携の参考になれば幸いです。