首页 > 解决方案 > SSRS - 按字符串的数字部分排序

问题描述

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

我有一个产品/版本代码列,它是字符串混合字母和数字。例如:

FF8、FF9、FF10、FFA

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

FF10 - FF8 - FF9 - FFA

我很高兴在我的排序表达式中使用子字符串来删除前面的产品代码,但我想要升序数字格式的数字,后跟按字母顺序排列的文本版本:

FF8 - FF9 - FF10 - FFA

标签: sortingreporting-servicesdynamics-crm

解决方案


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

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

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

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

据此Regex.Replace应在 CRM 的沙盒报告中得到支持


推荐阅读