当我们安装完2010VS后,在FORM 工具栏的 レポーティング 里面没有我们需要用来制作水晶报表的控件 CrystalReportViewer 。我们需要做下面的工作来解决这个问题:
1, 右键点击工程名称----〉选择 “プロパティ”----〉选择“コンパイル” ----〉选择最下面的“詳細コンパイルオプション(A)…”----〉再弹出的对话框里面选择最下面的
“對象のフレームワーク” 将里面的 “.NET Framework 4 Client Profile” 改成 “.NET Framework 4” 点击 OK 保存。 如果提示信息不让你更改,是因为你当前的工程没有进行保存。
那么,我们将整个工程保存下来以后,重新打开,重新走上面的流程进行更改就行了。
2, 接下来,我们使用PUSH方法来实现水晶报表。
(1) 首先,我们创建数据集(dataset):
① 右键点击工程名,选择“追加” ----〉“新しい項目” ----〉选择“データセット”,点击“追加”。这样我们就能直接进入Dataset操作页面了。
② 我们接下来网Dataset里面添加要显示在水晶报表里面的表,在连接的数据库服务器里面选择表,直接用鼠标将其拖进来就行了。然后记得一定要保存。
(2) 然后,我们开始制作水晶报表(建议去网上找段视频看,操作起来就很简单了), 需要注意的是我们我们要在“プロジェクトデータ”里面的“ADO.NET データセット”选择我们刚
才创建的数据集(dataset),通过数据集来连接数据库。
(3) 其次,向FORM里面添加水晶报表察看器,就是我们已开始寻找的“CrystalReportViewer”,在右上角可以选择我们制作的水晶报表。
(4) 最后,我们在form_load里面添加如下代码:
Imports Oracle.DataAccess.Client
Public Class EmpForm
Private Sub EmpForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim oRpt As New CrystalReport
Dim dsdataSet As New EmpDataSet
Dim CN As New OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.106)(PORT=1521))) (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));User Id=scott;Password=tiger;")
Try
CN.Open()
Dim empReport As New OracleDataAdapter("select * from emp1 ", CN)
empReport.Fill(dsdataSet, "emp1")
oRpt.SetDataSource(dsdataSet)
CrystalReportViewer.ReportSource = oRpt
Catch ex As Exception
MsgBox("数据库连接出现错误")
Finally
CN.Close()
End Try
End Sub
End Class
注意:这里我是使用的是odp.NET进行的oracle 数据库连接。如果你不愿意使用的话,可以导入 import system.data.oracleClient 的命名空间来进行操作。虽然2010版vs已经用oleDB了,可是在制作水晶报表的时候是不能用的。因为水晶报表里面无论是对数据库连接进行的命名,还是执行操作,都是使用的oracleClient的形似来进行命名的。
(5 ) 开始执行,如果运行出错,并且提示的是:
Could not load file or assembly 'file:///C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0 \win32_x86\dotnet1\crdb_adoplus.dll' or one of its dependencies. The system cannot find the file specified.
解决方法:在App.config中的
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
改成
<startup useLegacyV2RuntimeActivationPolicy ="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
就行了