返回首页

调用自定义方法时,水晶报表查看器打印按钮被按下/添加到水晶报表查看器工具栏自定义按钮:?
如果您正在开发的应用程序,其中包括与水晶报表的报告,你可能已经注意到,这是不可能的调用一个自定义的方法,当用户打印报告。然而,这东西是很容易实现在Crystal Reports 8/8.5,但是从以后的版本中删除。
但是有一个这个问题的解决。在这个例子中,我会告诉你如何在我们的客户端应用程序调用一个方法时,打印的报表查看器按钮被点击。
为了做到这一点,我们必须添加我们自定义的方法来打印报表查看器的"打印"按钮的行动。
创建一个新的Windows应用程序。加入另一个项目的形式,将其命名为CustomReportViewer.cs。
到一个新创建的窗体添加一个水晶报表查看器。 (如果水晶报表查看器是不是可以在工具箱中,请首先将其添加到工具箱中。)

{A}
添加一个新的报告,该项目并将其命名为SampleReport.rpt。
{A2的}
现在,添加下面的代码的CustomReportViewer类:

public delegate void CustomPrintDelegate();

添加以下属性:
将此额外的代码来初始化方法:
foreach (Control control in crystalReportViewer1.Controls) {

    if (control is System.Windows.Forms.ToolStrip) {



        //Default Print Button

        ToolStripItem tsItem = ((ToolStrip)control).Items[1];

        tsItem.Click += new EventHandler(tsItem_Click);

        

        //Custom Button

        ToolStripItem tsNewItem = ((ToolStrip)control).Items.Add("");

        tsNewItem.ToolTipText = "Custom Print Button";

        tsNewItem.Image = Resources.CustomButton;

        tsNewItem.Tag = "99";

        ((ToolStrip)control).Items.Insert(0, tsNewItem);

        tsNewItem.Click += new EventHandler(tsNewItem_Click);

    }

}

使用上面的代码,我们可以找出打印报表查看器的工具条按钮。和第一项是为打印按钮。 (我发现这一点从它的ToolTipText)。
然而,你可以添加自己的按钮,如果你喜欢,你可以使用现有的打印按钮。这两个选项说明。
添加以下方法:{体C3}
下面是完整的代码为CustomReportViewer类:{的C4}
添加以下委托给你的调用类:{C5的}
添加以下方法。这是我们要打印按钮或自定义按钮被点击时要调用的方法。{5233}
和一个按钮和下面的click事件代码:{C7-}
完整的源代码的调用形式:
现在,如果你运行的项目,你可以得到一个类似如下所示的屏幕。请注意,我添加了一个名为"资源?的资源文件?添加图像,命名为"的CustomButton??
{A3的}
如果您按一下按钮,您的自定义的方法将被调用。只被点击打印按钮时,默认的打印方法将被执行。
{A4纸}

回答