【发布时间】:2014-04-02 13:41:27
【问题描述】:
我有一个过程,它有多个查询,根据使用的参数运行。
If Reportname = 'Foo'
Begin
Select Forename, Surname, Jobtitle, Gender from Staff where X = y
End
If ReportName = 'Bar'
Begin
Select EnrolmentID, StudentID, EnrolmentStartDate, EnrollmentExpectedEndDate, Status from Enrolment where y = Z
End
如果我在 SSMS 中运行它,它会返回正确的记录和列。 在 SSRS 中,当我选择过程并设置参数时,它将可用列定义为过程的第一个 Select 语句中包含的列。
此过程将用于各种不同的报告和后端处理,理想情况下我不想加倍代码。
有人对如何让 SSRS 检测正在应用的正确上下文有任何建议吗?
我知道我可以将一些核心逻辑更改为表值函数,该函数返回一些适用于所有情况的通用数据。
谢谢
还有人有关于说服我的老板从 ADO Classic 升级到 ADO.Net Entity Framework 的技巧吗?我想念 EF 的灵活性,尤其是当我们在存储过程中做所有事情时,包括返回让我发疯的单个值。
【问题讨论】:
-
您有 2 个 SP 和 2 个不同的结果集 => 您有 2 个报告。那两个报表的设计是一样的吗?
-
这是一个单一的过程,它有多个可能的结果集,这些结果集取决于参数。每个报告的样式都将不同。
-
关于 ADO.NET,我会提出一个解决方案,让您的 COM 组件调用基于 Enterprise Library 的单独 .NET 组件。作为论据,您只有一个:将优势货币化,将其转化为每月获得的小时数,然后输入数字。
-
我们使用的自定义 ADO Classic 包装器是为了强迫我们使用 Procedures 太令人沮丧了!谢谢!
标签: sql sql-server stored-procedures reporting-services