📄 a0107f002unit.pas
字号:
//////////////////////////////////////////////////////////////////模板名称:F002Frm in Foo2Unit ////模板功能;数据的添加与修改 ////输入参数:tag 0为修改,1为添加 ////输出参数:无 ////编写人:陈宇 ////编写时间:2001年9月21日 ////最后修改:2001年9月24日 //////////////////////////////////////////////////////////////////unit A0107F002Unit;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ImgList, ComCtrls, ToolWin, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, Db, DBTables, ADODB, Buttons, Mask,Variants;type TA0107F002Frm = class(TForm) Tc01Dt: TDataSource; TC02ATbl: TADOTable; ToolBar1: TToolBar; PrintTBBtn: TToolButton; PreviewTBBtn: TToolButton; SaveTBBtn: TToolButton; AbortTBBtn: TToolButton; HelpTBBtn: TToolButton; ExitTBBtn: TToolButton; ImageList1: TImageList; ImageList2: TImageList; Panel1: TPanel; Label1: TLabel; Label2: TLabel; TC02D01DbEdt: TDBEdit; TC02D02DbEdt: TDBEdit; Label3: TLabel; TC02D03DbEdt: TDBEdit; Label4: TLabel; TC02D04DbEdt: TDBEdit; Label5: TLabel; Label6: TLabel; TC02D06DbEdt: TDBEdit; Label7: TLabel; TC02D05DbEdt: TDBEdit; Label8: TLabel; DBEdit1: TDBEdit; procedure ExitTBBtnClick(Sender: TObject); procedure SaveTBBtnClick(Sender: TObject); procedure AbortTBBtnClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure TC02D01DbEdtChange(Sender: TObject); procedure DTPickKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure TC02ATblPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction); procedure TC02D02DbEdtChange(Sender: TObject); procedure TC02D03DbEdtChange(Sender: TObject); procedure TC02D01DbEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure TC02D02DbEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure TC02D03DbEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure TC02D04DbEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure TC02D05DbEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure TC02ATblAfterInsert(DataSet: TDataSet); procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure DBEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } strEditArray:array [0..2] of string; strTC02D01:string;//预先付的值 striniHelpName:string; end;var A0107F002Frm: TA0107F002Frm; intErrCounts:Integer; //errno用来记录数据填加时的错误项数 //初始化为当前必填的项目数,每正确填加一项将减一implementationuses DataLinkUnit,GlobalLibUnit;{$R *.DFM}procedure TA0107F002Frm.ExitTBBtnClick(Sender: TObject);begin Close;end;procedure TA0107F002Frm.SaveTBBtnClick(Sender: TObject);begin if intErrCounts<>0 then begin Application.MessageBox('数据填写的有错误,红色的为有错误的项目,请检查填写内容!', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); TC02D01DbEdt.SetFocus; Exit; end; try TC02ATbl.Post; strTC02D01:=''; except Application.MessageBox('数据提交错误,请检查填写内容,重新提交!', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); DMMain.adoConnMain.RollbackTrans; //回滚一个事务 DMMain.adoConnMain.BeginTrans; //开始一个事务 TC02D01DbEdt.SetFocus; Exit; end; DMMain.adoConnMain.CommitTrans; //提交一个事务 DMMain.adoConnMain.BeginTrans; //开始一个事务 try if tag=0 then //修改 TC02ATbl.Edit else //添加 TC02ATbl.Append; except Application.MessageBox('添加记录时产生错误!请与数据库管理员联系', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); TC02D01DbEdt.SetFocus; end; TC02D01DbEdt.SetFocus;end;procedure TA0107F002Frm.AbortTBBtnClick(Sender: TObject);begin DMMain.adoConnMain.RollbackTrans; //回滚一个事务 //更新表,注意顺序 try TC02ATbl.Active :=False; TC02ATbl.Active :=True; finally DMMain.adoConnMain.BeginTrans; //开始一个事务 end; try if tag=0 then //修改 begin TC02ATbl.Locate('客户名称',self.strEditArray[0],[loCaseInsensitive]); TC02ATbl.Edit; end else //添加 begin TC02ATbl.Append; end; except Application.MessageBox('操作数据库时产生错误!请与数据库管理员联系', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); end;end;procedure TA0107F002Frm.FormShow(Sender: TObject);begin intErrCounts:=3; //初始化为三个错误,因为三项必填 try TC02ATbl.Active :=True; finally DMMain.adoConnMain.BeginTrans; //开始一个事务 end; if tag=0 then //修改 begin Self.Caption :='修改'; TC02ATbl.Locate('客户名称;开户行;帐号', VarArrayOf([strEditArray[0],strEditArray[1],strEditArray[2]]),[]); TC02ATbl.Edit; intErrCounts:=0; end else //添加 begin Self.Caption :='添加'; TC02ATbl.Append; DBEdit1.SetFocus; DBEdit1.Text:=gstrOperaterCode; end; InitEdtCtlIme(self.Panel1,imChinese,gstrInputMethod); TC02D01DbEdt.SetFocus;end;procedure TA0107F002Frm.TC02D01DbEdtChange(Sender: TObject);var bNewState:Boolean;begin//此处简单校验此编辑控件的内容 if TC02D01DbEdt.text<>'' then //如果合格 begin bNewState:=True; if TC02D01DbEdt.Color<>clWindow then begin intErrCounts:=intErrCounts-1; TC02D01DbEdt.Color :=clWindow; end; end else //如果不合格 begin bNewState:=false; if TC02D01DbEdt.Color<>$008080FF then begin intErrCounts:=intErrCounts+1; TC02D01DbEdt.Color :=$008080FF; end; end; AbortTBBtn.Enabled :=bNewState;end;procedure TA0107F002Frm.DTPickKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);begin if (Key=13) then begin TC02D01DbEdt.SetFocus; end;end;procedure TA0107F002Frm.FormClose(Sender: TObject; var Action: TCloseAction);var result:Word;begin DMMain.adoConnMain.RollbackTrans; //回滚一个事务 Action:=caFree; Exit; if (intErrCounts=0) and (tag=1) then //如果有数据未保存而且处于添加状态 begin result:=Application.MessageBox('当前记录未保存,要保存吗?', '提示',MB_YesNoCancel+MB_DefButton1+MB_IconQuestion+MB_ApplModal); if result=IdYes then begin SaveTBBtnClick(Sender); //保存 end; if result=IdCancel then begin Action:=caNone; exit; //取消退出动作 end; if result=IdNo then begin DMMain.adoConnMain.RollbackTrans; //回滚一个事务 end; end else //如果没有数据需要保存 begin result:=Application.MessageBox('真的要退出吗?', '提示',MB_YesNo+MB_DefButton1+MB_IconQuestion+MB_ApplModal); if result=IdNo then begin Action:=caNone; //取消退出动作 Exit; end; DMMain.adoConnMain.RollbackTrans; //回滚一个事务 end; //注意关闭的顺序 TC02ATbl.Active :=False; Action:=caFree;end;procedure TA0107F002Frm.TC02ATblPostError(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction);begin Application.MessageBox('客户名称不能重复或为空,请检查填写内容!', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); Action:=daAbort;end;procedure TA0107F002Frm.TC02D02DbEdtChange(Sender: TObject);var bNewState:boolean;begin//此处简单校验此编辑控件的内容 if TC02D02DbEdt.text<>'' then //如果合格 begin bNewState:=True; if TC02D02DbEdt.Color<>clWindow then begin intErrCounts:=intErrCounts-1; TC02D02DbEdt.Color :=clWindow; end; end else //如果不合格 begin bNewState:=false; if TC02D02DbEdt.Color<>$008080FF then begin intErrCounts:=intErrCounts+1; TC02D02DbEdt.Color :=$008080FF; end; end; AbortTBBtn.Enabled :=bNewState;end;procedure TA0107F002Frm.TC02D03DbEdtChange(Sender: TObject);var bNewState:boolean;begin//此处简单校验此编辑控件的内容 if TC02D03DbEdt.text<>'' then //如果合格 begin bNewState:=True; if TC02D03DbEdt.Color<>clWindow then begin intErrCounts:=intErrCounts-1; TC02D03DbEdt.Color :=clWindow; end; end else //如果不合格 begin bNewState:=false; if TC02D03DbEdt.Color<>$008080FF then begin intErrCounts:=intErrCounts+1; TC02D03DbEdt.Color :=$008080FF; end; end; AbortTBBtn.Enabled :=bNewState;end;procedure TA0107F002Frm.TC02D01DbEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if (Key=13) then TC02D02DbEdt.SetFocus;end;procedure TA0107F002Frm.TC02D02DbEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if (Key=13) then TC02D03DbEdt.SetFocus;end;procedure TA0107F002Frm.TC02D03DbEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if (Key=13) then TC02D04DbEdt.SetFocus;end;procedure TA0107F002Frm.TC02D04DbEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if (Key=13) then TC02D05DbEdt.SetFocus;end;procedure TA0107F002Frm.TC02D05DbEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if (Key=13) then TC02D06DbEdt.SetFocus;end;procedure TA0107F002Frm.TC02ATblAfterInsert(DataSet: TDataSet);begin TC02ATbl.Fields[0].AsString:=strTC02D01; strTC02D01:='';end;procedure TA0107F002Frm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin case key of 114: // F3 SaveTBBtnClick(Sender); end;end;procedure TA0107F002Frm.DBEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if (Key=13) then SaveTBBtnClick(Sender); //保存end;end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -