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

📄 repawninput.pas

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