Sql server 生成脚本,为SSRS中的每条记录创建报告
在SSRS中,可以使用参数将报告导出为特定格式。例如,我可以添加到urlSql server 生成脚本,为SSRS中的每条记录创建报告,sql-server,tsql,reporting-services,Sql Server,Tsql,Reporting Services,在SSRS中,可以使用参数将报告导出为特定格式。例如,我可以添加到urlrs:format=PDF,以将报告导出为PDF文件。导出时,报告以pdf文件的形式出现,报告名称为实际报告的标题。我意识到在SSRS中,没有办法在下载报告时为其指定具体名称 但是,我们有10k条记录,用户希望自动导出这些记录,例如pdf导出。我不想在那里创建10k个不同的数据驱动订阅,并为参数指定记录的ID值。我得做10公里 有没有一种更简单的方法可以将我的所有记录导出到一种特定的格式,其中包含报告的名称和记录的ID??例
rs:format=PDF
,以将报告导出为PDF文件。导出时,报告以pdf文件的形式出现,报告名称为实际报告的标题。我意识到在SSRS中,没有办法在下载报告时为其指定具体名称
但是,我们有10k条记录,用户希望自动导出这些记录,例如pdf导出。我不想在那里创建10k个不同的数据驱动订阅,并为参数指定记录的ID值。我得做10公里
有没有一种更简单的方法可以将我的所有记录导出到一种特定的格式,其中包含报告的名称和记录的ID??例如,我们为每个记录使用自动编号id,因此一个pdf可能命名为12.pdf,下一个命名为13.pdf,等等。但这应该根据需要随时运行
是否有人知道我是否可以通过tsql或存储过程执行此操作?右键单击您的SSRS报告,然后按照以下路径操作: 管理>订阅>新建订阅>数据驱动订阅 阅读更多信息。但长话短说,您可以按照描述设置参数,然后通过sql单元格填充它 逐步:
右键单击您的SSRS报告,然后按照以下路径操作: 管理>订阅>新建订阅>数据驱动订阅 阅读更多信息。但长话短说,您可以按照描述设置参数,然后通过sql单元格填充它 逐步:
所以您提到没有enterprise edition,而且似乎只有enterprise edition具有数据驱动订阅 还有另一种方法。您可以通过C#中的WebClient执行SSR 首先,通过SQL动态捕获参数:
class parameterRow {
public string fileName;
public string active;
}
...
var parameterRows = new List<parameterRow>();
var sql = @"
select fileName = 'activeRecords.pdf',
active = 'Active'
union all
select fileName = 'inactiveRecords.pdf',
active = 'Inactive'
";
using (var con = new SqlConnection("server=someServer;database=someDB;trusted_connection=yes"))
using (var cmd = new SqlCommand(sql, con)) {
con.Open();
using (var rdr = cmd.ExecuteReader())
while (rdr.Read())
parameterRows.Add(new parameterRow {
fileName = rdr[0].ToString(),
active = rdr[1].ToString()
});
}
显然,您可能不需要压缩,但由于它是我获取的旧代码的一部分,我想我会保留该功能,以防它有用。所以您提到您没有enterprise edition,而且似乎只有enterprise edition具有数据驱动订阅 还有另一种方法。您可以通过C#中的WebClient执行SSR 首先,通过SQL动态捕获参数:
class parameterRow {
public string fileName;
public string active;
}
...
var parameterRows = new List<parameterRow>();
var sql = @"
select fileName = 'activeRecords.pdf',
active = 'Active'
union all
select fileName = 'inactiveRecords.pdf',
active = 'Inactive'
";
using (var con = new SqlConnection("server=someServer;database=someDB;trusted_connection=yes"))
using (var cmd = new SqlCommand(sql, con)) {
con.Open();
using (var rdr = cmd.ExecuteReader())
while (rdr.Read())
parameterRows.Add(new parameterRow {
fileName = rdr[0].ToString(),
active = rdr[1].ToString()
});
}
显然,您可能不需要压缩,但由于这是我获取的旧代码的一部分,我想我会保留该功能,以防它有用。我知道如何创建订阅-这不是我的问题。但是,我如何使用动态参数创建此订阅,并让它运行,然后说将文件保存到网络上,然后继续下一步。我不想创建10k订阅。“数据驱动”订阅与普通订阅不同。它们允许您动态设置参数。我添加了第二个“here”链接,这可能是一个更好的示例,尽管我试图找到另一个利用了多行示例的示例。此外,我正在研究是否可以将数据保存到网络驱动器。奇怪的是,我没有将数据驱动视为一个选项,事实上我看到的只是订阅->新建订阅。pwilcox没有单选按钮列表。我们运行的是标准版而不是企业版……我在几年前通过c#完成了这项工作,但我必须搜索代码。如果明天没有人发布答案,我会尝试搜索并发布另一个答案