SSRS 存储过程 CASE 语句未返回到数据集
SSRS Stored Procedure CASE statement not being returned to dataset
我有一个使用存储过程作为数据集的报告。我的存储过程中有一个简单的 case 语句,它根据记录中的结果操作一组标题。
CASE
WHEN CWLI.CAPTION='Hypo Tax – Medical'
THEN 'Medical Tax'
WHEN CWLI.CAPTION='Hypo Tax Social'
THEN 'Social Tax'
ELSE CWLI.CAPTION
END AS CAPTION,
CASE
WHEN CWD.CAPTION='Hypo Tax – Medical'
THEN 'Medical Tax'
WHEN CWD.CAPTION='Hypo Tax Social'
THEN 'Social Tax'
ELSE CWD.CAPTION
END AS CWDCAPTION,
我在 SSMS 中执行存储过程时看到了预期的结果,如下所示:
但是,在我的报告中我仍然看到 "Hypo Tax Social"
我已经结束投标。我删除了数据集并将其添加为新数据集。我还更改了我的配置文件 RSReportDesigner.config
并将 CacheDataForPreview 更改为 false
并删除了我的 .data 文件。
可能出了什么问题?
我搜索了 rdl.data 个文件,但没有 return 任何内容。尽管我更改了 RSReportDesigner.config 文件 Add Key="CacheDataForPreview" Value="false" ,但我仍然希望找到残留的 .data 文件。尽管如此,我将此更改回滚到 Add Key="CacheDataForPreview" Value="true"
我删除了数据源、数据集并从 VSS 中重新创建。然后我创建了一个外部工具来为我删除这些文件。我在使用我的工具时收到此消息。
找不到 C:\Users\Pennie\Documents\Visual 工作室 2008\Projects\Client*.rdl.data
我仍然在 SSMS 中看到正确的结果(新的 CASE 标题)和我的报告中的旧标题。
我真的很想在存储过程中处理这个,但我有一个可交付成果。
我可以操纵 tablix 表达式中的字幕吗?现在
该表达式正在从两个字段中查找值。一个字段在我的应用程序的公司级别(这些可能是空白的)。 Fields!CAPTION.Value,另一个是系统级别的(这些永远不会为空) Fields!CWDCAPTION.Value
这是我当前的表达式 w/o 附加案例。
=Iif(Fields!CAPTION.Value="",Fields!CWDCAPTION.Value,Fields!CAPTION.Value)
当我尝试在此表达式中添加额外的 Iif 时。我只是 return True or False.
再次感谢。
佩妮
好吧,这一课教会了我很多关于缓存和 .data 的知识...但问题是白痴开发人员(我)在我的报告中调用了我的测试 SP。我的测试 SP 不包含案例陈述。希望我有更多令人振奋的消息,但事实很容易证明;-)
我已经准备好了。
佩妮
听起来您在最初创建数据集后添加了 CASE
语句。如果是这种情况,您需要再次重新创建数据集。需要明确的是,不仅要从报告中删除数据集,还要删除数据集本身。
我有一个使用存储过程作为数据集的报告。我的存储过程中有一个简单的 case 语句,它根据记录中的结果操作一组标题。
CASE
WHEN CWLI.CAPTION='Hypo Tax – Medical'
THEN 'Medical Tax'
WHEN CWLI.CAPTION='Hypo Tax Social'
THEN 'Social Tax'
ELSE CWLI.CAPTION
END AS CAPTION,
CASE
WHEN CWD.CAPTION='Hypo Tax – Medical'
THEN 'Medical Tax'
WHEN CWD.CAPTION='Hypo Tax Social'
THEN 'Social Tax'
ELSE CWD.CAPTION
END AS CWDCAPTION,
我在 SSMS 中执行存储过程时看到了预期的结果,如下所示:
但是,在我的报告中我仍然看到 "Hypo Tax Social"
我已经结束投标。我删除了数据集并将其添加为新数据集。我还更改了我的配置文件 RSReportDesigner.config
并将 CacheDataForPreview 更改为 false
并删除了我的 .data 文件。
可能出了什么问题?
我搜索了 rdl.data 个文件,但没有 return 任何内容。尽管我更改了 RSReportDesigner.config 文件 Add Key="CacheDataForPreview" Value="false" ,但我仍然希望找到残留的 .data 文件。尽管如此,我将此更改回滚到 Add Key="CacheDataForPreview" Value="true"
我删除了数据源、数据集并从 VSS 中重新创建。然后我创建了一个外部工具来为我删除这些文件。我在使用我的工具时收到此消息。
找不到 C:\Users\Pennie\Documents\Visual 工作室 2008\Projects\Client*.rdl.data
我仍然在 SSMS 中看到正确的结果(新的 CASE 标题)和我的报告中的旧标题。 我真的很想在存储过程中处理这个,但我有一个可交付成果。 我可以操纵 tablix 表达式中的字幕吗?现在 该表达式正在从两个字段中查找值。一个字段在我的应用程序的公司级别(这些可能是空白的)。 Fields!CAPTION.Value,另一个是系统级别的(这些永远不会为空) Fields!CWDCAPTION.Value
这是我当前的表达式 w/o 附加案例。
=Iif(Fields!CAPTION.Value="",Fields!CWDCAPTION.Value,Fields!CAPTION.Value)
当我尝试在此表达式中添加额外的 Iif 时。我只是 return True or False.
再次感谢。 佩妮
好吧,这一课教会了我很多关于缓存和 .data 的知识...但问题是白痴开发人员(我)在我的报告中调用了我的测试 SP。我的测试 SP 不包含案例陈述。希望我有更多令人振奋的消息,但事实很容易证明;-)
我已经准备好了。 佩妮
听起来您在最初创建数据集后添加了 CASE
语句。如果是这种情况,您需要再次重新创建数据集。需要明确的是,不仅要从报告中删除数据集,还要删除数据集本身。