水晶报表图表求和的问题

vv587 2011-12-07 11:41:02
程序中有个收支表,表中有 收支类别,收支金额
收支类别有两种情况: 收入/支出
收支金额中保存数值(注意,保存的都是正数)
采用推模式将 Dataset绑定的报表上的,这时出现了一个问题:
就是 图表中 金额项 的显示值 设的是合计
结果 就把收入和支出都相加了!
实际上,我想要的是收入相加,支出被减

我现在的想法是:能不能在不动Dataset的情况下, 在图表中加载公式,
将收支类别为 支出 的记录的 收支金额变成负数(乘以-1)

如何实现,请大侠指教>
...全文
271 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vv587 2011-12-07
  • 打赏
  • 举报
回复
谢谢.
已结贴.
vv587 2011-12-07
  • 打赏
  • 举报
回复
是的是的.谢谢啊.
已经给分结贴.
阿双2009 2011-12-07
  • 打赏
  • 举报
回复
没错,就是在编辑器里面编辑:
If {DataTable1.收支类别} = '收入' Then
{DataTable1.收支金额} //如果为“收入”,则是正数
Else
-{DataTable1.收支金额} //若为“支出”,则是负数,注意这里加了一个负号

然后在这个界面


报表字段下面会有一个aa公式字段出来(因为你新建的公式名叫aa)对吧,然后你在显示值那边设为公式字段aa即可(默认就是求和)
vv587 2011-12-07
  • 打赏
  • 举报
回复
又试了.成功了.
谢谢luols
我的错误在于.公式设置后.
没有在 图表专家里 将显示值 更改为 刚才添加的公式.
也感谢ajaxtop兄弟.
vv587 2011-12-07
  • 打赏
  • 举报
回复
不好意思.能说具体点吗?
我刚才已经试了一下.新建了公式. 可能是我操作不对.
我打开了报表文件, 在公式字段点击右键.
选择添加公式. 点击新建.
然后要输入公式名称,例如起名 aa
然后是使用专家 还是 使用编辑器啊.
我使用了编辑器,试了下.把这个公司加入到报表,也不行.不加到报表中也不行?
不好意思.初次接触.好多不懂.
阿双2009 2011-12-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 vv587 的回复:]
我的收支记录是这样的,示例如下:
部门 收支类别 收支金额
1. a部门 收入 200元
2. a部门 支出 100元

在图表中,a部门是 柱状图表的一个柱 (其它部门是其它的柱)
这个柱的最终数据应该是 收入 + (-1)*支出.
想达到这个目的.
[/Quote]

我在3楼给的公式就能解决你这个问题

新建公式x1,编辑:
If {DataTable1.收支类别} = '收入' Then
{DataTable1.收支金额} //如果为“收入”,则是正数
Else
-{DataTable1.收支金额} //若为“支出”,则是负数,注意这里加了一个负号


//最终对该公式字段累加的时候会自动是 收入 + (-1)*支出
//也就是你期望的结果
vv587 2011-12-07
  • 打赏
  • 举报
回复
再次感谢两位对我的问题 能进行解答. ^-^
vv587 2011-12-07
  • 打赏
  • 举报
回复
我的收支记录是这样的,示例如下:
部门 收支类别 收支金额
1. a部门 收入 200元
2. a部门 支出 100元

在图表中,a部门是 柱状图表的一个柱 (其它部门是其它的柱)
这个柱的最终数据应该是 收入 + (-1)*支出.
想达到这个目的.
vv587 2011-12-07
  • 打赏
  • 举报
回复
可能是我说得不清楚.
我的报表中添加了一个用于表示 收支的图表,图表中会显示指定时间段各个部门的 最终赢利.
采用的是阿泰的推模式的方法实现
在Dataset中添加了一个表 , 叫 收支表
此表的数据是由Sql语句返回记录集,然后绑定到报表中的.
而sql记录集中的数据有收入也有支出.都用正数表示的.
而在图表中对于 金额 列我设的是 求和
这样,就会把 某部门的 收支和支出 都加在一起了.
例如.部门a
1月10日 收入 200元
1月20日 支出 100元
按照我目前的做法,最后算出来的赢得是 300元.
而实际上,应该是200元.

所以.我想的是,能不能在 数据集绑定到图表时,图表中能够将 收入 和 支出 进行区分,
对支出的数据 乘以-1
这样再累加出来的结果就是 正确的结果了. 应该是 100元.

阿双2009 2011-12-07
  • 打赏
  • 举报
回复
你是对“所有记录”进行统计吧

新建公式x1,编辑:
If {DataTable1.收支类别} = '收入' Then
{DataTable1.收支金额}
Else
-{DataTable1.收支金额}

图表显示值设为 对公式字段x1的合计即可
vv587 2011-12-07
  • 打赏
  • 举报
回复
首先,感谢楼上的同志.
就是不知道怎么用公式改变图表引用的数据的值.
如果需要改变报表中拖进来的字段的值,我会用公式.
但是对于图表,就不知道怎么下手了.
ajaxtop 2011-12-07
  • 打赏
  • 举报
回复
公式字段可以处理这个,从新构建一个公式字段,然后写段代码对数据处理就行
公式字段怎么用,网上很多

4,819

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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