none
wpf中如何使用CrystalReportsViewer控件 RRS feed

  • 问题

  • 我在使用这个控件的时候不知道如何把报表文件绑定到这个控件上显示,应该用哪个控件进行设置呢
    2011年2月21日 2:11

答案

  • 可是在2010 wpf应用程序中添加报表时会让我安装一个程序,在这个程序安装完成之后就可以创建CrystalReportWpf的应用程序了,并没有添加对system.window.form的引用,还是可以用CrystalReportsViewer这个控件的,你这种方法可以但是引用了system.window.from的引用,公司是不允许添加这个引用的,现在问题是wpf中添加的CrystalReportsViewer不知道是哪个属性用来绑定报表文件显示。在winform中crystalReportViewer1.ReportSource = myDataReport;myDataReport是个报表文件。这样就可以绑定了,但是wpf中没有这个属性还是不知道如何绑定的,是不是有其他的方法绑定的,还请大家帮帮忙
    • 已标记为答案 邓大林 2011年2月23日 1:54
    2011年2月22日 3:51
  • 你好,

    我觉得你应该去SAP公司提问,因为即使你安装了一个程序在VS2010中,这个产品依然不是我们的产品,对于如何使用这个产品,我们这边是不做支持的,你可以在SAP公司的论坛上找到你想要的答案,比如,这个帖子是出自他们公司论坛的:

    http://forums.sdn.sap.com/thread.jspa?threadID=1663182&tstart=2

    在这个帖子中我想已经包含了你想要的解决方案,那就是下面的代码:

    this._report = new ReportDocument();

    this._report.Load(@"C:\Documents and Settings\Administrator\My Documents\Visual Studio 2010\Projects\CrystalReportWpfApplication1\CrystalReportWpfApplication1\CrystalReport1.rpt");

    this.reportViewer.ViewerCore.ReportSource = this._report;

     

    Best regards,


    Sheldon _Xiao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 邓大林 2011年2月23日 1:53
    2011年2月22日 4:44
    版主
  • 真的非常的感谢,这个问题解决了。
    • 已标记为答案 邓大林 2011年2月23日 1:54
    2011年2月22日 5:06
  • 呵呵 解决就好,以后关于这个控件的问题 你可以考虑去那里问,我觉得你能得到更快更好的答案。这也是一个解决方案啊~

    如果问题解决了,别忘了标记为答复。


    Sheldon _Xiao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 邓大林 2011年2月23日 1:54
    2011年2月22日 5:09
    版主

全部回复

  • 你好,

    我想首先我要跟你澄清一下,你说的CrystalReportsViewer是一个Windows Forms的控件,如果你要在WPF中使用它,你可以使用WPF/Windows Forms交互的技术,就是在Windows Forms中建立这个控件,然后Host到WPF中,你可以按照一下步骤去完成:

    1) 增加一个Reference( CrystalDecisions.Windows.Forms.dll)。

    2) 增加一个NameSpace在Xaml中。

    3) 使用WindowsFormsHost 去增加CrystalReportsViewer控件在WPF中。

    我给你写了一个参考代码:

    <Window

       x:Class="ForumProjects.MainWindow"

       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

       xmlns:crystal="clr-namespace:CrystalDecisions.Windows.Forms;assembly=CrystalDecisions.Windows.Forms"

       Title="MainWindow" Width="800" Height="600">

        <WindowsFormsHost>

            <crystal:CrystalReportViewer x:Name="MyCrystalReportViewer" Width="300" Height="300"/>

        </WindowsFormsHost>

    </Window>

     

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

            

            this.MyCrystalReportViewer.BackColor = System.Drawing.Color.AliceBlue;

        }

    }

    这些就是你能在WPF论坛上得到的知识,如果你想问关于CrystalReportsViewer控件使用问题,这个其实跟WPF本身已经没有关系了,因为SAP公司并没有为针对WPF 而在CrystalReportsViewer控件上有什么新的东西,你平时在Windows Forms中如何使用它,就在WPF中Host就可以了。

    另外,我们对于CrystalReportsViewer这个控件只有英文论坛那边的Support,而且是只是Support一部分的东西,在中文论坛这边是没有的,如果你要想问一些关于使用上的问题, 你搜索一下SAP公司关于CrystalReportsViewer的技术支持论坛。

     

    Best regards,


    Sheldon _Xiao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已建议为答案 Jarrey 2011年2月21日 5:19
    2011年2月21日 5:11
    版主
  • 可是在2010 wpf应用程序中添加报表时会让我安装一个程序,在这个程序安装完成之后就可以创建CrystalReportWpf的应用程序了,并没有添加对system.window.form的引用,还是可以用CrystalReportsViewer这个控件的,你这种方法可以但是引用了system.window.from的引用,公司是不允许添加这个引用的,现在问题是wpf中添加的CrystalReportsViewer不知道是哪个属性用来绑定报表文件显示。在winform中crystalReportViewer1.ReportSource = myDataReport;myDataReport是个报表文件。这样就可以绑定了,但是wpf中没有这个属性还是不知道如何绑定的,是不是有其他的方法绑定的,还请大家帮帮忙
    • 已标记为答案 邓大林 2011年2月23日 1:54
    2011年2月22日 3:51
  • 你好,

    我觉得你应该去SAP公司提问,因为即使你安装了一个程序在VS2010中,这个产品依然不是我们的产品,对于如何使用这个产品,我们这边是不做支持的,你可以在SAP公司的论坛上找到你想要的答案,比如,这个帖子是出自他们公司论坛的:

    http://forums.sdn.sap.com/thread.jspa?threadID=1663182&tstart=2

    在这个帖子中我想已经包含了你想要的解决方案,那就是下面的代码:

    this._report = new ReportDocument();

    this._report.Load(@"C:\Documents and Settings\Administrator\My Documents\Visual Studio 2010\Projects\CrystalReportWpfApplication1\CrystalReportWpfApplication1\CrystalReport1.rpt");

    this.reportViewer.ViewerCore.ReportSource = this._report;

     

    Best regards,


    Sheldon _Xiao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 邓大林 2011年2月23日 1:53
    2011年2月22日 4:44
    版主
  • 真的非常的感谢,这个问题解决了。
    • 已标记为答案 邓大林 2011年2月23日 1:54
    2011年2月22日 5:06
  • 呵呵 解决就好,以后关于这个控件的问题 你可以考虑去那里问,我觉得你能得到更快更好的答案。这也是一个解决方案啊~

    如果问题解决了,别忘了标记为答复。


    Sheldon _Xiao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 邓大林 2011年2月23日 1:54
    2011年2月22日 5:09
    版主
  • 嗯,好的

    2011年2月23日 1:57