1

私は VB を初めて使用し、従業員の出勤と退勤の詳細を記録するプロジェクトに取り組んでいます。「クロックイン」ボタンをクリックすると時間が記録を開始し、「クロックアウト」ボタンを押すと時間が記録を停止するようにする方法を知りたいです。また、退勤をクリックすると、退勤と退勤の間の時間が記録され、mySQL データベースに保存されます。

この情報は、従業員が出勤した日時を示す DataGrid に出力されます。

次に、時間数に、事前に作成された時給を掛けます..これは、mySQL データベースのテーブルの 1 つに既に格納されています。

どんな助けでも大歓迎です。

4

2 に答える 2

0

結果の代わりにイベントを保存する必要があります。

出勤時刻と出勤時刻の行を保存します。次に、データベースまたはアプリケーションのいずれかで、行を反復処理し、クロックインとクロックアウトを一致させるプロシージャが必要になります。

このアプローチにより、データを失うことなく、アプリケーションをクラッシュ/終了して再起動できます。

または、クロックインとクロックアウトを同じレコード(異なる列)に配置し、従業員とヌルのクロックアウトに一致する最初の行にクロックアウトを挿入することもできます。

于 2012-12-27T20:55:43.793 に答える
0

その時点であなたが持っていると仮定している従業員 ID のレコードを作成するプログラムで、クロックイン ボタンにイベントを発生させます。

次に、退勤ボタンをクリックすると、データベースに送信されるイベントが発生し、探している従業員 ID、有効な勤務時間、退勤時間の null で見つかった最初のレコードが取り込まれます。 . プログラムがそのすべての基準に一致するものを見つけられなかった場合は、必要に応じて処理する必要があります(従業員がログインしたときにルックアップを行い、記録がない場合にのみ出勤ボタンへのアクセスを許可します) ID のレコードが見つかった場合にのみ、退勤ボタンの使用を許可します)。

そのレコードをメモリに保存したら、クロック アウト時間を設定し、以前にデータベースに書き込まれたクロック イン タイムを使用して差を計算する必要があります。

データベース内のストアド プロシージャを使用して、レコードの追加/更新/管理を処理し、プログラム自体の内部で出勤/退勤時にすべての計算を実行します。しかし、実際の処理が行われる場所に関する限り、それはすべて単なる好みだと思います。

これの最も明白な理由は、何も失うことなく出勤と退勤の間にプログラムをシャットダウンできることです。すべてをメモリ内で追跡しようとすると、何らかの理由でプログラムがシャットダウンされると、すべてのクロックインが失われます (手動で閉じた/タスクマネージャーを介して「タスクを終了」した/未処理のエラー)。

于 2012-12-27T22:00:00.090 に答える