如何在运行时自定义 Crystal Reports 报告

How to customize a Crystal Reports report in runtime

我正在使用 VS2010 C#,我需要创建一个用户可以修改的报告。我插入了参数字段,它们对文本工作正常,但是当我向报告中添加图像时出现问题。主要思想是用户可以使用 openFileDialog 修改图像。我插入了一个 OLE 对象,并加载了一个占位符图像。我有一个 path 参数字段,我用 openFileDialog 更新并将其用作更改占位符图像路径的公式。
我不确定这是否有效,因为我已经将图像添加到报告中,所以我无法打印它(我正在使用 printToPrinter 方法)并且它给了我一个 ParameterFieldCurrentValueException

经过进一步研究,我发现了一个可能的解决方法。在这种情况下,我将创建 OLE 对象,然后使用以下代码将其添加到报告中:

private void PictureData_Click(object sender, EventArgs e)
    {
        CrystalDecisions.ReportAppServer.ReportDefModel.PictureObject boPictureObject;
        CrystalDecisions.ReportAppServer.ReportDefModel.Section boSection;

        rpt.Load("D:\CPP Net\RASXIR2Printer\oleobject.rpt");
        rptClientDoc = rpt.ReportClientDocument;

        String MyfilePath = "C:\temp\sample1.jpg";

        //Determine which section to add the picture field to - in this case the report header section
        boSection = rptClientDoc.ReportDefController.ReportDefinition.ReportHeaderArea.Sections[0];

        //Add it to the report
        boPictureObject = rptClientDoc.ReportDefController.ReportObjectController.ImportPicture(MyfilePath, boSection, 1, 1);

    }

这里的问题是我使用的 ReportClientDocument class 似乎不存在于我正在使用的版本中。另外我有一种感觉,即使我设法使这段代码工作,它仍然无法打印它。

有什么想法吗?

经过大量研究,我找到了解决方案。如果有人需要帮助,我会把它留在这里。我所要做的就是添加一些参考。在 .NET 中搜索 'CrystalDesicions.RerportAppServer.ClientDoc''CrystalDesicions.RerportAppServer.Controllers' 并添加它们。