📄 bmen.~pas
字号:
unit bmen;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Buttons, ComCtrls, StdCtrls, jpeg, ExtCtrls;
type
TForm4 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
treeview1: TTreeView;
DataSource1: TDataSource;
ADODataSet1: TADODataSet;
ADODataSet2: TADODataSet;
DataSource2: TDataSource;
DataSource3: TDataSource;
ADODataSet3: TADODataSet;
DataSource4: TDataSource;
ADODataSet4: TADODataSet;
ADODataSet5: TADODataSet;
DataSource5: TDataSource;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Image7: TImage;
procedure FormShow(Sender: TObject);
procedure treeview1Click(Sender: TObject);
procedure Image2Click(Sender: TObject);
procedure Image4Click(Sender: TObject);
procedure Image6Click(Sender: TObject);
procedure Image3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image4MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image5MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image6MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image7MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
edit:string;
implementation
{$R *.dfm}
procedure TForm4.FormShow(Sender: TObject);
var
z:integer;
catnode1,catnode2,catnode3,catnode4, catnode5:ttreenode;
g,h,j,k:integer;
begin
adodataset1.Active:=false;
adodataset1.CommandText:='select distinct department1 from department order by department1 desc';
adodataset1.Active:=true;
adodataset2.Active:=false;
adodataset2.Active:=true;
adodataset3.Active:=false;
adodataset3.Active:=true;
adodataset4.Active:=false;
adodataset4.Active:=true;
adodataset5.Active:=true;
adodataset5.Active:=true;
catnode1:=treeview1.Items.GetFirstNode;
treeview1.Selected:=catnode1;
treeview1.Selected.Delete;
treeview1.Items.AddFirst(nil,'根');
adodataset1.First;
for g:=0 to adodataset1.RecordCount-1 do //在treeview 中显示主题结构
begin //(1-1)
if (trim(adodataset1.FieldValues['department1'])<>NULL)and (trim(adodataset1.FieldValues['department1'])<>'') then
begin //(1-2)
catnode1:=treeview1.Items.GetFirstNode; // 添加第一个字段
treeview1.Items.AddChildFirst(catnode1,adodataset1.FieldValues['department1']);
//过滤第一字段
adodataset2.Filter:='department1='''+adodataset1.FieldValues['department1']+'''';
adodataset2.Filtered:=true;
adodataset2.First;
if adodataset2.RecordCount<>0 then
begin//(2-1) //添加第二个字段
for h:=0 to adodataset2.RecordCount-1 do
begin//(2-2)
if (adodataset2.FieldValues['department2']<>NULL) and (trim(adodataset2.FieldValues['department2'])<>'') then
begin//(2-3)
catnode2:=catnode1.GetNext;
treeview1.Items.AddChildFirst(catnode2,adodataset2.FieldValues['department2']);
adodataset3.Filter:='department1='''+adodataset2.FieldValues['department1']+'''and department2='''+adodataset2.FieldValues['department2']+''''; //对第二个字段进行过滤
adodataset3.Filtered:=true;
adodataset3.First;
if adodataset3.RecordCount<>0 then
begin//(3-1) //添加第三个字段
for j:=0 to adodataset3.RecordCount-1 do
begin//(3-2)
if (adodataset3.FieldValues['department3']<>NULL) and (trim(adodataset3.FieldValues['department3'])<>'') then
begin//(3-3)
catnode3:=catnode2.GetNext;
treeview1.Items.AddChildFirst(catnode3,adodataset3.FieldValues['department3']);
adodataset4.Filter:='department1='''+adodataset3.FieldValues['department1']+'''and department2='''+adodataset3.FieldValues['department2']+'''and department3='''+adodataset3.FieldValues['department3']+''''; //对第三个字段进行过滤
adodataset4.Filtered:=true;
adodataset4.First;
if adodataset4.RecordCount<>0 then
begin//(4-1)
for k:=0 to adodataset4.RecordCount-1 do //添加第四字段
begin//(4-2)
if (adodataset4.FieldValues['department4']<>NULL) and (trim(adodataset4.FieldValues['department4'])<>'') then
begin//(4-3)
catnode4:=catnode3.GetNext;
treeview1.Items.AddChildFirst(catnode4,adodataset4.FieldValues['department4']);
adodataset5.Filter:='department1='''+adodataset4.FieldValues['department1']+'''and department2='''+adodataset4.FieldValues['department2']+'''and department3='''+adodataset4.FieldValues['department3']+'''and department4='''+adodataset4.FieldValues['department4']+'''';
adodataset5.Filtered:=true;
adodataset5.First;
if adodataset5.RecordCount<>0 then
begin //(5-1)
for z:=0 to adodataset5.RecordCount-1 do
begin //(5-2)
if (trim(adodataset5.FieldValues['department5'])<>NULL)and (trim(adodataset5.FieldValues['department5'])<>'') then
begin//(5-3)
catnode5:=catnode4.GetNext;
treeview1.Items.AddChildFirst(catnode5,adodataset5.FieldValues['department5']);
end;//(5-3)
adodataset5.Next;
end;//(5-2)
end;//(5-1)
end; //(4-3)
adodataset4.Next;
end;//(4-2)
end;//(4-1)
end; //(3-3)
adodataset3.Next;
end;//(3-2)
end;//(3-1)
end; //(2-3)
adodataset2.Next;
end;//(2-2)
end;//(2-1)
end;//(1-2)
adodataset1.Next;
end;
end; //(1-1)
procedure TForm4.treeview1Click(Sender: TObject);
var
t1,t2,t3,t4,t5,t6:string;
begin
edit1.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit2.Text:=treeview1.Selected.Text;
edit:=edit2.Text;
try //1
t1:=treeview1.Selected.Parent.Text;
except
edit1.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit3.Text:=treeview1.Selected.Text;
exit;
end;
try //2
t2:=treeview1.Selected.Parent.Parent.Text;
except
edit1.Text:='';
edit3.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit4.Text:=treeview1.Selected.Text;
exit;
end;
try //3
t3:=treeview1.Selected.Parent.Parent.Parent.Text;
except
edit1.Text:='';
edit3.Text:='';
edit4.Text:='';
edit6.Text:='';
edit7.Text:='';
edit8.Text:='';
edit5.Text:=treeview1.Selected.Text;
exit;
end;
try //4
t4:=treeview1.Selected.Parent.Parent.Parent.Parent.Text;
except
edit1.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit7.Text:='';
edit8.Text:='';
edit6.Text:=treeview1.Selected.Text;
exit;
end;
try //5
t5:=treeview1.Selected.Parent.Parent.Parent.Parent.Parent.Text;
except
edit1.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit8.Text:='';
edit7.Text:=treeview1.Selected.Text;
exit;
end;
try //6
t6:=treeview1.Selected.Parent.Parent.Parent.Parent.Parent.Parent.Text;
except
edit1.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
edit8.Text:=treeview1.Selected.Text;
exit;
end;
end;
procedure TForm4.Image2Click(Sender: TObject);
var //对树状结构进行删除操作
i,j,k,h,t,q,w,e,r:integer;
begin//(1-1)
if (trim(edit2.Text)='') and (trim(edit1.Text)='') then
begin
showmessage('请选择要删除的主题词!');
exit;
end;
if messagedlg('数据删除不可恢复是否要删除数据?',mtwarning,[mbyes,mbno],1)=mryes then
begin
if trim(edit8.Text)<>'' then //5
begin
adodataset1.Active:=false;
adodataset1.CommandText:='select * from total where department like '+''''+treeview1.Selected.Parent.Parent.Parent.Parent.Text+treeview1.Selected.Parent.Parent.Parent.Text+treeview1.Selected.Parent.Parent.Text+treeview1.Selected.Parent.Text+edit8.text+'%'+'''';
adodataset1.Active:=true;
adodataset1.First;
for i:=0 to adodataset1.RecordCount-1 do
begin
deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
//删除主数据库
adodataset1.Edit;
adodataset1.Delete;
adodataset1.Next;
end;
//删除空目录
removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Parent.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Text+'\'+edit8.Text);
adodataset5.Filter:='department1='''+treeview1.Selected.Parent.Parent.Parent.Parent.Text+'''and department2='''+treeview1.Selected.Parent.Parent.Parent.Text+'''and department3='''+treeview1.Selected.Parent.Parent.Text+'''and department4='''+treeview1.Selected.Parent.Text+'''and department5='''+edit8.Text+'''';
adodataset5.Filtered:=true;
adodataset5.First;
for r:=0 to adodataset5.RecordCount-1 do
begin
adodataset5.Edit;
adodataset5.Delete;
adodataset5.Next;
end;
end;
if trim(edit7.Text)<>'' then //4
begin
adodataset1.Active:=false;
adodataset1.CommandText:='select * from total where department like '+''''+treeview1.Selected.Parent.Parent.Parent.Text+treeview1.Selected.Parent.Parent.Text+treeview1.Selected.Parent.Text+edit7.text+'%'+'''';
adodataset1.Active:=true;
adodataset1.First;
for j:=0 to adodataset1.RecordCount-1 do
begin
deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
//删除数据库
adodataset1.Edit; //(总表)
adodataset1.Delete;
adodataset1.Next;
end;
removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Text+'\'+edit7.Text); //删除空目录
adodataset5.Filter:='department1='''+treeview1.Selected.Parent.Parent.Parent.Text+'''and department2='''+treeview1.Selected.Parent.Parent.Text+'''and department3='''+treeview1.Selected.Parent.Text+'''and department4='''+edit7.Text+'''';
adodataset5.Filtered:=true;
adodataset5.First;
for r:=0 to adodataset5.RecordCount-1 do
begin
adodataset5.Edit;
adodataset5.Delete;
adodataset5.Next;
end;
end;
if trim(edit6.Text)<>'' then //3
begin
adodataset1.Active:=false;
adodataset1.CommandText:='select * from total where department like '+''''+treeview1.Selected.Parent.Parent.Text+treeview1.Selected.Parent.Text+edit6.text+'%'+'''';
adodataset1.Active:=true;
adodataset1.First;
for h:=0 to adodataset1.RecordCount-1 do
begin
deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
//删除数据库
adodataset1.Edit;
adodataset1.Delete;
adodataset1.Next;
end; //删除空目录
removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Parent.Text+'\'+treeview1.Selected.Parent.Text+'\'+edit6.Text);
adodataset5.Active:=false; //删除当前数据库
adodataset5.Active:=true;
adodataset5.Filter:='department1='''+treeview1.Selected.Parent.Parent.Text+'''and department2='''+treeview1.Selected.Parent.Text+'''and department3='''+edit6.Text+'''';
adodataset5.Filtered:=true;
adodataset5.First;
for e:=0 to adodataset5.RecordCount-1 do
begin
adodataset5.Edit;
adodataset5.Delete;
adodataset5.Next;
end;
end;
if trim(edit5.Text)<>'' then //2
begin
adodataset1.Active:=false;
adodataset1.CommandText:='select * from total where department like '+''''+treeview1.Selected.Parent.Text+edit5.text+'%'+'''';
adodataset1.Active:=true;
adodataset1.First;
for k:=0 to adodataset1.RecordCount-1 do
begin
deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
//删除数据库
adodataset1.Edit;
adodataset1.Delete;
adodataset1.Next;
end;
removedir(getcurrentdir+'\'+treeview1.Selected.Parent.Text+'\'+edit5.Text);
adodataset5.Active:=false; //删除当前数据库
adodataset5.Active:=true;
adodataset5.Filter:='department1='''+treeview1.Selected.Parent.Text+'''and department2='''+edit5.Text+'''';
adodataset5.Filtered:=true;
adodataset5.First;
for w:=0 to adodataset5.RecordCount-1 do
begin
adodataset5.Edit;
adodataset5.Delete;
adodataset5.Next;
end;
end;
if trim(edit4.Text)<>'' then //1
begin
adodataset1.Active:=false;
adodataset1.CommandText:='select * from total where department like '+''''+'%'+edit4.text+'%'+'''';
adodataset1.Active:=true;
adodataset1.First;
for t:=0 to adodataset1.RecordCount-1 do
begin
deletefile(adodataset1.Fields[4].AsString); //按指定的文件路径删除文件
//删除总数据库
adodataset1.Edit;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -