=Switch(Fields!RptSeq.Value="1",Fields!PatientId.Value,
Fields!RptSeq.Value="2",Fields!RxNumber.Value,Fields!PatientId.Value
Fields!RptSeq.Value="5",Fields!DoctorName.Value,Fields!PatientId.Value,
1=1,Fields!PatientId.Value)
我需要按照这样排序我的报告thrugh表达式,如果排序seq是1然后是患者ID,如果是2那么报告应首先按RxNumber排序,然后按PatientID排序。我不知道如何对2个字段值进行排序。
如果我做Fields!RxNumber.Value,Fields!PatientId.Value排序不起作用,如果我做Fields!RxNumber.Value + Fields!PatientId.Value我得错误排序表达式。
感谢您的帮助
提前致谢。
答案 0 :(得分:1)
你可以在tablix的排序标签中添加两行;一个用于表达式的第一个排序优先级:
=Switch(Fields!RptSeq.Value="1",Fields!PatientId.Value,
Fields!RptSeq.Value="2",Fields!RxNumber.Value,
Fields!RptSeq.Value="5",Fields!DoctorName.Value,
1=1,Fields!PatientId.Value)
和另一个第二个排序优先级将字段设置为:
Fields!PatientId.Value
答案 1 :(得分:0)
您也可以通过将参数传递给数据集查询来处理它。
样品:
declare @RptSeq int = 1
select * from Table
order by
(case @RptSeq when 1 then PatientId
when 2 then RxNumber
when 5 then DoctorName
else PatientId
end),
(case @RptSeq when 2 then PatientId
when 5 then PatientId
end)