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

📄 frame_companylist.pas

📁 用于家庭养殖的财务进出
💻 PAS
字号:
unit frame_CompanyList;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, ComCtrls;

type
  TFrame6 = class(TFrame)
    TreeView1: TTreeView;
    procedure FrameResize(Sender: TObject);
    procedure TreeView1Expanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);  //把单位信息
    procedure TreeView1Click(Sender: TObject);
    procedure TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation
   uses data_module,unit_global;
{$R *.dfm}

procedure TFrame6.FrameResize(Sender: TObject);
var
  //TreeNode,ParentNode,ChildNode:ttreenode;
  MyRecPtr: PMyRec;
  i,j:integer;
  maxlevel:integer;
  nodeindex:integer;
  basenode:ttreenode;
begin
  basenode:=treeview1.Items.Add(nil,'四川省');
  new(MyRecPtr);
      //MyRecPtr^.host:=' ';
      MyRecPtr^.id:=0;
      MyRecPtr^.index:='0';
      MyRecPtr^.boarder_host:='0';
  basenode.Data:=MyRecPtr;
  basenode.HasChildren:=true;
{  with dm.ADOQuery1 do
  begin
    close;
    sql.Clear;
    sql.Add('select * from boarder where boarder_level=1 order by gradation');
    open;
    first;
    while not eof do
    begin
      TreeNode:=treeview1.Items.AddChild(basenode,fieldbyname('boarder_name').AsString);
      new(MyRecPtr);
      MyRecPtr^.host:=fieldbyname('host').AsString;
      MyRecPtr^.id:=fieldbyname('boarder_id').AsInteger;
      MyRecPtr^.index:=fieldbyname('gradation').AsString;
      MyRecPtr^.boarder_host:=fieldbyname('boarder_host').AsString;
      treenode.Data:=myrecptr;
      treeview1.Items.AddChild(treenode,'');
      next;
    end;
  end;}
end;

procedure TFrame6.TreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
var
   childnode:ttreenode;
   nodelevel,nextlevel:integer;
   parentnode_id:integer;
   MyRecPtr: PMyRec;
begin
   node.DeleteChildren;
   //if node.getFirstChild<>nil then    //删除假节点
   begin
     {childnode:=node.getFirstChild;
     childnode.Delete;
     nodelevel:=node.Level;
     nextlevel:=nodelevel+1;
     //nextlevel:=nodelevel+2;
     parentnode_id:=PMyRec(node.Data)^.id;
     if PMyRec(node.Data)^.dm<>'' then
       exit;}
     with dm.ADOQuery1 do
     begin
       close;
       sql.Clear;
       //sql.Add('select * from boarder where boarder_level='+inttostr(nextlevel)+' and host='+quotedstr(PMyRec(node.Data)^.host+inttostr(parentnode_id)+','));//'+inttostr(parentnode_id)+' like '+quotedstr('%'+PMyRec(node.Data)^.host+'%'));
       sql.Add('select * from boarder where boarder_host='+PMyRec(node.Data)^.boarder_host+' order by gradation');
       //showmessage('select * from boarder where boarder_level='+inttostr(nextlevel)+' and host='+quotedstr(PMyRec(node.Data)^.host+inttostr(parentnode_id)+','));
       open;
       if not eof then  //在boarder表中仍然有值
       begin
         first;
         while not eof do
         begin
           childnode:=treeview1.Items.Addchild(node,fieldbyname('boarder_name').AsString);
           new(MyRecPtr);
         //showmessage(inttostr(recordcount));
           MyRecPtr^.host:=fieldbyname('host').AsString;
           MyRecPtr^.id:=fieldbyname('boarder_id').AsInteger;
           Systemcode:=fieldbyname('boarder_id').AsString;
           MyRecPtr^.index:=fieldbyname('gradation').AsString; //.AsInteger;
          // myrecptr^.boarder_host:=fieldbyname('boarder_host').AsString;
           myrecptr^.boarder_host:=fieldbyname('boarder_id').AsString;
           childnode.Data:=myrecptr;
           childnode.HasChildren:=true;
           //treeview1.Items.AddChild(childnode,'');
           next;
         end;
       end
       else //在boarder表中已经无值
       begin
         close;
         sql.clear;
         sql.Add('select * from b01 where boarder_id='+inttostr(PMyRec(node.Data)^.id)+' order by gradation');
         open;
         if not eof then
         begin
           first;
           while not eof do
           begin
             if pos(','+user_group_level+',',fieldbyname('user_group_id').AsString)<>0 then
             begin
               childnode:=treeview1.Items.Addchild(node,fieldbyname('dept').AsString);
               new(MyRecPtr);
               MyRecPtr^.host:=fieldbyname('host').AsString;
               MyRecPtr^.id:=fieldbyname('deptno').AsInteger;
               MyRecPtr^.index:=fieldbyname('gradation').AsString;
               MyRecPtr^.dm:=fieldbyname('dm').AsString;
               myrecptr^.user_group_id:=fieldbyname('user_group_id').AsString;  //20060418
               childnode.Data:=myrecptr;
             end;
             //treeview1.Items.AddChild(childnode,'');
             next;
           end;
         end;
       end;
     end;
   end;
end;

procedure TFrame6.TreeView1Click(Sender: TObject);
var
  i :integer;
  sqlstr:string;
begin

end;

procedure TFrame6.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  newnode:ttreenode;
begin
  if button=mbRight then
    newnode:=treeview1.GetNodeAt(x,y);
  newnode.Selected:=true;
end;

end.

⌨️ 快捷键说明

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