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

📄 repawninput.pas

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