如何在运行时自定义水晶报表

本文关键字:水晶 报表 自定义 运行时 | 更新日期: 2023-09-27 18:34:40

>我正在使用VS2010 C#,我需要创建一个用户可以修改的报告。我已经插入了参数字段,它们适用于文本,但是当我向报表添加图像时出现问题。主要思想是用户可以使用openFileDialog修改图像。我插入了一个 OLE 对象,并加载了一个占位符图像。我有一个路径参数字段,我使用 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类似乎不存在。我也有一种感觉,即使我设法使这段代码工作,它仍然无法打印它。

有什么想法吗?

如何在运行时自定义水晶报表

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