none
求教:水晶报表问题 RRS feed

  • 问题

  • 使用VS2005水晶报表 WinForm动态显示。创建一个DataSet,设置一个DataTable表。在界面类中每新添加一行数据到表中,然后crtReport.SetDataSource(table1);最后显示在界面上出来。
    但是在新添加完一两条数据之后,水晶报表出现异常。CrystalDecisions.ReportAppServer.DataSetConversion!CrystalDecisions.ReportAppServer.DataSetConversion.DataSetConverter+CrdbAdoPlusDelegate::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。
    是否水晶报表不允许频繁的更改数据,SetDataSource(table1)?如何能解决这个问题,数据又能实时更新显示?

    2009年8月20日 3:26

答案

  • 你好 这个问题似乎是一个报表只能设置一次数据源 参考这个话题 http://social.msdn.microsoft.com/Forums/en-US/vscrystalreports/thread/9a33ee98-37c2-4923-80a8-45f064995e24

    当数据源更改是你可以先调用报表文档的Close方法 然后重新设置数据源SetDataSource试试;如果还不行可以试试重新实例化,加载新的报表,设置新的数据源
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月21日 2:22
    版主
  • 使用VS2005水晶报表 WinForm动态显示。创建一个DataSet,设置一个DataTable表。在界面类中每新添加一行数据到表中,然后crtReport.SetDataSource(table1);最后显示在界面上出来。
    但是在新添加完一两条数据之后,水晶报表出现异常。CrystalDecisions.ReportAppServer.DataSetConversion!CrystalDecisions.ReportAppServer.DataSetConversion.DataSetConverter+CrdbAdoPlusDelegate::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。
    是否水晶报表不允许频繁的更改数据,SetDataSource(table1)?如何能解决这个问题,数据又能实时更新显示?


    请理解水晶报表的渲染是非常耗资源的工作  和我们datagrid 绑定是完全不同数量级的。

    您可以简单的理解为 不允许频繁更改数据源   因为每一次绑定渲染产生的报表临时文件都可能达到几十M
    答案破千 马上就要到5星用户了 嘿嘿~~
    2009年8月21日 3:24
    版主

全部回复

  • 你好 这个问题似乎是一个报表只能设置一次数据源 参考这个话题 http://social.msdn.microsoft.com/Forums/en-US/vscrystalreports/thread/9a33ee98-37c2-4923-80a8-45f064995e24

    当数据源更改是你可以先调用报表文档的Close方法 然后重新设置数据源SetDataSource试试;如果还不行可以试试重新实例化,加载新的报表,设置新的数据源
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月21日 2:22
    版主
  • 使用VS2005水晶报表 WinForm动态显示。创建一个DataSet,设置一个DataTable表。在界面类中每新添加一行数据到表中,然后crtReport.SetDataSource(table1);最后显示在界面上出来。
    但是在新添加完一两条数据之后,水晶报表出现异常。CrystalDecisions.ReportAppServer.DataSetConversion!CrystalDecisions.ReportAppServer.DataSetConversion.DataSetConverter+CrdbAdoPlusDelegate::Invoke”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃、损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。
    是否水晶报表不允许频繁的更改数据,SetDataSource(table1)?如何能解决这个问题,数据又能实时更新显示?


    请理解水晶报表的渲染是非常耗资源的工作  和我们datagrid 绑定是完全不同数量级的。

    您可以简单的理解为 不允许频繁更改数据源   因为每一次绑定渲染产生的报表临时文件都可能达到几十M
    答案破千 马上就要到5星用户了 嘿嘿~~
    2009年8月21日 3:24
    版主