📄 archives_class.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 + -