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

📄 setconclass.pas

📁 书籍类别(种类编号
💻 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 + -