業務内容開発事例会社案内お問合せ製品情報技術情報サイトマップ検索
HOME > 開発事例 > タクト仕入台帳管理・検索システム
開発事例 タクト仕入台帳管理・検索システム

ここでは(株)タクト様向けに開発した仕入台帳システムについて、開発に至る過程からシステム導入後までを解説したいと思います。なお、公開については(株)タクト様より許可を頂いております。


(株)タクト様は幅広く事業を手がけており、その一つに電子機器等の製造も行っています。 当然のごとく各商社から機械部品の仕入れをしており、会社規模が小さい頃は台帳に年期別、仕入先別に区分けして記帳していましたが、規模が大きくなるに従い、記帳の負担が増していきました。 また、電子機器設計者は部品表を作る際、仕入台帳を調べて過去に同じ部品を仕入れたときの価格等(どの商社がより安価なのか、どの商社が短納期なのか)を手作業で探し出していたため時間と労力は大きなものになっていました。

その当時、社内で暫定的にソフトを作ってデータベース化し、しばらくはそれを使ってしのいでいましたが、時間を掛けずに作ったため単純なことしかできず、また社員が増え接続PCが増えると繋がらなくなるなどの問題も出てきました。

そこで、今まで使ってたシステムの資産に当たるデータ部分はそのまま流用して、新しくシステムを構築してほしいということから開発がスタートしました。

ポイントは主に次の7つでした。

  1. 既存のデータベースの登録データはそのまま使いたい。
  2. 許可した者だけがシステムを利用できるように制限したい。
  3. 接続PCが増えても使えるようにしたい。
  4. 同一のPCから同時に複数の検索をできるようにしたい。
  5. すべての任意の項目をキーに検索できるようにしたい。また、あいまい検索したい。
  6. データベースに接続しない状態でデータ打ち込みしたい。
  7. 検索結果を MS-Excel に自由に貼り付けられるようにしたい。

前システムでは RDBMS に Borland の InterBase を使っていましたので、今回もそれを使いつつ、新しく定義したDB形式に合わせるためにデータ変換しました。これで今までの資産は使えるようになりました。

次に、許可した人だけが使えるようにするために、ユーザ認証サーバを作って誰からのアクセスかを管理するようにしました。ただ単純に認証するだけでなく、ユーザ(社員)ごとの権限も管理するようにしました。 例えば、「Aさんは入力も検索もすべてできるけど、Bさんは検索だけしかできない」というように機能ごとに、許可、禁止を設定できます。

   ■ ユーザ認証ダイアグラム

接続の制限について、InterBase をはじめ、有償の RDBMS の多くは、接続できる端末には制限があり、別途 「接続ライセンス」を購入すれば接続許容数を増やしたり無制限にしたりできます。 InterBase は「クライアントライセンス」という単位で販売しており、通常 InterBase サーバを購入すると1クライアントライセンスが付属しています。 1クライアントライセンスは、その表現からして1つの端末しか接続できないような感じを受けますが、実際は違い、1クライアントライセンスは同時に4つの接続までできます。(InterBase 5.x の場合です。詳しくは Borland のサイトをご参照下さい。)

     ■ DB接続ダイアグラム

タクト様ではこの状態であったため、4台のPCからしか同時に利用できませんでしたので、「クライアントライセンス」をいくつか追加購入してもらいました。 ただ、このようにしても「PCが増えたら、またライセンスを追加購入する」の繰り返しになってしまうのでアプリケーション側である程度対処するようにしました。

その方法として、アプリケーションを起動したら終了するまでDBに接続しっぱなしするのではなく、検索や登録する直前に、DBに接続して、使い終わったら切断(接続解除)するようすれば利用できる端末数を増やすことができます。 これだけでもいいのですが、検索等するたびにDB接続~切断させると、連続検索したい場合、待ち時間が少し長くなるので、更にパフォーマンスを高めるために、使い終わったらDBから即切断するのではなく、ある時間接続を保持しておいて、次に検索したいときはそれを使うようにしました。 (このことを「コネクションプーリング」と言います。)

今回はマルチスレッドで同時検索できるようにするため、その分同時接続する必要もあるので、保持しておく接続の数の上限や有効時間などをユーザごとに設定できるように独自実装しています。

     ■ DB接続フロー
     

検索処理ですが、「品名」「型式」「単価」をはじめ、すべての項目を検索できるようにしました。あいまい検索は InterBase の機能としてはないので、UDF として実装してあいまい検索できるようにしました。

仕入データの打ち込みにおいて、社外でもをしたいということで、データベースに接続しない状態でも一時的にローカルファイルに保存(仮登録)できるようにしています。 打ち込んだデータはFD、MOなどに入れて社内の端末から実登録するか、ノートPCなら社内LANに繋いでそのまま実登録もします。

MS-Excel との連携もサポートし、検索結果の任意の範囲部分をコピー&ペースト、またはドラッグ&ドロップで Excel の表に貼り付けられるようにしました。 また、(OLE)オートメーションを使って Excel に読み込み、Excel で印刷できるようにもしています。

総体的にはアプリケーションすべてで同一のユーザインターフェースになるよう共通化を図り、操作性も重視して作りました。


開発したシステムの一部をスクリーンショットを交えながら説明しています。画面は実データを使っているところが多々あり、機密性があるところはマスクしています。(画面をクリックすると拡大表示します。)

■ 認証サーバの管理画面

ユーザの追加、編集、削除および、機能ごとの権限を設定できます。
■ DBバックアップの設定画面

バックアップ方法を設定できます。
■ ログイン画面

■ 利用機能の制限例

金額が「×」の場合は金額項目の表示がマスクされます。コピーが「×」の場合は検索結果をローカルファイルや外部アプリケーションにコピーできません。
■ 検索条件設定例

すべての項目を検索条件として検索できます。
■ 検索結果表示例

検索結果は表形式に表示しています。
任意の領域を範囲指定して Excel などにコピーやドラッグ&ドロップできます。
■ 検索テンプレート

よく行う検索パターンをテンプレートとして登録して、後でそのテンプレートを使って検索すれば複雑な検索条件設定の手間が省けます。
■ 検索条件テンプレート利用時

検索条件、結果の表示形式、ソート方法などを設定できます。
■ 検索履歴

前に実行した検索結果を見ることができます。
■ 仕入先別・月別の仕入状況表示

任意の月、仕入先の仕入れ内容を素早く確認できます。
■ 仕入データ入力権限がない場合

(データ入力アプリケーション起動時)
■ 仕入データ入力画面

各入力項目で、頭の入力文字から過去に登録した一覧を出して選択入力できます。(入力補完機能)
■ 仕入先編集画面

仕入先別の処理方法などの設定をします。
■ 月次集計画面

毎月の仕入集計をします。


タクト様から、Excel 上で検索実行したいとの考えもあります。より使い勝手の良さを重点に追求して行きたいと思います。



運用環境・開発ツール
サーバ PC 環境
OS Windows 2000 Professional
RDBMS InterBase 5.6 サーバ + 追加クライアントライセンス
あいまい検索処理用 UDF
対応クライアントPC環境
OS Windows 2000/Me/98/95
RDBMS InterBase 5.6 クライアント
開発ツール
Borland Delphi