当前位置:首页 » 多媒体相关

dbgrid的字段排序


单击其中一个列名不写代码是否可以实现排序(类似pb)?

推荐阅读

  • 诺基亚DKU-5数据线连接方法介绍 [详细内容]
  • 康佳发布05多媒体战略 市场更关注股权去向 [详细内容]
  • 英特尔将提前一天发布双核CPU 售价999美元 [详细内容]
  • InfiniBand 连接现在和未来 [详细内容]
  • 用smartmoviePC端压制电影的心得! [详细内容]
  • 得益有线网络 维亚康公司第一财季盈利增长 [详细内容]
  • Nokia 6600与电脑蓝牙连接全攻略 [详细内容]
  • 网友回答:
    网友:csouth

    要写少量代码,可以在本版中搜索看看,也可以去www.nssoft.net   网的delphid   在线帮助中找找看.

    网友:iwantflay

    不写是不行的

    网友:shangui

    不写代码没有试过

    网友:grj79

    要写几行代码,如下:  
      procedure   tform1.dbgrid1titleclick(column:   tcolumn);  
      begin  
          if   (adoquery1.sort=column.fieldname+   asc)     then//升序  
              adoquery1.sort:=column.fieldname+   desc//降序  
          else  
              adoquery1.sort:=column.fieldname+   asc  
      end;  
     

    网友:joseph01

    利用dbgrideh,网上有down

    网友:grj79

    to:wlxyk(文淮)  
      我试过,没问题.

    网友:weiwanhe

    请参考我的这个函数!  
       
      //dbgrid组件的排序  
      procedure   dbgridtitlesort(adodataset:   tadodataset;column:   tcolumn);  
      var  
          s1,s2:   string;  
          ffield:   tfield;  
      begin  
          //数据排序  
          ffield   :=   column.field;  
       
          case   ffield.fieldkind   of  
              fkdata             :   s1   :=   ffield.fieldname;  
              //fkcalculated:   s1   :=   ffield.origin;  
              fklookup         :   s1   :=   ffield.keyfields;  
          else   abort;  
          end;  
       
          s2   :=   adodataset.sort   ;  
       
          //限制排序字段  
          if   ffield.datatype   in   [ftstring,   ftsmallint,   ftinteger,  
                  ftword,   ftboolean,   ftfloat,   ftcurrency,   ftbcd,ftdate,   fttime,  
                  ftdatetime,   ftbytes,   ftautoinc,   ftwidestring]   then  
          begin  
              if   pos(s1,s2)>0   then  
              begin  
                  if   pos(asc,s2)>0   then  
                      s2   :=   s1+   desc  
                  else  
                      s2   :=   s1+   asc;  
              end  
              else  
                  s2   :=   s1+   asc;  
              adodataset.sort   :=   s2;  
          end;  
      end;

    网友:shiyl

    ehlib

    .

    讨论区

    Login