📄 setconclass.pas
字号:
unit SetConClass;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ComCtrls, Shellapi,
ExtCtrls;
type
TSetConForm = class(TForm)
Panel1: TPanel;
Splitter1: TSplitter;
Panel2: TPanel;
TreeView1: TTreeView;
Button5: TButton;
Button7: TButton;
BitBtn2: TBitBtn;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Edit2: TEdit;
Edit1: TEdit;
Label3: TLabel;
Label1: TLabel;
Label2: TLabel;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
ComboBox1: TComboBox;
Button1: TButton;
Label4: TLabel;
Button2: TButton;
procedure FormShow(Sender: TObject);
procedure GetResSubList(Node:TTreeNode;TableName:string;KeyWord:string);
procedure GetResMainList(MTableName:string;STableName:string);
procedure Button5Click(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure TreeView1DblClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
SetConForm: TSetConForm;
implementation
{$R *.dfm}
uses inc,DBM;
procedure TSetConForm.FormShow(Sender: TObject);
begin
GetResMainList('ResourseMaintype','ResourceSubtype');
ComboBox1.Items.Clear;
DM.ADOQuery4.Close;
DM.ADOQuery4.SQL.Clear;
DM.ADOQuery4.SQL.Add('select * from ResourseMaintype');
DM.ADOQuery4.Open;
while not DM.ADOQuery4.Eof do
begin
ComboBox1.Items.Add(DM.ADOQuery4.FieldValues['Mcontent']);
DM.ADOQuery4.Next;
end;
if radiobutton1.Checked=true then begin
combobox1.Enabled:=false;
Edit1.Enabled:=false;
end;
end;
procedure TSetConForm.GetResMainList(MTableName:string;STableName:string);
var
MainListName,
MainListNO :TStringList;
i:integer;
TempStr,
TempNO,
SQLStr :string;
Node :TTreeNode; //定义树形目录对象变量
begin
TreeView1.Items.Clear; //清空树形对象列表
with DM do
begin
SQLStr:='select MContent,Maintype from '+MTableName;
MainListName:=TStringList.Create; //创建字符串对象实例
MainListNO:=TStringList.Create;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(SQLStr);
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
MainListName.Add(ADOQuery1.FieldValues['MContent']);
MainListNO.Add(ADOQuery1.FieldValues['Maintype']);
ADOQuery1.Next;
end;
for i:=0 to MainListName.Count -1 do
begin
TempStr:=MainListName.Strings[i];
TempNO:=MainListNO.Strings[i];
Node:=TreeView1.Items.Add(TreeView1.Selected,TempStr);
GetResSubList(Node,STableName,TempNO); //调用获取子目录列表
end;
MainListName.Free;
MainListNO.Free; //释放实例对象
end;
end;
procedure TSetConForm.GetResSubList(Node: TTreeNode;TableName:string;KeyWord:string);
var
ResSubList :TStringList;
TempStr,
TempNO :string;
i :integer;
begin
with DM do
begin
ResSubList:=TStringList.Create;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from '+TableName);
ADOQuery1.Open;
while not ADOQuery1.Eof do
begin
TempNO:=Copy(ADOQuery1.FieldValues['Subtype'],0,2);
if TempNo=KeyWord then
ResSubList.Add(ADOQuery1.FieldValues['SContent']);
ADOQuery1.Next;
end;
for i:=0 to ResSubList.Count -1 do //遍历列表对象
begin
TempStr:=ResSubList.Strings[i];
TreeView1.Items.AddChild(Node,TempStr);
end;
ResSubList.Free;
end;
end;
procedure TSetConForm.Button5Click(Sender: TObject);
var
str1,str2,str3:shortstring;
num,num1:integer;
IndexName,
SQLStr :string;
begin
if RadioButton1.Checked=true then begin
DM.ADOQuery2.Close;
DM.AddClassADOQuery.SQL.Clear;
DM.AddClassADOQuery.SQL.Add('select * from ResourseMaintype') ;
DM.AddClassADOQuery.Open;
DM.AddClassADOQuery.Last;
str1:=DM.AddClassADOQuery.FieldValues['Maintype'];
num:=strtoint(str1)+1;
if num <10 then begin
str1:='0'+inttostr(num);
end;
if num >99 then begin
ShowMessage(' 不能再添加,请联系开发商!!!');
Exit;
end;
if num >=10 then begin
str1:=inttostr(num);
end;
Edit1.text:=str1;
if Edit2.Text ='' then begin
ShowMessage(' 请填写名称!!!');
Exit;
end;
DM.AddClassADOQuery.Append;
DM.AddClassADOQuery.Edit;
DM.AddClassADOQuery.FieldValues['Maintype']:=Edit1.Text;
DM.AddClassADOQuery.FieldValues['Mcontent']:=Edit2.Text;
DM.AddClassADOQuery.Post;
ShowMessage('资料添加成功!!!');
GetResMainList('ResourseMaintype','ResourceSubtype');
end;
if radioButton2.Checked=true then begin
if ComboBox1.Text='' then begin
ShowMessage(' 请选则大类!!!');
Exit;
end;
if Edit2.Text='' then begin
ShowMessage(' 请填写名称!!!');
Exit;
end;
try //判断树形目录是否含有子目录
IndexName:=ComboBox1.Text;
SQLStr:='SELECT Maintype from ResourseMaintype where MContent='''+IndexName+'''';
with DM do
begin
AddClassADOQuery.Close;
AddClassADOQuery.SQL.Clear;
AddClassADOQuery.SQL.Add(SQLStr);
AddClassADOQuery.Open;
str1:=AddClassADOQuery.FieldValues['MainType'];
end;
for num:=1 to 99 do
begin
if num<10 then
str2:='0'+inttostr(num);
if num>=10 then begin
str2:=inttostr(num);
end;
str2:=str1+str2;
//num:=num+1;
SQLStr:='SELECT * from ResourceSubtype where Subtype='''+str2+'''';
DM.AddClassADOQuery.Close;
DM.AddClassADOQuery.SQL.Clear;
DM.AddClassADOQuery.SQL.Add(SQLStr);
DM.AddClassADOQuery.Open;
num1:=DM.AddClassADOQuery.RecordCount;
if DM.AddClassADOQuery.RecordCount=0 then
//str3:= DM.AddClassADOQuery.FieldValues['Subtype'];
//if (DM.AddClassADOQuery.FieldValues['Subtype']<>str2) then
begin
SQLStr:='SELECT * from ResourceSubtype ';
DM.AddClassADOQuery.Close;
DM.AddClassADOQuery.SQL.Clear;
DM.AddClassADOQuery.SQL.Add(SQLStr);
DM.AddClassADOQuery.Open;
DM.AddClassADOQuery.Append;
DM.AddClassADOQuery.Edit;
DM.AddClassADOQuery.FieldValues['Subtype']:=str2;
DM.AddClassADOQuery.FieldValues['Scontent']:=Edit2.Text;
DM.AddClassADOQuery.Post;
ShowMessage('小类资料添加成功!!!');
GetResMainList('ResourseMaintype','ResourceSubtype');
Exit;
end;
end;
except
ShowMessage('资料提交失败!!!');
end;
end;
end;
procedure TSetConForm.RadioButton1Click(Sender: TObject);
begin
if radiobutton1.Checked=true then begin
label3.Caption:='同级';
Button5.Caption:='增加大类';
Combobox1.Enabled:=false;
label3.Visible:=false;
combobox1.Visible:=false;
end else begin
label3.Caption:='上级';
Button5.Caption:='增加小类';
label3.Visible:=true;
combobox1.Visible:=true;
end;
end;
procedure TSetConForm.RadioButton2Click(Sender: TObject);
begin
if radiobutton1.Checked=true then begin
label3.Caption:='同级';
Button5.Caption:='增加大类';
label3.Visible:=false;
combobox1.Visible:=false;
end else begin
combobox1.Enabled:=true;
label3.Caption:='上级';
Button5.Caption:='增加小类';
label3.Visible:=true;
combobox1.Visible:=true;
end;
end;
procedure TSetConForm.Button7Click(Sender: TObject);
var
SQLStr,
TempStr:string;
Tempsubtype:string;
begin
if TreeView1.Selected.HasChildren=true then
begin
ShowMessage('请先删除子类!!!');
end;
if TreeView1.Selected.HasChildren=false then begin
TempStr:=TreeView1.Selected.Text;
DM.AddClassADOQuery.Close;
DM.AddClassADOQuery.SQL.Clear;
DM.AddClassADOQuery.SQL.Add('select * from ResourceSubtype where scontent='''+TreeView1.Selected.Text+'''');
DM.AddClassADOQuery.Open;
if DM.AddClassADOQuery.RecordCount<>0 then begin
Tempsubtype:= DM.AddClassADOQuery.FieldValues['subtype'];
DM.AddClassADOQuery.Close;
DM.AddClassADOQuery.SQL.Clear;
DM.AddClassADOQuery.SQL.Add('delete from ResourceSubtype where scontent='''+TreeView1.Selected.Text+'''');
end else begin
DM.AddClassADOQuery.Close;
DM.AddClassADOQuery.SQL.Clear;
DM.AddClassADOQuery.SQL.Add('delete from ResourseMaintype where Mcontent='''+TreeView1.Selected.Text+'''');
end;
if MessageDlg('删除此类别将造成《'+TempStr+'》中的数据丢失,是否删除?',mtConfirmation, [mbYes, mbNo], 0)= mrYes then begin
DM.AddClassADOQuery.ExecSQL;
//////////////////////////////////////////////////////////////////////////
DM.AddClassADOQuery.Close;
DM.AddClassADOQuery.SQL.Clear;
DM.AddClassADOQuery.SQL.Add('select * from Contract where Resource_id='''+Tempsubtype+'''');
DM.AddClassADOQuery.Open;
if DM.AddClassADOQuery.RecordCount<>0 then begin
DM.AddClassADOQuery.Close;
DM.AddClassADOQuery.SQL.Clear;
DM.AddClassADOQuery.SQL.Add('delete from Contract where Resource_id='''+Tempsubtype+'''');
DM.AddClassADOQuery.ExecSQL;
end;
//////////////////////////////////////////////////////////////////////////
ShowMessage('数据删除成功!!!');
GetResMainList('ResourseMaintype','ResourceSubtype');
end;
end;
end;
procedure TSetConForm.Button1Click(Sender: TObject);
begin
ShellExecute(handle,'open','help\help.txt', nil,nil,SW_ShowNormal);
end;
procedure TSetConForm.TreeView1DblClick(Sender: TObject);
var
strName: String;
begin
if TreeView1.Selected.Selected=false then exit;
strName:=inputbox('修改','请输入分类名称: ',TreeView1.Selected.Text);
strName:=trim(strName);
if strName='' then
exit;
with dm.AddClassADOQuery do
begin
Close;
if TreeView1.Selected.Level=0 then
SQL.Text := ' update ResourseMaintype set MContent = '''
+ strName + ''''
+ ' where MContent = '''+TreeView1.Selected.Text+'''';
if TreeView1.Selected.Level=1 then
SQL.Text := ' update ResourceSubtype set SContent = '''
+ strName + ''''
+ ' where SContent = '''+TreeView1.Selected.Text+'''';
ExecSQL;
end;
TreeView1.Selected.Text := strName;
TreeView1.SetFocus;
TreeView1.Selected.Selected := True;
end;
procedure TSetConForm.Button2Click(Sender: TObject);
begin
TreeView1DblClick(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -