找回密码
 加入
搜索
查看: 2013|回复: 0

[系统综合] 使用报表COM组件的问题,报表组件的对象操作不起作用

[复制链接]
发表于 2014-5-18 09:11:43 | 显示全部楼层 |阅读模式
使用报表,如Grid++Report时。发现对象要有关联语句才起作用,如果对象属性方法没有提供关联,则功能无法使用。但是大量的报表组件对象没有提供。在VB里试过,就不需要对象之间的关联,好像是自动继承了。autoit为什么不能自动继续各对象的关联关系?如何解决?

代码如下:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

ShowGD1()

Func ShowGD1()
        $a = "grpro.GridppReport"
        $rp = ObjCreate($a)
        If @error Then
                MsgBox(16,"提示",'ObjCreate Error!')
                Exit
        EndIf

        $a = "grpro.GRDisplayViewer"
        $rpview = ObjCreate($a)
        If @error Then
                MsgBox(16,"提示",'ObjCreate Error!')
                Exit
        EndIf

        $rp.LoadFromFile ("C:\Grid++Report 5.0\Samples\Reports\ManualFillRecord.grf")
        
        ;;下面的语句不起作用,但是VB中是起作用。我发现是因为两个对象之间没有继续关系导致,对象$C1Field是$rp的子对象,这个关系在autoit里没有得到继承,所以失效。
        $C1Field = $rp.FieldByName("c1")        
        $C1Field.Value = "A"
        $a = $C1Field.Value
        MsgBox(0,"",$a)


        ;;下面是建立了两个对象的关系,所以起作用了。
        $rpview.Report = $rp
        $rpview.Start

        ;$rp.PrintPreview (True)
        ;Exit

        $form = GUICreate("form", 1216, 816)
        $guiobj = GUICtrlCreateObj($rpview,8,8,1200,800)
        GUISetState(@SW_SHOW)
        GUISetState(BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_MAXIMIZEBOX, $WS_POPUP))

        While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                Return

        EndSwitch
    WEnd
EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 02:59 , Processed in 0.096514 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表