2012-04-23 3 views
0

Это смешно. Я открываю новое окно после прохождения параметров к нему. В этом новом окне находится мой контроль ReportViewer. Я загружаю элемент управления и все дисплеи хорошо, пока не нажму кнопку VIEW NEXT PAGE - перезагрузите отчет и снова начните со страницы 1.Report Viewer loing Параметры при выборе СЛЕДУЮЩАЯ СТРАНИЦА

Любые идеи ????

КОД:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     Dim strTitle As String 
     Dim strReportName As String 
     Dim tstr As String 

     tstr = "-o-" 
     strReportName = "" 
     strTitle = "Praxima CENTAURI Report Viewer : REPORT : " 

     'If Not IsPostBack Then 
     If Not String.IsNullOrEmpty(Request.QueryString("prm")) Then 
      tstr = Request.QueryString("prm").ToString() 
     End If 
     'End If 

     'tstr = Request.QueryString("prm").ToString() 
     Me.Title = tstr 'strTitle + strReportName 
     SetReportProperties(tstr) 
    End Sub 
    Private Sub SetReportProperties(ByVal CSVString As String) 
     Dim paramList As Generic.List(Of ReportParameter) = New Generic.List(Of ReportParameter)() 
     With ReportViewer1 
      .ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote 
      With .ServerReport 
       Dim PParm(0) As String 
       Dim PValue(0) As String 
       Dim cnt As Integer = 1 
       Dim AType As String = "P" 
       Dim Marker As Integer = 1 
       Dim Pcnt As Integer = 0 
       Dim Vcnt As Integer = 0 
       Dim iLoop as Integer 
       For cnt = 1 To Len(CSVString) 

        If Mid(CSVString, cnt, 1) = "," And AType = "P" Then 
         ReDim Preserve PParm(Pcnt) 
         PParm(Pcnt) = Mid(CSVString, Marker, cnt - Marker) 
         'CSVString = Mid(CSVString, cnt + 1, Len(CSVString) - cnt) 
         cnt = cnt + 1 
         AType = "V" 
         Marker = cnt 
         Pcnt = Pcnt + 1 
        End If 
        If Mid(CSVString, cnt, 1) = "," And AType = "V" Or cnt = Len(CSVString) Then 
         ReDim Preserve PValue(Vcnt) 
         If cnt = Len(CSVString) Then 
          PValue(Vcnt) = Mid(CSVString, Marker, (cnt - Marker) + 1) 
         Else 

          PValue(Vcnt) = Mid(CSVString, Marker, cnt - Marker) 
         End If 
         'CSVString = Mid(CSVString, cnt + 1, Len(CSVString) - cnt) 
         cnt = cnt + 1 
         AType = "P" 
         Marker = cnt 
         Vcnt = Vcnt + 1 
        End If 

        '     Dim pUri As New Uri(PValue(0)) 


       Next 
       .ReportServerUrl = New Uri("http://localhost/reportserver") 'New Uri(PValue(0).ToString) 
       .ReportPath = "/praxima/rptZZ-FullPayDetails" 'PValue(1) 


       Dim pinfo As ReportParameterInfoCollection = .GetParameters() 
       Dim Parray As Integer = 1 
       For Each p As ReportParameterInfo In pinfo 
        Parray = Parray + 1 
        If Parray > 1 And Parray < pinfo.Count Then 
         paramList.Add(New ReportParameter(PParm(Parray).ToString, PValue(Parray).ToString)) 
        End If 
       Next 



       If paramList.Count > 0 Then 
        'MsgBox(paramList.Item(2).Values.Item(1).ToString, vbOKOnly,) 

        .SetParameters(paramList) 

       End If 


      End With 
      .ShowParameterPrompts = False 

     End With 


    End Sub 
+0

В: page_load, вы проверили Me.IsPostBack? – rt2800

+0

Можете ли вы отправить код, который обрабатывает кнопку «СЛЕДУЮЩАЯ СТРАНИЦА»? Нам нужно увидеть, где вы перепроверьте результаты. Кроме того, в приведенном выше коде я не вижу ссылки на то, что представляет собой текущий номер страницы. –

+0

Это кнопка в элементе управления ReportViewer (ссылающиеся службы ReportingServices). У меня нет управления fdirect. Это часть контрольного контроля от MS. –

ответ

0

я назвал доклад непосредственно вместо того, чтобы беспокоиться о том, фантазии логотипы и т.д. на экране. Я использую таблицу стилей CSS для отчета «pretty-Up».

<title>Untitled Page</title> 
<script type="text/javascript"> 
    function open_win() 
     { 
      var Parms = document.getElementById('PassParmString').value; 
      window.open(Parms) 

}

и строка параметров, передаваемых выглядит так:

Me.PassParmString.Text = Me.PassParmString.Text + "&ClientName=ZZZZ&StartDateString=2011/01/01&EndDateString=2011/01/31&GiveBlankOutput=Yes&Level2From= &Level2To=ZZZZZZZZ&Level3From= &Level3To=ZZZZZZZZ&Level4From= &Level4To=ZZZZZZZZ&Level5From= &Level5To=ZZZZZZZZ&EmpNumFrom= &EmpNumTo=ZZZZZZZZ&EmpNameFrom= &EmpNameTo=ZZZZZZZZ&CostCentFrom= &CostCentTo=ZZZZZZZZ&OutputSeq=Name&EntireYear=No&StartYearString=2011-03-01" 

MAC

-1

Dont SetReportProperties вызова в Page_Load случае. Назовите это событие, например button_click.