Foxtable(狐表)用户栏目专家坐堂 → ★★★Excel报表的跨记录调用数值问题★★★


  共有9525人关注过本帖树形打印复制链接

主题:★★★Excel报表的跨记录调用数值问题★★★

帅哥哟,离线,有人找我吗?
zoomify
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:209 积分:1695 威望:0 精华:0 注册:2012/7/26 17:50:00
★★★Excel报表的跨记录调用数值问题★★★  发帖心情 Post By:2012/9/16 14:05:00 [显示全部帖子]

有一个表中有某列记录如下:
页数(页的数量)
2
3
3
4
输出成Excel报表的时候,希望变成页开始的位置(页次),如:
1(第一行是从页次1开始)
3(这个记录是从3开始:1+2)
6(这个记录是从6开始:1+2+3 或者是上一个记录的3+3)
10(这个记录是从10开始:1+2+3+4 或者是上一个记录的6+4)
设置Excel报表公式如下:

<iif(<index>=1,1,[页数-1]+[页数])> 

希望得到:当index是1的时候,页次一定等于1,否则等于上一个记录的值(页次)加上本记录的页数。
但这个公式是有问题的,请问专家正确的设置如何做呢?自己琢磨了很久,还是弄不出来。

[此贴子已经被作者于2012-9-16 16:33:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
zoomify
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:209 积分:1695 威望:0 精华:0 注册:2012/7/26 17:50:00
  发帖心情 Post By:2012/9/16 16:31:00 [显示全部帖子]

楼上说的办法用了还是不行,用代码绕了个弯才搞定,但这样代价很大,每个明细记录都会查询一次数据库。 有没有专家知道怎么做呢,其实就是想知道明细数据扩展的时候,上一条记录的值。

代码解决办法如下:(用范例的出库单报表测试,数量用来模拟需要转变的页次,程序打包到了附件)

 

Select Case e.Book.TempLate
    Case "出库单"
        e.Book.Marks("数量") =""
       
        If e.DataRow IsNot Nothing AndAlso e.Region = "出库明细" Then
            Dim Filter1 As String = "出库单编号 = '" & e.DataRow("出库单编号") & "' and _identify <" &  e.DataRow("_identify")
            Dim yeci As Integer
            yeci=DataTables("出库明细").Compute("Sum(数量)",Filter1)
            If yeci=0 Then
                e.Book.Marks("数量") =1
            Else
                e.Book.Marks("数量") = DataTables("出库明细").Compute("Sum(数量)",Filter1) +1
               
            End If
           
           
        End If
End Select

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.zip


 回到顶部