2013-05-17 55 views
0

我和我的團隊試圖創建訂閱並導出CSV格式的報表,但我們需要將字段分隔符從「,」(這是默認值)更改。我們如何將設備信息以編程方式傳遞給SSRS(2008)訂閱(C#)?如何將設備信息傳遞給SSRS訂閱?

我們有一個對ReportingServices2005的Web引用。這是和示例的我們的代碼:

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 
} 

我們能不能找到一種方法,通過該設備的信息,這是甚至更多鈔票?

欲瞭解更多信息檢查:
http://msdn.microsoft.com/en-us/library/microsoft.wssux.reportingserviceswebservice.rsmanagementservice2005.reportingservice2005.createsubscription%28v=SQL.90%29.aspx

回答

0

你不可錯過DeviceInfoCreateSubscription()方法,但是這兩種方法中的一種可以爲你做的伎倆......

  1. Customizing Rendering Extension Parameters in 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> 
    
  2. Implementing a Rendering Extension是更多地參與,但給你更多的控制。

一旦你有了新的渲染擴展,你可以通過這樣的名字......

extensionParams.Add(new ParameterValue 
{ 
    Name = "RenderFormat", 
    Value = "CsvPipeDelimited" 
}); 
+0

太好了!謝謝! – Unlimited071

+0

不客氣:) – davmos