📄 a04040f002unit.pas
字号:
if Length(Trim(MouthEdt.Text))=1 then MouthEdt.Text:= '0'+Trim(MouthEdt.Text); strMouth:=MouthEdt.Text; if Length(Trim(DayEdt.Text))=1 then DayEdt.Text:= '0'+Trim(DayEdt.Text); strDay:=DayEdt.Text; strYear:=YearEdt.Text;end;procedure TA04040F002Frm.YearEditExit(Sender: TObject);begin if Length(Trim(YearEdt.Text))<4 then begin Application.MessageBox('请按2001格式输入!','错误',mb_OK+mb_IconStop); YearEdt.SetFocus ; Exit; end; if Trim(MouthEdt.Text) ='' then begin MouthEdt.SetFocus ; strYear:=YearEdt.Text; Exit; end; if Trim(DayEdt.Text) ='' then begin DayEdt.SetFocus ; strYear:=YearEdt.Text; Exit; end; try EncodeDate(StrToInt(YearEdt.Text),StrToInt(MouthEdt.Text), StrToInt(DayEdt.Text)); except begin Application.MessageBox('日期范围错误!','错误',mb_OK+mb_IconStop); DayEdt.SetFocus ; Exit; end; end; strYear:=YearEdt.Text;end;procedure TA04040F002Frm.MouthEditExit(Sender: TObject);Var intMonth:integer;begin if Length(Trim(MouthEdt.Text))=1 then MouthEdt.Text:= '0'+Trim(MouthEdt.Text); intMonth:=strToInt(Trim(MouthEdt.Text)); if (intMonth>12) or (intMonth<1 ) then begin Application.MessageBox('月份范围错误!','错误',mb_OK+mb_IconStop); MouthEdt.Text :=''; MouthEdt.SetFocus ; Exit; end; if Trim(YearEdt.Text) ='' then begin YearEdt.SetFocus ; strMouth:=MouthEdt.Text; Exit; end; if Trim(MouthEdt.Text) ='' then begin MouthEdt.SetFocus ; strMouth:=MouthEdt.Text; Exit; end; if Trim(DayEdt.Text) ='' then begin DayEdt.SetFocus ; strMouth:=MouthEdt.Text; Exit; end; try EncodeDate(StrToInt(YearEdt.Text),StrToInt(MouthEdt.Text), StrToInt(DayEdt.Text)); except begin Application.MessageBox('日期范围错误!','错误',mb_OK+mb_IconStop); DayEdt.SetFocus ; Exit; end; end; strMouth:=MouthEdt.Text;end;procedure TA04040F002Frm.DayEditExit(Sender: TObject);begin if Trim(YearEdt.Text) ='' then begin YearEdt.SetFocus ; strDay:=DayEdt.Text; Exit; end; if Trim(MouthEdt.Text) ='' then begin MouthEdt.SetFocus ; strDay:=DayEdt.Text; Exit; end; if Trim(DayEdt.Text) ='' then begin DayEdt.SetFocus ; strDay:=DayEdt.Text; Exit; end; if Length(Trim(DayEdt.Text))=1 then DayEdt.Text:= '0'+Trim(DayEdt.Text); try EncodeDate(StrToInt(YearEdt.Text),StrToInt(MouthEdt.Text), StrToInt(DayEdt.Text)); except begin Application.MessageBox('日期范围错误!','错误',mb_OK+mb_IconStop); DayEdt.SetFocus ; Exit; end; end; strDay:=DayEdt.Text;end;procedure TA04040F002Frm.YearEditClick(Sender: TObject);var WordYear:Word; WordMouth:Word; WordDay:Word;begin if trim(YearEdt.Text) ='' then begin DecodeDate(Date,WordYear,WordMouth,WordDay); YearEdt.Text :=IntToStr(WordYear); end;end;procedure TA04040F002Frm.MouthEditClick(Sender: TObject);var WordYear:Word; WordMouth:Word; WordDay:Word;begin if trim(MouthEdt.Text) ='' then begin DecodeDate(Date,WordYear,WordMouth,WordDay); MouthEdt.Text :=IntToStr(WordMouth); end;end;procedure TA04040F002Frm.DayEditClick(Sender: TObject);var WordYear:Word; WordMouth:Word; WordDay:Word;begin if trim(DayEdt.Text) ='' then begin DecodeDate(Date,WordYear,WordMouth,WordDay); DayEdt.Text :=IntToStr(WordDay); end;end;procedure TA04040F002Frm.FormShow(Sender: TObject);var WordYear:Word; WordMouth:Word; WordDay:Word;begin if trim(DayEdt.Text) ='' then begin DecodeDate(Date,WordYear,WordMouth,WordDay); YearEdt.Text :=IntToStr(WordYear); MouthEdt.Text :=IntToStr(WordMouth); DayEdt.Text :=IntToStr(WordDay); end; if Length(Trim(MouthEdt.Text))=1 then MouthEdt.Text:= '0'+Trim(MouthEdt.Text); if Length(Trim(DayEdt.Text))=1 then DayEdt.Text:= '0'+Trim(DayEdt.Text); { 在此事件处理函数中初始化各项属性 } intErrCounts:=0; try TD04ATbl.Active :=true; finally DMMain.adoConnMain.BeginTrans; // 开始一个事务 end; if tag=0 then // 如果修改 begin Self.Caption :='修改'; AddTBBtn.Visible :=false; TD04ATbl.Locate('自动编号',self.strEditArray[0],[loCaseInsensitive]); TD04ATbl.Edit; { 初始化 } if TD04ATbl.FieldValues['出票日期']<>NULL then begin SpeedButton2Click(Sender); // 为了初始化出票日期, MonthCalendar1.Date:=TD04ATbl.FieldValues['出票日期']; SpeedButton2Click(Sender); // 调用两次 end; moneyEdt.Text :=TD04ATbl.FieldValues['金额'];// 以初始化moneyLabel及strForSaveMoney strForSaveMoney:=moneyEdt.Text; moneyEdt.SetFocus;// SpeedButton1Click(Sender); SpeedButton3Click(Sender); end else // 如果添加 begin Self.Caption :='添加'; TD04ATbl.Append; yearEdt.SetFocus; { 初始化 } moneyEdt.Text :=''; strForSaveMoney:=''; // 初始化成员变量 TD04ATbl.FieldByName('收款人').Asstring:='中国建设银行'; TD04ATbl.FieldByName('票据类别').Asstring:='结算业务收费凭证'; end;// bNeedHelpSave:=False; // 初始化为不需要帮助 InitEdtCtlIme(self.Panel1,imChinese,gstrInputMethod); InitEdtCtlIme(self.Panel3,imChinese,gstrInputMethod); TD04OutNameDBEdt.SetFocus; // 设置初始焦点end;procedure TA04040F002Frm.SaveTBBtnClick(Sender: TObject);begin speedbutton3.click; if intErrCounts<>0 then begin Application.MessageBox('数据填写的有错误,红色的为有错误的项目,请检查填写内容!', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); yearEdt.SetFocus; Exit; end; try { 通过切换焦点产生OnExit事件 } moneyEdt.SetFocus; yearEdt.SetFocus; dayEdt.SetFocus; yearEdt.SetFocus; { 保存数据 } try if (yearEdt.Text<>'') or (mouthEdt.Text<>'') or (dayEdt.Text<>'') then begin strForSaveDate:=Trim(yearEdt.Text)+'-'+Trim(mouthEdt.Text) +'-'+Trim(dayEdt.Text); TD04ATbl.FieldValues['出票日期']:=strForSaveDate; end; except Application.MessageBox('出票日期填写有错误,请检查填写内容,重新提交!', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); yearEdt.SetFocus; exit end; try if strForSaveMoney<>'' then TD04ATbl.FieldValues['金额']:=strForSaveMoney except Application.MessageBox('金额填写有错误,请检查填写内容,重新提交!', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); moneyEdt.SetFocus; exit; end; TD04ATbl.FieldValues['票据名称']:='中国建设银行'; TD04ATbl.FieldByName('票据编码').AsString:='04040'; TD04ATbl.FieldByName('票据种类').AsString:='04'; TD04ATbl.FieldValues['操作员']:=gstrOperaterName; TD04ATbl.Post; // 提交 RecNo:=td04atbl.FieldValues['自动编号']; except Application.MessageBox('数据提交错误,请检查填写内容,重新提交!', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); DMMain.adoConnMain.RollbackTrans; // 回滚一个事务 DMMain.adoConnMain.BeginTrans; // 开始一个事务 yearEdt.SetFocus; Exit; end; DMMain.adoConnMain.CommitTrans; // 提交一个事务 DMMain.adoConnMain.BeginTrans; // 开始一个事务 try if tag=0 then // 修改 TD04ATbl.Edit else begin TD04ATbl.Active :=False; TD04ATbl.Active :=True; //TD04ATbl.Last; TD04ATbl.Locate('自动编号',RecNo,[loCaseInsensitive]); TD04ATbl.Edit; currstat:='edit'; end except Application.MessageBox('添加记录时产生错误!请与数据库管理员联系', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); yearEdt.SetFocus; end; yearEdt.SetFocus;end;procedure TA04040F002Frm.AbortTBBtnClick(Sender: TObject);begin if IdYes<>Application.MessageBox('真的要放弃吗?', '提示',MB_YesNo+MB_DefButton1+MB_IconQuestion+MB_ApplModal) then begin Exit; end; DMMain.adoConnMain.RollbackTrans; // 回滚一个事务 // 更新表,注意顺序 try TD04ATbl.Active :=False; TD04ATbl.Active :=True; finally DMMain.adoConnMain.BeginTrans; // 开始一个事务 end; try if tag=0 then // 修改 begin TD04ATbl.Locate('自动编号',self.strEditArray[0],[loCaseInsensitive]); TD04ATbl.Edit; { 初始化 } if TD04ATbl.FieldValues['出票日期']<>NULL then begin SpeedButton2Click(Sender); // 为了初始化出票日期, MonthCalendar1.Date:=TD04ATbl.FieldValues['出票日期']; SpeedButton2Click(Sender); // 调用两次 end; moneyEdt.Text :=TD04ATbl.FieldValues['金额']; moneyEdt.SetFocus; // 利用焦点的转换,产生OnExit()事件, // 以初始化moneyLabel及strForSaveMoney end else // 添加 begin if currstat='edit' then begin //TD04Atbl.Last; TD04ATbl.Locate('自动编号',RecNo,[loCaseInsensitive]); TD04Atbl.Edit; if TD04ATbl.FieldValues['出票日期']<>NULL then begin MonthCalendar1.Date:=TD04ATbl.FieldValues['出票日期']; SpeedButton2.Click; SpeedButton2.Click; end; moneyEdt.SetFocus ; moneyEdt.Text :=TD04ATbl.FieldValues['金额']; end else begin TD04ATbl.Append; { 初始化 } SpeedButton2Click(Sender); // 为了初始化出票日期, MonthCalendar1.Date :=Date; SpeedButton2Click(Sender); // 调用两次 moneyEdt.Text :=''; strForSaveMoney:=''; // 初始化成员变量 moneyEdt.SetFocus; // 利用焦点的转换,产生OnExit()事件,初始化moneyLabel end; end; except Application.MessageBox('操作数据库时产生错误!请与数据库管理员联系', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); end; yearEdt.SetFocus;end;procedure TA04040F002Frm.ExitTBBtnClick(Sender: TObject);begin Close;end;procedure TA04040F002Frm.MoneyEdtExit(Sender: TObject);var i:integer; strMoney,strTmp:string; intTmp:integer; strPosion:string;begin { 先进行判断是否需要进行处理 } strTmp:=ChangeMoneyLowcaseToUppercase(strForSaveMoney); if moneyEdt.Text=strTmp then begin setexitcolor(MoneyEdt); exit; // 不需要处理 end; { 开始处理 } if ChangeMoneyLowcaseToUppercase(moneyEdt.Text)='-1' then begin Application.MessageBox('金额输入错误!请重新输入', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); moneyEdt.SetFocus; exit; end; DBEdit15.text:=trim(MoneyEdt.text); strMoney:=moneyEdt.Text; // 临时保存原始金额; strForSaveMoney:=moneyEdt.Text; // 将原始输入,保存到类成员中 { 对输入的金额进行处理}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -