窗口上有一个DBGrid一个Listview
数据结构为
data1
     ANO    ANAME
      1      张三
      2      李四
data2
     BNO     BANO    BCNO
      1       1       3 
      2       2       1
data3
     CNO    CNAME
      1      大工
      2      小工
      3     服务生
实现功能
   DBGrid取得data1的数据,当鼠标单击DBGrid某条数据时Listview显示相关信息
例如:鼠标点击DBGrid张三,Listview显示服务生这个该怎么实现,我查了好久没查到,请求帮助

解决方案 »

  1.   

    可以用dbgrid的oncellclick事件中写代码查询,再将结果在Listview中显示出来~~~~
      

  2.   

    我怎样才能把dbgrid点击的数据传送给Listview的查询里
      

  3.   

    LZ,我在SQL版写的是正确的,你只需要在后面加一个条件就可以了!
    declare @BEmployeeLIST table(belno int,belname varchar(10))
    insert @BEmployeeLIST select 1,'张三'
    union all select 2,'李四'
    ----------------------
    declare @BEmployeeWorkTypt table(bewelno int,bewwtno int)
    insert @BEmployeeWorkTypt select 1,3
    union all select 1,1
    union all select 2,1
    ---------------------
    declare @bworktype table(bwtno int,bwtname varchar(10))
    insert @bworktype select 1,'大工'
    union all select 2,'小工'
    union all select 3,'服务生'select A.belname,C.bwtname
    from @BEmployeeLIST A inner join (select bewelno ,max(bewwtno) as bewwtno from @BEmployeeWorkTypt group by bewelno) B on A.belno=B.bewelno
      inner join @bworktype C on b.bewwtno=C.bwtno  --max(bewwtno)
    --------------------------------------
    在语句后加一个条件,用adoquery传一下name即可
    adoquery1.fieldbyname('name').asstring;--dbgrid中获得的名字
      

  4.   

    data1跟data3要有字段相链接才可以啊!
    比如:
    data1
         ANO    ANAME  CNO
          1      张三  3
          2      李四  1
    data3
         CNO    CNAME
          1      大工
          2      小工
          3     服务生
    这样你在窗口上放两个数据集:qry1,qry2;
    qry1.sql.text:='select * from data1';
    在qry1的onafterscorll事件中用qry2查询CNO等于qry1选中的行记录中对应的CNO值:
    qry2.sql.text:='select * from data3 where CNO='''+qry1.fieldbyname('CNO').asstring;
    然后取qry2中的数据放到Listview中