公休登録 スケジュール登録 走行実績登録 データ確認画面 印刷用データ作成 走行実績出力
部門登録 社員登録 銀行登録 メーカー登録 所有者登録 車種登録
車輌登録 ルート登録 顧客登録 案件登録 コース登録 カレンダー
(EXCEL)

<概要>
 本システムは、データベースの保守が、主な機能である。
もちろん、保存したデータをカレンダー形式で表示したり、集計して表に加工するが、重要なのは、計画と実績を、多忙な中で、いかに容易に正確に入力し保存できるか、ということ。
 従来のエクセルによるカレンダー形式のデータ管理から、データベースを中心としたデータ管理に全面的に書き換えた。
 基本的なコンセプトは、業務で「コース」と呼ばれている概念の定義にある。
基本的なモデルとして、以下のように仮定する。
 ☆ 佐藤運送は配送ルート(便)を持つ。(業務管理)
 ☆ 顧客は佐藤運送に案件を提示する。(営業管理)
 ☆ 佐藤運送は顧客の案件を分解し、配送ルートに割り振る。(コース)
   (必要であれば、新たにルートを設ける。また、それぞれに単価を定める)
 全てがこのモデルの通りではないが、このモデルに当てはめて運用することにする。
メリットとして、
 ★ ルート毎の売上が把握しやすくなる。(担当者別・車輌別など)
 ★ 請求書の作成に必要なデータを得ることができる。
 ★ 予定表の入力が簡素化できる。
ことが考えられる。そして、なにより第三者的に把握しやすくなることを目標とする。

そのため、従来管理していなかった下記のデータの登録を行うこととなる。
  顧客データ、顧客案件、ルート、そして顧客案件とルートからなるコース

<業務手順>
 従来は対象とする月を指定してエクセルによるカレンダーを起動して、視覚的に優れた操作性でデータの登録を行っていた。
 本システムでは、「スケジュール登録画面」で、ルート毎に登録していく。ルートに集約される複数のコースがある場合は入力が簡素化されるが、全体を見渡すことができないので、担当者変更時の業務の重複が見つけにくいなど視覚的には従来より劣った操作性といえる。(車輌や追加金額の登録など複数の機能を持たせているためやむを得ない)
 
また、コースも従来は台帳シートのコース名を変更するだけでよかった。
 しかしながらこれは、従来はコースの名称とその単価のみしか管理していなかったからできたことで、本システムではコース毎に顧客からの案件やルートを管理するので「コース登録画面」できちんと登録するほかない。特に並べ替え機能など操作性がはるかに劣ることは事実である。(エクセルは自由度が非常に高くコース名が安易に変更できるため、コース名が変わっただけなのか、コースが廃止になって別のコースが設定されたのかわからないなど、データ管理上問題が多かったのも事実)
 本システムは日別にルートの担当者を登録して、その下の階層のコースを自動登録する構造としている。
これは、登録を簡素化するためのしくみ。
 対して、従来は日別にコースだけを指定する。
 試用の結果、一覧性に優れた従来の操作でないととても入力できないとのことであった。
そのため、「スケジュール登録画面」で、週ごとに既定値で自動登録する機能を設けた。
さらに、車輌や追加金額もメンテナンスできるエクセルを追加した。(2004/12)

その結果、本システムによる業務手順は次のようになると考えられる。

コースやその他の登録がきちんとできていることが前提です。

 1.「スケジュール登録画面」で対象とする月を選択。
 2.「デフォルト」ボタンをクリックして、対象とする週のデータを自動作成。
 3.公休の担当者は色が変わるので、予め決まっているルートについて修正。
 4.「スケジュール登録画面」のXL作成ボタンで対象月のカレンダー(エクセル)を新規作成。
 5.従来同様の操作性で担当者および車輌・追加金額を修正。
 6.必要があれば、「データ確認画面」の「担当者別カレンダー」などで、重複をチェック。
 7.「スケジュール登録画面」で修正確認。(カレンダーでの修正も可。注意事項参照のこと)
 8.「印刷用データ作成」で、対象月のカレンダー(エクセル)を新規作成。
 9.内容がOKであれば、印刷。


<注意事項>
 エクセルによるカレンダーで修正したのち、「スケジュール登録画面」で修正した場合、
たとえ、エクセルカレンダーに元の担当者が表示されていても、「スケジュール登録画面」の登録が有効です。
 エクセルによるカレンダーはコースの担当者しか変更しません。そのため、「スケジュール登録画面」でルートの既定の担当者をクリックした場合、そのコースは全て既定の担当者に戻ってしまいます。

