何度も同じような見積書を作成しているうちに、テンプレート化して使いまわしたいと思うことがあると思います。
例えば、1度作成した見積書を、同じような内容で再度見積を行うことはよくあります。見積書に関わらず、請求書・納品書なども同様です。
今回は、作成した帳票をテンプレート化して、次回の作成時に呼び出せるようにする方法をご紹介します。
作成代行も行っておりますので、相談やお問合せは、お問い合わせ よりお願い致します!
テーブル構成
今回は見積書の作成を例に、帳票のテンプレート化をご紹介したいと思います。テーブルは4つで構成されます。
- 見積書
- 見積書明細
- 見積書テンプレート
- 見積書明細テンプレート
「見積書」と「見積書明細」が基本の構成となります。それと対をなすテンプレート用のテーブルとして「見積書テンプレート」と「見積書明細テンプレート」を作成しています。
見積書テーブル
テンプレートから作成した際に、どのテンプレートから作成したか分かるように「利用見積書テンプレート番号」を設けいています。それ以外は普通の見積書に存在する項目になっています。
- 見積書管理番号
- 利用見積書テンプレート番号
- ステータス
- 見積作成日
- 見積作成担当者
- 顧客ID
- 合計(税抜)
見積書明細テーブル
どの見積書に紐づくかを判別するために「見積書管理番号」を設け「Ref」で参照させます。これも通常の項目と思います。
- 見積書管理番号
- 見積項目ID
- 単価(税抜)
- 個数
- 消費税率
見積書テンプレートテーブル
見積書から作成されるテンプレートになります。テンプレートから見積書を作成する時に、初期値を入れた状態でコピーしたい場合は、項目を追加することで実現可能です。
- 見積書テンプレート番号
- コピー元案件
- 見積書テンプレート名
見積書明細テンプレートテーブル
どの見積書テンプレートと紐づくかを判別するために、「見積書テンプレート番号」をRefタイプとして、見積書テンプレートテーブルに紐づけます。
- 見積書テンプレート番号
- 見積項目ID
- 単価(税抜)
- 個数
- 消費税率
処理イメージ
処理のイメージを図で説明します。
①見積書からテンプレートを作成
画面からユーザが「テンプレート化」ボタンを押すことで、見積書のテンプレートを作成します。
ポイントは、見積書テンプレートに「コピー元案件」を「Ref」タイプで保持することで、見積書明細を「Related 見積書明細s」で取得できる点です。
- 画面からユーザが「テンプレート化」ボタンを押す
- 画面に表示している見積書データが、見積書テンプレートへコピーされる
- 見積書テンプレートに新規にデータが追加されたことを検知
- 見積書に紐づく見積書明細データを、見積書明細テンプレートへコピー
②テンプレートから見積書を作成
画面から「テンプレートから作成」ボタンを押すことで、新規に見積書を作成し、作成した見積書の入力フォームを表示します。
こちらは、画面遷移を行うため1連の処理(オートメーションは非同期)にしたかったので、少し無理をして(見積明細書作成で前提を置いて)アクションのみで実現しています。
また、見積書のキーである「見積書管理番号」を「見積書明細」に紐づける点でも工夫をしています。
- 画面から「テンプレートから作成」ボタンを押す
- 見積書テンプレートから、見積書を作成
- 上記で作成した見積書の「見積書管理番号」を取得し見積書明細を作成
- 作成した見積書の入力フォームを画面に表示
以下では、具体的に作成方法をご説明していきます。
①見積書からテンプレートを作成
画面からユーザが「テンプレート化」ボタンを押す
ここは通常のイベントを作成します。
画面に表示している見積書データが、見積書テンプレートへコピーされる
ボタンを押下することで、以下のアクションを実行します。
- Action name:テンプレート化
- For a record of this table:見積書管理
- Do this:Add a new row to another table using values from the childs rows from this row
- Table to add to:見積書テンプレート
項目には、後続の処理で見積書明細をコピーする際に必要な「コピー元見積書」に、「見積書管理番号」を入れます。
また「見積書テンプレート番号」は、後続の見積書明細のコピーと一致するように機械的に採番します。
[案件管理番号]&"_"&(COUNT(filter(見積書テンプレート管理,[コピー元案件]=[_THISROW].[案件管理番号])))
(※以下は「コピー元案件」「案件管理番号」となっていますが読み替えてください。)
見積書テンプレートに新規にデータが追加されたことを検知
見積書テンプレートに新規にデータが追加されたことを検知して動くオートメーションを作成します。
When this EVENT occurs:見積書テンプレート管理にデータが追加
以下のCustom actionで「Run action on rows」を作成します。
- Referenced Table:見積書詳細
- Referenced rows:filter(見積書詳細,[案件管理番号]=[_THISROW].[コピー元案件])
- Referenced Action:テンプレート化トリガー
見積書に紐づく見積書明細データを、見積書明細テンプレートへコピー
呼び出す見積書詳細の「テンプレート化トリガー」は、見積書詳細からテンプレート化対象の明細に対して「テンプレートデータコピー」を実行します。
- Action name:テンプレート化トリガー
- For a record of this table:見積書詳細
- Do this:execute an action on a set of rows
- Referenced Table:見積書詳細
- Referenced Rows:filter(見積書詳細,[案件管理番号]=[_THISROW].[案件管理番号])
- Referenced Action:テンプレートデータコピー
テンプレートデータコピーの「見積書テンプレート番号」は、見積書のテンプレート化時に採番した番号と同じとなるようにします。これにより、テンプレート化した見積書と見積書明細を紐づけることが可能になります。
[案件管理番号]&”_”&(COUNT(filter(見積書テンプレート管理,[コピー元案件]=[_THISROW].[案件管理番号])))
②テンプレートから見積書を作成
テンプレートから見積書作成トリガー
以下の一連の処理をグループ化するアクションです。
- 見積書作成
- 見積書明細作成
- 作成後画面遷移
見積書作成
見積書テンプレートから、新規に見積書を作成する処理です。
- Action name:見積書作成
- For a record of this table:見積書テンプレート
- Do this:Add a new row to another table using values from this row
- Table to add to:見積書管理
見積書明細作成
上記で指定した見積書に紐づく見積書明細の項目「Related 見積書テンプレート詳細s」に対して、「見積書詳細データコピー」を実施します。
見積書詳細データコピーでは、「見積書管理番号」に、新しく採番された「見積書管理番号」を設定するために以下の数式を入れます。
any(select(見積書管理[見積書管理番号],[_rownumber]=max(見積書管理[_rownumber])))
これにより、「見積書管理番号」に新しく追加した番号を採番することが出来ます。
作成後画面遷移
新しくしたら、そのまま見積書を作成したくなるため、新しい見積書の入力フォームへ画面遷移させます。
そのため、以下の処理を行います。
- Action name:作成後画面遷移
- For a record of this table:見積書テンプレート管理
- Do this:go to another view within this app
- Target:
LINKTOROW(any(select(見積書管理[案件管理番号],[_rownumber]=max(見積書管理[_rownumber]))),"見積書管理_Form")
最後に
以上で、何度も作成する見積書/請求書/納品書/領収書などのビジネス帳票をパターン化して、業務生産性を向上できるようになります。
もし、自社でも利用したいなどのご要望がございましたら、作成代行も行っておりますので、相談やお問合せは、お問い合わせ よりお願い致します!
コメントを残す