GrapeCity.devlog

グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の、製品のTIPSや発売などに関する最新情報をお届けします。

GrapeCity

ActiveReportsで軽減税率制度に対応した請求書を作ろう!

2019年10月から消費税が8%から10%に引き上げられ、それと同時にスタートするのが軽減税率制度です。

消費税を納税する必要がある事業者は、これまでは「請求書等保存方式」という方式で請求書を保存することが仕入税額控除の要件となっておりましたが、2023年10月からは「適格請求書等保存方式」での保存が控除の要件となります。

※2019年10月~2023年9月までの間は事業者の準備等に配慮し、要件の少し緩い「区分記載請求書等保存方式」が導入されます。

今回は帳票開発ツール「ActiveReports for .NET(アクティブレポート)」を使用して、軽減税率制度に対応した請求書を作成するポイントをご紹介します。

軽減税率に対応した請求書を作成するには?

区分記載請求書、ならびに適格請求書の細かい要件は前述のリンクなどが詳しいですが、どちらの方式でも共通して必要になってくるのが、対象項目の税率ごとに集計した額を記載することです。

「適格請求書等保存方式」の場合は、以下を記載することが定められています。

  • 税率ごとに区分して合計した対価の額(税抜又は税込)及び適用税率
  • 税率ごとに区分して合計した消費税額等(消費税額及び地方消費税額の合計額)

つまり合計金額と消費税を税率ごとに集計して表示する必要があるのですが、ActiveReportsならそういった面倒な集計も簡単です。詳細な方法は以下のナレッジ文書をご参考ください。

今回はこの中からページレポートで集計を行う方法をご紹介したいと思います。

参考情報:3つの帳票デザイン方式

テストデータ

以下のようなCSV形式の売上情報をテストデータとして使用します。ちなみに、軽減税率の対象商品は、「酒類・外食を除く飲食料品」と「週2回以上発行される新聞(定期購読契約に基づくもの)」の2種類で、今回の場合は、「弁当」と「牛乳」が軽減税率(8%)対応商品となります。

日付,品名,単価,個数,税率
2019-10-01,弁当,500,50,8
2019-10-01,ビール,300,20,10
2019-10-02,牛乳,150,10,8
2019-10-03,雑誌,250,30,10

ここで小技として、「単価×個数」の計算は何度も使用するので、「データセット」ダイアログの「フィールド」ページで、カスタムフィールドとして定義しておくと作成が捗ります。ここでは「単価×個数」を「小計」として定義します。

カスタムフィールドの設定

レイアウト

以下のようなレイアウトの請求書を使用します。

請求書のレイアウト

全体の集計値の下に、税率ごとの集計値を記載しています。

税率ごとの集計値

税率ごとに集計する

前述のナレッジにもあるとおり、税率ごとの集計値の取得方法はいくつかあり、また、帳票のレイアウトによって使える方法も変わってきます。

今回のように明細の最後に集計値を出力したい場合は、「式」の機能を使って条件ごとの集計を行います。

この時、集計値を表示するTextBoxはTableのフッタに配置します。これにより、例えば最終ページにだけ集計値を出力したい、といった場合の制御も簡単になりますし、最終ページ以外には無駄なく明細行が出力できます。

全体の集計値表示用に2行、税率ごとの集計値表示用に1行ずつの計4行のフッタを使用します。(ここではわかりやすいようにフッタの背景色に色付けしています。)

レイアウト構成

集計値表示用のセル(TextBox)には、それぞれ「税抜金額」と「消費税」を集計するための「式」をValueプロパティに設定します。

参考情報:ActiveReports for .NET 製品ヘルプ - 式

全体の集計値の場合は単純にSum関数を使えば良いですが、税率ごとに集計する場合は、Sum関数とIIF関数を組み合わせて使います。例えば税率10%項目のみを集計する式は以下のようになります。

税抜金額

=Sum(IIF(Fields!税率.Value=10, Fields!小計.Value, 0))

消費税

=Sum(IIF(Fields!税率.Value=10, Fields!小計.Value*(Fields!税率.Value*0.01), 0))

税率8%項目の方も同様に式を設定して実行すると、冒頭のスクリーンショットにあったように、税率ごとの集計値が表示できました。

実行結果

ちなみに複数ページになった場合も、Tableのフッタを使っているので、1ページ目は領域いっぱいに明細が出力され、2ページ目にだけ集計行が出力できます。

実行結果(複数ページ)


作成したサンプルはこちらで公開しています。ActiveReports for .NET 12.0J SP3で作成されています。

ダウンロード(zipファイル:14.7KB)


おわりに

いかがでしたでしょうか。ページレポートの場合、今回のような条件付きの集計処理も、「式」を設定するだけのノンコーディングでできてしまうので、まだ使用したことのない方は是非お試しいただければと思います。

また、弊社Webサイトのナレッジベースでは製品に関する役立つ情報を多数公開しております。製品の使用方法で迷った場合は、是非こちらを一度ご確認いただければと思います。

  • グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉ではエンジニア経験者を幅広く募集しています。
  • グレープシティ株式会社のDeveloper Tools〈開発支援ツール〉の製品のデモアプリケーションをお試しください。