<仕様>
 データベースは、マシンが限定されていること、メンテナンスが容易であることから、MSアクセスを使用した。(STMileage.mdb)
 言語は従来の流れを受けて、実績のあるVB6.0を使用した。
 今回クラスを使用してデータベースとのやりとりを行う仕様に全面的に書き換えた。
その方が、今後の拡張要求に応じやすいと考えたからであるが、技術の未熟さもあり、不完全で、複雑となってしまった感は否めない。
 基本的に、データベースの各テーブルに対応してクラスを設けた。
 各クラスにはデータベースに対し、自分自身の挿入・更新・削除のメソッドを持たせた。
クラスの集合として各クラスのコレクションを設定した。コレクションはクラスの集合体を返すのみでなく、DataGridのソースとしてADOレコードセットを返したり、検索値により特定のクラスを返すメソッドを持つ。
 ルートであるクラス(MainMaint)を作成し、すべてのコレクションはルートのプロパティとした。ルートクラスはデータベース接続クラスも同時にインスタンス化するので、ルート → コレクションでコレクションのデータ検索機能はデータベースを意識しなくとも使える。同様に、ルート → コレクション → クラスでクラスのデータベース更新機能も使用できる。
 1対多の関係にあるテーブルの場合、(ex. 部門 → 社員 など) 対応するクラスの1側に多側のコレクションをプロパティとして実装した。多側にも親であるクラスを返すプロパティを実装すべきだったが、現状では実装していない。
 これらクラスやコレクションはDLL(SrvSTExpress.dll)として作成し、画面インタフェースのアプリケーションに参照設定して使用する。そのため、エクセルのVBAでも参照設定して同様に使用できる。
印刷のため、エクセルへの出力を行うケースでは、エクセルのインスタンスが安定しないため、別プロセスとして、個別にアプリケーションを作成した。それぞれDLLを参照するので問題はない。これらすべてをプロジェクトグループ(prjStExpress.vbg)として開発した。
プロジェクトグループとして全てコンパイルしないと実行時エラーが発生する。

<操作>

公休登録

 従来の機能のまま。
 エクセルからの公休登録は廃止。
 担当者を選択すると、その担当者のその月の休みが左下部にリスト表示される。左上部のカレンダーをダブルクリックすると登録される。
もちろん、公休・早退のボタンによる登録もできる。
 カレンダーの月を変更すると、右側のリストはその月の全ての休みの予定が表示される。
 カレンダーの日をクリックすると、その日のみの予定が表示される。

スケジュール登録

 従来エクセルで行っていたカレンダー入力。
 ルートは複数の「コース」からなるが、基本的に1担当者・1車輌のはずなので、ルートを選択してから、カレンダー入力を行う。
 ルート毎に基本となる担当者と車輌は登録されているので、既定値として表示されている。表示されているだけで登録されているわけではないので、改めて選択する。(Enterキーでも可)
 登録されると、コースが表示される。各コース毎のデータは自動的に登録されているので、個別に選択しなおすと修正となる。
 コースが1画面に入らない場合は、下部左右の画面送りボタン(指のアイコン)をクリックする。
 担当者も車輌も個別に変更できる。ルートの担当を変更するとコースの担当も変更されるので、コースの担当を先に修正した場合は注意が必要。
 主にスポットを対象とするが、既定の単価以外に追加があれば、金額欄に入力する。(千円単位)
 スポットの案件コースは既定値が「休み」になっているので注意
 デフォルト」機能として、週ごとに既定の担当者と車輌で登録する機能を設けた。処理に少し時間がかかるのが難点(15秒くらい)
★(2004/12追加)
:新規に追加された車輌を含めたメンテナンス可能なエクセルを表示するボタンを追加。エクセルの表示に時間がかかるのが難点。

走行実績登録

 従来と変更なし。(仕様はクラス・コレクションに書き換え)
★(2004/12追加):売上金額はデータベースから集計して取得できるように変更。売上のラベルを集計ボタンに変更した。

データ確認画面

 日別集計と月別集計。印刷するのではなく、画面で確認のみしたい場合に使用する。起動の速さから、インターネットブラウザを使用した。(HTM)
 日別集計は、カレンダーの日をクリックしてそれぞれのボタンをクリックする。
 月別集計は、カレンダーの月を変更するか、花札アイコンで月を選択してから、それぞれのボタンをクリックする。
(担当者を指定しての月予定表は担当者を選択するだけ。)
月別集計は時間がかかるものもあります。

印刷用データ作成

 従来エクセルで管理していたため、エクセルでの印刷画面に担当者が慣れている。そのため、データベースの印刷用カレンダー出力をエクセルとし、従来の様式と同じにした。
 担当者の変更はこのカレンダーからも行えることとした。(車輌は不可)ただし、コースの変更はできません

