我在我的 VB.NET 项目中创建了许多 Crystal Reports,从 Microsoft Access 2007 (.accdb) 数据库中获取数据。
现在,我正在使用 Microsoft SQL Server (.mdf) 数据库更新我的应用程序。
如何将所有 Crystal Reports 的数据源从 Access 文件更新为 MDF 文件?
谢谢。
我在我的 VB.NET 项目中创建了许多 Crystal Reports,从 Microsoft Access 2007 (.accdb) 数据库中获取数据。
现在,我正在使用 Microsoft SQL Server (.mdf) 数据库更新我的应用程序。
如何将所有 Crystal Reports 的数据源从 Access 文件更新为 MDF 文件?
谢谢。
除非有人有更快/更简单的解决方案,否则这是我在 Visual Studio 2010 中使用 MS Access 获取水晶报告的方法。它比选择数据源的常规方法稍微复杂一些,但它提供了更多的控制,是数据库不可知论并且在其他方法有时会失败的情况下工作(尤其是在我的经验中使用 MS Access)。
我将详细介绍使报告从头到尾工作的过程(因为整个过程可能对其他人有用),但会突出显示可能对您有用的部分。
1) 从 SAP 站点安装 Crystal Reports。确保您下载的是 exe 文件,而不是 msi 文件(它不起作用):
http://scn.sap.com/docs/DOC-7824
2)将您的应用程序的目标框架更改为 .Net Framework 4(不是客户端)。Crystal 的东西不包含在基本配置文件中。
3) 添加对 Crystal 库的引用(Crystal Reports for .NET)
4) 添加一个表单,在该表单上放置一个 Crystal Report Viewer 控件(来自工具箱的 Reporting 部分):
5) 添加一个 CrystalReportDocument 并将其分配给 CrystalReportViewer 控件:
要使用数据实际填充报告,请执行以下操作:
1) 通过执行获取您的报告数据表(来自网关)并导出模式的代码来输出您的报告模式。例如:
<TestMethod()>
Public Sub SchemaTest()
Dim dataSet As DataSet = StaticDataGateway.AccountingIncomeTotals
dataSet.WriteXmlSchema("I:\Myschema.xml")
End Sub
如果您已经创建了报告,则可能不需要它。如果您可以手动编写 xml,则相同(一旦您有模板可以使用就很容易)
2)然后您将其加载到您的报告中以获取您可以操作以生成报告的字段。为此,您可以在报告字段资源管理器中右键单击数据库字段:
3) 从这里选择 Database Expert 并选择 ADO.net (xml)。Access/Excel DAO 的逻辑选择实际上在 VS 2010 中根本不起作用。选择您的架构文件并加载它,然后双击 Table1 以填充 Selected Tables 视图:
4) 现在您已经加载了一个模式,您将能够在字段下拉列表中看到字段,您可以将这些字段拖放到您的报告中:
5) 最后,通过在您放置 reportviewer 控件的表单的加载事件中执行代码,将数据集加载到报表中:
i)确保从网关(或任何地方)输出数据集(不是数据表):
Public Shared Function AccountingIncomeTotals() As DataSet
Dim dataSet As New DataSet
Dim dataTable As DataTable = Database.GetDataTable(GetCommand(DBC.Reporting.SPs.AccountingIncomeTotals))
dataSet.Tables.Add(dataTable)
Return dataSet
End Function
ii) 然后将其分配给报表上的数据源:
Private Sub AccountingIncomeTotals_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
AccountingIncomeTotalsReport1.SetDataSource(StaticDataGateway.AccountingIncomeTotals)
End Sub
以上部分可能对您来说特别有趣,因为它允许您直接将数据源分配给报表,而无需使用水晶选择数据源 UI 面板。
还需要一件事,您需要将“useLegacyV2RuntimeActivationPolicy”添加到 app.config 文件中:
http://www.codeproject.com/Questions/390643/Error-When-use-of-crystal-report-sap-crystal-13-an
希望对你有帮助,不好意思,太麻烦了,有什么问题可以追问