2009-07-16 2 views
0

Диаграмма на reportviewer не загружается, если я не нажимаю кнопку отчета о просмотре при передаче параметров комболиста.Диаграмма на reportviewer не загружается автоматически

Все выбранные параметры переданы правильно и сообщают о загрузке только после нажатия кнопки «Просмотр отчета» в средстве просмотра отчетов. У меня есть этот просмотрщик отчетов на странице ASP.NET, и мои параметры передаются с использованием переменных сеанса, созданных с другой страницы ASP.NET, у которой есть моя форма параметров, откуда пользователь вводит и выбирает входные параметры.

В качестве входных параметров у меня есть даты (выбор даты) и названия компаний (многосегментный комбинированный список с флажками).

Отчет работает абсолютно нормально, если параметры отчета не поступают из списка комбинированных списков мультимедиа.

Вот мой код, который я использовал для определения параметров отчета в качестве переменных сеанса.

Session("labname") = Nothing 
    Session("fractionid") = FractionDropDownList.SelectedValue 
    For intloopindex As Integer = 0 To LabNamesCheckBoxList.Items.Count - 1 
     If LabNamesCheckBoxList.Items(intloopindex).Selected Then 
      Session("labname") &= LabNamesCheckBoxList.Items(intloopindex).Text & ControlChars.CrLf 
     End If 
    Next 
    Session("sdate") = sdate.text 
    Session("edate") = edate.text 

Вот мой код для передачи этих переменных сеанса в качестве параметров для контроля ReportViewer.

Если не IsPostBack Тогда

 Dim fractionparam As String 
     Dim sdateparam As String 
     Dim edateparam As String 
     Dim regionparam As String 
     Dim labnameparam As String 

     regionparam = Session("regionid") 
     fractionparam = Session("fractionid") 
     labnameparam = Session("labname") 
     sdateparam = Session("sdate") 
     edateparam = Session("edate") 


     Dim rp(3) As Microsoft.Reporting.WebForms.ReportParameter 

     'rp(0) = New Microsoft.Reporting.WebForms.ReportParameter("regionid", regionparam) 
     rp(0) = New Microsoft.Reporting.WebForms.ReportParameter("fractionid", fractionparam) 
     rp(1) = New Microsoft.Reporting.WebForms.ReportParameter("labname", labnameparam) 
     rp(2) = New Microsoft.Reporting.WebForms.ReportParameter("sdate", sdateparam) 
     rp(3) = New Microsoft.Reporting.WebForms.ReportParameter("edate", edateparam) 

     Me.ReportViewer1.ServerReport.SetParameters(rp) 

    End If 

ответ

0

я, наконец, получил решение.

Я делал одну серьезную ошибку с моим старым кодом. С многозначным параметром я пытался отправить все выбранные значения из списка со списком в виде одной строки.

Но я должен был использовать строковый массив для хранения многозначных параметров и отправки их с использованием переменной сеанса.

Включенный ниже код.

dim count as integer 
For intloopindex As Integer = 0 To LabNamesCheckBoxList.Items.Count - 1 
     If LabNamesCheckBoxList.Items(intloopindex).Selected Then 
      count=count+1 
     End If  
dim labnames(count) as array 

dim j as integer 
j=0 

for i as integer=0 to labnamescheckboxlist.items.count-1 
labnames(j)=labnamescheckboxlist.item(i).text 
j=j+1 
next 

    Session("labname") = Nothing 
    Session("labname")=labnames 

    Session("fractionid") = FractionDropDownList.SelectedValue 
    Session("sdate") = sdate.text 
    Session("edate") = edate.text 

На целевой странице прочитайте все переменные сеанса как параметры, как показано в предыдущем сообщении кода.

Смежные вопросы