📄 pawninput.pas
字号:
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtPawnBeginDay.Text =''then
txtPawnBeginDay.Text:=IntToStr(Day);
if length(txtPawnBeginDay.text)=2 then
begin
if (strtoint(txtPawnBeginDay.text)<1)or
(strtoint(txtPawnBeginDay.text)>31) then
begin
txtPawnBeginDay.Text :=IntToStr(Day);
end;
txtPawnEndYear.SetFocus ;
end;
end; }
{procedure TfrmPawnInput.txtPawnEndYearKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtPawnEndYear.Text ='' then
txtPawnEndYear.Text :=IntToStr(Year);
if (length(txtPawnEndYear.text)=4) then {or
(length(txtPawnEndYear.text)=2)then
txtPawnEndMonth.SetFocus ;
end;}
{procedure TfrmPawnInput.txtPawnEndMonthKeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
var
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtPawnEndMonth.Text ='' then
txtPawnEndMonth.Text :=IntToStr(Month);
if length(txtPawnEndMonth.text)=2then
begin
if (strtoint(txtPawnEndMonth.text)<1)or
(strtoint(txtPawnEndMonth.text)>12) then
begin
txtPawnEndMonth.Text :=IntToStr(Month);
end;
txtPawnEndDay.SetFocus ;
end;
end; }
{procedure TfrmPawnInput.txtPawnEndDayKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtPawnEndDay.Text ='' then
txtPawnEndDay.Text :=IntToStr(Day);
if (length(txtPawnEndDay.text)=2)or
(length(txtPawnEndDay.Text)=1) then
begin
if(strtoint(txtPawnEndDay.text)>31)or
(strtoint(txtPawnEndDay.text)<1)then
begin
txtPawnEndDay.Text :=IntToStr(Day);
end;
{//计算典当的期限
TimeLimit:=strtoint(txtPawnEndYear.text)-strtoint(txtPawnBeginYear.text);
TimeLimit:=(TimeLimit*12)+(strtoint(txtPawnEndMonth.text)-strtoint(txtPawnBeginMonth.text));
TimeLimit:=TimeLimit+((strtoint(txtPawnEndDay.text)-strtoint(txtPawnBeginDay.text))/30);
if TimeLimit>GlobalVar.PawnLimit then
begin
//wrong
messagedlg(Msg.MsgPawnLimit ,mtWarning,[mbYes],0);
txtPawnBeginYear.SetFocus ;
end
else
begin
txtMonthRateExit(Sender);
txtFeeRateExit(Sender);
end;
cmdSave.SetFocus ;
end;
end; }
{procedure TfrmPawnInput.txtPawnBeginYearExit(Sender: TObject);
var
InputYear : Integer;
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtPawnBeginYear.Text =''then
txtPawnBeginYear.Text :=IntToStr(Year);
InputYear:=strtoint(txtPawnBeginYear.text);
case InputYear of
0:txtPawnBeginYear.Text :='2000';
1..9:txtPawnBeginYear.Text :='190'+inttostr(InputYear);
10..64:txtPawnBeginYear.Text :='19'+inttostr(InputYear);
65..99:txtPawnBeginYear.Text :='19'+txtPawnBeginYear.Text ;
end;
end;}
{procedure TfrmPawnInput.txtPawnEndYearExit(Sender: TObject);
var
InputYear : Integer;
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtPawnEndYear.Text =''then
txtPawnEndYear.Text :=IntToStr(Year);
InputYear:=strtoint(txtPawnEndYear.text);
case InputYear of
0:txtPawnEndYear.Text :='2000';
1..9:txtPawnEndYear.Text :='190'+inttostr(InputYear);
10..64:txtPawnEndYear.Text :='19'+inttostr(InputYear);
65..99:txtPawnEndYear.Text :='19'+txtPawnEndYear.Text ;
end;
end; }
{procedure TfrmPawnInput.txtPawnBeginYearEnter(Sender: TObject);
begin
TotalPawnMoney:=0;
with dmPawnFrm do
begin
tblDetailTemp.First;
while not tblDetailTemp.Eof do
begin
TotalPawnMoney:=TotalPawnMoney+tblDetailTempPawnMoney.AsFloat;
tblDetailTemp.Next ;
end;
end;
if TotalPawnMoney>3000 then
begin
txtMonthRate.Text:='0.5';
end
else
txtMonthRate.Text:='0.5';
txtFeeRate.Text:='4.5';
txtTotalPawnMoney.Text :=format('%8.1f',[TotalPawnMoney]);
end;}
{procedure TfrmPawnInput.txtPawnEndYearEnter(Sender: TObject);
begin
txtPawnBeginYearEnter(Sender);
end;}
procedure TfrmPawnInput.txtTotalPawnMoneyKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
txtServiceFee.SetFocus ;
end;
procedure TfrmPawnInput.txtServiceFeeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
txtRealPayMoney.SetFocus ;
end;
procedure TfrmPawnInput.txtRealPayMoneyKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
cmdSave.SetFocus ;
end;
procedure TfrmPawnInput.txtServiceFeeEnter(Sender: TObject);
var
key:word;
begin
key:=VK_RETURN;
txtFeeRateKeyDown(Sender,key,[]);
end;
procedure TfrmPawnInput.txtTotalPawnMoneyEnter(Sender: TObject);
begin
//txtPawnBeginYearEnter(Sender);
GetTotalMoney;
end;
{procedure TfrmPawnInput.dbgDetailExit(Sender: TObject);
begin
cmbPawnLimitExit(Sender);
txtPawnBeginYearEnter(Sender);
txtPawnEndDayExit(Sender);
end;}
procedure TfrmPawnInput.txtMonthRateExit(Sender: TObject);
var
MonthR:Double;
begin
if txtMonthRate.Text='' then
MonthR:=0
else
MonthR:=strtofloat(txtMonthRate.text);
if TimeLimit=0.5 then
begin
txtRate.Text:=Format('%8.1f',[TotalPawnMoney*
MonthR/100]);
end
else
begin
txtRate.Text:=Format('%8.1f',[TimeLimit*TotalPawnMoney*
MonthR/100]);
end;
end;
procedure TfrmPawnInput.txtFeeRateExit(Sender: TObject);
var
FeeRate:Double;
ServiceFee,RealPayMoney:Double;
begin
if txtFeeRate.text='' then
FeeRate:=0
else
FeeRate:=strtofloat(txtFeeRate.text);
if TimeLimit=0.5 then
begin
ServiceFee:=(FeeRate/100)*TotalPawnMoney;
end
else
begin
ServiceFee:=(FeeRate/100)*TimeLimit*TotalPawnMoney;
end;
RealPayMoney:=TotalPawnMoney-ServiceFee;
txtServiceFee.Text :=format('%8.1f',[ServiceFee]);
txtRealPayMoney.Text :=format('%8.1f',[RealPayMoney]);
end;
{procedure TfrmPawnInput.txtPawnEndDayExit(Sender: TObject);
var
EndYear,EndMonth,EndDay:string;
Year,Month,Day:word;
begin
DecodeDate(Now,Year,Month,Day);
EndYear:=txtPawnEndYear.Text;
EndMonth:=txtPawnEndMonth.Text;
EndDay:=txtPawnEndDay.Text;
if EndYear='' then
EndYear:=inttostr(Year);
if EndMonth='' then
EndMonth:=inttostr(Month);
if EndDay='' then
EndDay:=inttostr(Day);
//计算典当的期限
TimeLimit:=strtoint(EndYear)-strtoint(txtPawnBeginYear.text);
TimeLimit:=(TimeLimit*12)+(strtoint(EndMonth)-strtoint(txtPawnBeginMonth.text));
TimeLimit:=TimeLimit+((strtoint(EndDay)-strtoint(txtPawnBeginDay.text))/30);
if TimeLimit>GlobalVar.PawnLimit then
begin
//wrong
messagedlg(Msg.MsgPawnLimit ,mtWarning,[mbYes],0);
txtPawnEndYear.Text:='';
txtPawnEndMonth.Text:='';
txtPawnEndDay.Text:='';
cmbPawnLimit.SetFocus ;
end;
{else
begin
//计算利息及综合费用
txtMonthRateExit(Sender);
txtFeeRateExit(Sender);
end;}
//end;}
procedure TfrmPawnInput.cmbPawnLimitKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if CertiEnterTimes=0 then
begin
CertiEnterTimes:=CertiEnterTimes+1;
if SendMessage((Sender as TComBoBox).handle,CB_GetDroppedState,0,0)
=0 then
PostMessage((Sender as TComBoBox).handle,CB_SHOWDROPDOWN,1,0);
end
else
begin
CertiEnterTimes:=0;
with dmPawnFrm do
begin
//tblDetailTemp.Open;
if tblDetailTemp.RecordCount=0 then
begin
tblDetailTemp.Append;
tblDetailTempPawnTicketCode.Value:=txtPawnCode.Text;
txtLineNum.Field.AsInteger:=1;
end;
txtPawnName.SetFocus;
end;
end;
end;
end;
procedure TfrmPawnInput.cmbPawnLimitExit(Sender: TObject);
var
LimitIndex:integer;
Year,Month,Day:word;
PawnEndDate:TDateTime;
InputDate:TDateTime;
DayObject:TDayClass; //自定义的类 in GlobalVar
BeginMonth:integer;
BeginDay:integer;
begin
if PawnLimitMark=True then
begin
PawnLimitMark:=False;
exit;
end;
if (txtPawnBeginYear.Text='')or
(txtPawnBeginMonth.Text='')or
(txtPawnBeginDay.Text='') then
begin
messagedlg(Msg.MsgBeginDateInfo,mtWarning,[mbYes],0);
exit;
end;
//当票起始日期
InputDate:=EncodeDate(txtPawnBeginYear.Value,
txtPawnBeginMonth.Value,
txtPawnBeginDay.Value);
//取出此月的天数
DayObject:=TDayClass.Create;
BeginMonth:=txtSysMonth.Value; //strtoint(txtPawnBeginMonth.Text);
BeginDay:=txtSysDay.Value;
LimitIndex:=cmbPawnLimit.ItemIndex;
if LimitIndex=0 then
begin
PawnEndDate:=InputDate+DayObject.GetDays(BeginMonth,BeginDay) div 2;
TimeLimit:=0.5;
end
else
begin
TimeLimit:=LimitIndex;
PawnEndDate:=InputDate+DayObject.GetDays(BeginMonth,BeginDay)*LimitIndex;
end;
//释放对象
DayObject.Free;
//判断典当期限是否超出规定的值
if TimeLimit>GlobalVar.PawnLimit then
begin
PawnLimitMark:=True;
messagedlg(Msg.MsgPawnLimit ,mtWarning,[mbYes],0);
txtPawnEndYear.Text:='';
txtPawnEndMonth.Text:='';
txtPawnEndDay.Text:='';
exit;
end;
DecodeDate(PawnEndDate,Year,Month,Day);
txtPawnEndYear.Text:=inttostr(Year);
txtPawnEndMonth.Text:=inttostr(Month);
txtPawnEndDay.Text:=inttostr(Day);
//计算总额
//txtPawnBeginYearEnter(Sender);
GetTotalMoney;
//计算利息及综合费用
txtMonthRateExit(Sender);
txtFeeRateExit(Sender);
//txtPawnEndDayExit(Sender);
end;
procedure TfrmPawnInput.txtPawnNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -