以表达式为值对 Tablix 进行排序

Posted

技术标签:

【中文标题】以表达式为值对 Tablix 进行排序【英文标题】:Sorting Tablix with an Expression as its Value 【发布时间】:2021-07-16 14:33:51 【问题描述】:

我是 s-s-rS 新手,无法对数据进行排序。

我有一个我正在尝试排序的列,它具有以下表达式: =((SUM(VAL(IIF(Fields!SecTypeBaseCode.Value="cs",Fields!Marketvalue.Value,0))))/ (Sum(Fields!Marketvalue.Value)+Sum(Fields!AccruedInterest.Value)))/(Fields!EquityTarget.Value/100)

我为了尝试对其计算值进行排序,我用表达式创建了一个计算字段。然后我尝试根据计算字段进行排序。但是,每次我这样做都会给我一个错误,因为表达式有一个聚合。知道如何解决此问题或对其进行排序吗?

【问题讨论】:

您是否尝试过直接使用表达式作为排序顺序,而不是在计算字段中? 嗨,是的,我已经尝试过这样做。我发布了以下内容: =IIF( ((SUM(VAL(IIF(Fields!SecTypeBaseCode.Value="cs",Fields!Marketvalue.Value,0))))/(Sum(Fields!Marketvalue.Value)+Sum (Fields!AccruedInterest.Value)))/(Fields!EquityTarget.Value/100) = ">1", 1) ,仍然得到相同的错误,即存在聚合。 您的评论中的表达式不正确,括号的数量是奇数,最后一部分是将数字与字符串进行比较。尝试使用原始表达式并将其放入表格的列中,确保返回正确的数字,然后您应该能够将其放入行组的排序属性中。 您已经对 GROUP 属性进行了聚合排序。您无法从 tablix 或数据集执行此操作。 仍在尝试解决此问题,感谢您提供的信息。好像当我将排序功能放在组属性中时,它不会对数据进行排序,尽管错误确实消失了。是否可以在函数中使用 Me.Value 而不是整个公式? 【参考方案1】:

用于排序的聚合表达式需要在单个项目的组上,而不是在数据集、表格或图表的属性上。

您可能会收到一个静默错误,该错误允许报告运行,但由于可能出现除以零的问题而无法评估表达式。如果您在 Visual Studio 中预览报告,您可能会在错误列表中看到错误。

s-s-rS 喜欢聪明一点,检查除以零时可能出现的问题。不幸的是,它会找到任何字段可能为零的地方。要解决此问题,请使用 IIF 语句,以便将可能的零除数替换为 1,将分子替换为零。你的表达式有点复杂,因为你有两个除数,但它应该是这样的

=   IIF(Sum(Fields!Marketvalue.Value + Fields!AccruedInterest.Value) = 0 
        OR Fields!EquityTarget.Value = 0, 
            0, 
            SUM(IIF(Fields!SecTypeBaseCode.Value="cs", Fields!Marketvalue.Value, 0))
        )
    / 
    IIF(Sum(Fields!Marketvalue.Value + Fields!AccruedInterest.Value) = 0, 
        1, 
        Sum(Fields!Marketvalue.Value + Fields!AccruedInterest.Value)) 
    / 
    IIF(Fields!EquityTarget.Value = 0, 1, Fields!EquityTarget.Value)
    * 
    100

另请参阅: Avoid divide by zero in s-s-rS expression

s-s-rS Expression Divide by Zero Error

Attemted to divide by zero error in s-s-rS Expression

【讨论】:

以上是关于以表达式为值对 Tablix 进行排序的主要内容,如果未能解决你的问题,请参考以下文章

需要在 tablix 的列中对表达式进行分组

尝试在表达式上对表进行排序

SSRS如果参数与列值不匹配,如何隐藏Tablix?

根据参数显示或隐藏 tablix

基于参数的报表中的多个 Tablix 显示

在火花中创建一个以字长为键、以排序字为值的字典?