5

Microsoft Access 2007 (.accdb) データベースからデータを取得する My VB.NET Project で多数の Crystal Reports を作成しました。

現在、Microsoft SQL Server (.mdf) データベースを使用してアプリケーションを更新しています。

すべての Crystal Reports のデータ ソースを Access ファイルから MDF ファイルに更新するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

0

誰かがより迅速で簡単な解決策を持っていない限り、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 コントロールを配置します (ツールボックスの [レポート] セクションから):

ツールボックスのレポート セクション、CrystalReportViewer のアウトラインを示す画像

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

これが役に立てば幸いです。複雑で申し訳ありません。ご不明な点がございましたら、お問い合わせください

于 2013-06-21T21:12:34.263 に答える