SSRS-按字符串的数字部分排序

时间:2018-12-19 17:13:54

标签: sorting reporting-services dynamics-crm

我有一个SSRS报告,该报告将在Dynamics 365中使用,因此我无法在数据集中使用SQL来提供帮助。

我有一个产品/版本代码列,其中包含字母和数字的字符串。例如:

FF8, FF9, FF10, FFA

这些将进入列标题并形成一个列组,该组也按代码排序。标准的字母排序为此顺序:

FF10-FF8-FF9-FFA

我很高兴在我的排序表达式中使用子字符串来删除前面的产品代码,但是我希望数字以升序数字格式,后跟字母版本:

FF8-FF9-FF10-FFA

2 个答案:

答案 0 :(得分:1)

我会向您的数据集中添加一个计算列,该列将去除非数字字符并将其转换为数字。这将使排序更容易

这样的公式可能会有所帮助

=System.Text.RegularExpressions.Regex.Replace(Fields!productcode.Value, "[^0-9]", "")

^的意思是“不是”,因此此Regex表达式将删除所有不在0到9范围内的字符(即所有非数字字符)

根据this,CRM沙盒报表应支持Regex.Replace

答案 1 :(得分:1)

您还可以在“排序”中使用以下表达式

enter image description here

= switch(Fields!name.Value =“ FF10”,3,Fields!name.Value =“ FF9”,2,Fields!name.Value =“ FF8”,1,Fields!name.Value =“ FFA “,4)

佐伊