百分比显示出错

wzsjzjjxy 2010-10-20 04:29:06
我用计算所得成员实现交叉表中两列比值。但是结果不是百分比的形式。系统产生的代码

//计算公式用于取代计算所得成员中的汇总。
// 此计算公式必须返回一个 货币 值。
If GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "11月"), CurrentSummaryIndex)=0 then
0
Else
GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "10月"), CurrentSummaryIndex) /GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "11月"), CurrentSummaryIndex)

我想加百分号
If GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "11月"), CurrentSummaryIndex)=0 then
0
Else
Cstr((GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "10月"), CurrentSummaryIndex))*100 /GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "11月"), CurrentSummaryIndex))+"%"
公式没错,但是保存时候提示:此处需要一个数字。

在系统自动产生的公式上注释中有说明://计算公式用于取代计算所得成员中的汇总。
// 此计算公式必须返回一个 货币 值。
所以这样实现百分比的形式不可取。

现在问题是:
1、上述问题如何解决??
2、要在交叉表中实现两列比值结果以百分比形式显示,怎么实现??必须要计算所得成员?
之前泰哥也给建议了,我上述就是根据他的建议改的。

...全文
210 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿泰 2010-10-22
  • 打赏
  • 举报
回复
我的意思就是在

下级菜单有个“编辑计算公式”后面这个操作里,直接放个0

然后再按照我1楼的方法2试试

你这个是OLAP报表?
wzsjzjjxy 2010-10-22
  • 打赏
  • 举报
回复
我用计算所得成员会产生一列,我的公式是这样放的,右击产生的列,选择计算所得成员,下级菜单有个“编辑计算公式”。下面是公式所有内容
//计算公式用于取代计算所得成员中的汇总。
// 此计算公式必须返回一个 货币 值。
if GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "8月"), CurrentSummaryIndex)=0 then
0 else
(GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "7月"), CurrentSummaryIndex))*100 / GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "8月"), CurrentSummaryIndex)
[Quote=引用 3 楼 babyt 的回复:]

回到最开始,你现在的公式,是放在哪里的?
[/Quote]
阿泰 2010-10-22
  • 打赏
  • 举报
回复
回到最开始,你现在的公式,是放在哪里的?
wzsjzjjxy 2010-10-22
  • 打赏
  • 举报
回复
谢谢你的耐心解答,非常感谢。你说的第一种方法不可行,因为我的交叉表中两列的比值是通过计算所得成员得到的。在设计界面是看不到的。点击工具栏的%,会把原来的数据也加上%,比如我一列是7月销售额 有一行是90,8月份对应的行值是100,用计算所得成员后,会自动增加一列(设计界面不显示该列),值是0.9,按照你的第一种方法,会在90和100后面都加%,这就不对了。

然后你说的第二种方法,我试了,会报错提示此处需要一个数字。确定后定位到:

Cstr((GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "10月"), CurrentSummaryIndex))*100 /GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "11月"), CurrentSummaryIndex))+"%"

你说随便输入你一个数字,不知道是在什么位置输入?是吧系统自动定位到的地方(else后面的那段代码)覆盖吗??还是在else后面或者前面输入??[Quote=引用 1 楼 babyt 的回复:]

交叉表中的交叉位置上,必须显示为数值。

要加上%,有两种方法

一是格式化数字型字段,将上述公式中的
Cstr((GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "10月"), CurrentSummaryIndex))*100 /GridValueAt(CurrentRowIndex, GetColumnPathInd……
[/Quote]
阿泰 2010-10-20
  • 打赏
  • 举报
回复
交叉表中的交叉位置上,必须显示为数值。

要加上%,有两种方法

一是格式化数字型字段,将上述公式中的
Cstr((GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "10月"), CurrentSummaryIndex))*100 /GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "11月"), CurrentSummaryIndex))+"%"

更改为:
(GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "10月"), CurrentSummaryIndex))*100 /GridValueAt(CurrentRowIndex, GetColumnPathIndexOf(1996, "11月"), CurrentSummaryIndex)

然后,在设计界面上,点中这个字段,再点选工具栏中的%即可为这个数值加上%

二是公式中直接给出,因为交叉位置只能出现数值,在需要显示的字段上点右键,进入公用标签页
把主贴中的公式,贴到“显示字符串”后面的公式即可。
当前这个报错的公式里面,里面随便输入一个数字就行了,因为最终他将以“显示字符串”里面的结果显示。

4,818

社区成员

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

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