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

📄 datamodule.~pas

📁 适合新手 绝对精品 档案管理系统 本人花钱购买来的源代
💻 ~PAS
字号:
unit DataModule;      //数据模块窗体项目

interface

uses
  SysUtils, Classes, DB, ADODB;

type
  TDM = class(TDataModule)
    ADOConnection: TADOConnection;
    AQ_Back_Restore: TADOQuery;
    AT_Class: TADOTable;
    AT_ClassClass_ID: TIntegerField;
    AT_ClassClass_Name: TStringField;
    AT_ClassClass_Branch: TStringField;
    AT_ClassClass_Memo: TStringField;
    AT_ClassArchives_SPerson: TStringField;
    AT_ClassArchives_SDate: TDateTimeField;
    AT_ClassArchives_MPerson: TStringField;
    AT_ClassArchives_MDate: TDateTimeField;
    DS_Class: TDataSource;
    AT_Tank: TADOTable;
    AT_TankTank_ID: TIntegerField;
    AT_TankTank_Memo: TStringField;
    AT_TankTank_Name: TStringField;
    DS_Tank: TDataSource;
    AQ_Manage: TADOQuery;
    AQ_ManageContent_State: TStringField;
    AQ_ManageContent_ID: TIntegerField;
    AQ_ManageContent_Name: TStringField;
    AQ_ManageContent_Person: TStringField;
    AQ_ManageContent_Num: TIntegerField;
    AQ_ManageContent_Tank: TIntegerField;
    AQ_ManageContent_Class: TStringField;
    AQ_ManageContent_SPerson: TStringField;
    AQ_ManageContent_STime: TDateTimeField;
    AQ_ManageContent_MPerson: TStringField;
    AQ_ManageContent_MTime: TDateTimeField;
    AQ_ManageContent_TNum: TIntegerField;
    AQ_ManageContent_PNum: TIntegerField;
    AQ_ManageContent_ANum: TIntegerField;
    DS_Manage: TDataSource;
    AT_Borrow: TADOTable;
    AT_BorrowBorrow_ID: TIntegerField;
    AT_BorrowBorrow_Name: TStringField;
    AT_BorrowBorrow_Person: TStringField;
    AT_BorrowBorrow_Date: TDateTimeField;
    AT_BorrowBorrow_Memo: TStringField;
    DS_Borrow: TDataSource;
    AT_Return: TADOTable;
    AT_ReturnReturn_ID: TIntegerField;
    AT_ReturnReturn_Name: TStringField;
    AT_ReturnReturn_Person: TStringField;
    AT_ReturnReturn_Date: TDateTimeField;
    AT_ReturnReturn_Memo: TStringField;
    DS_Return: TDataSource;
    AT_Count: TADOTable;
    AT_CountCount_Name: TStringField;
    AT_CountCount_Value: TIntegerField;
    DS_Count: TDataSource;
    procedure DataModuleCreate(Sender: TObject);
    procedure DS_ClassStateChange(Sender: TObject);
    procedure DS_ClassDataChange(Sender: TObject; Field: TField);
    procedure DS_TankStateChange(Sender: TObject);
    procedure DS_TankDataChange(Sender: TObject; Field: TField);
    procedure DS_BorrowStateChange(Sender: TObject);
    procedure DS_BorrowDataChange(Sender: TObject; Field: TField);
    procedure DS_ReturnStateChange(Sender: TObject);
    procedure DS_ReturnDataChange(Sender: TObject; Field: TField);
    procedure DS_ManageStateChange(Sender: TObject);
    procedure DS_ManageDataChange(Sender: TObject; Field: TField);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DM: TDM;

implementation
uses  Archives_Class,Archives_Tank,Archives_Manage,Borrow_Return,Archives_Config,IniFiles,Windows,Forms;
//引用档案分类管理、档案柜管理、档案管理、档案借用和归还管理、数据库服务器配置项目
{$R *.dfm}

procedure TDM.DataModuleCreate(Sender: TObject);
var     {*****数据模块窗体创建事件*****}
    ini,iniW:TIniFile;
    State:boolean;
    CString:AnsiString;
    str,str1:AnsiString;
begin
    //打开INI文件,如果不存在则创建与应用程序同名,后缀名为.INI的ini配置文件
    ini := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI'));
    State := ini.ReadBool('Database','Connection',false); //读取数据库连接是否成功标志,第一次读或者此项不存在时则返回默认值false赋State变量
    if not State then  //数据库没有连接成功
      try              //捕捉异常
        F_Config := TF_Config.Create(Application);  //动态创建数据库服务器配置窗体
        F_Config.ShowModal;                         //显示数据库服务器配置窗口
      except          //抛出异常
        on e:Exception do
        Application.ShowException(e);               //弹出异常对话框
      end;
    CString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=';  //字符串CString赋值
    str := ini.ReadString('Database','Initial Catalog','Archives'); //从配置文件读数据库名
    CString := CString+str;                //追加从配置文件读入的数据库名字符串
    str1 := ini.ReadString('Database','Data Source','FLYYCS\\YCS');  //从配置文件读数据库服务器名
    CString := CString+';Data Source=';    //追加字符串到CString
    CString := CString+str1;               //追加从配置文件读入的数据库服务器名字符串
    DM.ADOConnection.Connected := false;
    DM.ADOConnection.ConnectionString := CString;  //数据库连接属性字符串赋新值
    try            //捕捉异常
      DM.ADOConnection.Connected := true;  //启动与数据库服务器的连接
      DM.AT_Class.Active := true;          //激活各个数据表与服务器的连接
      DM.AT_Tank.Active := true;
      DM.AT_Borrow.Active := true;
      DM.AT_Return.Active := true;
      DM.AT_Count.Active := true;
      DM.AQ_Manage.Active := true;
    except        //抛出异常
      Application.MessageBox('与数据库服务器连接未成功,请重新配置','警告对话框',MB_OK);
    end;
    //打开INI文件,如果不存在则创建与应用程序同名,后缀名为.INI的ini配置文件
    iniW := TIniFile.Create(ChangeFileExt(Application.ExeName,'.INI'));
    State := DM.ADOConnection.Connected;            //取得数据库连接是否成功标志值
    iniW.WriteBool('Database','Connection',State);  //将数据库连接是否成功标志值写入配置文件
