【问题标题】:Why isn't this expression for a ReportViewer field field working?为什么 ReportViewer 字段字段的此表达式不起作用?
【发布时间】:2012-05-24 22:46:24
【问题描述】:

我的一份报告中有一个计算字段:

=IIf(Fields!Log_Total.Value > 0, (Fields!Log_Cost.Value + Fields!Labor_Cost.Value + Fields!Part_Cost.Value + Fields!Other_Costs.Value) / Fields!Log_Total.Value, 0)

就我所看到的一切而言,这是我想要完成的正确语法,基本上是检查零,如果不是零,则添加这些并除以这个。当我运行报告时,该字段仅显示为#ERR。上面的所有字段都是数据集的一部分,我知道它工作正常。请帮忙

【问题讨论】:

  • 正则表达式在哪里?你为什么要标记你的问题regex

标签: reportviewer vb.net-2010 report-viewer2010


【解决方案1】:

表达式本身似乎很好。否则在启动报告时您会立即收到错误消息。

求和中的一个或多个字段在数据源中是否具有值null?在这种情况下,总和可能不起作用。

您确定所有值实际上都具有数字类型吗?确保它们都没有以 string 或数据库中的其他形式返回。

【讨论】:

  • 所有字段都是从我使用 isnull 的 sql 查询生成的。因此不应出现空值,但大多数情况下这些值将是 0.00。
  • 是的,我只是仔细检查了一遍,我正在处理的所有内容都以十进制格式传回
  • 这个问题听起来很愚蠢——这是网格表的一部分吗?还是在一个简单的TextBox 内?难道是报告元素不知道数据源,所以你必须明确设置它?我的意思是:对于 tablix,数据源有一个属性。 tablix 中的每一行代表数据集中的一项。对于文本框,除非它们位于再次获取数据源并为每一行复制其内容的容器中,否则您的代码将无法工作。否则,您必须在表达式中使用 First(Fields!XYZ.Value, "DataSetName") 之类的东西。
  • 绝对不是一个愚蠢的问题,我以前遇到过这个问题,但我不相信这个问题。它是一个文本框字段,嵌套在确实引用了数据源的 tablix 中。我不知道这里的嵌套级别是否重要,但它是这样的:Tablix > TablixRow > Rectangle > TextBox
  • 如果在文本框中输出其中一个字段会发生什么?这行得通吗?
猜你喜欢
  • 1970-01-01
  • 2011-10-25
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 1970-01-01
  • 2019-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多