📄 repawninput.pas
字号:
while not dqDetailUn.Eof do
begin
//with tblDetail do
//begin
tblDetail.Append;
tblDetailPawnTicketCode.Value :=trim(txtPawnCode.Text);
tblDetailPawnLineNum.Value:=dqDetailUn.FieldByName('PawnLineNum').Value ;
//gLineNum:=tblDetailTempPawnLineNum.Value ;
tblDetailPawnName.Value :=dqDetailUn.FieldByName('PawnName').Value ;
tblDetailPawnSpec.Value :=dqDetailUn.FieldByName('PawnSpec').Value ;
tblDetailPawnCategory.Value :=dqDetailUn.FieldByName('PawnCategory').Value ;
tblDetailPawnNumber.Value :=dqDetailUn.FieldByName('PawnNumber').Value ;
tblDetailAppriseValue.Value :=dqDetailUn.FieldByName('AppriseValue').Value ;
tblDetailDiscountRate.Value :=dqDetailUn.FieldByName('DiscountRate').Value ;
tblDetailPawnMoney.Value :=dqDetailUn.FieldByName('PawnMoney').Value ;
tblDetailStatus.Value:='';
tblDetail.Post;
//存入历史细表
tblDetailHistory.Append;
tblDetailHistoryPawnTicketCode.Value :=trim(txtPawnCode.Text);
tblDetailHistoryPawnLineNum.Value:=dqDetailUn.FieldByName('PawnLineNum').Value ;
//gLineNum:=tblDetailTempPawnLineNum.Value ;
tblDetailHistoryPawnName.Value :=dqDetailUn.FieldByName('PawnName').Value ;
tblDetailHistoryPawnSpec.Value :=dqDetailUn.FieldByName('PawnSpec').Value ;
tblDetailHistoryPawnCategory.Value :=dqDetailUn.FieldByName('PawnCategory').Value ;
tblDetailHistoryPawnNumber.Value :=dqDetailUn.FieldByName('PawnNumber').Value ;
tblDetailHistoryAppriseValue.Value :=dqDetailUn.FieldByName('AppriseValue').Value ;
tblDetailHistoryDiscountRate.Value :=dqDetailUn.FieldByName('DiscountRate').Value ;
tblDetailHistoryPawnMoney.Value :=dqDetailUn.FieldByName('PawnMoney').Value ;
tblDetailHistoryModifyDateTime.Value:=Now;
tblDetailHistoryStatus.Value:='';
tblDetailHistory.Post;
//end;
dqDetailUn.Next;
end;
tblDetailHistory.Close;
//tblDetailTemp.EnableControls ;
staRepawn.Caption :=Msg.StatusMsgSaveOut;
ClearForm;
//将上一当票编号自动加1成为新当票编号
NewCode:=frmMain.CodePlus(trim(txtPawnCode.text));
txtPawnCode.Text:=NewCode;
finally
tblDetailTemp.EnableControls;
staRepawn.Caption :=Msg.StatusMsgSaveOut ;
ClearForm;
end;//end try...finally
end;
end// 结束询问是否保存数据 如果pay.savemark=true
else //如未保存,则提示出来
staRepawn.Caption:=Msg.StatusMsgUnSave;
//end;//}
end;
{procedure TfrmRePawnInput.dbgDetailExit(Sender: TObject);
begin
cmbPawnLimitExit(Sender);
txtPawnBeginYearEnter(Sender);
txtPawnEndDayExit(Sender);
end;}
{procedure TfrmRePawnInput.txtTotalPawnMoneyEnter(Sender: TObject);
begin
txtPawnBeginYearEnter(Sender);
end;}
procedure TfrmRePawnInput.txtServiceFeeEnter(Sender: TObject);
var
key:word;
begin
key:=VK_RETURN;
txtFeeRateKeyDown(Sender,key,[]);
end;
{procedure TfrmRePawnInput.dbgDetailColEnter(Sender: TObject);
begin
dmPawnFrm.tblDetailTemp.Edit;
end;}
{procedure TfrmRePawnInput.dbgDetailEnter(Sender: TObject);
begin
dmPawnFrm.tblDetailTemp.Edit;
end;}
procedure TfrmRePawnInput.txtPawnEndDayExit(Sender: TObject);
begin
cmbPawnLimitExit(Sender);
{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
else
begin
txtMonthRateExit(Sender);
txtFeeRateExit(Sender);
end;}
end;
procedure TfrmRePawnInput.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 TfrmRePawnInput.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;
//ServiceFee:=(FeeRate/100)*TimeLimit*TotalPawnMoney;
RealPayMoney:=TotalPawnMoney-ServiceFee;
txtServiceFee.Text :=format('%8.1f',[ServiceFee]);
txtRealPayMoney.Text :=format('%8.1f',[RealPayMoney]);
end;
procedure TfrmRePawnInput.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;
cmdSave.SetFocus ;
end;
end;
end;
procedure TfrmRePawnInput.cmbPawnLimitExit(Sender: TObject);
var
LimitIndex:integer;
Year,Month,Day:word;
PawnEndDate:TDateTime;
ReBeginDate: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;
ReBeginDate:=EncodeDate(txtPawnBeginYear.Value,txtPawnBeginMonth.Value,
txtPawnBeginDay.Value);
//取出此月的天数
DayObject:=TDayClass.Create;
BeginMonth:=txtPawnBeginMonth.Value;
BeginDay:=txtPawnBeginDay.Value;
LimitIndex:=cmbPawnLimit.ItemIndex;
if LimitIndex=0 then
begin
PawnEndDate:=ReBeginDate+DayObject.GetDays(BeginMonth,BeginDay) div 2;
TimeLimit:=0.5;
end
else
begin
TimeLimit:=LimitIndex;
PawnEndDate:=ReBeginDate+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.Value:=Year;
txtPawnEndMonth.Value:=Month;
txtPawnEndDay.Value:=Day;
//计算总额,已在输入原当编号时取出
//txtPawnBeginYearEnter(Sender);
//计算利息及综合费用
txtMonthRateExit(Sender);
txtFeeRateExit(Sender);
//txtPawnEndDayExit(Sender);
cmdSave.SetFocus;
end;
procedure TfrmRePawnInput.cmbPawnLimitClick(Sender: TObject);
begin
cmbPawnLimitExit(Sender);
end;
procedure TfrmRePawnInput.txtPawnBeginYearKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if txtPawnBeginYear.Text='' then
begin
txtPawnBeginYear.Value:=txtSysYear.Value;
//txtPawnBeginMonth.SetFocus;
//exit;
end;
if (txtPawnBeginYear.Value>txtPawnBeginYear.MaxValue)or
(txtPawnBeginYear.Value<txtPawnBeginYear.MinValue)then
begin
txtPawnBeginYear.Value:=txtSysYear.Value;
end;
ChangePawnEndDate(txtPawnBeginYear.Value,0,0);
txtPawnBeginMonth.SetFocus;
end;
end;
procedure TfrmRePawnInput.txtPawnBeginMonthKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if txtPawnBeginMonth.Text='' then
begin
txtPawnBeginMonth.Value:=txtSysMonth.Value;
//txtPawnBeginDay.SetFocus;
//exit;
end;
if (txtPawnBeginMonth.Value>txtPawnBeginMonth.MaxValue) or
(txtPawnBeginMonth.Value<txtPawnBeginMonth.MinValue) then
begin
txtPawnBeginMonth.Value:=txtSysMonth.Value;
end;
ChangePawnEndDate(0,txtPawnBeginMonth.Value,0);
txtPawnBeginDay.SetFocus;
end;
end;
procedure TfrmRePawnInput.txtPawnBeginDayKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if txtPawnBeginDay.Text='' then
begin
txtPawnBeginDay.Value:=txtSysDay.Value;
//cmdSave.SetFocus;
//exit;
end;
if (txtPawnBeginDay.Value>txtPawnBeginDay.MaxValue) or
(txtPawnBeginDay.Value<txtPawnBeginDay.MinValue) then
begin
txtPawnBeginDay.Value:=txtSysDay.Value;
end;
ChangePawnEndDate(0,0,txtPawnBeginDay.Value);
cmdSave.SetFocus;
end;
end;
procedure TfrmRePawnInput.txtPawnEndYearKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if txtPawnEndYear.Text='' then
begin
txtPawnEndYear.Value:=txtSysYear.Value;
txtPawnEndMonth.SetFocus;
exit;
end;
if (txtPawnEndYear.Value>txtPawnEndYear.MaxValue)or
(txtPawnEndYear.Value<txtPawnEndYear.MinValue)then
begin
txtPawnEndYear.Value:=txtSysYear.Value;
end;
txtPawnEndMonth.SetFocus;
end;
end;
procedure TfrmRePawnInput.txtPawnEndMonthKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if txtPawnEndMonth.Text='' then
begin
txtPawnEndMonth.Value:=txtSysMonth.Value;
txtPawnEndDay.SetFocus;
exit;
end;
if (txtPawnEndMonth.Value>txtPawnEndMonth.MaxValue) or
(txtPawnEndMonth.Value<txtPawnEndMonth.MinValue) then
begin
txtPawnEndMonth.Value:=txtSysMonth.Value;
end;
txtPawnEndDay.SetFocus;
end;
end;
procedure TfrmRePawnInput.txtPawnEndDayKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if txtPawnEndDay.Text='' then
begin
txtPawnEndDay.Value:=txtSysDay.Value;
cmdSave.SetFocus;
exit;
end;
if (txtPawnEndDay.Value>txtPawnEndDay.MaxValue) or
(txtPawnEndDay.Value<txtPawnEndDay.MinValue) then
begin
txtPawnEndDay.Value:=txtSysDay.Value;
end;
cmdSave.SetFocus;
end;
end;
procedure TfrmRePawnInput.cmdPrintClick(Sender: TObject);
var
frmPrint:TfrmPrint;
begin
frmPrint:=TfrmPrint.Create(nil);
PrintTicket.FpStatus:='续当';
frmPrint.ShowModal;
frmPrint.Free;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -