📄 repawninput.pas
字号:
end
else
cmbPawnLimit.SetFocus ;
tblHead.Close;
end;
end;
end;
end;
procedure TfrmRePawnInput.txtRepawnCodeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
var
MonthLimit:Double;
frmRansom:TfrmRansom;
RKey:word;
RShift:TShiftState;
BeginYear,EndYear,BeginMonth,EndMonth:word;
BeginDay,EndDay:word;
QuerySql:string;
begin
if key=VK_RETURN then
begin
staRepawn.Caption:='';
with dmPawnFrm do
begin
tblHead.Open;
tblHead.IndexFieldNames:='PawnTicketCode';
tblHead.SetKey ; //在头表中查找原当票数据
tblHead.FieldByName('PawnTicketCode').AsString :=trim(txtRePawnCode.text);
if tblHead.GotoKey then
begin
//取得书签
BookMark:=tblHead.GetBookmark ;
if (tblHeadStatus.Value ='解挂')or
(tblHeadStatus.Value='未赎')or
(tblHeadStatus.Value='半处') or
(tblHeadStatus.Value='绝当') then
begin
//将头表中的当户信息取出,放入画面中的当户信息栏
txtPawnCode.SetFocus ;
txtName.Text :=tblHeadPawnerName.Value ;
txtCerName.Text :=tblHeadCertificateName.Value ;
txtCerCode.Text :=tblHeadCertificateCode.Value;
txtPhone.Text :=tblHeadTelephoneCode.Value ;
txtZip.Text:=tblHeadPostCode.Value ;
txtLinkman.Text :=tblHeadLinkman.Value ;
txtAddress.Text :=tblHeadPawnerAddress.Value ;
txtMonthRate.Text :=format('%8.1f',[tblHeadMonthRate.Value]);
txtFeeRate.Text :=tblHeadFeeRate.asstring;//format('%8.1f',[tblHeadFeeRate.Value]);
txtTotalPawnMoney.Text :=format('%8.1f',[tblHeadTotalPawnMoney.Value]);
TotalPawnMoney:=tblHeadTotalPawnMoney.Value;
txtServiceFee.Text :=format('%8.1f',[tblHeadSynthesizeFee.Value]);
txtRealPayMoney.Text :=format('%8.1f',[tblHeadRealPayMoney.Value]);
//原当的典当终到日期成为续当的起始日期供选择典当期限使用
RePawnBeginDate:=tblHeadPawnEndDate.Value;
DecodeDate(tblHeadPawnBeginDate.Value ,BeginYear,BeginMonth,BeginDay);
DecodeDate(tblHeadPawnEndDate.Value ,EndYear,EndMonth,EndDay);
txtPawnBeginYear.Value:=EndYear;
txtPawnBeginMonth.Value:=EndMonth;
txtPawnBeginDay.Value:=EndDay;
//txtPawnEndYear.Text :=inttostr(EndYear);
//txtPawnEndMonth.Text :=inttostr(EndMonth);
//txtPawnEndDay.Text :=inttostr(EndDay);
//取出利息
txtRate.Text:=format('%8.1f',[tblHeadMonthRateFee.asfloat]);
//调出赎当画面,进行赎当
messagedlg(Msg.MsgPreNoRansom,mtInformation,[mbYes],0);
frmRansom:=TfrmRansom.Create(nil);
//将续当的系统日期传入赎当画面
Ransom.ReInputYear:=self.txtSysYear.Value;
Ransom.ReInputMonth:=self.txtSysMonth.Value;
Ransom.ReInputDay:=self.txtSysDay.Value;
//----
frmRansom.txtPawnCode.Text:=trim(txtRePawnCode.text);
frmRansom.txtPawnCodeKeyDown(Sender,Rkey,RShift);
Ransom.ReInputMark:=True;
frmRansom.ShowModal;
if Ransom.RansomMark=True then
begin
//Ransom.RansomMark:=False;
//frmRansom.txtPawnCode.Text:=trim(txtRePawnCode.Text);
self.staRepawn.Caption:=Msg.StatusMsgBuy ;
end;
frmRansom.Free;
//再从细表查询此当票编号中取出当物信息放入当物栏中
QuerySql:='select PawnLineNum,PawnName,PawnCategory,PawnSpec,PawnNumber,';
QuerySql:=QuerySql+'AppriseValue,DiscountRate,PawnMoney from PawnDetail_Tbl ';
QuerySql:=QuerySql+ 'where PawnTicketCode=:PawnCode ';
QuerySql:=QuerySql+ ' and Status=''''';
dqDetailUn.Close;
dqDetailUn.Sql.Clear;
dqDetailUn.Sql.Add(QuerySql);
dqDetailUn.ParamByName('PawnCode').asstring:=trim(txtRepawnCode.text);
//dqDetail.Prepare ;
dqDetailUn.Open;
end
else//不是未赎或解挂,
begin
//再将此原当的状态显示在窗体底部的状态栏中;
if tblHeadStatus.Value ='赎回'then
begin
Ransom.RansomMark:=True;
staRepawn.Caption :=Msg.StatusMsgBuy;
//将头表中的当户信息取出,放入画面中的当户信息栏
txtPawnCode.SetFocus ;
txtName.Text :=tblHeadPawnerName.Value ;
txtCerName.Text :=tblHeadCertificateName.Value ;
txtCerCode.Text :=tblHeadCertificateCode.Value;
txtPhone.Text :=tblHeadTelephoneCode.Value ;
txtZip.Text:=tblHeadPostCode.Value ;
txtLinkman.Text :=tblHeadLinkman.Value ;
txtAddress.Text :=tblHeadPawnerAddress.Value ;
txtMonthRate.Text :=format('%8.1f',[tblHeadMonthRate.Value]);
txtFeeRate.Text :=tblHeadFeeRate.asstring;//format('%8.1f',[tblHeadFeeRate.Value]);
txtTotalPawnMoney.Text :=format('%8.1f',[tblHeadTotalPawnMoney.Value]);
TotalPawnMoney:=tblHeadTotalPawnMoney.Value;
txtServiceFee.Text :=format('%8.1f',[tblHeadSynthesizeFee.Value]);
txtRealPayMoney.Text :=format('%8.1f',[tblHeadRealPayMoney.Value]);
//原当的典当终到日期成为续当的起始日期供选择典当期限使用
RePawnBeginDate:=tblHeadPawnEndDate.Value;
DecodeDate(tblHeadPawnBeginDate.Value ,BeginYear,BeginMonth,BeginDay);
DecodeDate(tblHeadPawnEndDate.Value ,EndYear,EndMonth,EndDay);
txtPawnBeginYear.Value:=EndYear;
txtPawnBeginMonth.Value:=EndMonth;
txtPawnBeginDay.Value:=EndDay;
//txtPawnEndYear.Text :=inttostr(EndYear);
//txtPawnEndMonth.Text :=inttostr(EndMonth);
//txtPawnEndDay.Text :=inttostr(EndDay);
//取出利息
txtRate.Text:=format('%8.1f',[tblHeadMonthRateFee.asfloat]);
//再从细表查询此当票编号中取出当物信息放入当物栏中
QuerySql:='select PawnLineNum,PawnName,PawnCategory,PawnSpec,PawnNumber,';
QuerySql:=QuerySql+'AppriseValue,DiscountRate,PawnMoney from PawnDetail_Tbl ';
QuerySql:=QuerySql+ 'where PawnTicketCode=:PawnCode ';
QuerySql:=QuerySql+ ' and Status=''''';
dqDetailUn.Close;
dqDetailUn.Sql.Clear;
dqDetailUn.Sql.Add(QuerySql);
dqDetailUn.ParamByName('PawnCode').asstring:=trim(txtRepawnCode.text);
//dqDetail.Prepare ;
dqDetailUn.Open;
end;
if tblHeadStatus.Value ='挂失'then
begin
ClearForm;
staRepawn.Caption :=Msg.StatusMsgLost;
end;
if tblHeadStatus.Value='处理'then
begin
ClearForm;
staRepawn.Caption:=Msg.StatusMsgHandle;
end;
end;
end
else //如果原当票未找到
begin
ClearForm;
messagedlg(Msg.MsgRePawnNoExist,mtWarning,[mbYes],0);
txtRepawnCode.SetFocus ;
end;
end;
end;
end;
{procedure TfrmRePawnInput.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 TfrmRePawnInput.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 TfrmRePawnInput.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 TfrmRePawnInput.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 TfrmRePawnInput.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 TfrmRePawnInput.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 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;
cmdSave.SetFocus ;
end;
end;}
{procedure TfrmRePawnInput.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 TfrmRePawnInput.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 TfrmRePawnInput.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 TfrmRePawnInput.txtPawnEndYearEnter(Sender: TObject);
begin
txtPawnBeginYearEnter(Sender);
end; }
procedure TfrmRePawnInput.cmdCancelClick(Sender: TObject);
begin
//清空临时数据表,即将网格清空
{dmPawnFrm.tblDetailTemp.Close;
dmPawnFrm.tblDetailTemp.EmptyTable ;
dmPawnFrm.tblDetailTemp.Open;
dmPawn.LineNo :=0;
//清空续当日期,及各项金额利率
//txtPawnBeginYear.Text :='';
//txtPawnBeginMonth.Text :='';
//txtPawnBeginDay.Text :='';
txtPawnEndYear.Text :='';
txtPawnEndMonth.Text :='';
txtPawnEndDay.Text :='';
txtMonthRate.Text :='';
txtFeeRate.Text :='';
txtTotalPawnMoney.Text :='';
txtRealPayMoney.Text :='';
txtServiceFee.Text :='';
txtPawnCode.SetFocus ; }
ClearForm;
end;
{procedure TfrmRePawnInput.dbgDetailColExit(Sender: TObject);
var
selAppriseValue:Double;//选中的估价
selDiscountRate:Double; //选中的折当率
DiscountRate:Double;
begin
dmPawnFrm.tblDetailTemp.Edit;
with dbgDetail do
begin
if SelectedField.FieldName='DiscountRate' then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -