ユーザーが生成するレポートを選択できるフォームがあります。また、基準を選択し、印刷、プレビュー、エクスポートなどを選択することもできます。ユーザーが選択を行って [生成] ボタンをクリックすると、レポート オブジェクトを作成し、レポート、データセットを読み込み、印刷またはエクスポートするクラスが作成されます。レポート。レポートをプレビューするための別のフォームを作成しました。レポート オブジェクトをプレビュー フォームに渡すと、「レポート ソースが無効です」というメッセージが表示されます。レポートは正常に印刷およびエクスポートされますが、レポートをプレビューすることはできません。プレビュー フォームでコードを複製したくありません。レポート オブジェクトを渡すだけでよかったのです。私のコードのスニペットは以下のとおりです。助言がありますか?
public static class CrystalReportUtilities
{
private static ReportDocument goReport {get; set;}
private static string gsReportName { get; set; }
private static string gsSqlString { get; set; }
private static object[,] goParameters { get; set; }
public static void generateReport(parameters...)
{
goReport = loadReport();
...
goReport.SetDataSource(DataTable);
...
previewReport();
private static void previewReport()
{
CrystalReportPrintPreviewForm loReportPreview = new CrystalReportPrintPreviewForm(goReport);
loReportPreview.ShowDialog();
}
public partial class CrystalReportPrintPreviewForm : Form
{
private ReportDocument goReport;
public CrystalReportPrintPreviewForm(ReportDocument poReport)
{
InitializeComponent();
goReport = poReport;
}
private void crystalReportViewer1_Load(object sender, EventArgs e)
{
try
{
if (goReport != null)
{
crystalReportViewer1.ReportSource = goReport; // Receive "Invalid Report Source"
}
}