2016-10-15 7 views
1

Мне нужна серьезная помощь в reportviewer.
Я видел много ссылок, много раз пробовал коды, но не нашел подходящего решения. Пожалуйста, дайте мне понять и понять мои сомнения.
Полностью спутать который набор данных для выбора кода во время и что datasource.value вещь, которая дает мне ошибку каждый раз ...
Загрузка отчета .rdlc в Reportviewer вручную в VB.Net

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

Теперь проблема описана ниже, У меня есть много отчетов .rdlc, посвященных моему проекту. То, что я сделал это

Примечание: ReportViewer, содержащая имя форма Reports.vb
отчеты RDLC являются Reports1.rdlc, Report2.rdlc ...

1) Создан отчет как Add -> Новый элемент -> Отчеты -> Отчет -> Report1.rdlc
Название отчета: Report1.rdlc

2) Затем я добавляю набор данных здесь, как это ...

enter image description here

3) Свойства DataSet открывается, он даже открывает мастер настройки DataSource. Я выбираю хранимые процедуры, потому что хочу извлечь данные из моих хранимых процедур и нажать «Готово».
Здесь DataSet зовут BonnyDataSet

enter image description here

4) После этого я выбираю источник данных из свойств набора данных ...
Теперь то это Доступные наборы данных здесь в последний ... ???
И какой набор данных я должен учитывать при загрузке в ReportViewer ???

enter image description here

5) Теперь я организовал столбец путем добавления столбцов данных из DataSet1 показано ниже ...

enter image description here

6) Теперь я добавил ReportViewer в виде Reports.vb и попробовал много кодов ....
Показаны некоторые из них здесь.

Private Sub Reports_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     Try 
      'Select Case PubRepVar 
      'Case "AccMast" 
      Dim data As New BonnyDataSet 
      Dim rds = New ReportDataSource("BonnyDataSet", data) 
      ReportViewer.LocalReport.DataSources.Clear() 
      ReportViewer.LocalReport.DataSources.Add(rds) ‘------error here 
      ReportViewer.LocalReport.ReportEmbeddedResource = "YourProjectNamespace.Report1.rdlc" 
      ReportViewer.RefreshReport() 
      'End Select 

     Catch ex As Exception 
      MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error) 
     End Try 
    End Sub 

я получаю ошибку следующим образом:

BC30311: Значение 'ReportDataSource' типа не могут быть преобразованы в 'ReportDataSource'

Я понятия не имею об этой ошибке.

Другой код, который я пробовал, - ReportViewer.ProcessingMode = ProcessingMode.Local

 Dim localReport As LocalReport 
     localReport = ReportViewer.LocalReport ‘-------error here 

     localReport.ReportEmbeddedResource = 
      "ReportViewerIntro.Report1.rdlc" 

     Dim dataset As New DataSet("BonnyDataSet") 

Здесь ошибка показывает, как:

BC30311: Значение типа 'LocalReport' не может быть преобразован в 'LocalReport'.

И я пробовал много других, но не могу понять, в чем проблема. Я делаю что-то неправильно во время создания отчетов .rdlc ???

Нужна помощь с нетерпением. Thanx

+0

Вы пробовали 'Dim выстр = Новый ReportDataSource ("DataSet1", данные)' –

+0

Также должны быть данные результатом 'BonnyDataSet.AccMast_AllDetail'. –

+0

нет, не было, я пробовал этот 'Dim data = BonnyDataSet.AccMast_AllDetail' не работать. Ничего не работает. Он говорит ** Тип значения ReportDataSource не может быть преобразован в ReportDataSource ** ... Теперь что это? @RezaAghaei – bonny

ответ

3

Вы должны рассмотреть эти примечания:

  1. У вас есть ошибка compoile времени, говоря:

    BC30311: Значение 'ReportDataSource' типа не могут быть преобразованы в 'ReportDataSource'

    Таким образом, вы должны проверить, используете ли вы правильную ссылку для ReportDataSource и используете этот класс правильное пространство имен. Общей проблемой является то, что вы добавили Microsoft.Reporting.WebForms.dll в качестве ссылки в проект Windows Forms и добавили пространство имен Import Microsoft.Reporting.WebForms, так что вы получите такое исключение.

  2. После устранения этого следует обратить внимание, что имя DataSet в вашем отчете должно совпадать с именем, которое вы используете при создании нового ReportDataSource. Например, если имя DataSet является DataSet1, вы должны использовать такой код:

    Dim rds = New ReportDataSource("DataSet1", data) 
    
  3. data, который вы хотите передать в отчет должен быть в той же структуре, которая используется в докладе. Например, он должен быть экземпляром DataTable:

    TableAdapter1.Fill(Me.DataSet1, "Table1") 
    Dim rds = New ReportDataSource("DataSet1", Me.DataSet1.Table1) 
    
  4. При установке какой отчет вы используете, используйте правильное имя ресурса. Например, если у вас есть Report1 в корневом каталоге вашего проекта, и по умолчанию namspace вашего проекта YourProjectNamespace то имя ресурса будет:

    ReportViewer.LocalReport.ReportEmbeddedResource = "YourProjectNamespace.Report1.rdlc" 
    

    Когда ваш отчет в папку, название папки также будут добавлены к его имени ресурса.

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

  • Нет связанных вопросов^_^