xuxs 发表于 2016-10-26 11:08:50

报表换页时机的问题

本帖最后由 Lenka.Guo 于 2016-10-27 13:59 编辑

开发环境:VS2015,报表 AcitveReports日文版9.3


问题:
报表设计为每页25条明细,但是 pagestart事件第一次触发时,当前明细索引为1,第二次触发时,当前明细索引却为27.
Sample程序请参考附件。附件中,标题显示为pagestart事件触发时的明细索引。


请确认这个现象是否为制品的缺陷,或者是故意如此设计。
如果想让标题正常表示为换页时的明细索引,应该怎么处理?



Lenka.Guo 发表于 2016-10-26 15:28:11

Demo已经收到正在测试中

xuxs 发表于 2016-10-27 13:04:58

能快点帮忙看下这个问题吗,另外我之前买过你们的spread8和component one 也算是客户了,这个问题有点着急,

Lenka.Guo 发表于 2016-10-27 13:55:36

本帖最后由 Lenka.Guo 于 2016-10-27 13:58 编辑

您好,谢谢您提供这么直观的Demo,运行之后确实页眉的序号与首个索引不一致,主要还是因为A=A+1的执行时间不正确。所以在PageStart事件中进行了一个简单的修改,希望对您有用:
Demo(下载之后使用VS-工具-转换ActiveReports9 将程序转换为您机器中安装的版本):


Dim B As Integer


Private Sub rptSeikyuKanriList_PageStart(sender As Object, e As EventArgs) Handles Me.PageStart
      B = B + 1
      If (B = 1) Then
            mobjField("Title").Value = B
      Else
            mobjField("Title").Value = A - 1

      End If





    End Sub








xuxs 发表于 2016-10-27 14:28:20

在实际项目中,页眉的值是从数据库的检索结果集中取得的,并不能通过简单的加1减1解决。
Demo中的A=A+1代表着游标前进一条记录,如果说是因为A=A+1的执行时间不正确,那有没有其他合适的时间来做这一步操作?

Lenka.Guo 发表于 2016-10-27 15:59:08

xuxs 发表于 2016-10-27 14:28
在实际项目中,页眉的值是从数据库的检索结果集中取得的,并不能通过简单的加1减1解决。
Demo中的A=A+1代 ...

目前没有找到合适的时间来设置,所以才采取了上面的方法来解决,所以建议还是在FetchData事件中增加一个计数器,然后根据计数器的值来显示页眉的索引。
页: [1]
查看完整版本: 报表换页时机的问题