Why is GridTableControl recognized when spying GridGroupingControl in QTP?
In the Object spy Syncfusion.Windows.Forms.Grid.Grouping.GridTableControl will be shown at the last node, Syncfusion.Windows.Forms.Grid.Grouping.GridGroupingControl would also be shown ahead of it. Grouping grid actually does contain GridControl named GridTableControl, therefore GridTableControl is exposed, but that is only a part of the GridGroupingControl. All necessary functions to interact with the GridGroupingControl are provided in GridGroupingControl custom server (GridGroupingControl.dll). The sample script of GridGroupingControl is below.
VB
SwfWindow("GridGroupingControl").Move 441,334
SwfWindow("GridGroupingControl").SwfObject("gridGroupingControl1").SetCurrentCell 4,"parentID"
SwfWindow("GridGroupingControl").SwfObject("gridGroupingControl1").SetCurrentCell 5,"parentID"
SwfWindow("GridGroupingControl").SwfObject("gridGroupingControl1").ExpandRecord 5
SwfWindow("GridGroupingControl").SwfObject("gridGroupingControl1").SetCurrentCell 10,"childID"
SwfWindow("GridGroupingControl").SwfObject("gridGroupingControl1").ExpandRecord 10
SwfWindow("GridGroupingControl").SwfObject("gridGroupingControl1").SetCurrentCell 14,"grandChildID"
SwfWindow("GridGroupingControl").SwfObject("gridGroupingControl1").SetCurrentCell 14,"Name"
SwfWindow("GridGroupingControl").SwfObject("gridGroupingControl1").SetCellData 14,"Name","New Name"
SwfWindow("GridGroupingControl").SwfObject("gridGroupingControl1").SetCurrentCell 15,"Name"
a = SwfWindow("GridGroupingControl").SwfObject("gridGroupingControl1").GetCellData( 14, "Name")
MsgBox a