📄 a04042f002unit.pas
字号:
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 ComboBox1.Text :=NameDBEdt1.Text; ComboBox2.Text :=NameDBEdt2.Text; ComboBox3.Text :=NameDBEdt3.Text; 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); companyDBEdt.SetFocus; // 设置初始焦点end;procedure TA04040F002Frm.SaveTBBtnClick(Sender: TObject);begin speedbutton1.click; 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:='04042'; 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; // 将原始输入,保存到类成员中 { 对输入的金额进行处理} {strPosion:=Trim(moneyEdt.Text); intTmp:=Pos('.',pChar(strMoney)); Delete(strPosion,intTmp,1); if intTmp=0 then strPosion:=strPosion+'00' else if (strlen(pChar(strPosion))-intTmp+1)=1 then strPosion:=strPosion+'0' else if (strlen(pChar(strPosion))-intTmp+1)=0 then strPosion:=strPosion+'00'; if Length(strPosion)>10 then begin Application.MessageBox('金额输入错误!请重新输入', '提示',MB_OK+MB_DefButton1+MB_IconInformation+MB_ApplModal); moneyEdt.SetFocus; exit; end; { 将金额转换为大写并填写到对应项中 } { moneyEdt.Text:=ChangeMoneyLowcaseToUppercase(moneyEdt.Text); { 对输入的金额进行处理,去掉小数点并补充上角分位 } {intTmp:=Pos('.',pChar(strMoney)); Delete(strMoney,intTmp,1); if intTmp=0 then strMoney:=strMoney+'00' else if (strlen(pChar(strForSaveMoney))-intTmp)=1 then strMoney:=strMoney+'0' else if (strlen(pChar(strForSaveMoney))-intTmp)=0 then strMoney:=strMoney+'00'; { 去除无用零字符 } {intTmp:=Pos('0',pChar(strMoney)); while (intTmp=1) and (intTmp<>strlen(pChar(strMoney))) do begin Delete(strMoney,intTmp,1); intTmp:=Pos('0',pChar(strMoney)); end; } setexitcolor(MoneyEdt);end;procedure TA04040F002Frm.SpeedButton5Click(Sender: TObject);var strRet:array[0..20] of string;begin TD04jsrEdt.SetFocus; Application.CreateForm(TF007Frm,F007Frm); F007Frm.CallCodeHelp('Select * from TC05',1,striniHelpName,'TC05',strRet); if strRet[0]='-1' then exit; TD04jsrEdt.SetFocus; TD04jsrEdt.Text:=strRet[0];end;procedure TA04040F002Frm.MouthEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if key=13 then DayEdt.SetFocus;end;procedure TA04040F002Frm.DayEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if key=13 then NameDBEdt1.SetFocus;end;procedure TA04040F002Frm.NameDBEdt2KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if key=13 then ComboBox3.SetFocus;end;procedure TA04040F002Frm.YearEdtKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if key=13 then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -