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?

【パブリッシャー】展開/折りたたみ可能なWEBレポート

0
Posted at

はじめに

本記事では、概要レポートを作成し、必要に応じて詳細を展開して表示する手法をご紹介します。

実装

2つのレポートを準備することで、展開可能なレポートを作成できます。
具体的には、概要を示す親レポートと、各項目の詳細データを表示する子レポートを用意し、これらを組み合わせます。
image.png
この実装のために、SAP Business One を製品として活用しています。

親レポート(概要レポート)

Sharperlight アプリケーションのメニューより パブリッシャーを選択して起動してください。
その後、新規ボタンをクリックし、新規レポートの作成プロセスを開始します。
image.png
一般タブで コードグループタイトルレポートのタイトルをそれぞれ入力します。
image.png
オプションタブで、既定の出力形式をTable Gridに設定します。
image.png
テーブルタブでを 800px に設定してください。後で表示内容を確認してから調整できます。
image.png
では、ダイアログ下部のクエリーを編集ボタンをクリックしてクエリを定義します。

展開可能なレポートを作るための親レポートで最も重要なポイントは、出力項目の名前です。

子レポート(詳細レポート)のクエリでフィルタリングに使用する項目名と、親レポート側の出力名を一致させる必要があります。

この例の場合、親レポートの出力項目である「%Company」(Company の出力名)と「%DocEntryNumber」(Doc Entry Number の出力名)が、子レポートを駆動するキーとなります。

子レポートのクエリ内で、親レポートの出力項目に対応するフィルターを作成し、フィルター名を「@」で始まる形式(@Company および @DocEntryNumber)に設定してください。
名前が完全に一致しないと、親子連携(展開機能)が正しく動作しません。
image.png

子レポート(詳細レポート)

新しい公開レポートの作成を開始します。
一般タブで コードグループタイトルレポートのタイトルをそれぞれ入力します。
image.png
オプションタブで、既定の出力形式をTable Gridに設定します。
image.png
ダイアログ下部のクエリーを編集ボタンをクリックしてクエリを定義します。

販売請求書の詳細テーブルを選択すると、必須フィルターが自動追加されます。

展開可能なレポートを作成する際の子レポートで最も重要なポイントは、フィルター項目の名前です。

親レポート(Summary Report)のクエリにおける出力項目の名前と、子レポートのフィルター名を一致させる必要があります。

この例では、親クエリの出力「%Company」と「%DocEntryNumber」の値が、子クエリのフィルター「@Company」「@DocEntryNumber」に正しく渡されることで連携が成立します。
image.png

親レポート(サマリー)と子レポート(詳細)の関係は、図のように次の通りです。
image.png

あとがき

展開可能なレポートを作成する上で押さえておくべき主なポイントは次のとおりです:

  • 親レポート(概要)と子レポート(詳細)を連携させるためには、出力項目とフィルター項目の名前を一致させる必要があります
  • レポートの既定の出力形式は必ずTable Gridに設定してください

** 注意事項 **
親クエリ内で子クエリとのリンクに使用する出力フィールドは、文字列型(string-type)のフィールドでなければなりません。
親クエリのリンク用出力フィールドに数値型フィールドを使用した場合、展開可能なレポートを作成するこのロジックは機能しません。
このソフトウェアの制限は、Sharperlight ビルドバージョン 7.3.27 まで確認されています。
数値型フィールドをどうしても使用しなければならない場合、先に示した例のように拡張表現を使用することで、この制限を回避できます。
image.png

この例では内部番号フィールドを使用したかったのですが、このフィールドは数値型でした。
そのため、数値データを文字列に変換するために拡張表現で「CStr({%DocEntryNumberRaw})」を作成し、出力項目の名前を「%DocEntryNumber」としました。

image.png

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?