datareport中用到的记录集应该在何时关闭呀?即何时释放呀?
我的窗体上有一个打印按钮,在这个按钮的单击事件中生成一个记录集,然后把这个记录集的内容能过datareport打印出来,可是在按钮中动态生成的记录集如何close呢?比如执行rep1.show ,报表会显示出来,我想用户关闭这个报表预览窗体后记录集能够关闭,否则会一直占用内存呀?可是关闭记录集的代码写在何处呢?部分代码如下:是打印按钮单击事件一部分   Set repml.DataSource = rsdy      '设数据源    repml.Sections("section2").Controls("label7").Caption = strdate       '打印起始汇总时间    repml.Show这时我无法关闭rsdy
执行 rsdy.close
会报错的。可是rsdy一定要在报表显示或打印后关闭呀?
请问代码应该写在何处?

解决方案 »

  1.   

    关闭datareport窗口后关闭记录集。。
      

  2.   

    关闭datareport窗口后关闭记录集。。
    =====================
    谢谢,datareport窗口不是用代码关闭的,而是用户关闭的呀?
    我再描述一下,我在一个打印按钮的单击事件中创建一个记录集对象,这个记录集的生存期就该只在这个按钮的单击事件中吧。单击事件的最后一行代码就是rep1.show,也就是说在按钮的单击事件中只是把datareport窗口打开就结束了。可是我无法在这个单击事件中关闭记录集呀?出了单击事件,这个记录集也无法被引用了。
    是不是必须定义成窗体级的记录集对象呀?不能定义成按钮级别的呀?
    还有:我定义成按钮级别的记录集对象,在按钮的单击事件执行完毕后,这个记录集会自动关闭吗?如果不会自动释放,会不会存在内存泄漏呀?
      

  3.   

    我在一个打印按钮的单击事件中创建一个记录集对象,这个记录集的生存期就该只在这个按钮的单击事件中吧。
    ===============================
    不对,记录集何时关闭应该由程序的需求决定,而不一定要在这个按钮中关闭
    试试把关闭记录集的代码写在datareport的UnLoad事件里