納品書をPDFにして出力する(前編)

2014-12-22

前回までの説明で、出荷記録をGoogleドライブのフォームを使用してスプレッドシートへ記録するところまで話ししました。

出荷管理をスマホで記録できるシステムの作り方

出荷管理をスマホで記録できるシステムの作り方(後半)

ここでは、その記録した内容からPDFの納品書を作ってみたいと思います。納品書のPDFを自動に作るには、Googleドライブ用のプログラミング言語であるGoogle Apps Scriptを使ったプログラムを作る必要があります。しかし、今回はプログラム自体のサンプルも公開しますので、それを利用してもらえばすぐに動かすことができます。そんなに難しいプログラムではないので、少し修正すれば自分専用のツールにすることもできると思います。

出力するフォーマットを準備する出力するフォーマットを準備する

納品書を出力するには、今記録しているスプレッドシートを単純に印刷(PDF 化)しても、見た目がイマイチ過ぎてお客さんに渡せるものではないですね。やはりお客さんに提出するものは、きちんとしたフォーマットにしたいです。ですので、農園観察日記では、記録するスプレッドシートと、PDF化するスプレッドシートを分けています。今回作成する納品書のフォーマットは、以前の記事でイメージをお伝えしていた以下のフォーマットを使います。

納品書サンプル

このフォーマットにGoogleフォームで入力した値を当てはめていくことで、お客様に提示できる納品書が出来上がります。ではどの部分に値を埋め込んでいけば良いのでしょうか?フォームで入力した値と、納品書のフォーマットを見比べて整理してみましょう。

マッピング

納品書の上から見ていくと、まず納品先の宛名として記載が必要になります。この部分はフォームで入力されたデータに「出荷先」列として記録されていますので、その値を設定したいです。続いて納品書番号ですが、こちらはフォームで入力したデータには特に該当するものがありません。
ここでは、簡易的に納品書番号は出力の都度採番することにしたいと思います。番号体系としては固定部分と可変部分があると思うので、その採番ルールをGoogle Apps Scriptの関数で実装して対応します。採番ルールと関数は今回は以下の様にしました。

【採番ルール】
固定部分:「SD」を接頭辞として付ける
可変部分:5桁の連番とする

連番はスプレッドシート上に「マスター」というシートを作って、そこのひとつのセルで番号を管理します。出力の都度その番号に1を加算して使用します。番号は上記のようなフォーマットにしますので、採番する関数の中でマスターシートから取得した番号をフォーマット変換しています。

/**
 * 出荷番号を採番する
 */
function getShipNo(){
  var prefix = 'SD-';
  var row = sheetUtil.getRow('マスター', 1);
  row.value = Number(row.value)+1;
  sheetUtil.updateRow('マスター', 1, row);
  var shipNo = row.value;
  shipNo = ("0000"+num).slice(-3);
  return prefix + shipNo;
}

出荷日に関しては、先程の出荷先同様に出荷日という列がありますから、その内容を設定します。

続いては、納品する野菜の詳細が書かれた表部分になります。ここは今までと違って一つの納品書に対して設定するデータが複数個あります。この一つ一つを明細行と呼びます。今回の入力フォームでは最大5件の明細行まで入力できるようになっています。フォーム上ではそれを

出荷する野菜1〜5
数量1〜5
単価1〜5

として入力していました。記録用のスプレッドシート上ではこれら5種類の明細は1行に展開されています。これらの明細を納品書の明細表の各行に割り当てていきます。

納品書を出力するアプリケーションの解説納品書を出力するアプリケーションの解説

まずは前回、前々回の記事も含めて、今回作成したアプリケーションの全体像を図にしてみました。

出荷入力説明資料

左側に利用者が使う端末があります。スマートフォンとパソコンを想定しています。まずはGoogleフォームを使った出荷内容の記録です。こちらはスマートフォンとパソコンどちらかでも可能です。今度はその記録した内容から納品書を作成する流れになりますが、こちらは今回はパソコンからしか操作できません。ただし、スマートフォン対応も難しくは無いので別途説明します。納品書は最終的にはPDFとして作成してGmailでメール送信しますが、PDFを作成する下準備として、一度納品書フォーマットのスプレッドシートを作っています。その後その納品書フォーマットのスプレッドシートをPDFに変換してメールで送付するという流れになります。

続いて、記録されているデータから納品書を出力する操作方法を先に説明します。その後、その操作により動くプログラムの説明をしたいと思います。納品書を出力する際には、どのデータを使うかを指定する必要があります。今回はパソコンで操作する前提でプログラムを開発しました。記録用のスプレッドシートを開いた状態で、納品書に出力したい行を選択して呼び足すこととします。実際にはスプレッドシート上で行を選択した状態でスプレッドシートのメニューから納品書出力のプログラムを呼び出します。プログラム側からすると「現在スプレッドシート上で選択されている行」を処理すると言う形になります。

操作方法の画面イメージは以下の様になります。

操作方法

納品書出力をすると以下のようなメールが届きます。そしてそのメールに納品書のPDFが添付されています。

納品書メール

納品書PDF

それでは次回、このプログラムの中身を説明していきます。プログラムや関連するスプレッドシート等一式の取得方法も次回の記事でご案内します。

マーク次にこちらの情報をご覧ください

  • 無料レポート

スポンサーリンク

Copyright(c) 2014 Natural Fun Factory All Rights Reserved.