サーバーサイド 活用編
本記事はサーバーサイド処理の活用シナリオにある「請求先ごとの合計請求書を自動出力」の具体的な作成方法を解説したものです。
処理を定期実行することで、月次処理で作成した請求データから、取引先ごとの合計請求書を指定のフォルダに自動で帳票(PDF)出力します。

プロジェクトファイル (作成バージョン:8.0.41.0) | invoice-output_b.fgcp invoice-output_a.fgcp(実装済みプロジェクトファイル) |
1.プロジェクトを確認する
サンプルプロジェクトを開いてテーブルやページの確認を行います。
手順1-1.テーブルの確認
プロジェクトには5つのテーブルが存在します。
今回のコマンド作成に使用するテーブルは、主に「請求」「顧客」の2つとなります。
手順1-2.ページの確認
プロジェクトには「請求データ照会」ページとレポート「請求書」が既に作成されています。
今回はスケジュールタスクでの実装なのでユーザーがページ上の操作を行う必要はありませんが、請求データ照会ページでは受注データと請求データを一覧表形式で閲覧することができます。
2.スケジュールタスクを作成する
指定のスケジュールに従ってレポートを自動で生成する処理を作成します。
手順2-1.スケジュールタスクの設定
リボンの[作成]から[サーバーオブジェクト]の[スケジュールタスク]を押下します。
新しいスケジュールタスクの設定ウィンドウが開くので、[全般]タブの名前欄に下記のように入力します。
- 請求先ごとの合計請求書を自動出力

設定 | 毎月 |
月 | <すべて選択> |
日 | 20 |

スケジュールタスクのテスト実行
上記設定では毎月20日にスケジュールタスクの処理が行われます。
テスト結果をすぐに確認する場合、「テスト実行」ボタンを押下してください。
手順2-2.処理コマンドの作成
[コマンド]タブのコマンド…ハイパーリンクから、レポートの出力処理を実装します。手順2-2-1.出力対象となるデータの抽出
請求テーブルから出力対象である当月のデータを抽出します。
変数の設定コマンドを追加し、以下の通りに設定します。
変数名 | 請求リスト |
変数値 | データベースのテーブルを参照 |
対象テーブル | 請求 |
続けて、[選択]タブの設定を以下のように行います。
複数レコード | ||
フィールド | 変数名 | |
[顧客ID] | 顧客ID | |
[請求月] | 請求月 | |
[請求CD] | 請求CD |

続けて[クエリー]タブに移動し、以下のように設定します。
And/Or | フィールド | 条件 | 値 |
[請求月] | =(等しい) | =MONTH(TODAY()) |

現在日時の取得
クエリーの値にはExcelと同じ関数を指定した式を使用することができます。
上述の「=MONTH(TODAY()) 」では、Excelと同様に現在日時の月の部分を取得します。利用可能な関数の一覧は、ヘルプを参照してください。
>関数一覧(Forguncyヘルプ)
手順2-2-2.繰り返しコマンドの作成
手順2-2-1.で抽出したレコードの分だけレポート生成を繰り返すため、繰り返し処理の設定を行います。
繰り返しコマンドを追加し、以下の通りに設定します。
指定した回数分だけ繰り返し処理を行う | =請求リスト |
繰り返し配列オブジェクト名 | Item |

繰り返し配列オブジェクト名
繰り返しオブジェクト名を使用することで、繰り返し配列における現在のオブジェクトを取得することができます。
「繰り返し配列オブジェクト名」のデフォルトの名称は「Item」です。この名称は任意に変更が可能です。
上図の例では、変数の設定コマンドで設定済みである請求テーブルの3つのフィールドの値を繰り返し配列として設定しています。
後述のレポートのエクスポート等のコマンドでは、「=Item.顧客ID」や「=Item.請求CD」といった形で顧客IDの値や請求CDの値を取得し使用しています。
手順2-2-3.顧客名の抽出
請求テーブルでは顧客をIDで管理しています。
顧客名を使用するため、変数の設定コマンドで顧客名を取得する変数を作成します。
繰り返しコマンドの子コマンドとして変数の設定コマンドを追加し、下記のように設定します。
変数名 | 顧客名 |
変数値 | データベースのテーブルを参照 |
対象テーブル | 顧客 |
続けて、[選択]タブの設定を以下のように行います。
単一のフィールド | |
対象フィールド | [顧客名] |

続けて[クエリー]タブに移動し、以下のように設定します。
And/Or | フィールド | 条件 | 値 |
[顧客ID] | =(等しい) | =Item.顧客ID |

手順2-2-4.レポートの出力先設定
レポートの出力先を定義するため、変数の設定コマンドを追加します。
今回は顧客名に合わせてファイル名が変更されるように設定します。
変数名 | ファイル名 | |
変数値 | 値、または数式 | =”C:\請求\”&顧客名&”.pdf” |

手順2-2-5.レポートの出力処理
レポートの出力を行う処理を実装します。
レポートのエクスポートコマンドを追加し、以下のように設定します。
エクスポート対象のレポート: | 請求書 | |
PDFファイルのパス: | ファイル名(変数) | |
パラメーター一覧 | ||
値 | パラメーター名 | |
p_請求CD | =Item.請求CD | |
p_顧客ID | =Item.顧客ID |

レポートのパラメーター
レポートにはデータソースとしてテーブルを設定することが可能です。
データソースとして利用するテーブルにはクエリー機能があり、予め定義したデータソースパラメーターを使用することでデータの絞り込みができます。
上記処理ではp_請求CDとp_顧客IDがデータソースで定義済みのデータソースパラメーターであり、ここに繰り返しコマンドで扱っている請求CDの値や顧客IDの値を渡すことで帳票に出力するデータをクエリーで制御しています。
3.デバッグを実行
プロジェクトをデバッグ実行します。
手順3-1.デバッグを実行する
リボンの[ホーム]>[デバッグ]>[開始]ボタン、またはForguncy Builderの左上にある▶ボタンを押下してプロジェクトをデバッグ実行します。

作成したページがブラウザで表示されます。

スケジュールタスクの実行後、またはスケジュールタスクのテスト実行後に当月の請求データが顧客単位にPDF形式で出力されていることを確認できます。
手順3-2.レポートデザインの確認
レポートデザインの確認は、ナビゲーションウィンドウのレポートから請求書レポートを開きます。
「請求書」と書かれたタイトルと、「顧客名」「ご請求額」のフィールド、「商品名」を「価格」を出力するテーブルが配置してあります。

Forguncyのコマンドについてもっと知る
Forguncyの開発スタートガイドやオンラインヘルプでは、今回使用したコマンドについてより詳しくご紹介しています。
こちらもぜひご活用ください。
>開発スタートガイド – 業務ロジックを実装する「コマンド」を知る
>開発スタートガイド – 処理を自動化しアプリケーションの幅を広げるサーバーサイドコマンド