⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pawnmodify.pas

📁 一个典当行的业务管理系统程序
💻 PAS
📖 第 1 页 / 共 5 页
字号:
               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 + -