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

📄 pawninput.pas

📁 一个典当行的业务管理系统程序
💻 PAS
📖 第 1 页 / 共 5 页
字号:
   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 TfrmPawnInput.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 TfrmPawnInput.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 TfrmPawnInput.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)or
        (length(txtPawnEndDay.Text)=1) 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
        else
        begin
             txtMonthRateExit(Sender);
             txtFeeRateExit(Sender);
        end;
        cmdSave.SetFocus ;
     end;
end; }

{procedure TfrmPawnInput.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 TfrmPawnInput.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 TfrmPawnInput.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 TfrmPawnInput.txtPawnEndYearEnter(Sender: TObject);
begin
     txtPawnBeginYearEnter(Sender);
end;}


procedure TfrmPawnInput.txtTotalPawnMoneyKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
     if key=VK_RETURN then
        txtServiceFee.SetFocus ;
end;

procedure TfrmPawnInput.txtServiceFeeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
     if key=VK_RETURN then
        txtRealPayMoney.SetFocus ;
end;

procedure TfrmPawnInput.txtRealPayMoneyKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
     if key=VK_RETURN then
        cmdSave.SetFocus ;
end;


procedure TfrmPawnInput.txtServiceFeeEnter(Sender: TObject);
var
   key:word;
begin
     key:=VK_RETURN;
     txtFeeRateKeyDown(Sender,key,[]);
end;

procedure TfrmPawnInput.txtTotalPawnMoneyEnter(Sender: TObject);
begin
     //txtPawnBeginYearEnter(Sender);
     GetTotalMoney;
end;

{procedure TfrmPawnInput.dbgDetailExit(Sender: TObject);
begin
     cmbPawnLimitExit(Sender);
     txtPawnBeginYearEnter(Sender);
     txtPawnEndDayExit(Sender);
end;}


procedure TfrmPawnInput.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 TfrmPawnInput.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;
     RealPayMoney:=TotalPawnMoney-ServiceFee;
     txtServiceFee.Text :=format('%8.1f',[ServiceFee]);
     txtRealPayMoney.Text :=format('%8.1f',[RealPayMoney]);
end;

{procedure TfrmPawnInput.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);
           txtPawnEndYear.Text:='';
           txtPawnEndMonth.Text:='';
           txtPawnEndDay.Text:='';
           cmbPawnLimit.SetFocus ;
      end;
      {else
      begin
             //计算利息及综合费用
             txtMonthRateExit(Sender);
             txtFeeRateExit(Sender);
        end;}
//end;}

procedure TfrmPawnInput.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;
               with dmPawnFrm do
               begin
                    //tblDetailTemp.Open;
                    if tblDetailTemp.RecordCount=0 then
                    begin
                         tblDetailTemp.Append;
                         tblDetailTempPawnTicketCode.Value:=txtPawnCode.Text;
                         txtLineNum.Field.AsInteger:=1;
                    end;
                    txtPawnName.SetFocus;
               end;
          end;
     end;
end;

procedure TfrmPawnInput.cmbPawnLimitExit(Sender: TObject);
var
   LimitIndex:integer;
   Year,Month,Day:word;
   PawnEndDate:TDateTime;
   InputDate: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;
     //当票起始日期
     InputDate:=EncodeDate(txtPawnBeginYear.Value,
                           txtPawnBeginMonth.Value,
                           txtPawnBeginDay.Value);
     //取出此月的天数
     DayObject:=TDayClass.Create;
     BeginMonth:=txtSysMonth.Value;   //strtoint(txtPawnBeginMonth.Text);
     BeginDay:=txtSysDay.Value;
     LimitIndex:=cmbPawnLimit.ItemIndex;
     if LimitIndex=0 then
     begin
          PawnEndDate:=InputDate+DayObject.GetDays(BeginMonth,BeginDay) div 2;
          TimeLimit:=0.5;
     end
     else
     begin
          TimeLimit:=LimitIndex;
          PawnEndDate:=InputDate+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.Text:=inttostr(Year);
     txtPawnEndMonth.Text:=inttostr(Month);
     txtPawnEndDay.Text:=inttostr(Day);

     //计算总额
     //txtPawnBeginYearEnter(Sender);
     GetTotalMoney;
     //计算利息及综合费用
     txtMonthRateExit(Sender);
     txtFeeRateExit(Sender);
     //txtPawnEndDayExit(Sender);
     
end;

procedure TfrmPawnInput.txtPawnNameKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -