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

📄 pawninput.~pa

📁 一个典当行的业务管理系统程序
💻 ~PA
📖 第 1 页 / 共 5 页
字号:
unit PawnInput;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, ExtCtrls, DBCtrls, Db, DBTables, Grids, DBGrids, Mask,
  Spin;

type
  TfrmPawnInput = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    cmdSave: TButton;
    cmdExit: TButton;
    Panel1: TPanel;
    Label15: TLabel;
    Label16: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    txtMonthRate: TEdit;
    txtFeeRate: TEdit;
    txtTotalPawnMoney: TEdit;
    txtServiceFee: TEdit;
    txtRealPayMoney: TEdit;
    Panel2: TPanel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    cmdCancel: TButton;
    GroupBox2: TGroupBox;
    dbgDetail: TDBGrid;
    txtPawnCode: TEdit;
    txtName: TEdit;
    txtCerCode: TEdit;
    txtPhone: TEdit;
    txtZip: TEdit;
    txtLinkman: TEdit;
    txtAddress: TEdit;
    cmbCerName: TComboBox;
    Label10: TLabel;
    txtRate: TEdit;
    Label11: TLabel;
    staStatus: TStaticText;
    Label12: TLabel;
    cmbPawnLimit: TComboBox;
    cmdPrint: TButton;
    txtSysYear: TSpinEdit;
    Label14: TLabel;
    txtSysMonth: TSpinEdit;
    Label17: TLabel;
    txtSysDay: TSpinEdit;
    Label18: TLabel;
    GroupBox3: TGroupBox;
    Label32: TLabel;
    Label33: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    Label38: TLabel;
    txtPawnName: TDBEdit;
    txtPawnSpec: TDBEdit;
    txtPawnNumber: TDBEdit;
    Label39: TLabel;
    txtLineNum: TDBEdit;
    txtAppriseValue: TDBEdit;
    txtDiscountRate: TDBEdit;
    txtPawnMoney: TDBEdit;
    cmbPawnCategory: TDBComboBox;
    txtPawnEndYear: TSpinEdit;
    txtPawnEndMonth: TSpinEdit;
    txtPawnEndDay: TSpinEdit;
    txtPawnBeginYear: TSpinEdit;
    txtPawnBeginMonth: TSpinEdit;
    txtPawnBeginDay: TSpinEdit;
    procedure cmdExitClick(Sender: TObject);
    procedure cmdCancelClick(Sender: TObject);
    procedure txtNameKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure cmbCerNameKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtCerCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPhoneKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtZipKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtLinkmanKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtAddressKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPawnCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    //procedure dbgDetailColEnter(Sender: TObject);
    procedure FormShow(Sender: TObject);
    //procedure dbgDetailColExit(Sender: TObject);
    procedure cmdSaveClick(Sender: TObject);
    procedure txtMonthRateKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtFeeRateKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    //procedure txtPawnBeginYearKeyUp(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    //procedure txtPawnBeginMonthKeyUp(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    //procedure txtPawnBeginDayKeyUp(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    //procedure txtPawnEndYearKeyUp(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    //procedure txtPawnEndMonthKeyUp(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    //procedure txtPawnEndDayKeyUp(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    //procedure txtPawnBeginYearExit(Sender: TObject);
    //procedure txtPawnEndYearExit(Sender: TObject);
    //procedure txtPawnBeginYearEnter(Sender: TObject);
    //procedure txtPawnEndYearEnter(Sender: TObject);
    //procedure txtFeeRateExit(Sender: TObject);
    //procedure txtPawnEndDayExit(Sender: TObject);
    procedure txtTotalPawnMoneyKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtServiceFeeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtRealPayMoneyKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    //procedure dbgDetailEnter(Sender: TObject);
    procedure txtServiceFeeEnter(Sender: TObject);
    procedure txtTotalPawnMoneyEnter(Sender: TObject);
    //procedure dbgDetailExit(Sender: TObject);
    procedure txtMonthRateExit(Sender: TObject);
    procedure txtFeeRateExit(Sender: TObject);
    //procedure txtPawnEndDayExit(Sender: TObject);
    procedure cmbPawnLimitKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure cmbPawnLimitExit(Sender: TObject);
    procedure txtPawnNameKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure cmbPawnCategoryKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPawnSpecKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPawnNumberKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtAppriseValueKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtDiscountRateKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPawnMoneyKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtAppriseValueKeyPress(Sender: TObject; var Key: Char);
    procedure txtDiscountRateKeyPress(Sender: TObject; var Key: Char);
    procedure txtPawnMoneyEnter(Sender: TObject);
    procedure cmbPawnLimitClick(Sender: TObject);
    //procedure txtSysYearChange(Sender: TObject);
    //procedure txtSysMonthChange(Sender: TObject);
    //procedure txtSysDayChange(Sender: TObject);
    procedure txtPawnEndYearKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPawnEndMonthKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPawnEndDayKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    //procedure txtPawnBeginYearKeyDown(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    //procedure txtPawnBeginMonthKeyDown(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    //procedure txtPawnBeginDayKeyDown(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    procedure txtSysYearKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtSysMonthKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtSysDayKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPawnBeginYearKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPawnBeginMonthKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPawnBeginDayKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure cmdPrintClick(Sender: TObject);
    //procedure cmbPawnLimitDropDown(Sender: TObject);

  private
    { Private declarations }
    procedure ClearForm;
    procedure IniDBCombox;
    procedure IniControlBox;
    procedure IniPawnLimit;
    procedure IniCategoryInDg;
    procedure GetTotalMoney;
    procedure ChangePawnEndDate(ChangeYear,ChangeMonth,ChangeDay:integer);
  public
    { Public declarations }

  end;

