LAMP開発者のためのWindows Azure講座

第8回 Azure上にPHP+MySQLでアプリを作ってみよう[その1]

この記事を読むのに必要な時間:およそ 3 分

Excelでの経費精算を支援するPHP+MySQLアプリ

前回まででAzure上でPHPとMySQLを動作させる環境が整いましたので,今回はその環境を使って簡単なサービスを作成してみます。今回作成するのは,経費精算の経理業務を少しだけ楽にするアプリケーションです。具体的には,Excelで作成した経費精算書をWebサイトにアップロードし,そこから会計ソフトでインポートできるCSVファイルを出力するものです。

最近は,Webサイト上で経費精算するための便利なサービスが増えてきました。こうしたサービスを利用するメリットの1つは,データやファイルを一元的に管理できることです。ユーザが入力したデータは会計ソフトなどでそのまま利用できることも多く,事務の効率化につながります。とは言え「実際にそこまでは必要ない」という方も多いでしょう。

一方,Excelを使った経費精算のメリットは,入力,編集のしやすさ,印刷品質の高さなどです。特に,印刷と押印が必要なシーンに対しては,Web上のアプリケーションは十分に対応できていないのが現状だと思います。とは言え,Excelの場合,ファイルをどこで管理するかなど煩雑になりがちです。また,データ自体も会計ソフトで利用されることはほとんどありません。

これらを踏まえ,以下のようなざっくりとしたシナリオを想定してサービスを作ることにします。

  1. ユーザがExcelを使って経費精算書を作成(印刷,押印)
  2. 上長などがサイトにXLSファイルをアップロード(承認)
  3. 経理担当者がサイトからCSVファイルをダウンロード
  4. 経理担当者が会計ソフトにCSVファイルをインポート

アプリケーションとしては,PHPとMySQLを使ったアップロード掲示板になります。実際の画面は,図1のようになります。

図1 作成する掲示板の画面

図1 作成する掲示板の画面

アップロードしたXLSファイルからセルのデータを読み取ってデータベースに格納し,あわせてCSVファイルを作成して,リストとして表示させます。XLSファイルの読み込みには,PHPExcelライブラリを使っています。

今回は,PHPとMySQLの設定手順とソースコードを紹介します。もっとも,この辺りはLAMP環境のノウハウですので,最小限にとどめます。

Excelの経費精算書を元にsqlファイルを作成

まず,実際に利用している経費精算書を見て,MySQLで利用するデータのフィールドや型を決めましょう。経費精算書は,図2のようなExcelファイルとします。

図2 経費精算書のExcel画面

図2 経費精算書のExcel画面

また,会計ソフトとしては,弥生会計を利用することにします。図3のように,月末に未払費用として振替伝票を作成しています。

図3 経費精算書のExcel画面

図3 経費精算書のExcel画面

ここでは,科目ごとに仕訳しています。データとして必要になるのは,⁠日付」のほか,⁠交際費」⁠会議費」⁠旅費交通費」⁠通信費」⁠消耗品費」⁠新聞図書費」⁠その他」の各科目。加えて,サイト上でファイルのリンクを表示するために「xls」⁠csv」の各ファイル名です。

これをもとにsqlファイルを作成します。sample_db.sqlとして以下の内容で作成します。

リスト1 sample_db.sql

CREATE TABLE sample_table (
  id       INTEGER NOT NULL AUTO_INCREMENT,
  month    DATE,
  kosai    INTEGER,
  kaigi    INTEGER,
  kotsu    INTEGER,
  tusin    INTEGER,
  shomo    INTEGER,
  tosho    INTEGER,
  other    INTEGER,
  gokei    INTEGER,
  xlsfile  VARCHAR(20),
  csvfile  VARCHAR(20),
  primary key (id)
);

各科目はint型,日時はdate型,ファイル名はvarchar型にしています。

MySQLに登録するには,以下のようにします。データベース名はsample_db,テーブル名はsample_table,ユーザはsample_db_userです。

mysql -u sample_db_user -p sample_db < sample_db.sql

なお,MySQLは,第6回第7回で行ったようにAzureドライブを利用することにします。ローカル環境でユーザ,データベース,データを作成し,仮想ディスク内に保存しておきます。

著者プロフィール

齋藤公二(さいとうこうじ)

インサイト合同会社

『月刊Computerwold』『CIO Magazine』(IDGジャパン)の記者,編集者などを経て,2011年11月インサイト合同会社設立。エンタープライズITを中心とした記事の執筆,編集のほか,OSSを利用した企業Webサイト,サービスサイトの制作を担当する。

コメント

コメントの記入