Foxtable(狐表)用户栏目专家坐堂 → 报表事件的问题


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

主题:报表事件的问题

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
报表事件的问题  发帖心情 Post By:2010/7/23 21:34:00 [显示全部帖子]

报表事件:

1 BeforeBuild:::::::::::

 

Select Case e.Book.TempLate

    Case "分页汇总"

        e.Book.Marks.Add("djy", "")

        e.Book.Marks.Add("pg", 0)

End Select

 

2 BuildPageHeader:::::::::::::::::

 

Select e.Book.TempLate

    Case "分页汇总"       

        e.Book.Marks("pg") = e.Book.Marks("pg") + 1

        e.Book.Marks("djy") = "第" & e.Book.Marks("pg") & "页"       

End Select

 

结果异常::::::::::

 

 


图片点击可在新窗口打开查看此主题相关图片如下:未命名3.jpg
图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/7/24 16:09:00 [显示全部帖子]

有人测试过上面的问题吗?    有办法解决吗?    谢谢啊~    图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/7/24 16:51:00 [显示全部帖子]

原因找到了: 是两个首行HeaderRow造成的~    但是还是没有好的办法来处理, 因为其他分页都是连续的页号呀? .  我再想想看怎么处理.............

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/7/25 20:45:00 [显示全部帖子]

HeaderRow的行数不定, 页码就没有规律了···  晕了~~~~

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/7/25 22:10:00 [显示全部帖子]

以下是引用czy在2010-7-25 22:06:00的发言:

搞不懂为什么

生成的值是正确的,写入值却有问题。

 

 


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

呵呵,没看到你前面的帖子,就是啊: 传个文件含模板:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:casestudy.rar


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/7/25 22:14:00 [显示全部帖子]

有点眉目了: 可能是有几个首行符号:  <HeaderRow> 就要从第2页开始减相应的数目吧。。。。

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/7/25 23:25:00 [显示全部帖子]

找到规律了:::::::::::::帮看看有没有问题,

注意:H = <HeaderRow> 所占行的个数(之间的空行不计数,但如果记是放在表名和列名称之间的话,必须放在这些<HeaderRow>之间的空行之内

 

BeforeBuild事件::::::::::
Select Case e.Book.TempLate
    Case "分页汇总"
        e.Book.Marks.Add("djy", "")
        e.Book.Marks.Add("pg", 0)
End Select

'BuildPageHeader事件::::::::::::::
Select e.Book.TempLate
    Case "分页汇总"
        e.Book.Marks("pg") = e.Book.Marks("pg") + 1
        e.Book.Marks("djy") = iif(e.Book.Marks("pg")<=H ,"第1页","第" & e.Book.Marks("pg")-H-1 & "页")
End Select

 

 

[此贴子已经被作者于2010-7-25 23:38:11编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/7/26 0:03:00 [显示全部帖子]

实际上<HeaderRow>之间不能再有<HeaderRow> 字样了。如: 


图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看

 

所以:e.Book.Marks("djy") = iif(e.Book.Marks("pg")<= H ,"第1页","第" & e.Book.Marks("pg")-H-1 & "页")
中的 H 只能是 2 了 ~ 第一个HeaderRow是显示表名:订单 ,  第二个HeaderRow行 显示列标题用的。因此直接写成:e.Book.Marks("djy") = iif(e.Book.Marks("pg")<= 2 ,"第1页","第" & e.Book.Marks("pg")-1 & "页") 就可以了。

 

如果头尾两个<HeaderRow>之间多几个<HeaderRow>,那么分页中的列标题就会从第二页起消失掉。

[此贴子已经被作者于2010-7-26 0:03:48编辑过]

 回到顶部