0

我有一份报告显示服务器上的所有列名。对于每个 db,其中使用的 columname 向我展示了它是什么数据类型。例如:

ColumnName | Type        | DB_Name

Teacher_id | varchar(25) | DB1
           | int         | DB2
Classroom  | varchar(25) | DB1
           | varchar(100)| DB2
Course_id  |  int        | DB2

您会看到数据类型按 ColumnName 分组。现在,我在 ColumName 分组上放置了一个过滤器,它只向我显示具有多个数据类型的 ColumnNames。

Teacher_id | varchar(25) | DB1
           | int         | DB2
Classroom  | varchar(25) | DB1
           | varchar(100)| DB2

但是现在当我对 ColumnName 进行 countdistinct 时,它会显示所有列名的总数,以及隐藏的列名的总数......所以它不会产生2,但3 我怀疑这是由于过滤是在报告上而不是在数据集上完成,但我觉得我仍然应该能够计算报告中 columname 的出现次数.....我在页眉中尝试了 =count(reportitems!Columname.value) 但这给出了我该页面上的列名数量,而不是报告中的数量!

这里发生了什么?如何计算报告中的 ColumNames 数量?是否有我可以使用的报告页眉而不是页眉?

4

1 回答 1

2
  • COUNT(Fields!FieldName.Value) :为您提供当前范围内的值计数。

  • COUNT(Fields!FieldName.Value,"yourDataSetName") :为您提供数据集中值的计数。

  • COUNT(Fields!FieldName.Value,"yourGroupName") :为您提供当前组中的值计数。

如果您使用过滤,您可能必须在查询中返回所需的值。过滤后的值不包含在组内的聚合中。但是,请通过执行以下操作在数据集级别对此进行测试:

在表格或矩阵上方放置一个文本框,并为其赋值 COUNT(Fields!FieldName.Value,"yourDataSetName")。如果它不相等,那么您将需要将其与您的数据一起返回。

解决方案二

打开报告属性代码并添加此自定义代码:

Public Shared Dim _RenderedCount As Integer=0

Public Shared Function ReInitRenderedCount() As string
    _RenderedCount=0
    return ""
End Function

Public Shared Function UpdateRenderedCount() As string
        _RenderedCount = _RenderedCount +1
    return ""
End Function

Public Shared Function GetRenderedCount() As Int    
    Dim ret As Int  
    ret=_RenderedCount
    Return ret
End Function

我之前添加了这样的片段,基本上你在细节行的某处设置了一个没有背景的可见列,也许是最后一列。然后你可以设置它的 value=Code.UpdateRenderedCount() 更新渲染计数但返回“”。然后,您可以使用 label.value=Code.GetRenderedCount() 检查并打印渲染计数。

于 2014-03-13T14:12:13.790 回答