給与変更を監査する(IBX 一般チュートリアル)

提供: RAD Studio
移動先: 案内検索

チュートリアル:InterBase Express を使用してデータベースにアクセスする への移動


データ モジュールを追加する」のセクションで作成した TDataModule を使って従業員の給与変更を監視するダイアログを追加します。

コンポーネントを追加すると、フォームは以下のようになります。

SalaryChangeAuditing.png


フォームの作成

プロジェクトに別の VCL フォームを追加します。[プロジェクト マネージャ]で、プロジェクト名を右クリックし、コンテキスト メニューからメニュー項目[新規追加|VCL フォーム]を選択します。

新しいフォームのプロパティを以下のように設定します。

フォームを保存します。

  • Delphi の場合は、ファイルを Frmtrigg.pas という名前で保存します。

このフォームで TDataModule を利用するには、以下のようにします。

  • Delphi の場合は、Frmtrigg.pasimplementation セクションの冒頭に以下の行を追加します。
 uses DmCSDemo;

ビジュアル コンポーネントの追加

"DmCSDemo" TDataModule でデータベース コンポーネントを使用するので、ここではデータベース コンポーネントを追加する必要はありません。

  • [TPanel]コンポーネントを 3 つ追加し、次の図のように配置します。これらの TPanel は、ビジュアル コンポーネントを配置するためのフレームワークとなります。それらのサイズを変更して、フォーム全体を埋めます。

SalaryFrmPanels.png

  • データベース レコードのナビゲーション用に、TDBNavigator インスタンスを "Panel1" に追加します。[DataSource]を、ドロップダウン メニューを使って[DmEmployee.EmployeeSource]に設定します。このデータ ソースは TDataModule から提供されることに注意してください。[VisibleButtons]プロパティで、[nbInsert]と[nbDelete]以外のすべてのチェック ボックスをオンにします。TDBNavigator のツール ボタンのヒントが表示されるように、[ShowHint]プロパティを[True]に設定します。
  • "Panel1"の左端に TBitBtn インスタンスを配置します。以下のプロパティを設定します。
    • [Caption]を「E&xit」に設定して、ALT+xX を押すのがこのボタンのクリックと同じになるようにします。
    • [Kind]を、ドロップダウン メニューを使って[bkClose]に設定します。この設定により、この TBitBtn ボタンをクリックしたとき、ダイアログを閉じるコマンドが実行されるようになります。
  • "Panel2" に TDBGrid インスタンスを配置します。そのサイズを変更して、TPanel いっぱいまで拡大します。[DataSource]を、ドロップダウン メニューを使って[DmEmployee.EmployeeSource]に設定します。
  • "Panel3" に別の TDBGrid インスタンスを配置します。そのサイズを変更して、TPanel いっぱいまで拡大します。[DataSource]を、ドロップダウン メニューを使って[DmEmployee.SalaryHistorySource]に設定します。

イベント ハンドラの追加

フォームのイベント ハンドラを追加します。フォームを選択し、[オブジェクト インスペクタ][イベント]タブで、[OnShow]イベントをダブルクリックします。このイベントのイベント ハンドラには以下のコードを使用します。

 procedure TFrmTriggerDemo.FormShow(Sender: TObject);
 begin
   DmEmployee.EmployeeTable.Open;
   DmEmployee.SalaryHistoryTable.Open;
 end;

テーブル表示フォームの表示

メイン フォームを作成する」のセクションで作成したメイン フォームを一部変更します。このフォームに、たった今作成したフォームを表示するためのボタンを追加します。

Delphi の場合

Frmmain.pasimplementation セクションの冒頭にある uses 句に以下の行を追加して、追加したばかりの FrmTrigg ユニットがメイン フォームで認識されるようにします。

 uses
    FrmTrigg,   { The Trigger Demo }
    FrmViews;   { The View Demo }

メイン フォームを作成する」のセクションで追加した TButton と同様に、Frmmain フォームに別の TButton を追加します。TButton.Caption を「Salary Change &Trigger Demo」に設定します。TButton.Name を「BtnTrigg」に設定します。その次に、Frmmain.pas[デザイン]タブで新しい TButton をダブルクリックして、そのボタンのイベント ハンドラを追加します。そのイベント ハンドラには以下のコードを使用します。

 procedure TFrmLauncher.BtnTriggClick(Sender: TObject);
 begin
   FrmTriggerDemo.ShowModal;
 end;

アプリケーションの実行

アプリケーションをビルドして実行します。以下のようなメイン フォームが表示されます。

MainFrmAudit Salary.png


新しい TButton "Salary Change Trigger Demo" をクリックすると、以下の新しいフォームが表示されます。

Salary Change Auditing Frm.png


上部の TDBGrid には EMPLOYEE テーブル内のデータが表示されますが、その中から従業員を 1 人選択します。この従業員の給与を変更した後、TDBNavigator後編集ボタン(チェック マーク ボタン)をクリックしてデータベースを更新します。そうすると、SALARY_HISTORY テーブルが表示される下部の TDBGrid は更新されて、この変更が反映されます。

SalaryChangeAuditingPost.png


このテーブルが更新されるのは、"DmCSDemo" TDataModuleTDmEmployee.EmployeeTableAfterPost というイベント ハンドラがあるためです。このイベントは、"DmCSDemo" TDataModule 内の "EmployeeTable" TIBDataSet に対してポストが行われた後で発生します。TDmEmployee.EmployeeTableAfterPost は、"SalaryHistoryTable" TIBDataSet がアクティブになっている場合、それを更新するので、結果的に表示が更新されます。

前のチュートリアル

データ モジュールを追加する

次のチュートリアル

従業員のプロジェクト割り当てをストアド プロシージャで取得する