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

📄 repawninput.pas

📁 一个典当行的业务管理系统程序
💻 PAS
📖 第 1 页 / 共 4 页
字号:
unit RepawnInput;

interface

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

type
  TfrmRePawnInput = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    txtPawnCode: TEdit;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    txtName: TEdit;
    txtAddress: TEdit;
    txtPhone: TEdit;
    txtZip: TEdit;
    txtCerCode: TEdit;
    txtLinkman: TEdit;
    GroupBox2: TGroupBox;
    dbgDetail: TDBGrid;
    Panel2: TPanel;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Panel1: TPanel;
    Label15: TLabel;
    Label16: TLabel;
    Label19: TLabel;
    Label20: TLabel;
    Label21: TLabel;
    txtMonthRate: TEdit;
    txtFeeRate: TEdit;
    txtTotalPawnMoney: TEdit;
    txtServiceFee: TEdit;
    txtRealPayMoney: TEdit;
    cmdSave: TButton;
    cmdCancel: TButton;
    cmdExit: TButton;
    Label10: TLabel;
    txtRepawnCode: TEdit;
    txtCerName: TEdit;
    Label11: TLabel;
    txtRate: TEdit;
    Label12: TLabel;
    staRepawn: TStaticText;
    Label13: TLabel;
    cmbPawnLimit: TComboBox;
    cmdPrint: TButton;
    txtSysYear: TSpinEdit;
    Label17: TLabel;
    txtSysMonth: TSpinEdit;
    Label18: TLabel;
    txtSysDay: TSpinEdit;
    Label32: TLabel;
    txtPawnBeginYear: TSpinEdit;
    txtPawnBeginMonth: TSpinEdit;
    txtPawnBeginDay: TSpinEdit;
    txtPawnEndYear: TSpinEdit;
    txtPawnEndMonth: TSpinEdit;
    txtPawnEndDay: TSpinEdit;
    procedure cmdExitClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure txtPawnCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtRepawnCodeKeyDown(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 cmdCancelClick(Sender: TObject);
    //procedure dbgDetailColExit(Sender: TObject);
    procedure txtMonthRateKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtFeeRateKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    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 cmdSaveClick(Sender: TObject);
    //procedure dbgDetailExit(Sender: TObject);
    //procedure txtTotalPawnMoneyEnter(Sender: TObject);
    procedure txtServiceFeeEnter(Sender: TObject);
    //procedure dbgDetailColEnter(Sender: TObject);
    //procedure dbgDetailEnter(Sender: TObject);
    procedure txtPawnEndDayExit(Sender: TObject);
    procedure txtMonthRateExit(Sender: TObject);
    procedure txtFeeRateExit(Sender: TObject);
    procedure cmbPawnLimitKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure cmbPawnLimitExit(Sender: TObject);
    procedure cmbPawnLimitClick(Sender: TObject);
    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 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 cmdPrintClick(Sender: TObject);
    
  private
    { Private declarations }
    procedure IniCategoryInDg ;
    procedure ClearForm;
    procedure IniPawnLimit;
    procedure ChangePawnEndDate(ChangeYear,ChangeMonth,ChangeDay:integer);
  public
    { Public declarations }
  end;

var
  frmRePawnInput: TfrmRePawnInput;
  MonthRate,BuyMoney:Double;
  TimeOutServiceMoney:Double;
implementation

uses dmPawn, PawnInput, Msg, Login, Pay, Ransom, Pawn, GlobalVar,
  PrintTicket;

var
   TimeLimit:Single; //计算典当期限相差的月数
   TotalPawnMoney:Double;  //计算典当总额
   BookMark:TBookMark;     //取得查找到的原当票的书签
   DayLimit:Single;        //计算典当期限相差的月数
   CertiEnterTimes:integer;
   PawnLimitMark:Boolean;     //判断是否超出典当期限规定值
   RePawnBeginDate:TDateTime; //原当的典当终到日期成为续当的起始日期供选择典当期限使用
{$R *.DFM}

//如果典当起始日期被改变,典当终到日期应根据选择的典当期限作相应的改变
procedure TfrmRePawnInput.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 TfrmRePawnInput.IniPawnLimit;

begin
     with cmbPawnLimit.Items  do
     begin
           Add('半个月');
          Add('一个月');
          Add('二个月');
          Add('三个月');
          Add('四个月');
          Add('五个月');
          Add('六个月');
          Add('七个月');
          Add('八个月');
          Add('九个月');
          Add('十个月');
          Add('十一个月');
          Add('十二个月');

     end;
     cmbPawnLimit.ItemIndex :=1;
end;

procedure TfrmRePawnInput.ClearForm;
var
   Present: TDateTime;
   Year, Month, Day: Word;
begin
     Present:= Now;
     DecodeDate(Present, Year, Month, Day);
     txtPawnBeginYear.Value:=Year;
     txtPawnBeginMonth.Value:=Month;
     txtPawnBeginDay.Value:=Day;
     staRepawn.Caption:='';
    self.txtRepawnCode.text:='';
    cmbPawnLimit.ItemIndex:=1;
   
    txtName.Text :='';
    txtCerName.Text :='';
    txtCerCode.Text :='';
    txtPhone.Text :='' ;
    txtZip.Text:='' ;
    txtLinkman.Text :='';
    txtAddress.Text :='' ;
    txtmonthrate.text:='';
    txtfeerate.text:='';
    txttotalpawnmoney.text:='';
    txtservicefee.text:='';
    txtrealpaymoney.text:='';
    
    txtpawnendyear.text:='';
    txtpawnendmonth.text:='';
    txtpawnendday.text:='';
    txtRate.Text:='';
    dmPawnFrm.dqDetailUn.Close;
    //dmPawnFrm.tblDetailTemp.Close;
    //dmPawnFrm.tblDetailTemp.EmptyTable ;
    //dmPawnFrm.tblDetailTemp.Open;
    //dmPawn.LineNo :=0;
    txtRepawncode.setfocus;
end;

procedure TfrmRePawnInput.IniCategoryInDg ;
begin
     with dbgDetail.Columns[1].picklist do
     begin
          with dmPawnFrm do
          begin
               tblCategory.First ;
               while not tblCategory.Eof do
               begin
                    Add(tblCategory.FieldByName('Name').asstring);
                    tblCategory.Next ;
               end;
          end;
     end;
end;
procedure TfrmRePawnInput.cmdExitClick(Sender: TObject);
begin
     with dmPawnFrm do
          begin
               tblHead.close;
               tblDetail.close;
               tblStockpile.Close;
               tblDetailTemp.Close;
               tblDetailTemp.EmptyTable ;
               tblCertificate .close;
               tblCategory.close;
               dqDetailUn.Close;
          end;
     close;
end;

procedure TfrmRePawnInput.FormShow(Sender: TObject);
var
   Present: TDateTime;
   Year, Month, Day: Word;
   NewCode:string;
begin

      //取出数据库中当票号最大的编号
      GlobalVar.MaxTicketCode:=frmMain.MaxCode;
      //将数据库中最大的当票编号加1成为新的当票编号
      NewCode:=frmMain.CodePlus(GlobalVar.MaxTicketCode);
      txtPawnCode.Text:=NewCode;

      Present:= Now;
      DecodeDate(Present, Year, Month, Day);
      txtSysYear.Value:=Year;
      txtSysMonth.Value:=Month;
      txtSysDay.Value:=Day;
      //txtsysdate.text := IntToStr(Year) + '年'
      //+ IntToStr(Month) + '月' + IntToStr(Day)+'日';
      txtPawnBeginYear.Value:=Year;
      txtPawnBeginMonth.Value:=Month;
      txtPawnBeginDay.Value:=Day;
      with dmPawnFrm do
      begin
           tblHead.Open;
           tblDetail.Open;
           tblStockpile.Open;
           tblDetailTemp.close;
           //clear tmpdetail tbl
           tblDetailTemp.EmptyTable ;
           tblDetailTemp.open;
           tblCertificate.open;
           tblCategory.Open;
           dqDetailUn.Close;
      end;
      IniCategoryInDg;
      IniPawnLimit;
end;

procedure TfrmRePawnInput.txtPawnCodeKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
     if key=VK_RETURN then
     begin
          if txtPawnCode.text=''then
          begin
             messagedlg(Msg.MsgPawnCodeInput,mtWarning,[mbYes],0);
             txtPawnCode.SetFocus ;
             exit;
          end
          else
          begin
               with dmPawnFrm do
               begin
                    tblHead.Open;
                    tblHead.IndexFieldNames:='PawnTicketCode';
                    tblHead.SetKey ;
                    tblHead.FieldByName('PawnTicketCode').AsString:=trim(txtPawnCode.text);
                    if tblHead.GotoKey then
                    begin
                         //ClearForm;
                         messagedlg(Msg.MsgPawnCodeExist,mtInformation,[mbYes],0);
                         txtPawnCode.SetFocus ;

⌨️ 快捷键说明

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