为了在grid的左侧显示一个序列号,有如下语句:
ADOQuery1.SQL.Add('Select 1 as 序号,....);
在DBGridEh1DrawColumnCell事件里:
    with DBGridEh1.DataSource.DataSet do
        if DataCol = 0 then//第一列
            if RecNo > 0 then
                DBGridEh1.Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, IntToStr(RecNo));
现在的问题是:
PrintDBGridEh.Preview(or print)的时候,左侧的一列"序号"都是"1",怎么能让"序号"在打印的时候也从1开始递增呢?
好有没来了,顺便散分!!!希望大家不要忘了我...呵呵...

解决方案 »

  1.   

    adoquery里建个计算字段A,在OnCalcField事件中:
    adoquery1.FieldByname('A').asinteger:=adoquery1.recno
      

  2.   

    在报表里的主项数据里加个memo,它的内容是系统变量“当前行#”就可以了。
      

  3.   

    这个控件没有试过,但我想不要使用画的方式来进行显示记录数,使用计算字段来试试。DBGRID中的东西还是放在DATASET中的。
      

  4.   

    在报表里的主项数据里加个memo,它的内容是系统变量“当前行#”就可以了。
    就是这个memo的内容是“[LINE#]”,括号内的东西,就这样可以了。以上经过测试。
      

  5.   

    用victor_yang(victoryang) 的方法加上楼主自己的方法就完美了
      

  6.   

    楼主知道怎么样在这个控件里输出当前的时间吗?
    XXXX年XX月XX日?!
    例子里有,不过不知道怎么弄?