sxyweiren 发表于 2018-3-21 08:48:51

KearneyKang 发表于 2018-3-20 18:11
您好! 您需要重新实例化报告对象。
这里是一个正确的代码示例:

您好,因为我们这边产品结构已经定型了。

所有的报表绑定完数据源之后,直接以Object的形式传递给一个负责打印的DLL
这个DLL主要负责打印机的选择,PreView等动作。
所以,DLL里面并没有参照所有的报表对象(100+)。
每个报表都是在自己对应的Exe或者DLL里面进行实例化的。
所有的报表的实例化都移动到打印DLL里面,或者打印DLL的动作转移到每一个报表里面都是一个庞大的改造。

所以你们提示的改造方式很难适用于我们的项目。

注:试了一下,ActiveX版的AR(2.0,3.0)是没有这个问题的。在Restart的时候,能够完成初期的动作。

KearneyKang 发表于 2018-3-21 10:07:00

您好!这是我咨询研发后给出的解决办法,他们说您提供的方法存在错误,所以才会出现行增高的情况。

sxyweiren 发表于 2018-3-21 10:28:48

KearneyKang 发表于 2018-3-21 10:07
您好!这是我咨询研发后给出的解决办法,他们说您提供的方法存在错误,所以才会出现行增高的情况。
那能不能把我的问题再次说明下。
我们这边的产品结构是这样的。.

若是按照你们研发提供的解决方法的话,我需要把打印处理分解了。
这个工作量太大了。所以我们才在Restart上面考虑能不能重新实例化或者帐票结构初始化。

KearneyKang 发表于 2018-3-21 11:59:19

好的!
我再跟研发交流下

sxyweiren 发表于 2018-3-21 14:02:21

KearneyKang 发表于 2018-3-21 11:59
好的!
我再跟研发交流下

刚才试了下,这么整能让单纯的报表实现我们需要的效果。
dim Ar2 as object = Ctype(Ar1,ICloneAble).Clone

Ar2.Run(False)

但是,这只是浅层克隆,使用的是SectionReport的Clone方法,导致克隆出来的报表的事件都丢失了。
这样的话Run函数执行的时候,具体的事件没有执行,导致输出的报表结果不正确。

有没有对Clone函数进行重写的方法?

sxyweiren 发表于 2018-3-22 09:26:26

KearneyKang 发表于 2018-3-21 17:35
这个AR没有Clone函数

有啊,虽然直接用不能用。
但是Ctype(ARobj,Icloneable)就可以克隆了。
克隆出来的确实一致了。

我们可以看到的源码方面,AR的SectionReport也引用了IconeAble的接口 。

KearneyKang 发表于 2018-3-22 16:49:24

本帖最后由 KearneyKang 于 2018-3-29 15:46 编辑

好的,我去研究下源码。
页: 1 2 [3]
查看完整版本: Ar经过多次Run之后,控件高度发生变化