Microsoft Access 2007 (.accdb) データベースからデータを取得する My VB.NET Project で多数の Crystal Reports を作成しました。
現在、Microsoft SQL Server (.mdf) データベースを使用してアプリケーションを更新しています。
すべての Crystal Reports のデータ ソースを Access ファイルから MDF ファイルに更新するにはどうすればよいですか?
ありがとう。
Microsoft Access 2007 (.accdb) データベースからデータを取得する My VB.NET Project で多数の Crystal Reports を作成しました。
現在、Microsoft SQL Server (.mdf) データベースを使用してアプリケーションを更新しています。
すべての Crystal Reports のデータ ソースを Access ファイルから MDF ファイルに更新するにはどうすればよいですか?
ありがとう。
誰かがより迅速で簡単な解決策を持っていない限り、Visual Studio 2010 で MS Access を使用して Crystal レポートを取得するために私が使用するアプローチを次に示します。データソースを選択する通常の方法よりも少し複雑ですが、より多くの制御を提供し、データベースです。不可知論的であり、他の方法が失敗する場合があります(特に私の経験ではMS Accessで)。
レポートを最初から最後まで機能させるプロセスを詳しく説明します (プロセス全体が他の人にとって役立つ可能性があるため)。
1) SAP サイトから Crystal Reports をインストールします。msi ファイルではなく、必ず exe ファイルをダウンロードしてください (動作しません)。
http://scn.sap.com/docs/DOC-7824
2) アプリのターゲット フレームワークを .Net Framework 4 (クライアントではない) に変更します。Crystal は基本プロファイルには含まれません。
3) Crystal ライブラリ (Crystal Reports for .NET) への参照を追加します。
4) フォームを追加し、そのフォームに Crystal Report Viewer コントロールを配置します (ツールボックスの [レポート] セクションから):
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 をダブルクリックして [選択したテーブル] ビューに入力します。
4) スキーマがロードされたので、レポートにドラッグ アンド ドロップできるフィールド ドロップダウンにフィールドが表示されます。
5) 最後に、レポート ビューアー コントロールを配置したフォームの on load イベントでコードを実行して、データセットをレポートに読み込みます。
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
上記のセクションは、Crystal Select Data Sources UI パネルを使用せずにデータソースをレポートに直接割り当てることができるため、おそらく特に興味深いものになるでしょう。
もう 1 つ必要なことがあります。「useLegacyV2RuntimeActivationPolicy」を app.config ファイルに追加する必要があります。
http://www.codeproject.com/Questions/390643/Error-When-use-of-crystal-report-sap-crystal-13-an
これが役に立てば幸いです。複雑で申し訳ありません。ご不明な点がございましたら、お問い合わせください