管理系统
     明斜
        电动机  
        减速机
     暗斜数据库设计:设备名称 设备代码  名称   参数
点击明斜的时候,从数据库中读出代码为0101%的所有设备名称作为明斜的子节点,点击明斜—电动机的时候,电动机的名称和参数
字段显示到dbgrid中。
问题:子节点可以查询出来,但是不知道如何把数据显示到dbgrid中?代码如下所示:
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
  var newnode:TTreenode;
   i:integer;
begin
  //取得节点的当前值
  edit1.Text:=treeview1.Selected.Text;
  //删除节点的数据
   if node.Level=2 then  node.DeleteChildren;   //对数据进行判断 开始
   if treeview1.Selected.Text='明斜钢丝绳'then
    begin
       with adoquery2 do
        begin
           close;
           sql.Clear;
           sql.Add('select distinct 设备名称  from  machine_tsj ');
           sql.Add(' where 设备代码 like ''0101%''  ');
           open;
           while not eof do
            begin
               newnode:=treeview1.Items.AddChild(node,fieldbyname('设备名称').AsString);
              // newnode.ImageIndex:=2;
               //newnode.SelectedIndex:=2;
               next;
            end;
        end;
      end;
  if treeview1.Selected.Text='暗斜钢丝绳' then
    begin
       with adoquery2 do
        begin
           close;
           sql.Clear;
           sql.Add('select distinct 设备名称  from  machine_tsj ');
           sql.Add(' where 设备代码 like ''0102%''  ');
           open;
           while not eof do
            begin
               newnode:=treeview1.Items.AddChild(node,fieldbyname('设备名称').AsString);
              // newnode.ImageIndex:=2;
               //newnode.SelectedIndex:=2;
               next;
            end;
        end;
     end;
      end;
显示电动机参数的sql语句,不知道应该如何写?写在什么地方?
sql.Add( ' select 参数名称, 存储字段  from  machine_tsj  ');
          sql.Add(' where 设备代码 like ''0801%''  and  设备名称=' + #39 +trim(edit1.Text)+ #39 + ' ');
          

解决方案 »

  1.   

    在treeview的onclick事件中
    procedure TForm1.TreeView1Click(Sender: TObject);
    begin
      if treeview1.Selected.Level = 2 then
      begin
        showmessage(treeview1.Selected.Text);
        //这里用query查询
        with adoquery1 do
        begin
          close;
          sql.text :='select 参数名称, 存储字段  from  machine_tsj '+
                     'where 设备代码 like :SBBM'  and  设备名称=:SBMC';
          parameters.parambyname('sbbm').value := '';
          parameters.parambyname('sbmc').value := '';
          Open; 
        end;
      end;
    end;