請求先ごとの合計請求書を自動出力

230‐02 請求書発行| 活用編

このサーバーサイド処理はサーバーサイド処理の活用シナリオにある「請求先ごとの合計請求書を自動出力」の具体的な作成方法を解説したものです。

処理を定期実行することで、月次処理で作成した請求データ(※シナリオ230-01 月毎の合計請求データを受注データから生成」を参照)から、取引先ごとの合計請求書を指定のフォルダに自動で帳票(PDF)出力します。

プロジェクトファイルS230-02_invoice-output_b.fgcp
S230-02_invoice-output_a.fgcp(実装済みプロジェクトファイル)

定期実行処理の作成

プロジェクトを開き、リボンの「作成」メニューから「スケジュールタスク」を選択し「スケジュールタスクの設定」を表示します。
新規に「請求先ごとの合計請求書を自動出力」という名前でスケジュールタスクを作成します。

トリガーの設定

トリガータブを開き、毎月20日に1回実行されるトリガーを作成します。

  • 「設定」で「毎月」を選択
  • 「月」に「<すべて選択>」を設定
  • 「日」に「20」を設定
スケジュールタスクのテスト実行

上記設定では毎月20日にスケジュールタスクの処理が行われます。
テスト結果をすぐに確認する場合、「テスト実行」ボタンを押下してください。

処理コマンドの作成

請求テーブルのデータから請求書を出力する対象である、請求月が当月となっているデータを抽出します。
コマンドタブを開き、「変数の設定」コマンドを追加し、以下の通りに設定します。

  • 「変数名」に「請求リスト」と入力
  • 「変数値」で「データベースのテーブルを参照」を選択
    「対象テーブル」で「請求」を選択
  • 「変数値」の選択タブで「複数レコード」を選択
    「フィールドの追加」ボタンを押下し以下の3項目を追加
    • 「フィールド」に「[顧客ID]」を選択
      「変数名」に「顧客ID」と入力
    • 「フィールド」に「[請求月]」を選択
      「変数名」に「請求月」と入力
    • 「フィールド」に「[請求CD]」を選択
      「変数名」に「請求CD」と入力
  • 「変数値」のクエリータブで「新しい条件」ボタンを押下し、以下のように設定
    • 「フィールド」に「[請求月]」を設定
    • 「条件」に「=(等しい)」を設定
    • 「値」に「=MONTH(TODAY())」と入力
現在日時の取得

クエリーの値にはExcelと同じ関数を指定した式を使用することができます。
上述の「=MONTH(TODAY()) 」では、 Excel と同様に現在日時の月の部分を取得します。利用可能な関数の一覧は、下記のページを参照してください。
>関数一覧(Forguncyヘルプ)

帳票出力処理は、上記の処理で請求テーブルから抽出したレコードの分だけ繰り返し行います。
「繰り返し」コマンドを追加し、以下の通りに設定します。

  • 「繰り返し回数、または繰り返し配列」に「変数の設定」コマンドで設定した「請求リスト」を選択
繰り返し配列オブジェクト名

繰り返しオブジェクト名を使用することで、繰り返し配列における現在のオブジェクトを取得することができます。
「繰り返し配列オブジェクト名」のデフォルトの名称は「Item」です。この名称は任意に変更が可能です。
上図の例では、変数の設定コマンドで設定済みである請求テーブルの3つのフィールドの値を繰り返し配列として設定しています。
後述のレポートのエクスポート等のコマンドでは、「=Item.顧客ID」や「=Item.請求CD」といった形で顧客IDの値や請求CDの値を取得し使用しています。

請求テーブルでは顧客をIDで管理しているため、顧客名を使用するには「顧客」テーブルを参照する必要があります。
「繰り返し」の子コマンドに「変数の設定」コマンドを追加し、以下のように設定して顧客名を格納する変数を作成します。

  • 「変数名」に「顧客名」と入力
  • 「変数値」で「データベースのテーブルを参照」を選択
    「対象テーブル」で「顧客」を選択
  • 「変数値」の選択タブで「単一のフィールド」を選択
    「対象フィールド」で「顧客名」を選択
  • 「変数値」のクエリータブで「新しい条件」ボタンを押下し、以下のように設定
    • 「フィールド」に「[顧客ID]」を設定
    • 「条件」に「=(等しい)」を設定
    • 「値」に「=Item.顧客ID」と入力

帳票の出力先を定義するため、「変数の設定」コマンドを追加します。
ここでは、帳票が出力されるファイル名をフルパスで作成しますが、顧客名に合わせてファイル名を変更されるようにします。
先ほど作成した変数「顧客名」を使用した式を指定し、「C:¥請求¥」の中に「(顧客名).pdf」というファイルが生成されるように設定を行います。

  • 「変数名」に「ファイル名」と入力
  • 「変数値」で「値、または数式」を選択
    「=”C:¥請求¥”&顧客名&”.pdf”」と入力

帳票の出力を行う処理を実装します。
「レポートのエクスポート」コマンドを追加し、以下のように設定します。

  • 「エクスポート対象のレポート:」にプロジェクト内に作成済みのレポート「請求書」を指定
  • 「PDFファイルのパス:」に定義済みの変数「ファイル名」を指定
  • 「パラメーター一覧」で「新規」ボタンを2回押下しそれぞれ以下のように設定
    • 「値」に「p_請求CD」を選択
      「パラメーター名」に「=Item.請求CD」を設定
    • 「値」に「p_顧客ID」を選択
      「パラメーター名」に「=Item.顧客ID」を設定
レポートのパラメーター

レポートにはデータソースとしてテーブルを設定することが可能です。
データソースとして利用するテーブルにはクエリー機能があり、予め定義したデータソースパラメーターを使用することでデータの絞り込みができます。
上記処理ではp_請求CDとp_顧客IDがデータソースで定義済みのデータソースパラメーターであり、ここに繰り返しコマンドで扱っている請求CDの値や顧客IDの値を渡すことで帳票に出力するデータをクエリーで制御しています。

結果確認用のページの確認

「請求データ照会」ページを開きます。
ページには「受注」、「請求」、「受注明細」、「請求明細」の各テーブルをそれぞれデータ連結した4つのリストビューが配置してあります。
また、請求月で表示データを絞り込むための「請求月」コンボボックスが配置してあります。

レポートのデザインを確認するには、ナビゲーションウィンドウのレポートから「請求書」を開きます。
「請求書」と書かれたタイトルと、「顧客名」「ご請求額」のフィールド、「商品名」を「価格」を出力するテーブルが配置してあります。

結果を確認

プロジェクトをデバッグ実行し動作を確認します。
スケジュールタスクの実行後、請求月が当月である請求データが顧客単位にPDF形式で帳票出力されていることを確認できます。

>ノーコードWebアプリ開発ツール「Forguncy」

ノーコードWebアプリ開発ツール「Forguncy」

Forguncy(フォーガンシー)は複数のシステムと直接接続して参照・更新が行えるデータ管理機能と、Excel感覚でレイアウトができる画面デザイン機能を備えたノーコードWeb開発&運用プラットフォームです。基幹システムでは対応できず、仕方なくExcelやAccessで管理していた業務のサブシステム化を強力に支援します。

CTR IMG