如图:
自动的那个序号    我的记录
1                    1
2                    2
3                    3
4                    4
5                    5
6                    6
7                    7
8                    8

解决方案 »

  1.   

    数据集控件新增一计算字段其值为Abs(RecNo)即可实现这种功能
      

  2.   

    确切的说dbgrideh是没有自动序号功能的。只能想其他的办法解决。
    同意gzllich(刚从泥坑里出来) 的方法。
      

  3.   

    gzllich(刚从泥坑里出来),能详细点说吗?
      

  4.   

    序号的自动生成
    1.定义变量
      private 
            maxno:integer;
      public
            bmodified:boolean;
    2.写函数
      function max(const a,b:integer):integer;
      begin
        if a>b then
           result:=a
        else
           result:=b;
      end;
    3 FormCreate 中加入
      bmodified:=false;
      while not adoq_rsinfo.eof do
      begin
         maxno:=max(maxno, adoq_rsinfo.fields[0].asinteger);
         adoq_rsinfo.next;
      end;
    4。在你的添加按钮中加入
      adoq_rsinfo.field[0].asinteger:=maxno+1;
      

  5.   

    to:allan2002(丸子) 谁都知道新增一个列自己写入,可是如何写入到dbgrideh中哪?在listview中没问题,在dbgrideh中我试了不行
    请你和其他高手指点。
    楼主,不好意思用了你的帖子问问题了,我想你可能也不知道,下次我问问题
    你进来我给你分!!
      

  6.   

    数据集控件新增一计算字段其值为Abs(RecNo)即可实现这种功能
    这样不行的,RecNo这个东西并不是很确定,你把记录移到最后一条或者第一条RenNo都会改变
      

  7.   

    niat97222(Freeman) 请你说一说如何解决
      

  8.   

    pandarus(冷雨) 我用你说的,
    dbgrideh1.field[0].asinteger:=i
    会抛异常不行压
      

  9.   

    1 双击 query1 或 table1,出现字段列表
    2 在字段列表中右键,选  new field 
    3 在输入name 栏中输入任意的字段名字 ,type 选 integer
     size 中输入最大长度如:20   fieldtype选择 calculated  , 按 OK
    4 再在字段列表中右键 ,点 add all fields
    5 选中query1,在属性栏里选择 event 页
    选择 OnClacFields 事件,编写代码如:
    dataset.fieldbyname('你的计算字段').asinteger:=dataset.fieldbyname('你的计算字段').asinteger+1;
    5 DbGrid 中显示该字段
      

  10.   

    1 双击 query1 或 table1,出现字段列表
    2 在字段列表中右键,选  new field 
    3 在输入name 栏中输入任意的字段名字 ,type 选 integer
     size 中输入最大长度如:20   fieldtype选择 calculated  , 按 OK
    4 再在字段列表中右键 ,点 add all fields
    5 选中query1,在属性栏里选择 event 页
    选择 OnClacFields 事件,编写代码如:
    dataset.fieldbyname('你的计算字段').asinteger:=i+1;  i是formcreate时初始化0的变量
    5 DbGrid 中显示该字段 
    我试过可以实现
      

  11.   

    MINJIANQ(钱敏健) 多谢,其实我要的效果不光是添加一个自增序列,其中的一个字段我要判断情况赋给不同的值,这就需要自己逐行写入。向listView一样,但是我不知道dbgrideh怎么赋值,请你指点。
      

  12.   

    那你可以在查询的时候用case 来翻译。
      

  13.   

    同意  MINJIANQ(钱敏健) 的意见,但这只是静态生成的,如想动态生成,可用dbgrid的drawdatacell来生成,并不是很复杂的,只要一行代码:adoquery.fieldbyname('fieldname').asinteger:=i+1;即可。谢谢!
      

  14.   

    培训形式
    |国家|省级|其他|
    这个表头是这样的,我一查出结果,现在只需要在输出时判断情况然后填写即可。关键是我不知道如何用dbgrideh来自己输入值
      

  15.   

    如果使得话,你可以固定好dbgrid的列columns属性。然后按情况动态的确定各个column的fieldname就行
      

  16.   

    MINJIANQ(钱敏健) 我试试,多谢你了,不管行不行我记住你了,这次没法给你分了,下次我问问题,请你进来,我一定给你分。再次感谢你