bon*_*nny 5 .net vb.net report rdlc winforms
我在Reportviewer中需要认真的帮助。
我看到了很多链接,尝试了很多代码,但找不到合适的解决方案。请甚至让我理解并清除我的疑问。
完全困惑在代码中选择哪个数据集,什么是datasource.value东西,每次都会给我错误...
我正在展示如何创建报告并尝试使其工作的步骤。这是因为我在创建报告时可能犯了任何错误,并且您可能会发现他们。
现在,下面将描述问题,我有许多.rdlc报告我的项目。我所做的是
注意:包含表单名称的Reportviewer是Reports.vb
RDLC报表是Reports1.rdlc,Report2.rdlc,...
1)创建的报告,例如添加->新项目->报告->报告-> Report1.rdlc
报告名称:Report1.rdlc
3)DataSet属性打开,它甚至会打开DataSource配置向导。我选择存储过程是因为我想从存储过程中获取数据,然后按Finish。
这里的数据集名称是BonnyDataSet
4)之后,我从数据集属性中选择数据源...
现在最后一个可用的数据集是什么... ???
以及在ReportViewer中加载时必须考虑的数据集?
5)现在,我通过添加数据集1的数据列来组织该列,如下所示……
6)现在,我在Reports.vb表单中添加了Reportviewer,并尝试了很多代码……。
在这里显示其中一些。
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
Run Code Online (Sandbox Code Playgroud)
我收到如下错误:
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")
Run Code Online (Sandbox Code Playgroud)
这里的错误显示如下:
BC30311:“ LocalReport”类型的值不能转换为“ LocalReport”。
我尝试了许多其他方法,但无法理解问题所在。创建.rdlc报告期间我做错什么了吗???
急需帮助。谢谢
您应该考虑以下注意事项:
你有一个编译时错误说:
BC30311:“ReportDataSource”类型的值无法转换为“ReportDataSource”
因此,您应该检查是否使用了正确的引用ReportDataSource并使用了来自正确命名空间的类。一个常见的问题是,当您Microsoft.Reporting.WebForms.dll在 Windows 窗体项目中添加为引用并添加Import Microsoft.Reporting.WebForms命名空间时,您会收到此类异常。
修复后,您应该注意DataSet报告中的名称应与您在创建新ReportDataSource. 例如,如果名称DataSet为DataSet1,则应使用以下代码:
Dim rds = New ReportDataSource("DataSet1", data)
Run Code Online (Sandbox Code Playgroud)将data要传递给报告应当在其中使用的报告相同的结构。例如,它应该是 a 的一个实例DataTable:
TableAdapter1.Fill(Me.DataSet1, "Table1")
Dim rds = New ReportDataSource("DataSet1", Me.DataSet1.Table1)
Run Code Online (Sandbox Code Playgroud)在设置您使用的报告时,请使用正确的资源名称。例如,如果您Report1在项目的根目录中有一个,并且项目的默认 namspace 是YourProjectNamespace那么资源名称将是:
ReportViewer.LocalReport.ReportEmbeddedResource = "YourProjectNamespace.Report1.rdlc"
Run Code Online (Sandbox Code Playgroud)
当您的报表位于文件夹中时,文件夹名称也将添加到其资源名称中。
| 归档时间: |
|
| 查看次数: |
9076 次 |
| 最近记录: |