显示的不清楚,重贴。
又,如何把查询的结果中相同的合并为一行,在DBGRID中和打印出来。如下:套件名称    规格型号    部件名称    规格    部件数量   --表头
联想电脑    A型    主板    MSI    200        --表体
联想电脑    A型    CPU    INTEL    200
 ....     ..        ..      ..       200   
DELL电脑    C型    内存    HY    400
DELL电脑    C型    硬盘    西部数据40G 200
合并为:
套件名称    规格型号    部件名称    规格            部件数量
联想电脑    A型    主板    MSI              200
                 CPU    INTEL              200
DELL电脑    C型    内存    HY              400
                 硬盘    西部数据40G     200
是否有什么好的第三放控件?那里下在?THANKS!

解决方案 »

  1.   

    1):可以用SQL来控制呀。如下:
     Query1.SQL.Text:='select name,sex=''男'' from table1 where'+
      ' sex=''1'''+'union select name,sex=''女'' from table1 where'+
      ' sex=''-1''';
    2)TDBGrid好象就可以,要设置一下它的一下属性,且体忘了。
      

  2.   

    合并打印
    先按名称排序数据集,
    然后在 Tqrdbtext 的ononprint事件里写如下代码
    proceure ....
    var
       oldname:string;
    begin
        IF OLDNAME=Query.fieldbyname(名字).asstring THEN
             Sender.enabled:=false
        else
             sender.enalbe:=true
        OLDNAME:=Query.fieldbyname(名字).asstring
        
    end;注 sender为TQrtext的名字
      

  3.   

    楼上的方法都不太好:)
    1.用 CASE 子句,如:
    SELECT CASE(SEX) WHEN 1 THEN '女' WHEN -1 THEN '男' END FROM YOURTABLE2.加上 DISTINCT 关键字即可,如:
    SELECT DISTINCT FIELD1,FIELD2 FROM YOURTABLE
      

  4.   

    如果是oracle的话用decode函数吧!用法:
    select decode(sex,1,'男人',2,'女人') from table where .....
    其它的数据库我现在忘了怎么写了。
      

  5.   

    如果是有对照表的话用
    select 对照表.name  from table,对照表 where table.code=对照表.code也可以实现,用控件反而不如用sql方便.