You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tablix表单设备列表按类型Z-A逆序排序问题求助

解决Tablix设备列表逆序排序问题

直接按设备名称字符串排序会因字母顺序规则(cmt的字母序列比cl靠前)导致排序混乱,要实现设备类型Z到A逆序,同类型内按编号升序的需求,可通过以下两种方式处理:

方法一:数据源层面提取排序字段

如果数据源是SQL查询,可直接在查询中提取设备类型和编号字段,方便后续Tablix排序:

SELECT 
    DeviceName,
    -- 提取设备类型(截取名称中编号后的部分)
    RIGHT(DeviceName, CHARINDEX(' ', REVERSE(DeviceName)) - 1) AS DeviceType,
    -- 提取设备编号并转为整数
    CAST(SUBSTRING(DeviceName, CHARINDEX('#', DeviceName)+1, CHARINDEX(' ', DeviceName) - CHARINDEX('#', DeviceName)-1) AS INT) AS DeviceNumber
FROM YourDeviceTable

在Tablix中设置排序规则:

  • 第一排序条件:按DeviceType字段降序排列
  • 第二排序条件:按DeviceNumber字段升序排列

方法二:直接在Tablix中使用排序表达式

若无法修改数据源,可直接在Tablix的排序设置中使用表达式提取关键信息:

  1. 选中Tablix的详细行或对应分组,打开「排序」设置面板
  2. 添加第一个排序规则:
    • 表达式:=RIGHT(Fields!DeviceName.Value, LEN(Fields!DeviceName.Value) - CHARINDEX(' ', Fields!DeviceName.Value, CHARINDEX('#', Fields!DeviceName.Value)))
    • 排序方向:降序
  3. 添加第二个排序规则:
    • 表达式:=CINT(MID(Fields!DeviceName.Value, CHARINDEX("#", Fields!DeviceName.Value)+1, CHARINDEX(" ", Fields!DeviceName.Value, CHARINDEX("#", Fields!DeviceName.Value)) - CHARINDEX("#", Fields!DeviceName.Value)-1))
    • 排序方向:升序

效果验证

设置完成后,设备列表将按预期排序:

Filter #1 cl
Filter #2 cl
Filter #1 cmt
Filter #2 cmt

内容的提问来源于stack exchange,提问作者Cia92

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:01:08