(57)【要約】【課題】ポインティングデバイスを使用して、用紙へ記入するような手軽さで勤務実績を入力する入力方法、勤務管理システム、およびプログラムを提供する。【解決手段】上記目的を達成するため、勤務入力方法は、従業員の勤務実績を管理する勤務管理表において、勤務管理表をダウンロードして入力画面に表示する表示画面と、入力画面上で業務項目２２と業務開始時刻・業務終了時刻を特定する手段と、入力画面上の位置を選択する入力手段と、該位置を選択した状態でポインティングデバイスを移動させて範囲を選択する入力手段と、該位置の選択を解除する入力手段と、前記選択の解除により表わされた時間帯表示バーを表示する表示手段と、この入力手段から入力された内容を記憶し保存する記憶手段を備えることを特徴とする。【選択図】図７
2008065527.tif 000002
【特許請求の範囲】
【請求項１】
従業員の勤務管理において、コンピュータを用いて、業務項目と業務開始時刻と業務終了時刻とを入力する勤務入力方法において、
勤務管理表を表示するステップと、
ポインティングデバイスを用いて入力画面上の位置を選択するステップと、
該位置を選択した状態で前記ポインティングデバイスを移動させて範囲を選択するステップと、
該位置の選択を解除するステップと、
入力された内容を記憶し保存するステップと、
を含むことを特徴とする勤務入力方法。
【請求項２】
請求項１に記載の勤務入力方法において、
勤務時間帯を業務項目ごとに単位時間で量子化するステップと、
前記の量子化された時間帯を勤務管理表上のセルに対応させるステップと、
前記セルを勤務管理表上に表示するステップと、
ポインティングデバイスを用いて、特定の業務項目について、時間軸方向を指定して前記セルの範囲を選択するステップと、
前記選択範囲のセルを表示し、特定の業務項目について、勤務時間が入力されたことを示すステップと、
ポインティングデバイスを用いて、特定の業務項目について、時間軸と反対方向を指定して前記セルの範囲を選択するステップと、
前記選択範囲のセルの表示を順に解除して、特定の業務項目について、勤務入力が取り消されたことを示すステップと、
を含むことを特徴とする勤務入力方法。
【請求項３】
請求項１または請求項２に記載の勤務入力方法において、
複数の業務項目で入力された業務時間帯が重複しているか否かを判断するステップと、
入力された業務時間帯が重複していると判断した場合は、重複した業務時間帯の範囲を表示するステップと、
を含むことを特徴とする勤務入力方法。
【請求項４】
請求項１または請求項２に記載の勤務入力方法において、
未入力の時間帯を検索して表示する表示方法であって、
未入力項目と時間帯をチェックするステップと、
前記未入力項目と時間帯を検索した場合は、未入力の時間帯を表示するステップと、
を含むことを特徴とする勤務入力方法。
【請求項５】
従業員の勤務管理をコンピュータに実行させるためのプログラムであって、
請求項１から４の何れか1項に記載の方法による処理を実行させることを特徴とするプログラム。
【請求項６】
勤務実績を管理する勤務管理システムであって、
勤務実績を格納するデータベースを管理するサーバと、
企業内に設置された入力用コンピュータからネットワークを介した各サーバへのアクセスを管理するサーバと、
勤務実績や勤務実績入力などの処理を実行するサーバと、
を有することを特徴とする勤務管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、勤務者の勤務情報を管理するための勤務管理システム、勤務管理方法、勤務実績入力方法、およびプログラムに関する。
【背景技術】
【０００２】
従来の勤務管理システムでは、勤務予定や勤務実績を表形式で入力していた。また、従業員の出退勤等の勤務管理は、タイムカードやパソコン、サーバによる勤務時間管理が一般に多く採用されている。
【０００３】
下記の特許文献１では、会社サーバと社員端末とがネットワークを介して接続されているシステムにおいて、前記会社サーバと前記社員端末とがログオンとなった時刻を出勤時刻とし、前記会社サーバと前記社員端末とがログオフとなった時刻を退勤時刻とするという出退勤管理方法が開示されている。これにより、タイムカードの打刻忘れによる正確な出退勤管理ができないという問題を解決し、また、出退勤の度にタイムカードに打刻しなければならないという煩雑な手続きを解消させている。
【０００４】
前述した従来の技術は、出社時刻、退社時刻による勤務時間帯の管理をする上では有用である。しかしながら、受託業務など、各従業員の業務内容が多岐にわたる組織等では、各従業員の業務実績を正確に把握するために、どの業務内容にどれだけの時間をかけたのかを明確にしなければならない。
【０００５】
例えば、システム開発のような業務では、基本検討、基本設計、詳細設計、プログラム設計、コーディング、単体テスト、連結テスト、総合テスト等のように業務項目が細分化されており、それぞれの時間単価が異なっている。従って、システム開発を受託した場合に、その収支を管理するためには、どの業務項目にどれだけ時間をかけたかを正確に管理する必要がある。従来の勤務管理システムでは、業務項目ごとに勤務時間を管理する機能がなかった。
【０００６】
そこで、業務項目ごとの管理について、下記の非特許文献１がインターネットで公開されている。工数管理、業務・プロジェクト管理に関するもので、「誰がいつ何の業務をどのくらい行ったか」を基本的なデータとしている。従業員は、入力用端末機に表示されたタスクのうち、割り当てられたタスク（作業）を選択し、実際に作業した時刻を示すエリアへドラッグ＆ドロップするだけで実績入力ができる。マウス操作だけで、個人予定表の記入に近いイメージで直感的に入力できるため、面倒な実績報告が容易に行える。
【０００７】
この非特許文献１は、マウス操作だけで勤務実績データを入力できる機能を有しているが、勤務管理における入力手段については、多くの場合、表形式による数字入力であることが多い。細分化された項目ごとに時間を入力するのは、非常に手間のかかる作業である。
【０００８】
数字で表示された時間帯を数字以外で表示させる方法として、下記の特許文献２が開示されている。会議室予約に関するもので、入力エリアに会議室を使用する時刻と、使用を終る時刻を入力すると、日別予約状況画面に予約済みの時間帯が帯状に表示されるというものである。このシステムの入力方法は、予約入力フレームにプルダウンメニューが表示され、メニューの中から時間と分を順番に選択するという方法である。
【０００９】
前記会議室予約システムの入力方法を勤務管理システムへ流用することも考えられる。ところで、一般的な従業員の一般的な勤務では、一日のうちに数種類の業務を担当しているのが普通である。従って、一般的な従業員の勤務入力においては、一つ一つの業務に対して、入力フレームのプルダウンメニューを開いて時間と分を選択して入力するという方法は、勤務時間の入力に時間がかかるという問題がある。事実、一旦導入した勤務管理システムを、入力に時間がかかりすぎるなどの理由で廃止する企業も多い。
【００１０】
また、一般的な勤務管理システムでは、最後に入力したデータを入念にチェックして、勤務の時間帯が重複しているときは、そのデータが修正されるまでエラーを出し続ける仕組みになっている。そのために、最後に入力したデータを修正するまでは、実際に間違っているデータを修正することができない。
【００１１】
また、未入力のデータについては、コンピュータでは、未入力か不就業時間かの判断がつかないために、チェックをかけないことが多い。チェックする場合でも、エラーとして表示すると複雑になるために、勤務の入力者には分かりにくいものになっている。
【００１２】
【特許文献１】特開２００５−９２４０７号公報
【特許文献２】特開２００２−１４９９２８号公報
【非特許文献１】株式会社デンソークリエイト  Time Tracker v１．５  平成１８年６月２１日検索  インターネット＜URL: http://www.denso-create.jp/service/products/timetracker/news/050415/TimeTrackerNewsR15.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【００１３】
従来の勤務管理システムは、入力用端末に表示された表上で、勤務予定や勤務実績を表形式で入力していた。そのため、勤務の入力者は、業務項目の数が増えると勤務の内容を把握しきれなくなる。例えば、システム開発の業務を例にとると、委託業務ごとに、基本検討、基本設計、詳細設計、プログラム設計、コーディング、単体テスト、連結テスト、総合テスト，運用引継ぎ等の約１０種類の業務項目が存在する。例えば、１人で３件の委託業務を担当している従業員は、約３０種類の業務項目への入力が必要になる。従って、勤務入力をする時点で、実施した業務のみに勤務データを入力するように、入力項目を絞る機能が必要になる。
【００１４】
それぞれの業務について正確な収支計算を実施するためには、どの時間帯にどの業務を実施したか、業務項目と実施した時間帯の正確な記録を残す必要がある。この作業は、勤務の入力者に多大な負担を掛ける事になるので、その負担を軽減するために、勤務時間帯を視覚的に表し、マウスなどのポインティングデバイスを用いて、視覚的で分かり易い形式で入力する工夫が必要になる。
【００１５】
また、それぞれの業務項目について、勤務時間帯が重複して入力されたデータをチェックする機能や、逆に未入力の時間帯を生じさせないように入力されたデータをチェックする機能が必要になる。更に、業務項目ごとに業務時間を分単位で入力すると、入力精度において個人差が大きくなり、データの精度が統一できない。そこで、データの精度を揃えるための工夫が必要になる。
【００１６】
本発明は、上記の問題に鑑みてなされたもので、マウスなどのポインティングデバイスを使用して、用紙へ矢印を記入するような手軽さで勤務実績を入力することのできる勤務管理システム、勤務管理情報処理装置、勤務管理方法、勤務実績入力方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１７】
このような目的を達成するため、従来の表形式の勤務管理システムに代えて、ビジュアルに勤務実績を入力することのできる勤務管理システムを発明した。本発明によると、勤務実績は業務項目ごとにビジュアルに表示される。従来の業務日誌に近い形で入力できるので、勤務の入力者の記憶を呼び戻しやすく、入力時間を短縮することができる。
【００１８】
本発明による勤務入力方法は、従業員の勤務管理において、コンピュータを用いて、業務項目と業務開始時刻と業務終了時刻とを入力する勤務入力方法において、勤務管理表を表示するステップと、ポインティングデバイスを用いて入力画面上の位置を選択するステップと、該位置を選択した状態で前記ポインティングデバイスを移動させて範囲を選択するステップと、該位置の選択を解除するステップと、入力された内容を記憶し保存するステップと、を含むことを特徴とする。
【００１９】
上記の構成によれば、勤務の入力者は、入力装置の画面に表示された業務実績表の上で、マウスカーソル等のポインティングデバイスを使用して業務時間帯をビジュアルに入力することができる。その際、勤務の入力者は業務項目ごとの集計などを省略でき、数字を扱わなくても済むので効率的である。また、勤務の承認者は、業務時間の集計やそのチェックなどをシステムに代行させることができるので、承認作業を軽減できる。
【００２０】
本発明による勤務入力方法は、勤務時間帯を業務項目ごとに単位時間で量子化するステップと、前記の量子化された時間帯を勤務管理表上のセルに対応させるステップと、前記セルを勤務管理表上に表示するステップと、ポインティングデバイスを用いて、特定の業務項目について、時間軸方向を指定して前記セルの範囲を選択するステップと、前記選択範囲のセルを表示し、特定の業務項目について、勤務時間が入力されたことを示すステップと、ポインティングデバイスを用いて、特定の業務項目について、時間軸と反対方向を指定して前記セルの範囲を選択するステップと、前記選択範囲のセルの表示を順に解除して、特定の業務項目について、勤務入力が取り消されたことを示すステップと、を含むことを特徴とする。
【００２１】
勤務時間の管理は、通常、１０分単位又は５分単位など定まった単位時間を用いて量子化されている。量子化された時間は、不連続なので、不連続な時間を扱っているように勤務の入力者が実感できる入力方法が望ましい。また、業務時間が量子化されていないと、業務時間を分秒の単位まで計算する必要が生じ、勤務の承認や給与計算を行う場合に扱いにくいデータになる。
【００２２】
本発明によると、勤務管理表の勤務時間帯を細かいセルに分割し、そのセルの上をマウスカーソルなどのポインティングデバイスで、時間軸方向にドラッグさせると、セルの色が順に着色されて勤務時間が入力されたことを示されることとした。また、入力した勤務時間を取消すときは、前記のセルを時間軸と反対方向にドラッグさせると、セルの着色が順に解除されて、勤務入力が取り消されたことが示されることとした。
【００２３】
また、本発明によれば、セルの上でマウスカーソルなどのポインティングデバイスを時間軸方向にドラッグさせると、あたかも扇子をビロビロビロと広げるが如くに、セルの色が順に着色されて勤務時間の帯が広がり、勤務時間が入力されたことが示される。一方、マウスカーソルを時間軸と反対方向にドラッグさせると、前記セル上で、あたかも拡げた扇子をビロビロビロと元に戻すが如くにセルの着色が順に解除されて、勤務入力が取り消されたことが示される。
【００２４】
本発明による勤務入力方法は、複数の業務項目で入力された業務時間帯が重複しているか否かを判断するステップと、入力された業務時間帯が重複していると判断した場合は、重複した業務時間帯の範囲を表示するステップと、を含むことを特徴とする。
【００２５】
本発明によると、勤務の入力者は、入力したデータが既に入力されている他の業務項目と業務時間帯が重複していないことを、システムのチェックを参照しながら勤務情報を入力することができる。また、他の業務項目と業務時間帯が重複している場合は、勤務の入力者はシステムの表示を参照しながら勤務情報を修正することができる。
【００２６】
一般的に、勤務管理等のシステムは、誤ったデータ入力を受け付けるということを避けるように構築されている。なぜなら、誤ったデータ入力を受け付ければ、データの整合性が取れなくなり、入力者に入力エラーの警告をするとき、複雑なエラーメッセージが氾濫してしまうからである。通常、入力の時点で、誤ったデータ入力はシステムに拒否される。
【００２７】
しかし、この発明によれば、勤務の入力者が時間帯の重複したデータを入力すると、重複表示エリアに表示されるので、勤務の入力者は時間帯が重複していることを認識しながら入力を継続できる。つまり、データ入力にエラーが生じても、入力者はデータ入力を継続できるのである。
【００２８】
また、本発明による勤務入力方法は、未入力の時間帯を検索して表示する表示方法であって、未入力項目と時間帯をチェックするステップと、前記未入力項目と時間帯を検索した場合は、未入力の時間帯を表示するステップと、を含むことを特徴とする。
【００２９】
本発明によると、勤務の入力者は、勤務予定の時間帯に未入力データのセルがないことを、システムのチェックを参照しながら勤務情報を入力することができる。その結果、入力済のエリアには、既に入力された全業務時間帯が表示される。
【００３０】
また、本発明はプログラムに関するものであり、請求項５に記載のプログラムは、請求項１から４のいずれか１項に記載された勤務入力方法をコンピュータに実行させることを特徴とする。
【００３１】
本発明によれば、当該プログラムを情報処理装置へインストールして実行することにより、従業員の勤務管理において、業務項目と業務開始時刻と業務終了時刻とを入力する勤務入力方法において、勤務管理表を表示するステップと、ポインティングデバイスを用いて入力画面上の位置を選択するステップと、該位置を選択した状態で前記ポインティングデバイスを移動させて範囲を選択するステップと、該位置の選択を解除するステップと、
入力された内容を記憶し保存するステップと、を含むことを特徴とする勤務入力方法をコンピュータに実行させることを特徴とする。
【００３２】
本発明によると、勤務時間帯を業務項目ごとに単位時間で量子化するステップと、前記の量子化された時間帯を勤務管理表上のセルに対応させるステップと、前記セルを勤務管理表上に表示するステップと、ポインティングデバイスを用いて、特定の業務項目について、時間軸方向を指定して前記セルの範囲を選択するステップと、前記選択範囲のセルを表示し、特定の業務項目について、勤務時間が入力されたことを示すステップと、ポインティングデバイスを用いて、特定の業務項目について、時間軸と反対方向を指定して前記セルの範囲を選択するステップと、前記選択範囲のセルの表示を順に解除して、特定の業務項目について、勤務入力が取り消されたことを示すステップと、を含むことを特徴とする勤務入力方法をコンピュータに実行させることを特徴とする。
【００３３】
また、本発明によると、複数の業務項目で入力された業務時間帯が重複しているか否かを判断するステップと、入力された業務時間帯が重複していると判断した場合は、重複した業務時間帯の範囲を表示するステップと、重複範囲を表わすエリアを表示することで入力作業は継続できるようにするステップと、を含む勤務入力方法をコンピュータに実行させることを特徴とする。
【００３４】
また、本発明によると、未入力の時間帯を検索して表示する表示方法であって、未入力項目と時間帯をチェックするステップと、前記未入力項目と時間帯を検索した場合は、未入力の時間帯を表示するステップと、を含む勤務入力方法をコンピュータに実行させることを特徴とする。
【００３５】
本発明は勤務実績を管理する勤務管理システムであって、勤務実績を格納するデータベースを管理するサーバと、企業内に設置された入力用コンピュータからネットワークを介した各サーバへのアクセスを管理するサーバと、勤務実績や勤務実績入力などの処理を実行するサーバと、を有することを特徴とする。
【発明の効果】
【００３６】
以上に説明したように、本発明によれば、勤務の入力者の勤務表は、業務項目ごとに勤務時間帯を細かい単位時間のセルに分割して表示されており、そのセルの上をマウスカーソルなどのポインティングデバイスで時間軸方向にドラッグさせると、あたかも扇子をビロビロビロと拡げたように、セルの色が順に着色されて選択された時間帯が広がり、勤務時間が入力されたことが示される。
【００３７】
また、本発明によれば、一旦入力した勤務時間を取消すときは、マウスカーソルなどのポインティングデバイスで時間軸と反対方向にドラッグさせると、あたかも拡げた扇子をビロビロビロと元に戻すが如くに、前記セルの着色が順に解除されて、勤務入力が取り消されたことが示される。
【００３８】
また、本発明によると、本システムは入力データに重複部分や未入力の箇所が残されているというような不完全なデータでも一旦入力を受け付けるという特徴がある。人間の時間感覚はアナログ的であるため、日々の勤務時間をデジタル的に、且つ業務ごとに厳密な業務時間を入力することは非常な苦労を伴う。また、入力エラーを解消する作業も同様である。本発明は、アナログ的な感覚で勤務時間を表示する入力方法を採用したことにより，人間の感性に合致させることができた。
【００３９】
また、本発明によれば、勤務の入力者は、前記のグラフィカルな入力方法を用いて勤務実績を入力することにより、作業効率が上り、入力ミスも少なくなる。
【００４０】
また、本発明によれば、勤務の入力者が、後日まとめて勤務情報を入力する場合でも、グラフィカルに表現した形式なら，作業の順番や休憩時間などを元に思い出しやすく入力し易い。また、データの精度も一定に保つことができる。
【００４１】
また、本発明によれば、前記の勤務システムで実績を入力することにより、業務時間を量子化して入力できるので、データの精度の個人差を解消できる上に、職場全体でデータの精度と信頼度をそろえることができる。
【００４２】
このシステムによれば、勤務実績に基づいて従業員の勤務に関する所定の分析結果を算出することができる。従業員や管理者は、従業員の勤務実績の傾向等を分析することができ、勤務管理を的確に行うことができる。
【発明を実施するための最良の形態】
【００４３】
以下、本発明にかかる勤務管理システム、勤務管理方法、勤務実績入力方法、および、プログラムの実施の形態について、図面を参照して説明する。なお、本実施形態の説明は例示であり、本発明の構成は以下の説明に限定されない。
【実施例１】
【００４４】
本発明を実施するためのコンピューティング・システム環境の一例について示す。図１は、本発明の勤務管理システムの一実施形態である入力用コンピュータ１４と、勤務の入力者を認証する認証サーバ１１と、業務実績データを管理するデータベースサーバ１２を含んで構成される勤務管理システムのネットワーク構成を示す図である。入力用コンピュータ１４は、ユーザの業務実績を入力する装置である。認証サーバ１１は、ユーザの認証を行う装置である。データベースサーバ１２は、ユーザ毎の業務実績データを保存し、管理する装置である。アプリケーションサーバは１５、勤務実績や勤務実績入力などの処理を実行する装置である。以下、図を参照しながら、システムの詳細を説明する。
【００４５】
実施例１では、ユーザの氏名を入力者Ａ、氏名コードを１２３４５６、勤務日は平成１８年３月６日、担当業務を項目Ａ、項目Ｂ、項目Ｃ、業務コードは、項目Ａ：０１、項目Ｂ：０２、項目Ｃ：０３、業務区分コードは、基本設計：００２、詳細設計：００３、プログラム：００５とする。業務時間は下記内容で既に登録してあるものとする。
項目Ａ（詳細設計）の業務時間は１１：００〜１２：００
項目Ｂ（基本設計）の業務時間は１３：００〜１４：５０
項目Ｃ（プログラム）の業務時間は１０：２０〜１１：００
【００４６】
この勤務状態の表示例を図６に示す。縦軸を業務項目、横軸を時刻とし、既に項目Ａ、項目Ｂ、項目Ｃとそれに対応する業務時間が入力されている。また、補助目盛りは、入力の単位時間（例では１０分単位）とする。本実施例のシステムは、項目Ａの勤務として、横軸が項目Ａで、時刻が１１：００から１２：００に該当する領域を青色に着色して表示する。同様に、項目Ｂ、Ｃについても該当する領域を青色に着色して表示する。そして、画面上部の未入力表示エリア２１には、勤務時間に該当する時刻の１０：２０から１２：００までと、１３：００から１４：５０までの領域を青色に着色して表示する。この表示により、トータルの勤務時間と、データが入力されていない時間帯とがひと目で分かるようになっている。
【００４７】
本実施例のシステムでは、従業員情報、組織情報、業務情報、業務項目情報、勤務情報を扱うが、それぞれ、従業員情報（図１１）、組織情報（図１２）、業務情報（図１３）、業務項目情報（図１４）、勤務情報（図１５）で管理することとする。
【００４８】
次に、勤務の入力者が勤務表へ勤務内容を入力するときの操作を説明する。
勤務の入力者は、勤務管理システムを起動する。次に、ログイン画面で氏名コードとパスワードを入力して、システムにログインする。次に、勤務の日付を入力する。次に、勤務表が表示されると、マウスなどのポインティングデバイスを使用して勤務内容を入力する。次に、入力が済むと、勤務内容を登録する。
【００４９】
上記の操作について、システムの処理は次のようになる。処理の概要については、図１８に示すフローチャートを基に説明する。
（１）システムの起動（Ｓ００１）。
（２）勤務の入力者を認証する（Ｓ００２）。
（３）勤務情報を検索する（Ｓ００３）。
（４）検索した勤務情報を入力用のセルへ展開する（Ｓ００４）。
（５）勤務情報から勤務表を表示する（Ｓ００５）。
（６）勤務実績の入力を受け付ける（Ｓ００６）。
（７）勤務表の入力について未入力の時間帯を検索する（Ｓ００７）。
（８）勤務表の入力について重複して入力された時間帯を検索する（Ｓ００９）。
（９）入力データを勤務情報へ変換する（Ｓ０１１）。
上記の処理をフローチャートに基づいて詳細に説明する。
【００５０】
（１）システムの起動
図１９は、本発明の一実施形態による勤務管理システムへのログインの方法を示している。勤務の入力者が、パーソナルコンピュータなどにインストールされた勤務管理システムのアイコンをクリックすると、勤務管理システムを起動させることができる（Ｓ１０１）。勤務管理システムの起動方法としては、Ｗｉｎｄｏｗｓ（登録商標）のプログラムの一覧から勤務管理システムを起動するようにしてもよい。また、社内システムの一部として勤務管理システムを組み込み、メニューから起動するようにしてもよい。
【００５１】
（２）勤務の入力者を認証する
勤務管理システムが起動すると、勤務の入力者を認証するために、ログイン画面を表示する。図５にログイン画面の事例を示す。本画面で、勤務の入力者は、氏名コードとパスワードを入力し、勤務管理システムはその入力を受け付ける（Ｓ１０２）。前記ログイン画面で「勤務入力」が選択されれば、勤務管理システムは、データベースサーバ１２のログインプロシジャーなどへ、入力された氏名コードとパスワードを渡す（Ｓ１０４）。もし、勤務の入力者が勤務入力を行う意志がないときは、前記ログイン画面で、「終了」を選択すると、勤務管理システムは全ての処理を終了させる（Ｓ１０３）。
【００５２】
次に、データベースサーバ１２に正規ユーザであることを問い合わせて（Ｓ１０５）、データベースサーバ１２から、正規ユーザであるとのレスポンスを得たら、次の処理へ進む。もし、正規ユーザと確認されなかった場合は、ステップ１０２に戻り、再度、勤務の入力者へ、氏名コードとパスワードの入力を求める。
【００５３】
また、勤務管理システムを単独で使用するときは、ユーザ定義ファイルを作成、保持し、ファイルのデータと入力データを照合することでユーザがログインするようにしてもよい。
【００５４】
（３）勤務情報を検索する
図２０は、データベースから勤務情報を検索するフローチャートである。
コンピュータ単体でシステムを構成するときは、コンピュータの内部時計から日付と時刻を取得し、勤務情報入力時の日付として使用してもよい（Ｓ２０２）。
また、ネットワーク１３で構成されたシステムであれば、アプリケーションサーバ１５の日付と時刻を取得し、勤務情報入力時の日付として使用してもよい（Ｓ２０２）。
【００５５】
勤務管理システムは、氏名コードと日付（年月）をキーとして、データベースサーバ１２から業務項目情報を検索する（Ｓ２０３）。このとき検索されるレコードは、下記の３件である。
（氏名コード）      （年月）  （業務コード）（業務項目コード）
１２３４５６  ，  ２００６０３  ，  ０１  ，  ００３
１２３４５６  ，  ２００６０３  ，  ０２  ，  ００２
１２３４５６  ，  ２００６０３  ，  ０３  ，  ００５
【００５６】
次に、勤務管理システムは、氏名コードと日付（年月日）をキーとして、勤務情報を検索する（Ｓ２０４）。このとき検索されるレコードは、下記の３件である。
（氏名コード）（業務コード）（業務項目コード）（開始時刻）（終了時刻）
１２３４５６  ，  ０１  ，  ００３  ，  １１００  ，  １２００
１２３４５６  ，  ０２  ，  ００２  ，  １３００  ，  １４５０
１２３４５６  ，  ０３  ，  ００５  ，  １０２０  ，  １１００
【００５７】
（４）検索した勤務情報を入力用のセルへ展開する
図２１は、勤務情報を入力用のセルへセットするフローチャートである。このフローチャートでは、時刻の変数Ｔと業務項目のインデックスＩをループ変数として用いる。
最初に、時刻の変数Ｔを０：００に初期化する（Ｓ３０２）。次に、業務項目のインデックスＩを初期化する（Ｓ３０３）。次に、時間のインデックスＩＴを、次式により計算する（Ｓ３０４）。
ＩＴ＝Ｔ／ｄＴ
時刻Ｔに業務Ｉのデータ入力があるかをチェックする（Ｓ３０５）。このチェックは、勤務情報入力用セルＣ（Ｉ，ＩＴ）のプロパティが“入力済”／“未入力”のいずれであるかをチェックすることにより行われる。時刻Ｔにデータ入力があれば、勤務情報入力用セルＣ（Ｉ，ＩＴ）のプロパティを“入力済”に変更する（Ｓ３０６）。
次の業務項目をチェックするために、インデックスＩに１を加える（Ｓ３０７）。Ｉが業務項目数Ｎの数値に達していれば、時刻Ｔにおける全業務項目についてチェックが終わったことになる（Ｓ３０８）。
【００５８】
もし、チェックが終了していない場合、ステップ３０５から処理を繰り返す。
チェックが終了していれば、次の時間帯についてチェックするために、時間の変数Ｔに単位時間を加える（Ｓ３０９）。次に、全時間帯についてチェックが終了したかを問い合わせる（Ｓ３１０）。もし、チェックが終了していない場合は、ステップ３０４から処理を繰り返す。チェックが終了していれば、本処理は完了する。
【００５９】
セルＣ（Ｉ，ＩＴ）は、セル単位に“入力済”か“未入力”かを記録しているので、セルＣの情報を用いてグラフィカルな勤務表を作成することができ、また、未入力データや重複データのチェックができるようになる。
【００６０】
（５）勤務情報から勤務表を表示する
図２２は、勤務表を表示するフローチャートである。
勤務者の氏名を表示する（Ｓ４０２）。勤務日を表示する（Ｓ４０３）。勤務の項目を表示する（Ｓ４０４）。時間帯と目盛りを表示する（Ｓ４０５）。勤務の時間帯をグラフィク表示する（Ｓ４０６）。未入力表示エリア２１を表示する（Ｓ４０７）。重複入力表示エリアを表示する（Ｓ４０８）。
【００６１】
（６）勤務実績の入力を受け付ける
次に、本発明を実施するための例示的な勤務実績の入力方法について詳細に説明する。
本発明によれば、勤務の入力者は、マウス等のポインティングデバイスを使用して、勤務表中の勤務時間帯を表わしたセルの上を、マウスカーソルをドラッグさせて勤務時間を入力することができる。
【００６２】
勤務の入力者は、マウスカーソルを勤務表中の業務項目の行へ移動させて、業務開始時刻に対応する箇所（セル）に到達したときに、マウスの左ボタンをクリックし、マウスの左ボタンを押した状態のままでマウスカーソルを時刻が増える方向へ移動させ、業務終了時刻のセルの位置でマウスの左ボタンを離す。このとき、システムは、マウスカーソルがセルの上を時間軸の方向（右向き）にドラッグされることで、セルの一つ一つに勤務時間が入力されたことを認識して、セルを順々にブルーに着色していく。
【００６３】
また、一度入力された勤務時間を修正するとき、勤務の入力者は修正する時間帯の終了時刻の位置へマウスカーソルを移動させ、マウスの左ボタンを押下し、マウスカーソルを時刻が減る方向へドラッグする。このとき、システムは、マウスカーソルがセルの上を時間軸と反対方向（左向き）にドラッグされることで、セルの一つ一つに勤務入力が取り消されたことを示すこととし、セルを順々にホワイトに着色していく。
【００６４】
勤務の入力者が、業務終了時刻のセルの位置でマウスの左ボタンを離すと、システムは、業務開始時刻のセルの位置から業務終了時刻のセルの位置までの範囲を勤務時間として入力する。
【００６５】
通常のＷｉｎｄｏｗｓ（登録商標）の処理においては、コンピュータの使用者が、何らかの処理をコンピュータに命令するときは、処理対象の範囲をマウスで指定して、次に処理を選択して、その上で処理を実行するようになっている。実施例では、通常のＷｉｎｄｏｗｓ（登録商標）の処理に工夫を加え、実際に勤務した時間の範囲（勤務時間帯）をマウスでドラッグして指定すると、システムが業務時間の入力と認識するようにし、また、業務終了時刻のセルの位置から左方向へマウスをドラッグすると、システムが指定された時間の範囲の勤務入力の取消しと認識するようにしたところに特徴がある。
【００６６】
本実施例では、勤務の入力者が、入力者Ａという従業員の勤務について、項目Ｂの作業を１３：００から１４：５０まで行い、その実績を入力するものとする。勤務の入力者は、項目Ｂの業務開始時刻１３：００のセルの位置までマウスカーソルを移動させて左ボタンを押し、項目Ｂの業務終了時刻１４：５０のセルまでマウスカーソルをドラッグし、マウスの左ボタンを離す。この動作で、項目Ｂの業務時間は、１３：００から１４：５０として入力される。入力結果を図６に示す。
【００６７】
図２は、本発明による勤務の入力方法を示したものである。表の縦軸は業務の管理項目２２（項目Ａ、項目Ｂ、項目Ｃ）であり、横軸は時刻２３を示している。本実施例では、勤務管理の単位時間を１０分単位としているので、１時間は６つのセルに分割して表示されている。本実施例では、ポイントＡ２５からポイントＢ２６までマウスカーソルをドラッグすることになる。
【００６８】
上記の内容を、システムの処理から説明する。パーソナルコンピュータのオペレーティングシステムは、マウスのボタン押下などでコールされるイベント処理プログラムを用意しており、各イベント割込処理プログラムは、システム作成者が処理を定義したり作成したりすることができる。ポインティングデバイスによる入力手段として、マウスの左ボタンが押されたとき、マウスカーソルをドラッグしたとき、マウス左ボタンを離したときの一連の処理を、それぞれのイベントに対応して割込処理プログラムを作成し、組み合わせて、実行させている。
【００６９】
勤務の入力者は、ある業務について、業務開始時刻を指定するために、入力画面上の業務開始時刻に対応する箇所（セル）へマウスカーソルを移動させ、マウスの左ボタンを押下する。すると、パーソナルコンピュータのオペレーティングシステムは、マウスの左ボタンの押下に対応したイベント割込処理プログラム（以下、「マウス左ボタン押下時の割込処理」と記す）を呼び出す。
【００７０】
次に、勤務の入力者は、業務時間帯を指定するために、マウスの左ボタンを押下した状態で、マウスカーソルを移動させる。（これをドラッグと呼ぶ。）マウスをさせると、パーソナルコンピュータのオペレーティングシステムは、マウスのドラッグに対応したイベント割込処理プログラム（以下、「マウスドラッグ中の割込処理」と記す）を呼び出す。
【００７１】
次に、勤務の入力者は、入力画面上の業務終了時刻に対応するセル上で、マウスの左ボタンを離す。マウスの左ボタンが離されると、パーソナルコンピュータのオペレーティングシステムは、マウスの左ボタンのアップに対応したイベント割込処理プログラム（以下、「マウス左ボタンアップ時の割込処理」と記す）を呼び出す。
【００７２】
上記の割込処理を組み合わせてプログラミングすると、勤務の入力者は、コンピュータの画面に表示された勤務表の上で、勤務時間の入力または入力の取消しを行うことができる。
【００７３】
以下に、図を参照しながら各処理を説明する。図２３は、（ａ）マウス左ボタン押下時の割込処理、図２４は、（ｂ）マウスドラッグ中の割込処理、図２５は、（ｃ）マウス左ボタンアップ時の割込処理を説明したフローチャートである。図１６は、業務時間入力処理に関する割込処理プロセスのタイミングチャートである。図１７は、業務時間入力の取消に関する割込処理プロセスのタイミングチャートである。
【００７４】
（ａ）マウス左ボタン押下時の割込処理
図２３は、業務時間入力処理に関する、マウス左ボタン押下時の割込処理のフローチャートである。パーソナルコンピュータのオペレーティングシステムは、マウスの左ボタンが押下されると、マウスの左ボタンの押下に対応した本プログラムをコールする（Ｓ５０１）。
【００７５】
以下に、計算式で使用する記号の意味を記す。
Ｘ０：入力画面上の勤務表の原点Ｘ
Ｙ０：入力画面上の勤務表の原点Ｙ
Ｔ０：入力画面上の勤務表の原点に対応する時刻
Ｘ１：マウスでクリックされた業務開始時刻のＸ座標
Ｙ１：マウスでクリックされた点のＹ座標
Ｔ１：業務開始時刻
Ｄｘ：Ｘ軸方向における画面のドット数
Ｄｙ：Ｙ軸方向における画面のドット数
ｄＴ：勤務管理上の単位時間（分）
【００７６】
本プログラムは、クリック処理中フラグをチェックして、他のプログラムがマウス処理を行っていないことをチェックする（Ｓ５０２）。もし、他のプログラムがマウス処理を行っていれば、マウス左ボタン押下時の割込処理は処理を終了する。他のプログラムがマウス処理を行っていなければ、以下の処理を実行する。
他のプロセスがマウスのクリック処理を行わないようにブロックするために、クリック処理中フラグをＯＮにする（Ｓ５０３）。
【００７７】
選択された業務項目Ｉ１は、以下の計算式で表される（Ｓ５０４）。
【数１】
2008065527.tif 000003
業務開始時刻Ｔ１は、以下の計算式で表される（Ｓ５０４）。
【数２】
2008065527.tif 000004
Ｉ１，Ｔ１から当該セルＣ（Ｉ１，ＩＴ）に対応する配列の引数を次式で計算する（Ｓ５０５）。
【数３】
2008065527.tif 000005
【００７８】
ブロックセレクト中フラグをチェックして（Ｓ５０６）、ブロックセレクト中であれば、クリック処理中フラグをＯＦＦにして（Ｓ５１３）、本割込処理を終了する。ブロックセレクト中でなければ、他のプロセスがドラッグ処理を実行させないために、ブロックセレクト中フラグをＯＮにする（Ｓ５０７）。
【００７９】
セルＣ（Ｉ，ＩＴ）のプロパティが“未入力”であれば、本システムは、勤務の入力者が当該セルを業務開始の始点としてクリックしたものとみなし、以下の処理を行う。業務項目として指定されたＩ１にＩを、業務開始時刻Ｔ１に今回の時刻Ｔを代入して保存する（Ｓ５０９）。当該セルが勤務時間帯として選択されると、システムは当該セルをブルーで表示して、当該セルのプロパティを“入力済”に変えて、未入力表示エリア２１の該当箇所をブルーで表示して入力済であることを示し、もし、同一時間帯で勤務入力の重複があれば、重複表示エリア２０の該当箇所を赤色で表示して重複していることを勤務の入力者に警告する。前記処理を実行するために、プロシジャｂｌｕｅをコールする（Ｓ５１０）。
【００８０】
また、セルＣ（Ｉ，ＩＴ）のプロパティが“入力済”であれば、本システムは、勤務の入力者がクリックされた当該セルの勤務入力を取消したものとみなし、以下の処理を行う。業務項目として指定されたＩ１にＩを、勤務入力を取消す時刻Ｔ１に今回の時刻Ｔを代入して保存する（Ｓ５１１）。当該セルの勤務入力が取消されると、システムは当該セルをホワイトで表示して、未入力表示エリア２１の該当箇所をホワイトで表示して勤務実績が未入力であることを示し、もし、同一時間帯で勤務入力の重複があったときは、重複表示エリア２０の該当箇所をホワイトで表示する。前記処理を実行するために、プロシジャｗｈｉｔｅをコールする（Ｓ５１２）。
【００８１】
プロシジャｂｌｕｅ（図２９）では、以下の処理を行う。業務項目の引数をＩに代ってＪを、時間の引数をＩＴに代ってＪＴで表わすこととする。Ｊ＝０からＮ−１（業務項目数）の範囲で、セルＣ（Ｊ，ＪＴ）のプロパティをチェックして、入力済のセルの数をカウントする（Ｓ１１０２）。入力済のセルの数が０個なら、セルＣ（Ｊ，ＪＴ）のプロパティを“入力済”にして（Ｓ１１０４）、未入力表示エリア２１の該当するセル（ＪＴ）をブルーで表示して（Ｓ１１０５）、セルＣ（Ｊ,ＪＴ）をブルーで表示する（Ｓ１１０８）。入力済のセルの数が１個以上なら、その時間帯において、他の業務項目で既に入力があるものとし、セルＣ（Ｊ，ＪＴ）のプロパティを“入力済”にして（Ｓ１１０６）、重複表示エリア２０の該当するセル（ＪＴ）を赤色で表示して（Ｓ１１０７）、セルＣ（Ｊ,ＪＴ）をブルーで表示する（Ｓ１１０８）。
【００８２】
プロシジャｗｈｉｔｅ（図３０）では、以下の処理を行う。クリックされたセルＣ（Ｊ，ＪＴ）のプロパティを“未入力”にして（Ｓ１２０２）、Ｊ＝０からＮ−１（業務項目数）の範囲で、セルＣ（Ｊ，ＪＴ）のプロパティをチェックして、“入力済”のセルの数をカウントする（Ｓ１２０３）。“入力済”のセルの数が０個なら、未入力表示エリア２１の該当するセル（ＪＴ）をホワイトで表示して（Ｓ１２０６）、セルＣ（Ｊ，ＪＴ）をホワイトで表示する（Ｓ１２０７）。“入力済”のセルの数が１個なら、重複表示エリア２０の該当するセル（ＪＴ）をホワイトで表示して（Ｓ１２０５）、セルＣ（Ｊ，ＪＴ）をホワイトで表示する（Ｓ１２０７）。
【００８３】
全ての処理を実行した後、クリック処理中フラグをＯＦＦにして（Ｓ５１３）、本割込処理を終了する。
【００８４】
（ｂ）マウスドラッグ中の割込処理
図２４は、業務時間入力処理に関する、マウスドラッグ中の割込処理のフローチャートである。
以下に、計算式で使用する記号の意味を記す。
Ｔ  ：現在のマウスカーソルが示す時刻
Ｔ１：最初にマウスで指定された時刻
Ｔ２：ひとつ前の割込処理で使用した時刻
Ｉ  ：業務項目のインデックス
ＩＴ：時刻のインデックス（セルや配列の引数として使用する）
Ｘ０：入力画面上の勤務表の原点Ｘ
Ｄｘ：Ｘ軸方向における画面のドット数
ｄＴ：勤務管理上の単位時間（分）
【００８５】
勤務の入力者がマウスをドラッグすると、パーソナルコンピュータのオペレーティングシステムは、本割り込み処理プログラムをコールする（Ｓ６０１）。本割り込み処理は、クリック処理中フラグをチェックして、他のプログラムがマウス処理を行っていないかをチェックする（Ｓ６０２）。もし、他のプログラムがマウス処理を行っていれば、マウスドラッグ中の割込処理は処理を終了する。
【００８６】
他のプログラムがマウス処理を行っていなければ、以下の処理を実行する。他のプロセスがクリック処理を行わないようにブロックするために、クリック処理中フラグをＯＮにする（Ｓ６０３）。マウスカーソルをドラッグした位置（Ｘ，Ｙ）からマウスカーソルが示す時刻Ｔを次式により計算する（Ｓ６０４）。
【数４】
2008065527.tif 000006
Ｉ１，Ｔ１から当該セルＣ（Ｉ１，ＩＴ）に対応する配列の引数を（３）式で計算する（Ｓ６０５）。
【００８７】
次に、ブロックセレクトフラグをチェックして（Ｓ６０６）、ブロックセレクト中でなければ、クリック処理中フラグをＯＦＦにして（Ｓ６１８）、本割込処理を終了する。
次に、時刻Ｔとマウスで指定された時刻Ｔ１、時刻Ｔとひとつ前の割込処理で使用した時刻Ｔ２を比較する（Ｓ６０７、Ｓ６０８、Ｓ６１１、Ｓ６１４）。それぞれの大小関係の組み合わせにより、マウスカーソルのドラッグの方向を分析して、勤務時間の入力なのか、勤務時間の取消しなのかを判定する。
【００８８】
マウスカーソルの動きについて、以下の４通りがある。
（Ａ）マウスカーソルが右方向に向きを変えずドラッグされた場合
（Ｂ）マウスカーソルが左方向に向きを変えずドラッグされた場合
（Ｃ）勤務時間が入力済のセルにおいて、マウスカーソルのドラッグされる方向が途中で変わった場合
（Ｄ）勤務時間が未入力のセルにおいて、マウスカーソルのドラッグされる方向が途中で変わった場合
以下、それぞれの場合について説明する。
【００８９】
（Ａ）マウスカーソルが右方向に向きを変えずドラッグされた場合
勤務の入力者により、マウスカーソルを始点Ｔ１から、右方向に途中で向きを変えることなくドラッグされたときは、時刻Ｔ１から時刻Ｔまで勤務入力されたものと判断し、当該セル（Ｉ，ＩＴ）をブルーで表示する。前記処理を実行するために、ＪにＩを、ＪＴにＩＴを代入して、プロシジャｂｌｕｅ（図２９）をコールする（Ｓ６１３）。
この場合の判定条件は、
・Ｔ１＜Ｔのとき、Ｔ≧Ｔ２
・Ｔ１＝Ｔのとき、Ｔ＞Ｔ２
これらの条件の場合、マウスカーソルは途中で向きを変えずに右方向へドラッグされたと判定する。
【００９０】
（Ｂ）マウスカーソルが左方向に向きを変えずドラッグされた場合
勤務の入力者により、マウスカーソルを始点Ｔ１から、左方向に途中で向きを変えることなくドラッグされたときは、時刻Ｔ１から時刻Ｔまで勤務入力が取消されたものと判断し、当該セル（Ｉ，ＩＴ）をホワイトで表示する。前記処理を実行するために、ＪにＩを、ＪＴにＩＴを代入して、プロシジャｗｈｉｔｅ（図３０）をコールする（Ｓ６１２）。
この場合の判定条件は、
・Ｔ１＞Ｔのとき、Ｔ≦Ｔ２
・Ｔ１＝Ｔのとき、Ｔ＜Ｔ２
これらの条件の場合、マウスカーソルは途中で向きを変えずに左方向へドラッグされたと判定する。
【００９１】
（Ｃ）勤務時間が入力済のセルにおいて、マウスカーソルのドラッグされる方向が途中で変わった場合
勤務時間が入力されてブルー表示されたセル上を、勤務の入力者によりドラッグ中のマウスカーソルが途中で方向を変えた場合、時刻Ｔ１から時刻Ｔまでが勤務入力または勤務入力の取消しと判断し、ひとつ前のセル（Ｉ，ＩＴ２）の表示を、元の状態（ブルー表示）に戻す。前記処理を実行するために、ＪにＩを、ＪＴにＩＴ２を代入して、プロシジャｂｌｕｅをコールする（Ｓ６１０）。
この場合の判定条件は、
・Ｔ１＜Ｔ＜Ｔ２のとき、セル（Ｉ，ＩＴ２）が入力済
・Ｔ２＜Ｔ＜Ｔ１のとき、セル（Ｉ，ＩＴ２）が入力済
これらの条件の場合、勤務時間が入力済のセル上において、マウスカーソルが途中から向きを変えてドラッグされたと判定する。
【００９２】
（Ｄ）勤務時間が未入力のセルにおいて、マウスカーソルのドラッグされる方向が途中で変わった場合
勤務時間が入力されていないホワイト表示されたセル上を、勤務の入力者によりドラッグ中のマウスカーソルが途中で方向を変えた場合、時刻Ｔ１から時刻Ｔまでが勤務入力または勤務入力の取消しと判断し、ひとつ前のセル（Ｉ，ＩＴ２）の表示を、元の状態（ホワイト表示）に戻す。前記処理を実行するために、ＪにＩを、ＪＴにＩＴ２を代入して、プロシジャｗｈｉｔｅ（図３０）をコールする（Ｓ６１６）。
この場合の判定条件は、
・Ｔ１＜Ｔ＜Ｔ２のとき、セル（Ｉ，ＩＴ２）が未入力
・Ｔ２＜Ｔ＜Ｔ１のとき、セル（Ｉ，ＩＴ２）が未入力
これらの条件の場合、勤務時間が未入力のセルにおいて、マウスカーソルが途中から向きを変えてドラッグされたと判定する。
【００９３】
以上、上記の処理を処理後、Ｔ２へＴを代入する（Ｓ６１７）。全ての処理を実行した後、クリック処理中フラグをＯＦＦにして（Ｓ６１８）、本割込処理を終了する。
【００９４】
（ｃ）マウス左ボタンアップ時の割込処理
図２５は、業務時間入力処理に関する、マウス左ボタンアップ時の割込処理のフローチャートである。
パーソナルコンピュータのオペレーティングシステムは、マウスの左ボタンが押下された後、左ボタンが離されたタイミングで、マウスの左ボタンのアップに対応した本プログラムをコールする（Ｓ７０１）。本プログラムは、クリック処理中フラグをチェックして、他のプログラムがマウス処理を行っていないかをチェックする（Ｓ７０２）。もし、他のプログラムがマウス処理を行っていれば、マウス左ボタンアップ時の割込処理は処理を終了する。他のプログラムがマウス処理を行っていなければ、ブロックセレクト中フラグをＯＦＦにして（Ｓ７０３）、全ての処理を実行した後、クリック処理中フラグをＯＦＦにして（Ｓ７０４）、本割込処理を終了する。
【００９５】
上記（ａ）、（ｂ）、（ｃ）の各割込処理を組み合わせて実行することにより、勤務実績の入力または取消しの処理を視覚的に実施することができる。
【００９６】
（７）未入力の時間帯を検索する
図２６は、業務時間入力において、未入力の時間帯を検索するフローチャートである。
従業員は勤務時間内の業務について、どの業務のどの作業にどれだけの時間をかけたのかを勤務表に入力しなければならない。従業員は、休憩時間以外は、全て何らかの業務に携わっており、もし、勤務時間中に未入力の時間帯があるならば、勤務の入力者が入力を忘れたとみなされる。以下に、その未入力の時間帯をデータベースから検索する処理について説明する。
【００９７】
本プログラムでは、１日の全ての時間帯について、更に全ての業務項目２２について、勤務データが未入力の時間帯を検索する。まず、最初に、入力チェック用配列ＣＨＫの内容を全て“未入力”として初期化する（Ｓ８０２）。時刻について、００：００から２４：００までスキャンするので、ループ変数の初期化条件として、時刻の変数Ｔを００：００に初期化し（Ｓ８０３）、次に、業務項目のインデックスＩを０に初期化する（Ｓ８０４）。時間のインデックスＩＴを（３）式で計算する（Ｓ８０５）。ただし、ｄＴは勤務入力の単位時間である。
【００９８】
セルＣ（Ｉ，ＩＴ）のプロパティをチェックし（Ｓ８０６）、“入力済”であれば、入力チェック用配列ＣＨＫ（ＩＴ）のプロパティを“入力済”に変更する（Ｓ８０７）。
次の項目をチェックするために、業務項目のインデックスＩに１を加え（Ｓ８０８）、Ｉと業務項目数の値とを比較する（Ｓ８０９）。もし、Iが、業務項目数以上の値なら、全業務項目についてチェックが終了したと判断し、ステップ８１０以下の処理を実行する。もし、チェックが終了していなければ、ステップ８０３へ戻り、同様の処理を繰り返す。
【００９９】
ステップ８１０では、時刻の変数Ｔについて、次の時間帯についてチェックするために、単位時間ｄＴを加える。時刻の変数Ｔが、２４：００になるまで検索を続けたら、全ての時間帯についてチェックしたことになる。ステップ８１１では、時刻の変数Ｔと２４：００とを比較し、Ｔが２４：００未満なら、ステップ８０３へ戻り、同様の処理を繰り返す。
時刻の変数Ｔが、２４：００に達したら、チェックが終了したとみなし、本処理は終了する。
【０１００】
この処理により、入力チェック用配列ＣＨＫ（ＩＴ）に、勤務データの入力状況が記憶されることになる。例えば、単位時間が１０分のとき、午前１０：００から午前１０：１０までの時間帯について調査するのであれば、ＩＴ＝６０だから、ＣＨＫ（６０）の値を調べて、ＣＨＫ（６０）＝“未入力”なら、勤務時データが未入力であると、判断できる。
【０１０１】
（８）重複して入力された時間帯を検索する
図２７は、業務時間入力において、重複して入力された時間帯を検索するフローチャートである。
勤務の入力者は、一日の中で複数の業務を行う場合があり、その業務項目２２ごとに実績を入力しなければならないが、入力ミスや記憶違いなどといった理由で、複数の業務項目２２において、業務時間帯が重複していることがある。その場合、重複した時間帯を検索して、警告する手段が必要である。以下に、この重複した時間帯を検索する処理について説明する。
【０１０２】
システムを起動する（Ｓ９０１）。時刻の変数Ｔを０：００に初期化する（Ｓ９０２）。時間のインデックスＩＴを（３）式で計算する（Ｓ９０３）。Ｉ＝０からＮ−１（ただし、Ｎは業務項目数）の範囲で、セルＣ（Ｉ，ＩＴ）のプロパティが“入力済”のものの数をカウントする（Ｓ９０４）。カウントが２以上であるかをチェックする（Ｓ９０５）。もし、カウントが２以上であれば、チェック用配列Ｄ（ＩＴ）のプロパティを「重複」とする（Ｓ９０６）。もし、カウントが２以上でなければ、チェック用配列Ｄ（ＩＴ）のプロパティを「正常」とする（Ｓ９０７）。
【０１０３】
ステップ９０６、ステップ９０７の処理をそれぞれ実行後、時間の変数Ｔに単位時間を加える（Ｓ９０８）。全時間帯についてチェックを終了したかを問い合わせる（Ｓ９０９）。もし、チェックが終了していなければ、ステップ９０３から処理を繰り返す。チェックが終了していれば、本処理は終了する。
【０１０４】
本処理により全時間帯について入力データの重複のチェックが行わる。もし、本処理が重複した時間帯を検出すると、重複表示エリア２０に重複した時間帯が表示される。勤務の入力者は、重複表示エリア２０に表示された重複の表示を参照して、入力した勤務実績を訂正する。重複した時間帯が複数存在しても、勤務入力を継続するようにプログラミングすることが望ましい。また、勤務の入力者がデータの登録を指示したときに、警告メッセージを表示するようにプログラミングすることが望ましい。
【０１０５】
（９）入力データを勤務情報へ変換する
図２８は、勤務表へ入力されたデータを勤務情報へ変換するフローチャートである。
本プログラムでは、勤務の入力者が入力した全ての業務項目２２を、１日の全ての時間帯について、２重ループでスキャンして、勤務情報を作成する。本プログラムがコールされると、最初に、業務項目のインデックスＩを初期化する（Ｓ１００２）。
次に、時刻を００：００から２４：００までスキャンするので、ループ変数の初期化条件として、時刻の変数Ｔを００：００に初期化し（Ｓ１００３）、業務継続フラグをＯＦＦに初期化する（Ｓ１００４）。
時間のインデックスＩＴを（３）式により計算し（Ｓ１００５）、このＩＴをセルの情報Ｃ（I，ＩＴ）の引数として使用する。ただし、ｄＴは、勤務入力の単位時間である。
【０１０６】
本プログラムでは、セルＣ（Ｉ、ＩＴ）のプロパティと業務継続フラグをチェックして、そのＯＮ／ＯＦＦの状態に応じて業務情報を作成する。（Ｓ１００６、Ｓ１００７、Ｓ１０１０）セルＣ（Ｉ，ＩＴ）が“入力済”で、業務継続フラグがＯＦＦならば、時刻Ｔにおいて、業務項目Ｉの業務が開始されたものと判断する。勤務情報のＪ番目のレコードに氏名コード、業務コード，業務項目コード、業務開始時刻Ｔを保存する（Ｓ１００８）。また、業務がこの時間から継続されるものと判断して、業務継続フラグをＯＮにする（Ｓ１００９）。
セルＣ（Ｉ，ＩＴ）が“入力済”で、業務継続フラグがＯＮならば、業務は継続されているものと判断して、フラグなどの状態を変更しない。
【０１０７】
セルＣ（Ｉ，ＩＴ）が“未入力”で、業務継続フラグがＯＮならば、時刻Ｔに達したとき、１つ前のステップで、業務は終了していると判断し、Ｔ−ｄＴを業務項目Ｉの業務終了時刻として業務情報のＪ番目のレコードへ保存し、Ｊを１加算する（Ｓ１０１１）。業務は既に終了しているので、業務継続フラグをＯＦＦにする（Ｓ１０１２）。
【０１０８】
ステップ１００５からステップ１０１２までの処理が完了すると、次の時間帯をチェックするために、時間の変数Ｔに単位時間ｄＴを加える（Ｓ１０１３）。次に、全時間帯についてチェックが終了したかを問い合わせ（Ｓ１０１４）、チェックが終了していなければ、ステップ１００５から処理を繰り返す。
【０１０９】
全時間帯についてチェックが終了していれば、業務項目のインデックスＩに１を加え（Ｓ１０１５）、全業務項目についてチェックが終了したかを判断する（Ｓ１０１６）。
もし、チェックが終了していなければ、ステップ１００３に戻り、画面上の勤務表へ入力されたデータのスキャンを繰り返す。チェックが終了していれば、本処理は終了する。
【実施例２】
【０１１０】
次に、本発明を実施するための例示的な勤務実績の変更入力方法について説明する。実施例では、勤務の入力者が、（１）勤務管理表を表示して、（２）業務時間帯の追加入力をし、業務時間帯について複数の項目で重複の警告が表示されたのに伴い、（３）重複した業務時間帯の入力を取り消し、（４）入力内容を数値表示してチェックする、という入力作業とシステムの処理を、順を追って説明する。
【０１１１】
（１）勤務管理表を表示する
勤務の入力者が入力済みの勤務情報をダウンロードして、勤務管理表を画面に表示する実施例を説明する。以下に、計算式で使用する記号の意味を記す。
Ｉ  ：業務項目
Ｔ１：業務開始時刻
Ｔ２：業務終了時刻
ｄＴ：単位時間
Ｙ０：入力画面上の勤務表の原点Ｙ
Ｘ０：入力画面上の勤務表の原点Ｘ
Ｔ０：入力画面上の勤務表の原点に対応する時刻
Ｄｙ：Ｙ軸方向における画面のドット数
Ｄｘ：Ｘ軸方向における画面のドット数
【０１１２】
図６では、ユーザの氏名を入力者Ａ、氏名コードを１２３４５６、勤務日は平成１８年３月６日、担当業務を項目Ａ、項目Ｂ、項目Ｃ、業務時間は下記内容で、既に入力して登録してあるものとする。
項目Ａ（詳細設計）の業務時間は１１：００〜１２：００
項目Ｂ（基本設計）の業務時間は１３：００〜１４：５０
項目Ｃ（プログラム）の業務時間は１０：２０〜１１：００
ここで、業務コードは、項目Ａ：０１、項目Ｂ：０２、項目Ｃ：０３、業務項目コードは、基本設計：００２、詳細設計：００３、プログラム：００５とする。最初に、勤務の入力者は、氏名と日付を入力する。システムは、氏名コードをキーとして正規ユーザか否かをチェックし、正規ユーザと確認できたら以下の処理を実行する。
【０１１３】
システムは、氏名コードと日付をキーとしてデータベースを検索する（ユニークキーではない）。このとき検索されるレコードは、下記の３件である。
（氏名コード）（業務コード）（業務項目コード）（開始時刻）（終了時刻）
１２３４５６  ，  ０１  ，  ００３  ，  １１００  ，  １２００
１２３４５６  ，  ０２  ，  ００２  ，  １３００  ，  １４５０
１２３４５６  ，  ０３  ，  ００５  ，  １０２０  ，  １１００
【０１１４】
次に、検索されたレコードを、業務開始時刻から単位時間ごとに未入力表示エリア２１と重複表示エリア２０をチェックするために、業務開始時刻、業務コードをソートキーとしてソートする。
１２３４５６  ，  ０３  ，  ００５  ，  １０２０  ，  １１００
１２３４５６  ，  ０１  ，  ００３  ，  １１００  ，  １２００
１２３４５６  ，  ０２  ，  ００２  ，  １３００  ，  １４５０
【０１１５】
業務データのレコード中の業務項目コード、業務開始時刻、業務終了時刻から、数値変換して画面上の座標を計算する。
【数５】
2008065527.tif 000007
【数６】
2008065527.tif 000008
システムは、レコードに対応するエリアをブルーで塗りつぶして、勤務管理表を表示する。
【０１１６】
（２）業務時間帯の追加入力をする
勤務の入力者は、今回新たに項目Ｃに１４：００から１５：２０の業務実績を入力するものとして、そのプロセスを、詳細に説明する。図７で、勤務入力の実施例を示す。
本実施例では、勤務の入力者は、業務開始時刻である１４：００のセル（ポイントＡ）へマウスカーソルを移動させて、マウスの左ボタンを押した状態で、業務終了時刻の１５：２０のセル（ポイントＢ２６）まで移動させ、新規に入力したセルの範囲がブルーに表示されたことを確認した後、マウスの左ボタンを離す。一つの業務項目２２についての入力作業は、勤務の入力者がマウスの左ボタンを離すことで一旦完了する。勤務時間の追加があるときは、この状態から何度でも、同様の方法で業務実績を追加入力することができる。
【０１１７】
上記の内容を、システムの処理から説明する。勤務の入力者が、項目Ｃの業務開始時刻１４：００のセルの位置で、マウスの左ボタンを押下すると、パーソナルコンピュータのオペレーティングシステムは、マウスの左ボタンの押下に対応したマウス左ボタン押下時の割込処理を起動する。
本プログラムは、クリック処理中フラグをチェックして（Ｓ５０２）、今回は他のプログラムがマウス処理を行っていないため、クリック処理中フラグをＯＮにして（Ｓ５０３）、以下の処理を実行する。
【０１１８】
マウスの左ボタンが押下されたときのマウスカーソルの位置（Ｘ１、Ｙ１）から業務項目のインデックスＩ１、業務開始時刻Ｔ１を計算すると（Ｓ５０４）、Ｉ１＝１、Ｔ１＝８４、となる。この場合は、ブロックセレクト中ではないので、ブロックセレクト中フラグをＯＮにする（Ｓ５０７）。次に、セルＣ（１，８４）のプロパティをチェックすると（Ｓ５０８）、“未入力”であるので、Ｉ１に１を、業務開始時刻Ｔ１に時刻１４：００を代入して保存する（Ｓ５０９）。セルＣ（１，８４）は“未入力”なので、本システムは、勤務時間帯が入力されたと認識して、プロシジャｂｌｕｅをコールする（Ｓ５１０）。
【０１１９】
プロシジャｂｌｕｅ（図２９）では、以下の処理を行う。Ｊ＝０から２の範囲で、セルＣ（Ｊ，８４）のプロパティをチェックして、“入力済”のセルの数をカウントする（Ｓ１１０２）。この場合、“入力済”のセルの数が２個なので、セルＣ（Ｊ，８４）のプロパティを“入力済”にして（Ｓ１１０６）、重複表示エリア２０のセル（８４）を赤色で表示し（Ｓ１１０７）、セルＣ（Ｊ，８４）をブルーで表示する（Ｓ１１０８）。以上で、プログラムの制御はマウス左ボタン押下時の割込処理に戻り、クリック処理中フラグをＯＦＦにして（Ｓ５１３）、本割込処理を終了する。
【０１２０】
次に、勤務の入力者が、業務終了時刻１５：２０のセルまでマウスカーソルをドラッグさせて、勤務時間帯を指定すると、パーソナルコンピュータのオペレーティングシステムはマウスのドラッグに対応したマウスドラッグ中の割込処理をコールする。
本プログラムは、クリック処理中フラグをチェックして（Ｓ６０２）、今回は他のプログラムがマウス処理を行っていないため、クリック処理中フラグをＯＮにして（Ｓ６０３）、以下の処理を実行する。
【０１２１】
マウスカーソルをドラッグした位置（Ｘ，Ｙ）からマウスカーソルが示す時刻Ｔを計算すると（Ｓ６０４）、この場合はＴ＝１４：１０である。ブロックセレクトフラグをチェックすると（Ｓ６０６）、ブロックセレクト中であるので、以下の処理を実行する。
時刻Ｔ、Ｔ１、Ｔ２を比較して、それぞれの大小関係から、マウスカーソルのドラッグの方向を分析する。最初のループでは、Ｔ＝Ｔ１＝Ｔ２＝１４：１０となって、Ｔ２へＴを代入し（Ｓ６１７）、クリック処理中フラグをＯＦＦにして（Ｓ６１８）、本割込処理を終了する。
【０１２２】
勤務の入力者が、次のセルへマウスをドラッグすると、２回目の割込みが発生する。この場合、Ｔ１＝Ｔ２＝１４：１０、Ｔ＝１４：２０となるので、Ｔ＞Ｔ１かつＴ＞Ｔ２となり、ステップ６１３の処理を実行することになる。本割込処理は、勤務時間が追加入力されたと認識して、プロシジャｂｌｕｅをコールする（Ｓ６１３）。
【０１２３】
プロシジャｂｌｕｅ（図２９）では、Ｊ＝０から２の範囲で、セルＣ（Ｊ，８５）のプロパティをチェックして、“入力済”のセルの数をカウントする（Ｓ１１０２）。この場合、“入力済”のセルが２個なので、セルＣ（Ｊ，８５）のプロパティを“入力済”にして（Ｓ１１０６）、重複表示エリア２０のセル（８５）を赤色で表示し（Ｓ１１０７）、セルＣ（Ｊ，８５）をブルーで表示する（Ｓ１１０８）。以上で、プログラムの制御はマウスドラッグ中の割込処理に戻り、Ｔ２へＴの値を代入し（Ｓ６１７）、クリック処理中フラグをＯＦＦにして（Ｓ６１８）、本割込処理を終了する。以下、時刻１５：２０のセルへ到達するまで、マウスカーソルがドラッグされて、１つのセルを通過するたびに本割込処理がコールされ、順々にブルーで表示されていく。
【０１２４】
勤務の入力者は、業務終了時刻の１５：２０までマウスカーソルをドラッグすると、マウスの左ボタンを離す。パーソナルコンピュータのオペレーティングシステムは、マウスの左ボタンが離されたタイミングで、マウスの左ボタンのアップに対応したマウス左ボタンアップ時の割込処理をコールする。
本プログラムは、クリック処理中フラグをチェックして（Ｓ７０２）、他のプログラムがマウス処理を行っていないため、ブロックセレクト中フラグをＯＦＦにして（Ｓ７０３）、クリック処理中フラグをＯＦＦして（Ｓ７０４）、本割込処理を終了する。
【０１２５】
以上の処理により、勤務の入力者が、項目Ｃの勤務入力を１４：００から１５:２０まで行ったため、項目Ｂの勤務入力と一部が重複し、その結果、重複入力の表示エリアに１４:００から１４:５０までの時間帯が赤色で表示された。
【０１２６】
（３）業務実績の取消入力
そこで、項目Ｂについて、１４:００から１４:５０までの業務実績を削除し、１３：００から１４：００へと修正する。
勤務の入力者が行った上記プロセスの操作方法について、図３を用いて詳細に説明する。
勤務の入力者は、項目Ｂの業務終了時刻１４：４０のセル３１（ポイントＤ）へマウスカーソルを移動させ、前記セル３１の位置でマウスの左ボタンを押下して、１４：００のセル３０（ポイントＣ）までマウスカーソルをドラッグし、前記セル３０でマウスの左ボタンを離す。
すると、１４:４０から１４:００までのセルのブルー表示が解除されて、通常のホワイト表示に戻る。
【０１２７】
上記の内容を、システムの処理から説明する。
勤務の入力者が、項目Ｂの業務終了時刻１４：４０のセルの位置で、マウスの左ボタンを押下すると、オペレーティングシステムはマウスの左ボタンを押下に対応したマウス左ボタン押下処理を起動する。
マウス左ボタン押下処理は、クリック処理中フラグをチェックして、他のプログラムがマウス処理を行っていないか否かをチェックする（Ｓ５０２）。この場合、他プログラムはマウス処理を行っていないので、以下の処理を実行する。
【０１２８】
他のプロセスがマウスのクリック処理を行わないようにブロックするために、クリック処理中フラグをＯＮにする（Ｓ５０３）。マウスの左ボタンが押下されたときのマウスカーソルの位置（Ｘ１，Ｙ１）から業務項目のインデックスＩ１、時刻Ｔ１を計算する（Ｓ５０４）。この場合、Ｉ１＝１、Ｔ１＝８８、となる。
次に、ブロックセレクト中フラグをチェックする（Ｓ５０６）。この場合、ブロックセレクト中ではないので、ブロックセレクト中フラグをＯＮにする（Ｓ５０７）。
次に、セルＣ（１，８８）のプロパティをチェックするが、セルＣ（１，８８）は“入力済”なので、Ｉ１に１を、業務開始時刻Ｔ１に時刻１４：４０を代入して保存する（Ｓ５０９）。セルＣ（１，８８）は“入力済”なので、本システムは、既入力の時間帯を削除する指示がなされたものと判断して、プロシジャｗｈｉｔｅをコールする（Ｓ５１２）。
【０１２９】
プロシジャｗｈｉｔｅ（図３０）では、以下の処理を行う。クリックされたセルＣ（１，８８）のプロパティを“未入力”にして（Ｓ１２０２）、Ｊ＝０から２の範囲で、セルＣ（Ｊ，８８）のプロパティをチェックして、“入力済”のセルの数をカウントする（Ｓ１２０３）。今の場合、“入力済”のセルの数が１個なので、重複表示エリア２０の該当するセル（ＪＴ）をホワイトで表示して（Ｓ１２０５）、セルＣ（Ｊ，ＪＴ）をホワイトで表示する（Ｓ１２０７）。以上でプログラムの制御は、マウス左ボタン押下処理に戻るが、この処理では以下、クリック処理中フラグをＯＦＦにして（Ｓ５１３）、本割込処理を終了する。
【０１３０】
次に、勤務の入力者は、１４：４０から１４：００までのセルをマウスでドラッグする。
パーソナルコンピュータのオペレーティングシステムは、マウスカーソルがドラッグされると、マウスドラッグに対応したマウスドラッグ中の割込処理をコールする。
本割込処理では、クリック処理中フラグをチェックして、他のプログラムがマウス処理を行っていないかをチェックする（Ｓ６０２）。今回は、他のプログラムがマウス処理を行っていないので、以下の処理を実行する。
【０１３１】
他のプロセスがクリック処理を行わないようにブロックするために、クリック処理中フラグをＯＮにする（Ｓ６０３）。マウスカーソルをドラッグした位置（Ｘ，Ｙ）からマウスカーソルが示す時刻Ｔを計算する（Ｓ６０４）。この場合、Ｔ＝１４：４０である。
次に、ブロックセレクトフラグをチェックする（Ｓ６０６）。この場合、ブロックセレクト中ではないので、以下の処理を実行する。
【０１３２】
時刻Ｔ、Ｔ１、Ｔ２を比較して、それぞれの大小関係から、マウスカーソルのドラッグの方向を分析する。最初のループでは、Ｔ＝Ｔ１＝Ｔ２＝１４：４０となって、Ｔ２へＴを代入し（Ｓ６１７）、クリック処理中フラグをＯＦＦにして（Ｓ６１８）、本割込処理を終了する。
【０１３３】
勤務の入力者が、次のセルへマウスをドラッグすると、２回目の割込みが発生する。この場合、Ｔ１＝Ｔ２＝１４：４０，Ｔ＝１４：３０となるので、Ｔ＜Ｔ１  且つ  Ｔ＜Ｔ２となり、ステップ６１２の処理を実行することになる。本割込処理は、既入力の時間帯を削除する指示がなされたものと判断して、プロシジャｗｈｉｔｅをコールする（Ｓ５１２）。
【０１３４】
プロシジャｗｈｉｔｅ（図３０）では、ドラッグで到達したセルＣ（１，８７）のプロパティを“未入力”にして（Ｓ１２０２）、Ｊ＝０から２の範囲で、セルＣ（Ｊ，８７）のプロパティをチェックして、“入力済”のセルの数をカウントする（Ｓ１２０３）。この場合、“入力済”のセルの数が１個なので、重複表示エリア２０の該当するセル（８７）をホワイトで表示して（Ｓ１２０５）、セルＣ（Ｊ，８７）をホワイトで表示する（Ｓ１２０７）。
【０１３５】
プロシジャｗｈｉｔｅの処理が終了すると、Ｔ２へＴの値を代入し、クリック処理中フラグをＯＦＦとする。以下、時刻１４：００のセルへ到達するまで、マウスがドラッグされ、１つのセルを通過するたびに、順に本割込み処理がコールされ、ホワイトで表示される。これを勤務の入力者から見ると、マウスカーソルの動きに合わせて、勤務入力が１セルずつ順に解除されてゆくように見える。
【０１３６】
勤務の入力者は、時刻１４：００のセルへ到達すると、マウス左ボタンを離し、一旦入力した勤務時間の削除を終了する。パーソナルコンピュータのオペレーティングシステムは、マウスの左ボタンが押下された後、左ボタンが離されたタイミングで、マウスの左ボタンのアップに対応した本プログラムをコールする（Ｓ７０１）。本プログラムは、クリック処理中フラグをチェックして、他のプログラムがマウス処理を行っていないかをチェックする（Ｓ７０２）。
もし、他のプログラムがマウス処理を行っていれば、マウス左ボタンアップ時の割込処理は処理を終了する。他のプログラムがマウス処理を行っていなければ、ブロックセレクト中フラグをＯＦＦにして（Ｓ７０３）、全ての処理を実行した後、クリック処理中フラグをＯＦＦにして（Ｓ７０４）、本割込処理を終了する。
【０１３７】
上記の各割込処理が連続して実行されることにより、勤務の入力者は入力画面上でマウスカーソルをドラッグさせるだけで、勤務時間の入力または勤務入力の取消しを視覚的に入力することができる。
【０１３８】
（４）入力内容を数値表示して、チェックする
本発明は、勤務時間帯を視覚的に表示された画面（以下「グラフ画面」と記す）と、数値表示された画面（以下「数値表示画面」と記す）を備え、グラフ画面と数値表示画面を切り替えて表示できる機能を備えたところに特徴がある。本発明の実施例では、画面を切り替えて、グラフ画面と数値表示画面の両方を参照して、勤務データを多角的にチェックすることができる。
【０１３９】
本実施例では、勤務の入力者が下記内容の勤務を入力したとものとして、数値表示の実施例について、説明する。
項目Ａ（詳細設計）    １１：００〜１２：００
項目Ｂ（基本設計）    １３：００〜１４：００
項目Ｃ（プログラム）  １０：２０〜１１：００
項目Ｃ（プログラム）  １４：００〜１５：２０
【０１４０】
図８に、上記勤務データが表示されたグラフ画面の表示例を示す。グラフ画面において、「勤務時間」のタブをクリックすると、数値表示画面に切り替わる。図９に上記勤務データが表示された数値表示画面の表示例を示す。数値表示画面において「勤務表」タブをクリックすると、「グラフ画面」に切り替わる。つまり、数値表示画面とグラフ画面は「勤務表」又は「勤務時間」のタブをクリックすることで，いつでも相互に表示を切り替えることができる。「勤務時間」のタブがマウスでクリックされると、勤務管理システムは、セルの情報を集約して、勤務情報に加工し、その勤務情報の一部を数値表示画面で表示する。
【０１４１】
セルＣ（Ｉ，ＩＴ）のプロパティは、２次元の配列で、“０”を“未入力”，“１”を“入力済”で表すこととする。本実施例の場合、セルＣ（Ｉ，ＩＴ）のプロパティは、次のようになる。
００００００１１１１１１００００００００００００００００００００００００
００００００００００００００００００１１１１１１００００００００００００
００１１１１００００００００００００００００００１１１１１１１１００００
００００００００００００００００００００００００００００００００００００
００００００００００００００００００００００００００００００００００００
【０１４２】
上記のセルＣ（Ｉ，ＩＴ）のプロパティは、第１行目が業務名“項目Ａ”で業務項目が“詳細設計”、第２行目が業務名“項目Ｂ”で業務項目が“基本設計”、第３行目が業務名“項目Ｃ”で業務項目が“プログラム”に該当する。そして、勤務時間については、マウスでドラッグされて勤務時間が入力されたセルのみ、“１”がセットされている。
【０１４３】
本実施例のプログラムは、このデータを、下記の業務情報に変換する。
１２３４５６  ，  ０１  ，  ００３  ，  １１００  ，  １２００
１２３４５６  ，  ０２  ，  ００２  ，  １３００  ，  １４００
１２３４５６  ，  ０３  ，  ００５  ，  １０２０  ，  １１００
１２３４５６  ，  ０３  ，  ００５  ，  １４００  ，  １５２０
【０１４４】
また、数値表示画面で表示するときは、上記業務情報を、業務時間帯の昇順に並べ替えて表示する。
１２３４５６  ，  ０３  ，  ００５  ，  １０２０  ，  １１００
１２３４５６  ，  ０１  ，  ００３  ，  １１００  ，  １２００
１２３４５６  ，  ０２  ，  ００２  ，  １３００  ，  １４００
１２３４５６  ，  ０３  ，  ００５  ，  １４００  ，  １５２０
【０１４５】
以下、数値表示の処理について具体的に説明する。
図３１は、画面上の勤務表へ入力されたデータを勤務情報へ変換するフローチャートである。
勤務の入力者が、グラフ画面（図８）で「勤務時間」のタブをクリックすると、本プログラムが起動される。本プログラムでは、全ての業務項目２２を、１日の全ての時間帯について、２重ループでスキャンして、勤務情報を作成する。
【０１４６】
本プログラムがコールされると、業務名のインデックスＩを初期化する（Ｓ１３０２）。本実施例では、ループ変数Ｉの初期化条件はＩ＝０，終了条件はＩ＝２である。次に、勤務情報の引数Ｊを初期化する。このＪは、前記Ｃ（Ｉ，ＩＴ）のプロパティをループで検索したときに、勤務入力を検索した順番に０から順にふられるシーケンシャルな引数である。
【０１４７】
次に、時刻についてスキャンする。本実施例では、ループ変数Ｔの初期化条件はＴ＝１０：００、終了条件はＴ＝１６：００である。として、時刻の変数Ｔを００：００に初期化し（Ｓ１３０３）、業務継続フラグをＯＦＦに初期化する（Ｓ１３０４）。
時間のインデックスＩＴを次式により計算する（Ｓ１３０５）。
【数７】
2008065527.tif 000009
このＩＴをセルの情報Ｃ（I，ＩＴ）の引数として使用する。
【０１４８】
本プログラムでは、セルＣ（Ｉ，ＩＴ）のプロパティと業務継続フラグをチェックして、そのＯＮ／ＯＦＦの状態に応じて業務情報を作成する。
セルＣ（Ｉ，ＩＴ）が入力済で、業務継続フラグがＯＦＦならば、時刻Ｔにおいて、業務項目Ｉの業務が開始されたものと判断し、このときのＴを業務項目Ｉの業務開始時刻とする。勤務情報のＪ番目のレコードに、氏名コード、業務コード、業務項目コード、書き込む（Ｓ１３０８）。勤務情報のＪ番目のレコードに業務開始時刻を書き込み（Ｓ１３０９）、業務継続フラグをＯＮにする（Ｓ１３１０）。
セルＣ（Ｉ，ＩＴ）が“入力済”で、業務継続フラグがＯＮならば、業務は継続されているものと判断して、フラグなどの状態を変更しない。
セルＣ（Ｉ，ＩＴ）が“未入力”で、業務継続フラグがＯＮならば、時刻Ｔに達したとき、１つ前のステップで業務が終了していると判断し、Ｔ−ｄＴを業務項目Ｉの業務終了時刻とする（Ｓ１３１２）。業務情報のＪ番目のレコードに、業務終了時刻を保存する（Ｓ１３１２）。
業務は既に終了しているので、業務継続フラグをＯＦＦにする（Ｓ１３１３）。
【０１４９】
Ｓ１３０３からＳ１３１４までの処理が完了すると、次の時間帯をチェックするために、時間の変数Ｔに単位時間ｄＴを加える（Ｓ１３１５）。
次に、全時間帯についてチェックが終了したかを判断し（Ｓ１３１６）、チェックが終了していなければ、ステップ１３０５から処理を繰り返す。全時間帯についてチェックが終了していれば、業務項目のインデックスＩに１を加え（Ｓ１３１７）、全業務項目についてチェックが終了したかを判断する（Ｓ１３１８）。もし、チェックが終了していなければ、ステップ１３０３に戻り、画面上の勤務表へ入力されたデータのスキャンを繰り返す。チェックが終了していれば、勤務情報へ変換する処理を終了する。
【実施例３】
【０１５０】
勤務管理システムは、企業の規模、従業員の人数に応じてシステムの規模と構成が変更できるようになっていることが好ましい。
本発明による勤務管理システムは、ネットワーク１３で構成しても良いし、コンピュータ単体で構成することもできる。
【０１５１】
ネットワーク１３で勤務管理システムを構成するときは、サーバ群へ勤務管理システムのデータとアプリケーションを配置し、ネットワーク１３を介してパーソナルコンピュータを接続する。サーバの構成要素は、認証サーバ１１、アプリケーションサーバ１５、データベースサーバ１２の３つであるが、サーバ１台に全てのサーバ機能をインストールしても良いし、サーバを３台用意して、それぞれのサーバ機能をインストールしてもよい。あるいは、データベースサーバ１２を複数台用意して、数万人規模の勤務を管理するシステムとして稼動させることもできる。
【０１５２】
また、コンピュータ単体で勤務管理システムを構成するときは、パーソナルコンピュータ１台に、全ての機能をインストールして使用してもよい。
また、データベースソフトを使用せずに、勤務データをファイルで管理してもよい。
【０１５３】
勤務管理システムを起動する方法は、パーソナルコンピュータのデスクトップなどに、勤務管理システムのアイコンをインストールする方法が一般的である。また、Ｗｉｎｄｏｗｓ（登録商標）のプログラムの一覧から勤務管理システムを起動するようにしてもよい。また、社内システムの一部として勤務管理システムを組み込み、メニューから起動するようにしてもよい。
【０１５４】
ユーザ認証の方法は、ユーザＩＤとパスワードによる方法の他に、電子証明書を使用しても良い。また、記憶媒体としてＩＣカードやＲＦＩＤを使用してもよい。また、指紋や静脈、瞳、拳などバイオメトリクス認証を使用しても良い。
【０１５５】
選択された勤務時間の範囲を表示する方法としては、表示画面の一部に時間軸を持つ表示エリアを設けて、選択範囲を着色して表示してもよい。また、表示画面の一部に時間軸を持つ表示エリアを設け、選択された時間の範囲を数値で表示しても良い。あるいは切り替えボタンを用意して、数値表示と着色表示を切り替えても良い。
【０１５６】
勤務を入力する機器としては、ライトペンやジョイスティック等のマウス以外のポインティングデバイスを使用することができる。
【０１５７】
プログラミングとしては、マウスの割込み処理を使用しないで、勤務入力を受け付けるようにしてもよい。この場合、マウスからの割込みをマスクし、マウスの左ボタン押下、ドラッグ、アップを一連の処理として受け付ける。このようにすると、他の割込みをブロックするためのフラグ処理も不要になるので、簡単なプログラムになる。
【図面の簡単な説明】
【０１５８】
【図１】本発明の勤務管理システムの構成図である。
【図２】業務時間を入力するときの入力画面を示す図である。
【図３】入力済みの業務実績を変更するときの入力画面を示す図である。
【図４】入力画面上のマウス位置の座標を示す図である。
【図５】勤務管理システムのログイン画面についての一実施形態を示す図である。
【図６】項目ごとの勤務実績についての一実施形態を示す図である。
【図７】複数の項目に複数の時間帯を入力する入力画面についての一実施形態を示す図である。
【図８】重複した勤務実績の修正後の一実施形態を示す図である。
【図９】項目ごとの勤務時間数を数値に変換した表についての一実施形態を示す図である。
【図１０】勤務管理システムのテーブル一覧を示す図である。
【図１１】従業員情報のフォーマットを示す図である。
【図１２】組織情報のフォーマットを示す図である。
【図１３】業務情報のフォーマットを示す図である。
【図１４】業務項目情報のフォーマットを示す図である。
【図１５】勤務情報のフォーマットを示す図である。
【図１６】業務時間入力処理に関する割込処理プロセスを示す図である。
【図１７】業務時間入力の取消に関する割込処理プロセスを示す図である。
【図１８】勤務管理システムの概要を示すフローチャートである。
【図１９】システムへのログインを示す図である。
【図２０】勤務情報を検索するフローチャートである。
【図２１】勤務情報を入力用のセルへセットするフローチャートである。
【図２２】勤務表をセットするフローチャートである。
【図２３】マウス左ボタン押下時割込処理を示すフローチャートである。
【図２４】マウスドラッグ中の割込処理を示すフローチャートである。
【図２５】マウス左ボタンアップ時割込処理を示すフローチャートである。
【図２６】未入力のデータを検索するフローチャートである。
【図２７】重複して入力されたデータを検索するフローチャートである。
【図２８】入力されたデータをデータベース用のデータへ加工するフローチャートである。
【図２９】プロシジャｂｌｕｅの処理を示すフローチャートである。
【図３０】プロシジャｗｈｉｔｅの処理を示すフローチャートである。
【図３１】勤務実績を数値変換する処理のフローチャートである。
【符号の説明】
【０１５９】
１０  勤務管理サーバ
１１  認証サーバ
１２  データベースサーバ
１３  ネットワーク
１４  入力用コンピュータ
１５  アプリケーションサーバ
２０  重複表示エリア
２１  未入力表示エリア
２２  業務項目
２３  時刻
２４  入力エリア
２５  ポイントＡ
２６  ポイントＢ
３０  ポイントＣ
３１  ポイントＤ
【図１】
2008065527.tif 000010
【図２】
2008065527.tif 000011
【図４】
2008065527.tif 000012
【図５】
2008065527.tif 000013
【図６】
2008065527.tif 000014
【図７】
2008065527.tif 000015
【図８】
2008065527.tif 000016
【図９】
2008065527.tif 000017
【図１０】
2008065527.tif 000018
【図１１】
2008065527.tif 000019
【図１２】
2008065527.tif 000020
【図１３】
2008065527.tif 000021
【図１４】
2008065527.tif 000022
【図１５】
2008065527.tif 000023
【図１６】
2008065527.tif 000024
【図１７】
2008065527.tif 000025
【図１８】
2008065527.tif 000026
【図１９】
2008065527.tif 000027
【図２０】
2008065527.tif 000028
【図２１】
2008065527.tif 000029
【図２２】
2008065527.tif 000030
【図２３】
2008065527.tif 000031
【図２４】
2008065527.tif 000032
【図２５】
2008065527.tif 000033
【図２６】
2008065527.tif 000034
【図２７】
2008065527.tif 000035
【図２８】
2008065527.tif 000036
【図２９】
2008065527.tif 000037
【図３０】
2008065527.tif 000038
【図３１】
2008065527.tif 000039
【図３】
2008065527.tif 000040