在datareport 的init动作中加
recordset.requery方法看看

解决方案 »

  1.   

    to everybody:
    帮我想想显示记录号的问题啊!
      

  2.   

    我也碰到数据库更新报表不更新。但在单步执行中却毫无问题。所以语句中加入Sleep语句,让程序停止执行一段时间。'数据库更新
    UnLoad DataEnvironment   'Unlaod和报表关联的DataEnvironment,让     DataEnvironment重新连接数据库。 
    Sleep 500       '如果数据库更新和DataReport.Show放在一起,经常UnLoad DataEnvironment以后再显示报表显示出的数据还是旧的。还要让程序Sleep一会儿,100毫秒以上。
    DataReport.Show  Sleep是api函数。其他方法停止程序执行的方法也行。如果数据库更新和DataReport.show 不在同一个函数,可要可不要都行,但是 UnLoad DataEnvironment  一定要。
      

  3.   

    如果你的使用DataEnvironment就会有可能出现这样的问题,因为DE的COMMAND一旦填充的数据,它是不会与数据库同步更新的。在报表打印之前要先关闭,再打开,当然最好是直接使用RECORDSET来做报表。
    if DataEnvironment1.rsCommand1.State<>0 then
       DataEnvironment1.rsCommand1.close
    end if
    set DataReport1.DataSource=DataEnvironment1
    DataReport1.DataMember="Command1"
      

  4.   

    to gump2000(阿甘) :
    你说的不行啊,是记录号的吗?recordset.requery是谁的recordset啊?!
      

  5.   

    to bigbigfans(小骁) 
    你说api函数怎么调用啊?我直接用你的代码就报错!是不是得调用api函数?
      

  6.   

    to nebular(星云):
    你那里的rscommand1和command1是一回事吗?有什么区别?
      

  7.   

    COMMANDS是DataEnvironment中的Command的集合,COMMAND1就是其中一个,如果你用了DataEnvironment,就应该知道。
    当你在COMMANDS集合中添加了一个SELECT的COMMAND,DE就为你创建了一个对应的RECORDSET,名称就是rs+Command对象名。
    但rsCommand不并是一开始就打开的,当它连接到一个数据绑定控件或使用OPEN方法后,它才打开。并且打开之后,除非你显式地关闭它,否则它是不会关闭也不会更新的,直到应用程序结束。
    所以,在报表显示之前,你一定要显式地用语句关闭rsCommand对象,并重新打开它使其内容能够更新。
      

  8.   

    to nebular(星云) 
    谢谢你的热心,我的问题解决了!虽然不是用的你的方法,但是我也要给分!谢谢
    to everybody
    谢谢大家!