关于水晶报表公式的问题,求阿泰

stonemqy 2011-12-09 03:54:55
今天做一个报表,报表有绑定的数据源dt,dt中有一个字段A,其存储的是一个数字字符串;报表中还有一个参数ratio,类型是数值型。我在报表中编辑一个公式mul,(mul=dt.A} * {?ratio}),结果老是报“此处需要一个数字或货币金额”的错误。起初我以为是A的类型不对,因为我在dataset中设置的A的类型是System.String,所以我又先后将A的类型改成了
System.Decimal和System.Double以及System.Int32,结果也报同样的错误。这是怎么回事啊?此其一。其二,在水晶报表中能否判断数据源dt中的某一个字段是否是null?
...全文
94 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonemqy 2011-12-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 luols 的回复:]
回2楼:2楼的公式报错与你帖子的公式不一样
[/Quote]

帖子是我的一个例子,二楼那个事实际运行代码运行的效果。呵呵呵
阿双2009 2011-12-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 stonemqy 的回复:]
因为我在dataset中设置的A的类型是System.String,所以我又先后将A的类型改成了System.Decimal和System.Double以及System.Int32,结果也报同样的错误。[/Quote]
改数据集后,还要“通知”一下水晶报表数据集已更改,否则水晶报表不知道你的数据集已更改:)
方法:在字段资源管理器中右击数据库字段--验证数据库。此时水晶报表才知道数据集确实更新了

[Quote=引用楼主 stonemqy 的回复:]
水晶报表中能否判断数据源dt中的某一个字段是否是null?[/Quote]
公式里有一个IsNull(字段)方法


回1楼:水晶报表公式没有try----catch机制

回2楼:2楼的公式报错与你帖子的公式不一样
vv587 2011-12-09
  • 打赏
  • 举报
回复
CDbl({dt.A}) * {dt.ratio}
或者
CDbl({dt.A}) * CDbl({dt.ratio})

试试吧.
stonemqy 2011-12-09
  • 打赏
  • 举报
回复
运行了一下,报了这个错误:此处需要有一个字符串。文件 C:\DOCUME~1\MENGQI~1.NET\LOCALS~1\Temp\ReportForEconomicSituation {FEBAD783-0DB5-42DD-A9DC-5AEFD5D4B300}.rpt 内出错:公式 . 'if NumericText ({dtStatistic.NEWOUTPUT}) then ' 此处需要有一个字符串。
stonemqy 2011-12-09
  • 打赏
  • 举报
回复
还忘了一点,水晶报表中有没有类似于C#中的try……catch这样的错误捕捉机制啊?

4,816

社区成员

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

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