一个表为:
产品名称    产品种类    产品类型    价值
短袖毛衣     毛织品        25X30      60
长袖毛衣     毛织品        25X60     120
长裤         纤维物质       52       6682
短衣         纤维物质       233       22
老人服装     纤维物质       232       20
袜子         丝织品        10X12      632
那么怎么在treeview中点击节点,
如:(点击毛织品,把数据库中毛织品的记录在listview显示出来)
制衣厂
  --毛织品
  --纤维物
  --丝织品
就在listview中显示所对应的记录呢?谢谢,我没有接触过树形的,能否给我说明白点!在此谢谢拉!

解决方案 »

  1.   

    首先,左边放一个treeview,右边放一个listview
    窗体建立的时候,从数据库中读出产品种类,构件tree的节点,点击tree的节点的,根据节点的text或者其它的东西(如:编号),来根据得到的内容查询数据库,把的到的记录写到listview上,我一般用dbgrid,简单.
      

  2.   

    帮帮我呀,上面说的这个我基本是知道的,问题是怎么在treeview读取表中的毛织品,纤维物,丝织品!并且不重复!
      

  3.   

    在问题出在SQL语句。"select distinct 产品种类 from table"
      

  4.   

    谢谢了,我忘记了distinct,那接着如何判断,点击那个节点呢?
      

  5.   

    还是去看看Delphi自己带的帮助吧
    选中那个结点就是Treeview1.selected.text就是了
      

  6.   

    卖个乖
    -------------------------------------------------------------
    寻寻寻,寻斑竹小小在线
    如果您觉的您对Delphi 感兴趣或是很想学的更好些或者是对Delphi 有更深的认识,我们可以一起交流;
    呵呵
    www.nxrs.net/bbs
    谢谢,别抛砖
    -----------------------------------------------------------------
    声明:在那儿交流都一样的,我现在还是认为Csdn是最好的,呵呵
      

  7.   

    procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
    var sql:String;
    begin
      Sql:='select * from table where 产品种类='+Node.Text;
      Query1.Close;
      Query1.Sql.Clear;
      Query1.Sql.Add(sql);
      Query1.Open;
      //其它的就是从Query1中取数据填充ListView了
    end;
      

  8.   

    www.nxrs.net/bbs
    上有对TreeView的详细操作,而且都是源代码;
    你可以去看一看;
    卖个乖
    -------------------------------------------------------------
    寻寻寻,寻斑竹小小在线
    如果您觉的您对Delphi 感兴趣或是很想学的更好些或者是对Delphi 有更深的认识,我们可以一起交流;
    呵呵
    www.nxrs.net/bbs
    谢谢,别抛砖
    -----------------------------------------------------------------
    声明:在那儿交流都一样的,我现在还是认为Csdn是最好的,呵呵
      

  9.   

    各位大哥,为什么我这样写,当点击每一个的时候,显示的却只有一条记录呢?
    procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
    var
    NewItem:Tlistitem;
    begin
    listview1.Items.BeginUpdate;
    listview1.Items.Clear;
    if node.Level=1  then
    begin
      with adoquery1 do
         begin
           close;
           sql.Clear;
           sql.Add('select * from 产品种类 where  gdzczl='''+treeview1.Selected.Text+'''');
           open;
           NewItem:=ListView1.Items.Add;
           NewItem.Caption:=ADOQuery1.fieldbyname('gdzcbh').Value;
           NewItem.SubItems.Add(ADOQuery1.fieldbyname('gdzczl').Value);
           NewItem.SubItems.Add(ADOQuery1.fieldbyname('gdzcmc').Value);
           end;
        end;
    listview1.Items.EndUpdate;
      

  10.   

    procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
    var
    NewItem:Tlistitem;
    begin
    listview1.Items.BeginUpdate;
    listview1.Items.Clear;
    if node.Level=1  then
    begin
    while not adoquery1.eof do
    begin
      with adoquery1 do
         begin
           close;
           sql.Clear;
           sql.Add('select * from 产品种类 where  gdzczl='''+treeview1.Selected.Text+'''');
           open;
           NewItem:=ListView1.Items.Add;
           NewItem.Caption:=ADOQuery1.fieldbyname('gdzcbh').Value;
           NewItem.SubItems.Add(ADOQuery1.fieldbyname('gdzczl').Value);
           NewItem.SubItems.Add(ADOQuery1.fieldbyname('gdzcmc').Value);
           end;
        end;
     adoquery1.next ;
    end;
    listview1.Items.EndUpdate;
      

  11.   

    这样!
    procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
    var
      NewItem:Tlistitem;
    begin
      listview1.Items.BeginUpdate;
      listview1.Items.Clear;
      if node.Level=1  then
      begin
        while not adoquery1.eof do
        begin
          with adoquery1 do
          begin
            close;
            sql.Clear;
            sql.Add('select * from 产品种类 where  gdzczl='''+treeview1.Selected.Text+'''');
            open;
            NewItem:=ListView1.Items.Add;
            NewItem.Caption:=ADOQuery1.fieldbyname('gdzcbh').Value;
            NewItem.SubItems.Add(ADOQuery1.fieldbyname('gdzczl').Value);
            NewItem.SubItems.Add(ADOQuery1.fieldbyname('gdzcmc').Value);
          end;
          adoquery1.next ;
        end;
      end;
      listview1.Items.EndUpdate;
    end;