RDLC多列排序:将数字排序为字符串问题

时间:2013-05-11 16:18:38

标签: c# asp.net sorting reporting rdlc

我正在开发一个使用Microsoft RDLC Reporting框架和本地处理模式的.Net 4.0 Web项目,我的问题是我必须使用动态列名字符串数组参数对表格数据进行排序,所以当我研究互联网(对不起,我现在没有与我研究的实际链接)我发现我有这个选项。

  1. 使用交互式排序 - 我无法使用b / c排序列未预先定义,我有更多列不可见(没有标题或列)但仍然参与排序。
  2. 在tablix属性上使用Sorting选项卡 - 这是解决我问题的理想方法,但现在我遇到了问题。
  3. 我在互联网上发现,可以在tablix属性的排序选项卡上以两种方式指定排序字段。

    • 第一种方法是在第一个排序字段上使用“&”连接字段,使用像这样的表达式= Fields!Title.Value&领域!EstimatedHours.Value 这个将对数据进行排序,但它将Numbers排序为字符串,这意味着当您按升序排序时,250.00将始终位于3.6的顶部。我没有在其他数据类型(如Date等)上测试它,但我确定它会产生同样的结果。

    • 我找到的第二种方法是为Tablix Properties窗口的Sort选项卡上的每个排序字段添加一个排序字段表达式文本框。

    • 在第一个文本框上=> =字段!Title.Value
    • 在第二个文本框上=> = Fields!EstimatedHours.Value

    通过这种方式,它只会对我在第一个文本框中给出的第一个字段上的数据进行排序,而忘记了其余的字段。

    所以我的问题是我在这里缺少什么来进行上述排序工作?

    提前感谢大家,我希望能在你的帮助下解决问题。 如果它有助于我使用Visual Studio 2010 Ultimate Edition,RDLC Version 10,Entity Framework 5和Object DataSourceControl以及自定义方法返回我自定义对象的List以填充报告。

1 个答案:

答案 0 :(得分:9)

我解决了我的问题。诀窍是在详细信息组上指定RDLC文件中的排序列 - >组属性 - >排序选项卡而不是将它们放在tablix属性上 - >排序标签。 这完全解决了我的问题。希望它可以帮到某人。