読者です 読者をやめる 読者になる 読者になる

山田健一のブログ

業務に強いフリーITエンジニア 山田健一のブログです

.NET で使用できる帳票ツールについて(7)

私はフリーITエンジニアとして、業務分析、業務改善提案を含む設計、製造、受入検査を含む検査、システム運用開始後の運用改善提案など、様々な分野を担当しています。

「.NET で使用できる帳票ツールについて」の続編です。

RapidReport の評価報告第5回目になります。

今回は 執筆書籍一覧_A4横 段組 を改良して外枠付きの帳票を作成します。
完成イメージは次のようになります。

f:id:yamadaken1:20151126084322j:plain

外枠の角が丸くなっているところ、外枠のサイズがデータ数に関わらず、固定になっているところがポイントです。
実は、固定サイズの外枠を配置しているのではなく、空行を出力するオプションで実現します。


それでは作成して行きましょう。

まず、

執筆書籍一覧_A4横 段組.rrpt
執筆書籍一覧_A4横 段組.rrdt
をコピーして、
執筆書籍一覧_A4横 段組_外枠.rrpt
執筆書籍一覧_A4横 段組_外枠.rrdt
を作成します。

 

執筆書籍一覧_A4横 段組_外枠.rrptをダブルクリックして作業開始です。

列見出しに四角形を追加します。
「角の丸さ」に 7 を指定して
「下枠線を隠す」にチェックを入れます。
次に「塗りつぶし色」に silver を指定しますが、ここで問題発生です。
列見出しが隠れてしまいます。

f:id:yamadaken1:20151126084529j:plain


RapidReport では、あとに配置したものが優先されるようです。
配置の順番を変更すれば良さそうですが、要素の順番変更のコマンドが見当たりません。
そこで、「列見出し」を右クリックして「要素の直接編集」をクリックします。

f:id:yamadaken1:20151126084622j:plain


メモ帳が起動して
要素のJSONが表示されます。

f:id:yamadaken1:20151126084650j:plain

次のように順番を入れ替えて保存します。
,(カンマ)に注意してください。行を入れ替えるだけだとエラーになります。

f:id:yamadaken1:20151126084713j:plain

列見出しが見えるようになりますので、2つとも選択して「四角形」プロパティーを削除します(「-無効」ボタン)。

データフィールドの「四角形」プロパティーも削除します(「-無効」ボタン)。

 

次に「明細」コンテントに四角形を追加します。
「角の丸さ」に 7 を指定して
「上枠線を隠す」にチェックを入れます。

この段階でプレビューを見てみましょう。

f:id:yamadaken1:20151126084757j:plain

列見出しとデータフィールドの間に罫線が欲しいので、「列見出し」コンテントに直線を追加します。

次に、データフィールドの上に配置した四角形のプロパティーを「ページ内の最後のグループではない時、「下枠線を隠す」を true に設定するようにします。

「ページ内の最後のグループ」であるかどうかは
state.last
または
state.last2 で分かります。これらの違いはブランクグループを対象とするか否かの違いです。
今回はブランクグループを追加しますので、
state.last2 を使用します。

四角形を選択して、一番下のプロパティーの「カスタマイズ」の「+追加」ボタンをクリックしてカスタマイズプロパティを追加します。
プロパティー は hide_bottom を指定します。
ホームページの「帳票定義のチートシート」を開き、rect(四角形) を見ると
hide_bottom が 「下枠線を隠す」に相当することが分かります。

適用条件の「式...」ボタンをクリックして、オペレータから not ,
メソッドから state.last2 を選択して、適用条件を完成させます。

「式」には true を設定します。

 

設定後のカスタマイズプロパティは次のようになります。

f:id:yamadaken1:20151126084844j:plain


プレビューを見てみましょう。
外枠は綺麗に表示させるようになります。
あとは空行の設定だけです。

チュートリアルの「見積書」を参考にして
明細グループの[配置]内で[並べる最大数]を 25 とし、 [空行を出力]にチェックを入れることで実現できます。

f:id:yamadaken1:20151126085056j:plain


以上で完成です。ちょっと手間はかかりますが、いろいろと応用はできると思います。

 

続きます。