dbgrid1中的数据行很多
我使用下面语句查找
dbgrid1.datasoure.dataset.locate('A1',gss,[]);
查询到的记录总显示在dbgrid1的中间,
请问一下如何让让查询到的记录显示在第一行上?

解决方案 »

  1.   

    简单一点用filter行不行?
    执行的效果只是把A1字段符合gss的字段显示出来,
    那肯定是第一行了.
      

  2.   

    首先谢谢你们!!!
    你们可能误会我的意思了
    我说的是定位的记录总是显示在dbgrid1中一页数据的最中间
    我现在要得是该数据行显示在dbgrid1中一页数据中的第一行。
      

  3.   

    这样能更好的利用dbgrid1中的数据:
    如客车发车时间有
       ...
       0600
       0700
       0800
       0830/////查询到的记录显示在dbgrid1一页数据的最中间
       0900
       1000
       1100
       ...
    我要查0830时间以后的数据
    dbgrid1.datasoure.dataset.locate('A1','0830',[]);
    后:查询到的记录总显示在dbgrid1的中间,而0830上面的数据我们并不关心,对我们来说是无用的
    所以我需要把查询到的数据行显示在dbgrid1中一页数据中的第一行,这样更好的利用dbgrid1
    显示我们需要的数据。
       0830
       0900
       1000
       1100
       
       
      

  4.   

    如果能准确定位dbgrid1每个可视记录在dbgrid1一页数据中的位置
    就可以解决dbgrid1数据刷新时记录乱跳的现象
      

  5.   

    我试了一下
    aa:=dbgrid1.datasoure.dataset.getbookMark;
    dbgrid1.datasoure.dataset.close;
    dbgrid1.datasoure.dataset.open;
    dbgrid1.datasoure.dataset.gotobookMark;
    这段代码的效果与
    gss:=dbgrid1.datasoure.dataset.fieldbyname('A1').asstring;
    dbgrid1.datasoure.dataset.close;
    dbgrid1.datasoure.dataset.open;
    dbgrid1.datasoure.dataset.locate('A1',gss,[]);
    效果一样.还是不能解决滚动行时,数据更新 后指定的行乱跳的现象
      

  6.   

    你的数据有序吗?
    滑有按会么标准排序;
    如果有,这样
    准能实现
    加上tqdoquery or tquery
      

  7.   

    谢谢gechaosa
    我的数据是按某一字段排序的
    请问一下如和加上tqdoquery or tquery
    能写点代码参考一下吗
      

  8.   

    ...
       0600
       0700
       0800
       0830/////查询到的记录显示在dbgrid1一页数据的最中间
       0900
       1000
       1100
       ...————————————————————————0830以上的数据已经发车了,而后还没发车, 理解正确吗?
    如果是这样的话,能否加标志。
      

  9.   

    你的DBGRID组件的数据源控件是哪一个呢.
    我建议你用 Query组件.
    指定DBgrid1.datasource为Query1;
    sg:
     query1.active:=false;
     query1.sql.text:='select * from table_name where 条件表达式';
     query1.open;DBgrid1里面显示的都是满足条件的记录.
      

  10.   

    这只能从数据入手。下面仅供参考:declare @var1 varchar(20) //根据你的字段类型定义
    set @var1 = '生化分析仪'  //把你具体定位的当前行A1的值传给它select *,(case A1
              when @var1 then 0
     else 1
              end) as Sort
    from 表名 order by Sort然后刷新DBGRID
      

  11.   

    to caizicheng (一见钟情) :
      用我上面的方法应该没问题吧!