走行実績出力

 従来と変更なし。(安定のため、別アプリケーションで起動)

部門登録

 夜勤(早朝)の休日の管理が前日になる。などの例外処理は、ルートを管理する部門により行うこととした。
 そのルートを管理する部門の「休日調整」をチェックすると、そのルートでは、指定された担当者の公休チェックは前日が対象となる。

社員登録

 部門毎に登録する。すなわち選択された部門の担当者のみがリスト表示される。
 退職者は表示されないが、「クリア」して「退職」をチェックすると表示される。
 今回、生年月日を登録できるように変更し、年齢が計算できるようにした。
入社日も登録できるとよかったかもしれないが、備考欄で対応してください。

銀行登録

 請求書(現在本システム対象外)に表示する銀行口座名を保守する。
 合併などで銀行名が変更されても、本マスターのみ修正すれば請求書に影響がでないように設計するためのマスター。

メーカー登録

 車輌メーカー
機能は従来と変更なし。
(仕様はクラス・コレクションに書き換え)

所有者登録

 車輌の所有者。佐藤運送・リース会社のみならず、傭車の所有者個人も登録する。
機能は従来と変更なし。
(仕様はクラス・コレクションに書き換え)

車種登録

 車種(キャンター・ボンゴなど)
機能は従来と変更なし。
(仕様はクラス・コレクションに書き換え)

車輌登録

 プレートナンバーによる個別の車輌。IDはプレートナンバーの下4桁数字。
 「集計表」をチェックした車輌(既定値)が車輌リストおよび走行実績に出力される。
(自社車輌以外のデータは当局に提出しないため)
傭車やダイコムの車輌は「集計表」のチェックをはずすことになる。
 使用状況のバーは、該当車輌がルートの主要車輌に登録されている場合その稼動時間帯を表している。複数のルートに登録されて時間帯が重なっている場合は赤く表示されるので注意。

ルート登録

 便。会社を出発して帰社するのが1便。顧客の案件とは切り離すが、名称にはわかりやさで顧客名を使用することもある。ただし、混載するということは、このひとつの便に複数の顧客の荷が含まれるということ。
 廃止になったルートは「運用中止」をチェックする。削除は登録時に間違えた時に使用するのみ。データとして使用したルートは削除すべきでない。
 主な車輌・担当者はスケジュール登録の既定値として表示される。
 ルートの担当部門の休日調整がチェックされている場合〔部門登録〕スケジュール登録で登録した担当者が前日公休だった場合、公休チェックのメッセージが表示される。
 車輌使用状況のバーは主要車輌に登録した車輌の使用時間帯を表す。他のルートでの使用時間帯と重複した場合赤く表示される。

