教程:使用 InterBase Express 访问数据库(三)
审计工资变更(IBX 通用教程)
在“添加数据模块”中创建的 TDataModule 的基础上,添加一个对话框来监控员工工资变更。
组件添加后,表单如下所示:
1. 创建表单
向项目中添加另一个 VCL 表单。在项目管理器中,右键单击项目名称并点击上下文菜单中的“添加新建 > VCL 表单”。
调整新表单的属性:
- 将 Caption 设置为“工资变更审计”。
- 将 Name 设置为“FrmTriggerDemo”。
- 将表单的 Height 改为 340,Width 组件改为 390。
- 将 OldCreateOrder 设置为 true。
保存表单:
- 对于 Delphi,将文件保存为 Frmtrigg.pas。
在此表单中使用 TDataModule:
- 对于 Delphi,在 Frmtrigg.pas 的实现部分开头添加以下行:uses DmCSDemo;
2. 添加可视组件
您不需要添加任何数据库组件,因为您将使用“DmCSDemo” TDataModule 中的数据库组件。
- 添加三个 TPanel 组件,按图所示定位它们。这些 TPanel 提供了一个框架,用于定位可视组件。调整它们以填满表单。
- 在“Panel1”上添加一个 TDBNavigator 以导航数据库记录。从下拉菜单中将 DataSource 设置为“DmEmployee.EmployeeSource”。请注意,此数据源由 TDataModule 提供。在 VisibleButtons 属性下,取消选中这些按钮:nbInsert 和 nbDelete。将 ShowHint 设置为 true,以便显示 TDBNavigator 工具按钮的提示。
- 在“Panel1”的右侧放置一个 TBitBtn。设置以下属性:
- 将 Caption 设置为“E&xit”,这样按 ALT+x 就相当于点击按钮。
- 从下拉菜单中将 Kind 设置为“bkClose”。此设置使按钮在点击 TBitBtn 时执行关闭对话框的命令。
- 在“Panel2”上放置一个 TDBGrid。调整大小以填满 TPanel。从下拉菜单中将 DataSource 设置为“DmEmployee.EmployeeSource”。
- 在“Panel3”上放置另一个 TDBGrid。调整大小以填满 TPanel。从下拉菜单中将 DataSource 设置为“DmEmployee.SalaryHistorySource”。
3. 添加事件处理程序
为表单添加一个事件处理程序。当表单被选中时,在对象检查器的事件选项卡中,双击 OnShow 事件。使用以下代码作为事件处理程序:
procedure TFrmTriggerDemo.FormShow(Sender: TObject);
begin
DmEmployee.EmployeeTable.Open;
DmEmployee.SalaryHistoryTable.Open;
end;
4. 显示表单
修改在“创建主表单”中创建的主表单。在该表单上添加一个按钮以显示您刚刚创建的表单。
在 Frmmain.pas 的实现部分开头的 uses 子句中添加额外的一行,以便主表单知道您刚刚添加的 FrmTrigg 单元:
uses
FrmTrigg, { 触发器示例 }
FrmViews; { 查看示例 }
在 Frmmain 表单上添加另一个 TButton,类似于在“创建主表单”中添加的 TButton。将 TButton.Caption 设置为“工资变更&触发器示例”。将 TButton.Name 设置为“BtnTrigg”。然后通过在 Frmmain.pas 的设计选项卡中双击该 TButton 添加新按钮的事件处理程序。使用以下代码作为事件处理程序:
procedure TFrmLauncher.BtnTriggClick(Sender: TObject);
begin
FrmTriggerDemo.ShowModal;
end;
5. 运行应用程序
构建并运行应用程序。主表单显示:
点击新的“工资变更触发器示例” TButton 以显示新表单:
在顶部的 TDBGrid 中选择一个员工,它显示来自 EMPLOYEE 表的数据。更改员工的工资,然后点击 TDBNavigator 中的提交编辑按钮(勾选标记)以更新数据库。完成此操作后,显示 SALARY_HISTORY 表的底部 TDBGrid 应该刷新以显示此更改。
此表刷新是因为在“DmCSDemo” TDataModule 中有一个事件处理程序:TDmEmployee.EmployeeTableAfterPost。此事件在“DmCSDemo” TDataModule 中的“EmployeeTable” TIBDataSet 提交后发生。TDmEmployee.EmployeeTableAfterPost 在“SalaryHistoryTable” TIBDataSet 处于活动状态时刷新它,导致您观察到的刷新。
原文地址:https://blog.csdn.net/caridle/article/details/143493248
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!