end;

procedure TDM.DS_ClassStateChange(Sender: TObject);
begin  {*****档案分类管理数据源状态改变事件*****}
    //当档案分类资料数据源的状态处于编辑态或插入态时,提交和取消按钮处于使能态
 //   F_Class.ToolButton4.Enabled := (DS_Class.State=dsEdit)or(DS_Class.State=dsInsert);
 //   F_Class.ToolButton6.Enabled :=F_Class.ToolButton4.Enabled;
end;

procedure TDM.DS_ClassDataChange(Sender: TObject; Field: TField);
begin  {*****档案分类资料数据源数据改变事件*****}
    //档案分类资料数据集中至少有一条记录时,档案分类管理数据源删除按钮处于使能态
 //   F_Class.ToolButton3.Enabled := (AT_Class.RecordCount>0);
end;

procedure TDM.DS_TankStateChange(Sender: TObject);
begin  {*****档案柜资料数据源状态改变事件*****}
    //当档案柜资料数据源的状态处于编辑态或插入态时,提交和取消按钮处于使能态
 //   F_Tank.ToolButton4.Enabled := (DS_Tank.State=dsEdit)or(DS_Tank.State=dsInsert);
  //  F_Tank.ToolButton6.Enabled :=F_Tank.ToolButton4.Enabled;
end;

procedure TDM.DS_TankDataChange(Sender: TObject; Field: TField);
begin  {*****档案柜资料数据源数据改变事件*****}
    //档案柜资料数据集中至少有一条记录时,档案分类管理数据源删除按钮处于使能态
 //   F_Tank.ToolButton3.Enabled := (AT_Tank.RecordCount>0);
end;

procedure TDM.DS_BorrowStateChange(Sender: TObject);
begin  {*****档案借用数据源状态改变事件*****}
    //当档案借用数据源的状态处于编辑态或插入态时,提交和取消按钮处于使能态
 //   F_BReturn.ToolButton4.Enabled := (DS_Borrow.State=dsEdit)or(DS_Borrow.State=dsInsert);
 //   F_BReturn.ToolButton6.Enabled := F_BReturn.ToolButton4.Enabled;
end;

procedure TDM.DS_BorrowDataChange(Sender: TObject; Field: TField);
begin  {*****档案借用数据源数据改变事件*****}
    //档案借用数据集中至少有一条记录时,档案借用数据源删除按钮处于使能态
 //   F_BReturn.ToolButton3.Enabled := (AT_Borrow.RecordCount>0);
end;

procedure TDM.DS_ReturnStateChange(Sender: TObject);
begin  {*****档案归还数据源状态改变事件*****}
    //当档案归还数据源的状态处于编辑态或插入态时,提交和取消按钮处于使能态
  //  F_BReturn.ToolButton4.Enabled := (DS_Return.State=dsEdit)or(DS_Return.State=dsInsert);
  //  F_BReturn.ToolButton6.Enabled := F_BReturn.ToolButton4.Enabled;
end;

procedure TDM.DS_ReturnDataChange(Sender: TObject; Field: TField);
begin  {*****档案归还数据源数据改变事件*****}
    //档案归还数据集中至少有一条记录时,档案归还数据源删除按钮处于使能态
  //  F_BReturn.ToolButton3.Enabled := (AT_Return.RecordCount>0);
end;

procedure TDM.DS_ManageStateChange(Sender: TObject);
begin  {*****档案管理数据源状态改变事件*****}
    //当档案管理数据源的状态处于编辑态或插入态时,提交和取消按钮处于使能态
  //  F_Manage.ToolButton4.Enabled := (DS_Manage.State=dsEdit)or(DS_Manage.State=dsInsert);
  //  F_Manage.ToolButton6.Enabled := F_Manage.ToolButton4.Enabled;
end;

procedure TDM.DS_ManageDataChange(Sender: TObject; Field: TField);
begin  {*****档案管理数据源更新事件*****}
    //档案管理数据集中至少有一条记录时,档案分类管理数据源删除按钮处于使能态
 //   F_Manage.ToolButton3.Enabled := (AQ_Manage.RecordCount>0);
  //  F_Manage.ToolButton5.Enabled := not AQ_Manage.Bof;  //数据集中当前活动记录不是首记录时,最前条按钮处于使能态
  //  F_Manage.ToolButton7.Enabled := F_Manage.ToolButton5.Enabled;
  //  F_Manage.ToolButton9.Enabled := not AQ_Manage.Eof;  //数据集中当前活动记录不是未记录时,最后条按钮处于使能态
  //  F_Manage.ToolButton8.Enabled := F_Manage.ToolButton9.Enabled;
end;

end.

⌨️ 快捷键说明

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