使用报表,如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
|