[英]How to pass device information to a SSRS subscription?
我和我的团队正在尝试创建订阅并以CSV格式导出报告,但是我们需要将字段定界符从“,”(默认设置)更改。 如何将设备信息以编程方式(C#)传递给SSRS(2008)订阅?
我们有一个Web参考ReportingServices2005。 这是我们的代码示例:
string report = "Insert report here";
string desc = "A description";
string eventType = "TimedSubscription";
string matchData = "<ScheduleDefinition>...</ScheduleDefinition>";
string RenderFormat = "CSV";
ParameterValue[] reportParameters = GetReportParameters();
var extensionParams = new List<ParameterValue>();
extensionParams.Add(new ParameterValue
{
Name = Constants.EXTENSIONPARAMRENDER_FORMAT,
Value = RenderFormat
});
extensionParams.Add(new ParameterValue
{
Name = Constants.EXTENSIONPARAMFILENAME,
Value = FileName
});
// Insert more params here...
ExtensionSettings extSettings = new ExtensionSettings();
extSettings.ParameterValues = extensionParams.ToArray();
extSettings.Extension = Constants.EXTENSIONREPORTSERVERFILESHARE;
try
{
ReportingService2005 rs = new ReportingService2005();
rs.CreateSubscription(
report, extSettings, desc, eventType, matchData, reportParameters);
}
catch (SoapException e)
{
// Handle the exception
}
我们找不到传递设备信息的方法,这甚至可能吗?
您不能将DeviceInfo
传递给CreateSubscription()
方法,但是这两种方法之一可能会帮您解决问题。
请参阅在RSReportServer.Config中自定义渲染扩展参数,以创建默认版本“ CSV”扩展的新版本,您可以在其中配置所需的DeviceInfo
。 因此,您可以在配置文件中添加这样的部分...
<Extension Name="CsvPipeDelimited" Type="Microsoft.ReportingServices.Rendering.DataRenderer.CsvReport,Microsoft.ReportingServices.DataRendering"> <Configuration> <DeviceInfo> <Extension>txt</Extension> <FieldDelimiter>|</FieldDelimiter> <NoHeader>false</NoHeader> </DeviceInfo> </Configuration> </Extension>
实施“渲染扩展”的工作更多,但可以赋予您更多控制权。
一旦有了新的Rendering Extension,就可以像这样传递名称...
extensionParams.Add(new ParameterValue
{
Name = "RenderFormat",
Value = "CsvPipeDelimited"
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.