📄 pawnmodify.pas
字号:
tblPawnMoneyTotalMoney.Value:=txtTotalPawnMoney.text;
tblPawnMoneyServiceMoney.Value:=txtServiceFee.text;
tblPawnMoneyRealPayMoney.Value:=txtRealPayMoney.text;
tblPawnMoney.Post;
end;
tblPawnMoney.Close;
//如细表数据被修改,则将tblModifyDetail数据表中修改的记录放入历史细表中
//同时,修改原细表
if (DataModifyMark=True)or
(AddMark=True) then
begin
tblDetailHistory.Open;
tblDetail.Open;
for I:=0 to ArrayIndex do
begin
if LineNumberArray[I]<>0 then
begin
//从tblModifyDetail(DetailTemp)中找出具有此行号的记录
//并写入历史记录细表中
tblModifyDetail.SetKey;
tblModifyDetail.FieldByName('PawnTicketCode').asstring:=txtPawnCode.Text;
tblModifyDetail.FieldByName('PawnLineNum').asinteger:=LineNumberArray[I];
if tblModifyDetail.FindKey([txtPawnCode.Text,LineNumberArray[I]]) then
begin
with tblDetailHistory do
begin
Append;
tblDetailHistoryPawnTicketCode.Value :=trim(txtPawnCode.Text);
tblDetailHistoryPawnLineNum.Value:=tblModifyDetailPawnLineNum.Value ;
tblDetailHistoryPawnName.Value :=tblModifyDetailPawnName.Value ;
tblDetailHistoryPawnSpec.Value :=tblModifyDetailPawnSpec.Value ;
tblDetailHistoryPawnCategory.Value :=tblModifyDetailPawnCategory.Value ;
tblDetailHistoryPawnNumber.Value :=tblModifyDetailPawnNumber.Value ;
tblDetailHistoryAppriseValue.Value :=tblModifyDetailAppriseValue.Value ;
tblDetailHistoryDiscountRate.Value :=tblModifyDetailDiscountRate.Value ;
tblDetailHistoryPawnMoney.Value :=tblModifyDetailPawnMoney.Value;
tblDetailHistoryStatus.Value :=tblModifyDetailStatus.Value;
tblDetailHistoryModifyDateTime.Value :=Now;
Post;
end;
//如是添加一条新记录,则添加到细表中
if AddMark=True then
begin
tblDetail.Append;
tblDetailPawnTicketCode.Value :=trim(txtPawnCode.Text);
tblDetailPawnLineNum.Value:=tblModifyDetailPawnLineNum.Value ;
tblDetailPawnName.Value :=tblModifyDetailPawnName.Value ;
tblDetailPawnSpec.Value :=tblModifyDetailPawnSpec.Value ;
tblDetailPawnCategory.Value :=tblModifyDetailPawnCategory.Value ;
tblDetailPawnNumber.Value :=tblModifyDetailPawnNumber.Value ;
tblDetailAppriseValue.Value :=tblModifyDetailAppriseValue.Value ;
tblDetailDiscountRate.Value :=tblModifyDetailDiscountRate.Value ;
tblDetailPawnMoney.Value :=tblModifyDetailPawnMoney.Value;
tblDetailStatus.Value :=tblModifyDetailStatus.Value;
tblDetail.Post;
end;
//根据行号从原细表中找出此被修改的记录,并修改
tblDetail.SetKey;
tblDetail.FieldByName('PawnTicketCode').asstring:=txtPawnCode.Text;
tblDetail.FieldByName('PawnLineNum').asinteger:=LineNumberArray[I];
if tblDetail.FindKey([txtPawnCode.Text,LineNumberArray[I]]) then
begin
with tblDetail do
begin
Edit;
tblDetailPawnTicketCode.Value :=trim(txtPawnCode.Text);
tblDetailPawnLineNum.Value:=tblModifyDetailPawnLineNum.Value ;
tblDetailPawnName.Value :=tblModifyDetailPawnName.Value ;
tblDetailPawnSpec.Value :=tblModifyDetailPawnSpec.Value ;
tblDetailPawnCategory.Value :=tblModifyDetailPawnCategory.Value ;
tblDetailPawnNumber.Value :=tblModifyDetailPawnNumber.Value ;
tblDetailAppriseValue.Value :=tblModifyDetailAppriseValue.Value ;
tblDetailDiscountRate.Value :=tblModifyDetailDiscountRate.Value ;
tblDetailPawnMoney.Value :=tblModifyDetailPawnMoney.Value;
tblDetailStatus.Value :=tblModifyDetailStatus.Value;
//tblDetailHistoryModifyDateTime.Value :=Now;
Post;
end;
end;
end; //end tblModifyDetail.FindKey
end;
end; //end for
tblDetailHistory.Close;
tblDetail.Close;
end;
if AddMark=True then
begin
AddMark:=False;
end;
ClearForm;
staModify.Caption:=Msg.StatusMsgSaveOut ;
end;
end;
{procedure TfrmPawnModify.txtPawnBeginDayKeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
var
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 TfrmPawnModify.txtPawnBeginMonthKeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
var
Present: TDateTime;
Year, Month, Day: Word;
InputMonth:integer;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtPawnBeginMonth.Text ='' then
txtPawnBeginMonth.Text:=IntToStr(Month);
if (length(txtPawnBeginMonth.text)=2)then
begin
InputMonth:=strtoint(txtPawnBeginMonth.Text);
if (InputMonth>12)or(InputMonth<1) then
begin
txtPawnBeginMonth.Text :=IntToStr(Month);
end;
txtPawnBeginDay.SetFocus ;
end;
end;}
{procedure TfrmPawnModify.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 TfrmPawnModify.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 :=Day;
if length(txtPawnEndDay.text)=2 then
begin
if(strtoint(txtPawnEndDay.text)>31)or
(strtoint(txtPawnEndDay.text)<1)then
begin
txtPawnEndDay.Text :=IntToStr(Day);
end;
cmdSave.SetFocus ;
end;
end;}
{procedure TfrmPawnModify.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 TfrmPawnModify.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 TfrmPawnModify.txtPawnBeginYearKeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
var
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtPawnBeginYear.Text =''then
txtPawnBeginYear.Text := IntToStr(Year);
if (length(txtPawnBeginYear.text)=4) then {or
(length(txtPawnBeginYear.text)=2)then
txtPawnBeginMonth.SetFocus ;
end;}
{procedure TfrmPawnModify.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 TfrmPawnModify.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);
txtPawnBeginYear.SetFocus ;
end;
end;}
procedure TfrmPawnModify.txtFeeRateExit(Sender: TObject);
var
ServiceFee,RealPayMoney:Double;
FeeRate:Double;
begin
if txtFeeRate.text='' then
FeeRate:=0
else
FeeRate:=strtofloat(txtFeeRate.text);
//计算总额
GetTotalMoney;
if (TimeLimit=0.5) or
(TimeLimit=0) then
begin
ServiceFee:=(FeeRate/100)*TotalPawnMoney;
end
else
begin
ServiceFee:=(FeeRate/100)*TimeLimit*TotalPawnMoney;
end;
//ServiceFee:=(FeeRate/100)*TimeLimit*TotalPawnMoney;
RealPayMoney:=TotalPawnMoney-ServiceFee;
txtServiceFee.Text :=format('%8.1f',[ServiceFee]);
txtRealPayMoney.Text :=format('%8.1f',[RealPayMoney]);
end;
//退出修改细表后,计算典当总额,典当期限,综合费用,实付金额
{procedure TfrmPawnModify.dbgDetailExit(Sender: TObject);
begin
//计算典当总额
TotalPawnMoney:=0;
with dmPawnFrm do
begin
tblModifyDetail.First;
while not tblModifyDetail.Eof do
begin
TotalPawnMoney:=TotalPawnMoney+tblModifyDetail.FieldByName('PawnMoney').AsFloat;
tblModifyDetail.Next ;
end;
end;
txtTotalPawnMoney.Text :=Format('%8.1f',[TotalPawnMoney]);
//计算典当期限
txtPawnEndDayExit(Sender);
//计算综合费用及计算实付金额
txtFeeRateExit(Sender);
//计算利息
txtMonthRateExit(Sender);
end;}
procedure TfrmPawnModify.txtMonthRateExit(Sender: TObject);
var
MonthR:Double;
begin
if txtMonthRate.Text='' then
MonthR:=0
else
MonthR:=strtofloat(txtMonthRate.text);
//计算总额
GetTotalMoney;
if (TimeLimit=0.5)or
(TimeLimit=0) then
begin
txtRate.Text:=Format('%8.1f',[TotalPawnMoney*
MonthR/100]);
end
else
begin
txtRate.Text:=Format('%8.1f',[TimeLimit*TotalPawnMoney*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -