水晶报表统计本页的数据

fengjun19912 2008-02-23 10:21:36
开发环境:winForm + c#
问题:对水晶报表本页数据行数的统计,如(有总共有25行数据,然后在页眉第一页显示,本页数据为20行,第二也显示:本页数据5行)
...全文
238 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2008-03-04
  • 打赏
  • 举报
回复
不用客气,
在@1的格式设定中有个suppress属性(抑制显示的意思),打上勾就可以了
@2也同样处理
fengjun19912 2008-03-04
  • 打赏
  • 举报
回复
已经好了,谢谢
fengjun19912 2008-03-04
  • 打赏
  • 举报
回复
to:破碎虚空
本页统计数据现在是对了,非常感谢你的指导;
现在还剩下一个问题:就是:
把@1放在Page Header节,并设置隐藏
把@2放在Details节,并设置隐藏
把@3放在Page Footer节

我是这么放的,但是我不知道怎么将@1和@2设置隐藏 .

请再次指教,谢谢
fengjun19912 2008-03-03
  • 打赏
  • 举报
回复
不能这么ptotal := ptotal + 1;
因为有的行是那列是没有数据的,所以就不用把这行统计进来
「已注销」 2008-03-03
  • 打赏
  • 举报
回复
可以把这个字段放在一个公式里
递增前判断数据是否达到满足要求

例如:字符串类型
if length{某字段}>0
ptotal:=ptotal+1
「已注销」 2008-02-26
  • 打赏
  • 举报
回复
@2的内容是本页显示几行,就会加几次
比如:
第一页显示10行,就加10次,@3就显示10
第二页显示8行,就加8次,@3显示8
不知道这是否就是你的需求
fengjun19912 2008-02-26
  • 打赏
  • 举报
回复
to:破碎虚空
我是需要统计某一列在本页显示的数据啊,且每页很有可能显示的行数是不一样的;
@2的内容
whileprintingrecords;
global numbervar ptotal;
ptotal := ptotal + 1;

这个是不符合要求啊
Swanzy 2008-02-25
  • 打赏
  • 举报
回复
如果不确定行数会自动分页,但要获取当前页的行数可能只能添加一个递加的隐藏字段了
不知道这样行不行,没试过.
Swanzy 2008-02-25
  • 打赏
  • 举报
回复
好象只有4楼的方法吧?
每页要确定行数才行吧.
「已注销」 2008-02-25
  • 打赏
  • 举报
回复
表达式中用whileprintingrecords进行统计
fengjun19912 2008-02-25
  • 打赏
  • 举报
回复
不行
每一页显示的行数是不确定的,因为当中可能会插入一些注释的行

所以只能统计该字段在该页有多少行数据显示,求救?
cansum396 2008-02-25
  • 打赏
  • 举报
回复
“详细资料”右键->格式化节->详细资料->选中“在后面页新建面”并点击“X+2”那个按钮->在下面的文本框输入:RecordNumber mod 12 = 0

12表示一页12条记录
春天的气息 2008-02-25
  • 打赏
  • 举报
回复
用个公式就可以解决了呀,正如12楼所言!
yourname386 2008-02-25
  • 打赏
  • 举报
回复
写个公式,取 总数据行数/总页数 呢?
「已注销」 2008-02-25
  • 打赏
  • 举报
回复
建三个fomula字段@1,@2,@3 (crystal语法)
@1的内容
whileprintingrecords;
global numbervar ptotal;
ptotal:=0;

@2的内容
whileprintingrecords;
global numbervar ptotal;
ptotal := ptotal + 1;

@3的内容
whileprintingrecords;
global numbervar ptotal;

把@1放在Page Header节,并设置隐藏
把@2放在Details节,并设置隐藏
把@3放在Page Footer节
@3就是你要显示的每页Details中记录数。
fengjun19912 2008-02-25
  • 打赏
  • 举报
回复
人呢
duping9626 2008-02-25
  • 打赏
  • 举报
回复
建个公式字段
Basic语法
Formual=RecordNumber
将字段放在页脚就可以了呀
fengjun19912 2008-02-25
  • 打赏
  • 举报
回复
自己顶一下
有人会吗?
fengjun19912 2008-02-25
  • 打赏
  • 举报
回复
再顶一下,请帮忙
解决了分全给他
fengjun19912 2008-02-25
  • 打赏
  • 举报
回复
在网上找了下资料,http://www.cnblogs.com/laughterwym/archive/2007/02/17/651826.aspx
跟我要做的是一样的,但是上面说的代码好象有问题,
formula_2
whileprintingrecords;
global numbervar BFtotal;
global numbervar RStotal;
global numbervar BTtotal;
BFtotal:=BFtotal+{VIEW1.保费};
RStotal:=RStotal+1;
BTtotal:=BTtotal+{VIEW1.补贴};

红色行,是不能那样计算的,{}号里的是字段,这样相加语法是有错误的
加载更多回复(1)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