0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Wagbyの開発ノウハウを共有するよ[帳票編]

Last updated at Posted at 2021-05-26

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の帳票連携の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?