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

📄 archives_class.pas

📁 适合新手 绝对精品 档案管理系统 本人花钱购买来的源代
💻 PAS
字号:
unit Archives_Class;     //MDIChild档案分类管理窗体项目

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Inherit, ExtCtrls, StdCtrls, Mask, DBCtrls, Buttons, ComCtrls,
  ImgList, ToolWin, Menus, Grids, DBGrids;

type
  TF_Class = class(TF_Inherit)
    TV_Class: TTreeView;
    Splitter1: TSplitter;
    PopupMenu1: TPopupMenu;
    P_Add: TMenuItem;
    P_Modify: TMenuItem;
    P_Delete: TMenuItem;
    Panel1: TPanel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    SButton1: TSpeedButton;
    SButton2: TSpeedButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    procedure FormCreate(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton6Click(Sender: TObject);
    procedure ToolButton12Click(Sender: TObject);
    procedure TV_ClassDblClick(Sender: TObject);
    procedure SButton1Click(Sender: TObject);
    procedure SButton2Click(Sender: TObject);
    procedure cmdaddClick(Sender: TObject);
    procedure cmdmodiClick(Sender: TObject);
    procedure cmddelClick(Sender: TObject);
    procedure cmdstoreClick(Sender: TObject);
    procedure cmdquitClick(Sender: TObject);
    procedure cmdfirstClick(Sender: TObject);
    procedure cmdlastClick(Sender: TObject);
    procedure cmdpreClick(Sender: TObject);
    procedure cmdnextClick(Sender: TObject);
  private
    { Private declarations }
    procedure  DS_State(State:boolean);  //用户自定义控制数据感知控件是否可编辑函数
  public
    { Public declarations }
  end;

var
  F_Class: TF_Class;

implementation
uses  DataModule,MonthCalendar, Borrow_Return;  //引用数据模块、日期选择项目
{$R *.dfm}

procedure TF_Class.FormCreate(Sender: TObject);
var    {*****档案分类管理窗体创建事件*****}
    root,node:TTreeNode;    //定义二个存放节点元件TTreeNode
    str:AnsiString;
    i:integer;
begin
  inherited;
    DM.AT_Class.Filtered := false; //关闭档案分类资料信息表过滤器
    TV_Class.Items.Clear;  //清空TreeView所有节点
    root := TTreeNode.Create(TV_Class.Items); //声明节点元件指标变量
    node := TTreeNode.Create(TV_Class.Items);
    root := TV_Class.Items.AddChild(NiL,'档案分类'); //增加档案分类父节点
    DM.AT_Class.First;       //设定当前活动记录为第一条记录
    for i:=0 to DM.AT_Class.RecordCount-1 do     //填写档案分类信息表中所有记录的分类名字段到TreeView
      begin
      str := TrimRight(DM.AT_Class['Class_Name']);             //取得档案分类信息表中分类名字段值
      node := TV_Class.Items.AddChild(root,str);      //增加一个子节点
      DM.AT_Class.Next;        //当前活动记录下移一条记录
      end;
    root.Expand(true);         //展开档案分类父结点
end;

procedure  TF_Class.DS_State(State:boolean);
begin  {*****用户自定义控制数据感知控件是否可编辑函数*****}
    if State then  //State为true时,数据感知控件不可编辑
      begin
      DBEdit1.ReadOnly := true; DBEdit2.ReadOnly := true;
      DBEdit3.ReadOnly := true; DBEdit4.ReadOnly := true;
      DBEdit5.ReadOnly := true; DBEdit6.ReadOnly := true;
      DBEdit7.ReadOnly := true; DBEdit8.ReadOnly := true;
      SButton1.Enabled := false; SButton2.Enabled := false;
      end
    else       //State为false时,数据感知控件可编辑
      begin
      DBEdit1.ReadOnly := false; DBEdit2.ReadOnly := false;
      DBEdit3.ReadOnly := false; DBEdit4.ReadOnly := false;
      DBEdit5.ReadOnly := false; DBEdit6.ReadOnly := false;
      DBEdit7.ReadOnly := false; DBEdit8.ReadOnly := false;
      SButton1.Enabled := true; SButton2.Enabled := true;
      end;
end;

procedure TF_Class.ToolButton1Click(Sender: TObject);
var    {*****增加工具条快捷按钮单击事件*****}
    Serial:integer;
begin
  inherited;
    DS_State(false);         //数据感知控件可编辑
    DM.AT_Count.First;   //移动记录号计数数据表当前活动记录是第一条记录
    DM.AT_Count.MoveBy(2); //当前活动记录下移到第三条记录
    Serial := DM.AT_Count['Count_Value']; //取得档案分类序号值
    DM.AT_Class.Append;  //档案分类信息表处于追加记录状态
    DM.AT_Class['Class_ID'] := Serial+1;  //显示当前记录序号
end;

procedure TF_Class.ToolButton2Click(Sender: TObject);
begin  {*****编辑工具条快捷按钮单击事件*****}
  inherited;
    DS_State(false);         //数据感知控件可编辑
    DM.AT_Class.Edit;    //档案分类信息表处于编辑记录状态
end;

procedure TF_Class.ToolButton3Click(Sender: TObject);
begin  {*****删除工具条快捷按钮单击事件*****}
  inherited;
    DM.AT_Class.Delete;  //删除一条档案分类信息表记录
    FormCreate(Sender);        //刷新TreeView节点值
end;

procedure TF_Class.ToolButton4Click(Sender: TObject);
begin   {*****提交工具条快捷按钮单击事件*****}
  inherited;
    DS_State(true);          //数据感知控件不可编辑
    DM.AT_Class.Post;    //提交对档案分类信息表数据集的操作,操作生效
    FormCreate(Sender);        //刷新TreeView节点值
    DM.AT_Count.First;   //移动记录号计数数据表当前活动记录是第一条记录
    DM.AT_Count.MoveBy(2); //当前活动记录下移到第三条记录
    DM.AT_Count.Edit;    //记录号计数数据表处于编辑状态
    DM.AT_Count['Count_Value'] := StrToInt(DBEdit1.Text); //赋分类号字段为分类序列号值
    DM.AT_Count.Post;    //提交分类序列号编辑操作
end;

procedure TF_Class.ToolButton6Click(Sender: TObject);
begin  {*****取消工具条快捷按钮单击事件*****}
  inherited;
    DS_State(true);          //数据感知控件不可编辑
    DM.AT_Class.Cancel;  //取消对档案分类信息表数据集的操作,回到前一后提交的数据集
end;

procedure TF_Class.ToolButton12Click(Sender: TObject);
begin  {*****关闭工具条快捷按钮单击事件*****}
  inherited;
    F_Class.Close;        //关闭档案分类管理窗口
end;

procedure TF_Class.TV_ClassDblClick(Sender: TObject);
begin  {*****TreeView控件对象双击事件*****}
  inherited;
    if TV_Class.Selected.Text<>'档案分类' then
      begin
      DM.AT_Class.Filtered := false;  //关闭过滤器
      DM.AT_Class.Filter := 'Class_Name = '''+TV_Class.Selected.Text+'''';      //设置过滤值
      DM.AT_Class.Filtered := true;   //启动过滤器
      end;
end;

procedure TF_Class.SButton1Click(Sender: TObject);
begin  {*****建档日期选择按钮SButton1单击事件*****}
  inherited;
    F_Date.Left := F_Class.Left+SButton1.Left; //控件日期选择窗口显示位置
    F_Date.Top := F_Class.Top+SButton1.Top;
    F_Date.ShowModal;   //弹出日期选择窗口
    if F_Date.ModalResult = mrOk then  //用户确定选择的日期
      DM.AT_Class['Archives_SDate'] := F_Date.MC_Date.Date; //选择的日期赋建档日期字段
end;

procedure TF_Class.SButton2Click(Sender: TObject);
begin  {*****修改日期选择按钮SButton2单击事件*****}
  inherited;
    F_Date.Left := F_Class.Left+SButton2.Left;  //控件日期选择窗口显示位置
    F_Date.Top := F_Class.Top+SButton2.Top;
    F_Date.ShowModal;   //弹出日期选择窗口
    if F_Date.ModalResult = mrOk then   //用户确定选择的日期
      DM.AT_Class['Archives_MDate'] := F_Date.MC_Date.Date; //选择的日期赋修改日期字段
end;

procedure TF_Class.cmdaddClick(Sender: TObject);
var    {*****增加按钮单击事件*****}
    Serial:integer;
begin
  inherited;
    DS_State(false);         //数据感知控件可编辑
    DM.AT_Count.First;   //移动记录号计数数据表当前活动记录是第一条记录
    DM.AT_Count.MoveBy(2); //当前活动记录下移到第三条记录
    Serial := DM.AT_Count['Count_Value']; //取得档案分类序号值
    DM.AT_Class.Append;  //档案分类信息表处于追加记录状态
    DM.AT_Class['Class_ID'] := Serial+1;  //显示当前记录序号
end;

procedure TF_Class.cmdmodiClick(Sender: TObject);
begin  {*****修改按钮单击事件*****}
  inherited;
    DS_State(false);         //数据感知控件可编辑
    DM.AT_Class.Edit;    //档案分类信息表处于编辑记录状态
end;

procedure TF_Class.cmddelClick(Sender: TObject);
begin  {*****删除按钮单击事件*****}
  inherited;
    DM.AT_Class.Delete;  //删除一条档案分类信息表记录
    FormCreate(Sender);        //刷新TreeView节点值
end;

procedure TF_Class.cmdstoreClick(Sender: TObject);
begin   {*****保存按钮单击事件*****}
  inherited;
    DS_State(true);          //数据感知控件不可编辑
    DM.AT_Class.Post;    //提交对档案分类信息表数据集的操作,操作生效
    FormCreate(Sender);        //刷新TreeView节点值
    DM.AT_Count.First;   //移动记录号计数数据表当前活动记录是第一条记录
    DM.AT_Count.MoveBy(2); //当前活动记录下移到第三条记录
    DM.AT_Count.Edit;    //记录号计数数据表处于编辑状态
    DM.AT_Count['Count_Value'] := StrToInt(DBEdit1.Text); //赋分类号字段为分类序列号值
    DM.AT_Count.Post;    //提交分类序列号编辑操作
end;

procedure TF_Class.cmdquitClick(Sender: TObject);
begin  {*****取消或关闭按钮单击事件*****}
 // inherited;
  if cmdquit.Caption='取消' then
      begin
       DS_State(true);          //数据感知控件不可编辑
       DM.AT_Class.Cancel;  //取消对档案分类信息表数据集的操作,回到前一后提交的数据集
       inherited;
      end
  else
     F_Class.Close;        //关闭档案分类管理窗口
end;

procedure TF_Class.cmdfirstClick(Sender: TObject);
begin
  inherited;
  DM.AT_Class.First;
end;

procedure TF_Class.cmdlastClick(Sender: TObject);
begin
  inherited;
  DM.AT_Class.Last;
end;

procedure TF_Class.cmdpreClick(Sender: TObject);
begin
  inherited;
  DM.AT_Class.MoveBy(-1);
  if DM.AT_Class.Bof then
    begin
      showmessage('这是第一条记录');
    end;
end;

procedure TF_Class.cmdnextClick(Sender: TObject);
begin
  inherited;
  DM.AT_Class.MoveBy(1);
   if DM.AT_Class.Eof  then
    begin
      showmessage('这是最后一条记录');
    end;
end;

end.

⌨️ 快捷键说明

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