【问题标题】:Add a Parameter Value in SSRS在 SSRS 中添加参数值
【发布时间】:2010-12-23 19:12:52
【问题描述】:

我已经在 ReportServer 上设置了一份报告。以及它的订阅。我要做的是添加 ParameterValue“CC”和一些电子邮件地址,然后将电子邮件发送出去。它似乎不起作用。

我的代码:

Dim emailReader As SqlDataReader = selCount.ExecuteReader
Dim emailsTest As List(Of String) = New List(Of String)
emailsTest.Add("test1@pen.com")
emailsTest.Add("test2@pen.com")
emailsTest.Add("test3@pen.com")
emailsTest.Add("test4@pen.com")
If emailReader.HasRows() Then 'checks to see if there any quotes in query

    For Each subscrp As rs.Subscription In subscr
        Dim allValues = subscrp.DeliverySettings.ParameterValues
        Dim allValuesList As List(Of ReportTriggerTemplate1.rs.ParameterValueOrFieldReference) = allValues.ToList()
        Dim CCParameter As ReportTriggerTemplate1.rs.ParameterValue = New ReportTriggerTemplate1.rs.ParameterValue()
        CCParameter.Name = "CC"
        CCParameter.Value = String.Empty
        allValuesList.Add(CCParameter)
        Dim toValue = CType(allValuesList.Item(7), ReportTriggerTemplate1.rs.ParameterValue)

        For Each testEmail As String In emailsTest
            Dim ownerEmail As String = testEmail
            If toValue.Value.Contains(ownerEmail) Then
                'skip
            ElseIf toValue.Value = String.Empty Then
                toValue.Value += ownerEmail
            Else
                toValue.Value += "; " & ownerEmail
            End If
        Next
        subscrp.DeliverySettings.ParameterValues = allValuesList.ToArray()
        Dim hello As String = "hi"
        tr.FireEvent(EventType, subscrp.SubscriptionID) 'forces subscription to be sent
    Next

我添加到 toValue.Value 的内容似乎根本没有添加到报告的 CC 订阅字段中。那我错过了什么?

【问题讨论】:

    标签: vb.net winforms reporting-services ssrs-2008 subscription


    【解决方案1】:

    http://msdn.microsoft.com/en-us/library/ms154020%28v=SQL.100%29.aspx

    http://msdn.microsoft.com/en-us/library/reportservice2005.reportingservice2005.getsubscriptionproperties.aspx

    http://msdn.microsoft.com/en-us/library/reportservice2005.reportingservice2005.setsubscriptionproperties%28v=SQL.105%29.aspx

     Try
            tr = New rs.ReportingService2005
            Dim extSettings As ExtensionSettings = Nothing
            Dim desc As String = Nothing
            Dim active As ActiveState = Nothing
            Dim status As String = Nothing
            Dim matchData As String = Nothing
            Dim values As ParameterValue() = Nothing
            Dim extensionParams As ParameterValueOrFieldReference() = Nothing
    
            Dim mainLogin As System.Net.NetworkCredential = New System.Net.NetworkCredential("ADUser", "Password", "NetworkName")
            If mainLogin Is Nothing Then
                tr.Credentials = System.Net.CredentialCache.DefaultCredentials
            Else
                tr.Credentials = mainLogin
            End If
    

    '跳转到相关代码

            For Each subscrp As rs.Subscription In subscr
    
                    Dim allValues = subscrp.DeliverySettings.ParameterValues
                    Dim allValuesList As List(Of ReportTriggerTemplate1.rs.ParameterValueOrFieldReference) = allValues.ToList()
    
                    If CType(allValuesList.Item(0), ReportTriggerTemplate1.rs.ParameterValue).Value = "test@pen.com" Then
                        Dim subsID = subscrp.SubscriptionID
                        'important code just below
                        tr.GetSubscriptionProperties(subsID, extSettings, desc, active, status, EventType, matchData, extensionParams)
    
                        ''''add change to CC here
                        Dim extSettingsList As List(Of ReportTriggerTemplate1.rs.ParameterValueOrFieldReference) = extSettings.ParameterValues.ToList()
                        If CType(extSettingsList.Item(1), ReportTriggerTemplate1.rs.ParameterValue).Name = "CC" Then
                            If CType(extSettingsList.Item(1), ReportTriggerTemplate1.rs.ParameterValue).Value = String.Empty Then
                                CType(extSettingsList.Item(1), ReportTriggerTemplate1.rs.ParameterValue).Value = emailsTest.Item(0) & ";" & emailsTest.Item(1)
                            Else
                                CType(extSettingsList.Item(1), ReportTriggerTemplate1.rs.ParameterValue).Value += ";" & emailsTest.Item(0) & ";" & emailsTest.Item(1)
                            End If
                        Else
                            Dim CCParameter As ReportTriggerTemplate1.rs.ParameterValue = New ReportTriggerTemplate1.rs.ParameterValue()
                            CCParameter.Name = "CC"
                            CCParameter.Value = emailsTest.Item(0) & ";" & emailsTest.Item(1)
                            extSettingsList.Insert(1, CCParameter)
                            extSettings.ParameterValues = extSettingsList.ToArray
                        End If
                        'important code just below
                        tr.SetSubscriptionProperties(subsID, extSettings, desc, EventType, matchData, extensionParams)
    
                        tr.FireEvent(EventType, subscrp.SubscriptionID) 'forces subscription to be sent
    
                    Else
    
    
                    End If
    
             Next
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 2012-02-11
      相关资源
      最近更新 更多