【问题标题】:Is there a way to compare two cells in a Column in RDLC report?有没有办法比较 RDLC 报告中列中的两个单元格?
【发布时间】:2019-09-23 19:31:05
【问题描述】:

我有可以包含重复值的 rdlc 报告列。喜欢

          Refno      value
cell1     c101       171.20
cell2     c102       150.20
cell3     c101       171.20
cell4     c101       171.20
cell5     c102       150.20

现在我想在 Refno 列中逐个比较每个单元格。首先说我将取 cell1 的值“c101”并通过 Refno 列中的每个其他单元格进行比较,以检查是否还有另一个“c101”。我可以在 RDLC 中做到吗?

【问题讨论】:

  • 你想要达到的结果是什么?,可以访问 rdlc 中的其他行,但这通常需要在查询/数据模型级别完成。但是如果你只是想过滤,tablix中有一个过滤器属性,你也可以按refno分组并删除详细行
  • 其实我想对不同 Refno 的值求和。在 Refno 我只有两个不同的项目 'c101' 和 'c102' 。我想将这两个项目的各自值相加,这两个项目只会给我结果(171.20+150.20)。目前我得到(171.20+150.20+171.20+171.20+150.20)。 @培根
  • 就我而言,在查询/数据模型级别是不可能的。我也尝试过分组。但不能帮助自己得到解决方案。我是rdlc的新手。如果我能以某种方式获得我在之前的评论中描述的我想要的结果,请帮助我。 @培根

标签: c# asp.net .net reporting-services rdlc


【解决方案1】:

我在报告中有一个 sumrows 的点击序列(希望有帮助)

首先你按 Refno 分组

添加页眉或页脚行

单击详细信息行的行可见性,我用红色圆圈标记了徽标

设置为隐藏

现在您可以在页眉/页脚行中使用 sum 函数

因此,您的行数与 refno 值一样多

对于您的特殊情况,您需要代码窗格中的以下代码

Public Shared table As System.Collections.Hashtable

Public Shared Function current(ByVal key As String, ByVal value As Decimal) As Decimal
    If table Is Nothing Then
        table = New System.Collections.Hashtable()
    End If

    If table.ContainsKey(key) Then Return 0D
    table.Add(key, value)
    Return value
End Function

并使用

=sum(Code.current(Fields!NewColumn0.Value,cdec(Fields!NewColumn1.Value)))

在您想要总和的字段中

【讨论】:

  • 这行不通。 :-( 我之前试过。在你发表评论后现在就试了。@Bacon
  • 它不起作用怎么办?报告可能是挑剔的野兽,当它不起作用时,它有助于测试单个步骤。
  • 当我隐藏时,它隐藏了值。但是在求和的时候,它会将包括隐藏字段值在内的所有单元格相加。 @培根
  • 我以为你想要一个总和,当你只想要第一个值时,就有 first() 函数
  • ``` =Sum(First(Fields!realval.Value, "Group1")) ``` 有可能吗? @培根
【解决方案2】:

你为什么不使用这样的查询


select sum (distinct Refno)from tablename

不会显示列 refno 的重复

【讨论】:

  • 实际上我正在用另一个文件过滤数据。我需要那个过滤。所以我无法通过不同的 Refno 选择我的数据。 @marcelo
  • 请添加更多信息,例如您在比较哪个列之间..等
猜你喜欢
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多