顧客登録

 郵便番号は数字のみ登録すること。
 入金サイトは締め後複数月で入金される顧客が生じた場合識別するために設けた。(末締めの末払いだと、1日の売上は60日後に入金で末日の入金は30日後なので、平均でサイトは45になる
 取引中止になったルートは「取引中止」をチェックする。削除は登録時に間違えた時に使用するのみ。データとして使用した顧客は削除すべきでない。
 当然ながら、登録されていない顧客の案件は登録できないので、
取引開始の予定があれば、すぐに登録しておいた方がよい。

案件登録

 顧客を指定して依頼された案件とその見積り額(月額)を登録する。
おおよその月額を登録することにより、大まかな売上見込み(見積の集計)が示される。
 「請求書No.」(既定値は1)は、同じ顧客で請求書を別にしなければならないときに備えて請求書番号を登録する。番号順に改ページして出力する。(請求処理に関しては未実装)
 「税別」は既定値がチェック。通常は請求書に消費税を加算するが、税込みを要求された案件はチェックをはずす。(請求処理に関しては未実装)
「スポット」にチェックを入れると、定期ではないので、スケジュール登録の際、休みが既定値となっているので注意。
 「請求単位」は基本的に1回毎か、月極めとなる。その他は全てその他扱いであり、スケジュール登録で毎回金額を登録する。(月額概算見積は「単位」にかかわらず月額収入予定金額を登録する。)
単位が「回」であれば、コースに登録された単価で担当者別・車輌別の売上を算出する。
「月」であれば、コース単価*12/365(12ヶ月分を365日で割った1日単価)を算出して担当者別・車輌別の売上を算出する。
その他は、スケジュール登録の金額のみを参照する。
 完了した案件は「完了」をチェックする。削除は登録時に間違えた時に使用するのみ
 案件を登録しないとルート同様に、コースの登録はできない。

コース登録

 案件とルートを組み合わせたものを従来の慣習によりコースと呼ぶ。
便に乗せる混載の明細のこととなる。したがって、コースはひとつの顧客と単価を持つ。
 コースは従来エクセルで管理されカレンダーに印刷されるて使われていため、表示順が制御できなければならない。コースを選択して表示順を修正登録するが、1件ずつなのでこの機能に関しては従来のエクセルより操作性が劣る。
エクセルに表示する際に表示順を10で割って1単位にしその行に表示させている。そのため、コース登録終了時、強制的に10単位に変換する機能を持たせた。
 「単価」は千円単位で登録する。月極めの案件のコースでは月額を登録する。
 「単価」と「表示順」については、修正頻度が高いと予想されるので、リストの単価あるいは表示順をクリックすると、上部の修正欄で、自動的にそれぞれ単価欄、表示順欄が選択されているようにした。
 コースは案件とルートから構成されるが、従来エクセルでの表示欄数の制限や運用上わかりきったことを省くために、複数の顧客の案件をまとめてコースとして扱われていたものもある。本システムではルート案件毎にコースを作成しなければならない。そのため運用上意味を持たないコースが多数印刷表示される可能性が高い。解決策として、「代表コース」を設定した。
「代表コース」は他のコースのIDを登録する。既定値は0。代表コースが0以外であれば、代表コースと同じ表示順になり、またエクセルには表示されない。
その際単価は代表コースに加算されるので、エクセル上は従来と変化なく運用できる。
 スケジュール登録では、ずべてのコースを扱うが、ルート毎に担当者・車輌を登録できるので、コースが増えてもさほど影響はないと考える。
 中止になったコースは「中止」をチェックする。削除は登録時に間違えた時に使用するのみ

カレンダー
エクセル

 基本的に「スケジュール登録」で作成されたデータを印刷するために従来のエクセルカレンダー形式で出力したものである。
 従来の機能のうち、台帳によるコースメンテ機能や社員登録機能は取り除いた。また、公休登録機能も取り除いた。
 データを出力する時に、コースに代表コードが指定されている場合、代表コードのみを出力し、単価は合計されて出力するようにした。これにより、本システム上の必要性で増えた運用上表示する必要のないコースの表示が省ける。
 また、「スケジュール登録」の「デフォルト」機能に対応して、公休の担当者は表示色を変更した。
 このカレンダーで、担当者の変更を行うこともありうるので、追加機能と修正機能を設けた。ただし、車輌の変更はできない。
代表コースの担当者の修正や追加を行った場合、その代表コードを持つ、表示されていないコースも自動的に同じ担当者に設定される。
 修正の頻度は高いという要請を受けて、選択するだけでのコピー機能も復活させた。

★(2004/12追加):車輌と金額を含めて管理できるエクセルの追加。
 従来のカレンダーの印刷機能や台帳作成機能は省略して、スケジュールの修正に特化したエクセルを作成した。
 デフォルトで作成された後の修正の方が効率的なので、スケジュール登録画面から呼び出すこととした。
 機能として、
@表示は、担当者のみ、担当者+車輌、担当者+追加金額、担当者+車輌+追加金額の4通りの表示が選択できる。
A担当者、車輌のリストをデータベースから取得する。
B指定月(スケジュール登録画面で選択されている年月)のカレンダー作成。週毎(1〜6)のシートに作成し、選択を容易にする。
Cカレンダー作成時各シートに、コース・ルートを取得する。表示順は従来のカレンダーエクセルと同じ。
また、データベースに登録されている日程(担当者・車輌・追加金額)を取得して表示する。
その際、担当者が公休日であれば、オレンジで表示する。
Dシートは日程の入力エリア以外保護される。ただし、担当者のコピー設定ボタン、コピー解除ボタン、車輌表示のオンオフ、追加金額のオンオフは使用できる。
指定月以外のエリア(第1週の先月のエリアや第5・6週の翌月のエリア)は灰色で表示されるが、指定月と同様に操作可能である。
E日程で担当者あるいは車輌が選択されるとカレンダー上の同じ担当者・車輌を識別しやすいように色を変えて強調表示する。
F日程で担当者を修正した場合、新しい担当者がコピーソースとして登録される。その状態で他の担当者のセルを選択すると選択したセルは自動的に変更される。(この際、右クリックで元に戻りコピー解除される)
G修正したコースに付属するコース(代表コースを持つコース)は同様に変更される。
H削除した場合、データは「休み」に設定される。付属コースも同様に「休み」に設定される。
また、コピーモードは解除される。
I追加した場合、付属するコースだけでなく、同じルートに所属するコースも同様の内容で追加される。
ただし、スポットのコースは対象としない。
以上