科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Delphi7.0实现添加记录的“携带”实现

Delphi7.0实现添加记录的“携带”实现

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

数据录入是数据处理的基本功能,录入操作方便与否是衡量应用程序交互性指标之一 。

作者:Kapok.Chan 来源:yesky 2007年11月1日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
四、由用户对当前新增的“克隆”记录进行修改,确定时“保存”,否则“取消”。

  以下创建一演示实例,并给出具体步骤:

  1、新建一工程项目,取名为Project1,表单取名为Form1;在该表单中先后加入如下图中对象,并设置各相应属性,调整好各控件对象位置:
 

  其中,对应的Salary(工资表)的结构定义如下:



  说明:结构中虽然有“备注”字段,但类型并非“备注型”,而设置为“字符型”,因此该字段可参与
“携带”。

  2、在单元Unit1的type部分作相应的说明及变量的定义:

type
TForm1 = class(TForm)

procedure FormCreate(Sender: TObject);
procedure Table1BeforeInsert(DataSet: TDataSet);
procedure Table1AfterInsert(DataSet: TDataSet);
procedure Table1PostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);

//以下为自定义过程与函数的说明
function MyRecordScatTo(DataSet0:TDataSet;var MyDynamic_Record0:Variant):boolean;
function MyRecordGatherFrom(DataSet0:TDataSet;var MyDynamic_Record0:Variant):boolean;
procedure My_TablePostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction;sFieldName:string);

private
{ Private declarations }
MyDynamic_Record:Variant; //定义动态数组
public
{ Public declarations }
end;

3、在表单的OnCreate事件中,加入Table1表的初始设置:
procedure TForm1.FormCreate(Sender: TObject);
var s:string;
begin
s:=ExtractFilePath(Application.ExeName);
Table1.DatabaseName:=s; //设置Table1的源数据路径
Table1.Open;
end; //初始设置

分别在表Table1的BeforeInsert,AfterInsert,OnPostError事件中加入如下代码:
procedure TForm1.Table1BeforeInsert(DataSet: TDataSet);
begin
if CheckBox1.Checked //使用"携带"功能时,调用"获取"
then
if not MyRecordScatTo(Table1,MyDynamic_Record) //出错时,取消"携带"
then CheckBox1.Checked:=false;
procedure TForm1.Table1AfterInsert(DataSet: TDataSet);
begin
if CheckBox1.Checked //使用"携带"功能时,调用"赋值"
then MyRecordGatherFrom(Table1,MyDynamic_Record);
end; //添加记录后的数据处理

procedure TForm1.Table1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
//调用通用表数据处理模块:主关键字'编号'
My_TablePostError(DataSet,E,Action,'编号');
end;

分别在Button1、Button2的OnClick事件中加入如下代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Insert;
if DBGrid1.CanFocus
then DBGrid1.SetFocus
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Table1.Refresh;
Table1.Close;
Close;
end; //关闭表单

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章