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

📄 pawnmodify.pas

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

interface

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

type
  TfrmPawnModify = class(TForm)
    Label2: TLabel;
    txtPawnCode: TEdit;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    txtName: 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;
    Label1: TLabel;
    cmdQuery: TButton;
    txtCerCode: TEdit;
    txtAddress: TEdit;
    txtPhone: TEdit;
    txtZip: TEdit;
    txtLinkman: TEdit;
    Label10: TLabel;
    cmbCerName: TComboBox;
    staModify: TStaticText;
    Label11: TLabel;
    txtRate: TEdit;
    txtSysYear: TSpinEdit;
    Label14: TLabel;
    txtSysMonth: TSpinEdit;
    Label17: TLabel;
    txtSysDay: TSpinEdit;
    Label18: TLabel;
    Label12: TLabel;
    cmbPawnLimit: TComboBox;
    GroupBox3: TGroupBox;
    Label32: TLabel;
    Label33: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    Label38: TLabel;
    Label39: TLabel;
    txtPawnName: TDBEdit;
    txtPawnSpec: TDBEdit;
    txtPawnNumber: TDBEdit;
    txtLineNum: TDBEdit;
    txtAppriseValue: TDBEdit;
    txtDiscountRate: TDBEdit;
    txtPawnMoney: TDBEdit;
    cmbPawnCategory: TDBComboBox;
    cmdDel: TButton;
    cmdAdd: TButton;
    txtPawnBeginYear: TSpinEdit;
    txtPawnBeginMonth: TSpinEdit;
    txtPawnBeginDay: TSpinEdit;
    txtPawnEndYear: TSpinEdit;
    txtPawnEndMonth: TSpinEdit;
    txtPawnEndDay: TSpinEdit;
    procedure cmdQueryClick(Sender: TObject);
    procedure cmdExitClick(Sender: TObject);
    procedure txtPawnCodeKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    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 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 FormShow(Sender: TObject);
    procedure cmdCancelClick(Sender: TObject);
    //procedure dbgDetailColExit(Sender: TObject);
    procedure cmdSaveClick(Sender: TObject);
    //procedure txtPawnBeginDayKeyUp(Sender: TObject; var Key: Word;
      //Shift: TShiftState);
    //procedure txtPawnBeginMonthKeyUp(Sender: TObject; var Key: Word;
      //Shift: TShiftState);
    //procedure txtPawnBeginYearExit(Sender: TObject);
    //procedure txtPawnEndDayKeyUp(Sender: TObject; var Key: Word;
      //Shift: TShiftState);
    //procedure txtPawnEndMonthKeyUp(Sender: TObject; var Key: Word;
      //Shift: TShiftState);
    //procedure txtPawnEndYearKeyUp(Sender: TObject; var Key: Word;
      //Shift: TShiftState);
    //procedure txtPawnBeginYearKeyUp(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    //procedure txtPawnEndYearExit(Sender: TObject);
    //procedure txtPawnBeginYearEnter(Sender: TObject);
    //procedure txtPawnEndYearEnter(Sender: TObject);
    //procedure txtPawnEndDayExit(Sender: TObject);
    procedure txtFeeRateExit(Sender: TObject);
    //procedure dbgDetailColEnter(Sender: TObject);
    //procedure dbgDetailExit(Sender: TObject);
    procedure txtMonthRateExit(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 txtAppriseValueKeyPress(Sender: TObject; var Key: Char);
    procedure txtDiscountRateKeyPress(Sender: TObject; var Key: Char);
    procedure txtDiscountRateKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure txtPawnMoneyEnter(Sender: TObject);
    procedure txtPawnMoneyKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure dbgDetailCellClick(Column: TColumn);
    procedure cmbPawnLimitClick(Sender: TObject);
    procedure txtSysYearChange(Sender: TObject);
    procedure txtSysMonthChange(Sender: TObject);
    procedure txtSysDayChange(Sender: TObject);
    //procedure FormKeyDown(Sender: TObject; var Key: Word;
    //  Shift: TShiftState);
    procedure txtPawnNameEnter(Sender: TObject);
    procedure txtPawnSpecEnter(Sender: TObject);
    procedure txtPawnNumberEnter(Sender: TObject);
    procedure txtAppriseValueEnter(Sender: TObject);
    procedure txtDiscountRateEnter(Sender: TObject);
    procedure cmbPawnCategoryEnter(Sender: TObject);
    procedure cmdDelClick(Sender: TObject);
    procedure cmdAddClick(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);
  private
    { Private declarations }
    procedure ClearForm;
    procedure IniDBCombox;
    procedure IniControlBox;
    procedure IniCategoryInDg;
    procedure IniPawnLimit;
    procedure GetTotalMoney;
    procedure ChangePawnEndDate(ChangeYear,ChangeMonth,ChangeDay:integer);
  public
    { Public declarations }
  end;

var
  frmPawnModify: TfrmPawnModify;
  QueryPawnCode:string;
  HeadBookMark:TBookMark;
  ModifyMark:Boolean;
implementation
uses PawnQuery, dmPawn, Msg, PawnInput, GlobalVar;
{$R *.DFM}
var
   CertiEnterTimes:Integer; //证件名称选择时用到
   TotalPawnMoney:Double;  //计算典当总额
   TimeLimit:Single; //计算典当期限
   //selValue:variant; //当焦点进入某一栏时的值
   //selMark:Boolean; //同时标记一下
   DetailBookMark:TBookMark;  //标记显示在文本框中的记录的书签
   DBookMarkExist:Boolean;    //标记细表的书签是否未被释放
   
   PawnLimitMark:Boolean;     //判断是否超出典当期限规定值
   ModifyTableOpenMark:Boolean; //判断tblModifyDetail是否打开

   DataModifyMark:Boolean;      //判断数据是否被修改的标志

   tempName:string;
   tempCategory :string;
   tempSpec:string;
   tempNumber:integer;
   tempValue:Double;
   tempDiscount:Double;
   tempMoney:Double;

   //记录被修改的记录的行号
   LineNumberArray: array of integer;
   MaxIndex:integer;
   ArrayIndex:integer;
   //是否添加一新记录标记
   AddMark:Boolean;

//如果典当起始日期被改变,典当终到日期应根据选择的典当期限作相应的改变
procedure TfrmPawnModify.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 TfrmPawnModify.GetTotalMoney;
begin
     TotalPawnMoney:=0;
     with dmPawnFrm do
     begin
          tblModifyDetail.First;
          while not tblModifyDetail.Eof  do
          begin
               TotalPawnMoney:=TotalPawnMoney+tblModifyDetail.FieldByName('PawnMoney').AsFloat;
               tblModifyDetail.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 TfrmPawnModify.IniPawnLimit;
begin
      with cmbPawnLimit.Items  do
     begin
          Add('半个月');
          Add('一个月');
          Add('二个月');
          Add('三个月');

⌨️ 快捷键说明

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