var
  frmPawnInput: TfrmPawnInput;
  gPawnTicketCode:string;
  gLineNum:Integer;

implementation

uses dmPawn,Login, Msg, NewPay, GlobalVar, Pawn;

var
   //selectCol,selectRow:integer;
   //selectField :TField;   //在网格中被选中的数据域
   CertiEnterTimes:Integer; //证件名称选择时用到(即组合框用键盘控制时用到)
   selAppriseValue:Double;//选中的估价
   selDiscountRate:Double; //选中的折当率
   TimeLimit:Single; //计算典当期限,从选择典当期限中得到的典当期限
   TotalPawnMoney:Double;  //计算典当总额
   PawnLimitMark:Boolean;  //判断是否超出典当期限规定值

{$R *.DFM}

//如果典当起始日期被改变,典当终到日期应根据选择的典当期限作相应的改变
procedure TfrmPawnInput.ChangePawnEndDate(ChangeYear,ChangeMonth,ChangeDay:integer);
var
   BeginDate:TDateTime;
   EndDate:TDateTime;
   AddDays:integer;
   DayObject:TDayClass;  //自定义的类 in GlobalVar
   Year,Month,Day:word;
begin
     if (txtPawnBeginYear.Text='')or
        (txtPawnBeginMonth.Text='')or
        (txtPawnBeginDay.Text='') then
     begin
          messagedlg(Msg.MsgBeginDateInfo,mtWarning,[mbYes],0);
          exit;
     end;
     if ChangeYear<>0 then
     begin
         //年被改变
         try
            BeginDate:=EncodeDate(ChangeYear,txtPawnBeginMonth.Value,
                               txtPawnBeginDay.Value);
         except
                messagedlg('此月没有31天!',mtWarning,[mbYes],0);
                exit;
          end;
     end;
     if ChangeMonth<>0 then
     begin
          //月被改变
          try
              BeginDate:=EncodeDate(txtPawnBeginYear.Value,ChangeMonth,
                               txtPawnBeginDay.Value);
          except
                messagedlg('此月没有31天!',mtWarning,[mbYes],0);
                exit;
          end;
     end;
     if ChangeDay<>0 then
     begin
          //日被改变
          try
             BeginDate:=EncodeDate(txtPawnBeginYear.Value,txtPawnBeginMonth.Value,
                               ChangeDay);
          except
                messagedlg('此月没有31天!',mtWarning,[mbYes],0);
                exit;
          end;
     end;
     //取出此月的天数
     DayObject:=TDayClass.Create;
     AddDays:=DayObject.GetDays(txtPawnBeginMonth.Value,txtPawnBeginDay.Value);
     //释放对象
     DayObject.Free;
     //取出典当期限
     if cmbPawnLimit.ItemIndex=0 then
     begin
          AddDays:=AddDays div 2;
     end
     else
     begin
          AddDays:=AddDays*cmbPawnLimit.ItemIndex;
     end;
     EndDate:=BeginDate+AddDays;
     DecodeDate(EndDate,Year,Month,Day);
     txtPawnEndYear.Value:=Year;
     txtPawnEndMonth.Value:=Month;
     txtPawnEndDay.Value:=Day;

end;
//计算典当总额
procedure TfrmPawnInput.GetTotalMoney;
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.cmdExitClick(Sender: TObject);
begin
     with dmPawn.dmPawnFrm do
     begin
          tblHead.close;
          tblDetail.close;
          //tblHeadHistory.Close;
          //tblDetailHistory.Close;
          tblDetailTemp.close;
          //clear tmpdetail tbl
          tblDetailTemp.EmptyTable ;
          tblCertificate.close;
          tblCategory.close;
     end;
     close;
end;

procedure  TfrmpawnInput. ClearForm;
//var
   //Year, Month, Day: Word;
begin
     staStatus.Caption:='';
     //txtpawncode.text:='';
     txtName.Text:='';
     txtPhone.Text:='';
     txtZip.Text:='';
     cmbCerName.ItemIndex:=0;
     cmbPawnLimit.ItemIndex:=1;
     txtCerCode.Text:='';
     txtLinkMan.Text:='';
     txtAddress.Text:='';
     txtmonthrate.text:='';
     txtfeerate.text:='';
     txttotalpawnmoney.text:='';
     txtservicefee.text:='';
     txtrealpaymoney.text:='';
     txtpawnbeginyear.Value:=txtSysYear.Value;
     txtpawnbeginmonth.Value:=txtSysMonth.Value;
     txtpawnbeginday.Value:=txtSysDay.Value;
     txtpawnendyear.Text:='';
     txtpawnendmonth.text:='';
     txtpawnendday.text:='';
     txtRate.Text:='';
     //写回系统日期
     //DecodeDate(Now, Year, Month, Day);
     txtSysYear.Value:=GlobalVar.SysYear;
     txtSysMonth.Value:=GlobalVar.SysMonth;
     txtSysDay.Value:=GlobalVar.SysDay;
     
     dmPawnFrm.tblDetailTemp.Close;
     dmPawnFrm.tblDetailTemp.EmptyTable ;
     dmPawnFrm.tblDetailTemp.Open;
     dmPawn.LineNo :=0;
     txtpawncode.setfocus;
end;
//初始化数据邦定的组合框
procedure TfrmPawnInput.IniDBCombox ;
begin
     with cmbCerName.Items do

⌨️ 快捷键说明

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