5

Crystal Report を作成し、それを の XML ファイルに接続しましたC:\SomeDir\Data.xml

実行時に、データを に入れる必要がある場合がありますC:\SomeOtherDir\Data.xml

これまでのコードは次のようになります。

ReportDocument report = new ReportDocument();
report.Load("Report.rpt");
PrinterSettings printerSettings = new PrinterSettings();
PageSettings pageSettings = printerSettings.DefaultPageSettings;
report.PrintToPrinter(printerSettings, pageSettings, false);

これにより、 のデータを含むレポートが印刷されC:\SomeDir\Data.xmlます。でデータを印刷したいC:\SomeOtherDir\Data.xml

これどうやってするの?

4

4 に答える 4

1
ReportDocument report = new ReportDocument();
report.Load("Report.rpt");

DataSet reportData = new DataSet();
reportData.ReadXml(@"C:\SomeOtherDir\Data.xml");
report.SetDataSource(reportData);

PrinterSettings printerSettings = new PrinterSettings();
PageSettings pageSettings = printerSettings.DefaultPageSettings;
report.PrintToPrinter(printerSettings, pageSettings, false);

XML のスキーマが変更された場合、レポートを CR エディターで開き、"データベースを検証" して、バインドされているスキーマを更新する必要があります。そうしないと、不可解な "ログオンに失敗しました" エラーがスローされます。

于 2012-12-01T18:46:26.213 に答える
0

Javaでは、実行時に新しいデータセットを置き換えたい場合は、通常、そのデータ(dbやxmlなどからの結果セット)をロードし、rpt.Database.Tables.setDataSourceを介してデータをプッシュします。 CRが何を上書きするかを認識できるように、元のデータの「テーブルエイリアス」。C#でも同様になる可能性があります。それをブラッシュアップして試してから、さらに質問をして戻ってくることをお勧めします。

于 2012-11-27T15:30:12.557 に答える