When testing an application that uses Syncfusion GridGroupingControl controls, you may need to know which row, column and cell are currently focused. For this purpose, you can use internal methods and properties of the GridGroupingControl object, which is illustrated in the example below. The example contains four sample functions that can help you identify the currently selected cell in the GridGroupingControl:
GetCurrentRowIndex- returns the zero-based index of the row that contains the selected cell.GetCurrentColIndex- returns the zero-based index of the column that contains the selected cell.GetCurrentColCaption- returns the caption of the column that contains the selected cell.GetCurrentCellValue- returns the value in the currently selected cell.
| Note: | In order for these functions to run successfully, TestComplete should have access to internal methods, properties and object of the GridGroupingControl object. That is, the .NET Application Support plugin must be installed and enabled. | 
JavaScript, JScript
function Main ()
{
  var p, Grid;
  // Obtain the grid object
  p = Sys.Process("HierarchySample");
  Grid = p.WinFormsObject("Form1").WinFormsObject("groupingGrid1");
  Log.Message ("Current row index: " +  GetCurrentRowIndex(Grid) );
  Log.Message ("Current column index: " + GetCurrentColIndex(Grid));
  Log.Message ("Current column caption: " + GetCurrentColCaption(Grid));
  Log.Message ("Current cell value: " + GetCurrentCellValue(Grid).ToString().OleValue);
}
function GetCurrentRowIndex (Grid)
{
  var CurrentCell = Grid.TableControl.GetNestedCurrentCell();
  var RowObj = CurrentCell.Renderer.StyleInfo.TableCellIdentity.DisplayElement.ParentRecord;
  return RowObj.ParentGroup.Records.IndexOf(RowObj);
}
function GetCurrentColIndex (Grid)
{
  var CurrentCell = Grid.TableControl.GetNestedCurrentCell();
  var ColumnObj = CurrentCell.Renderer.StyleInfo.TableCellIdentity.Column;
  return ColumnObj.Collection.IndexOf(ColumnObj);
}
function GetCurrentColCaption (Grid)
{
  var CurrentCell = Grid.TableControl.GetNestedCurrentCell();
  var ColumnObj = CurrentCell.Renderer.StyleInfo.TableCellIdentity.Column;
  return ColumnObj.HeaderText.OleValue;
}
function GetCurrentCellValue (Grid)
{
  var CurrentCell = Grid.TableControl.GetNestedCurrentCell();
  return CurrentCell.Renderer.StyleInfo.CellValue; 
}
Python
def Main ():
  # Obtain the grid object
  p = Sys.Process("HierarchySample")
  Grid = p.WinFormsObject("Form1").WinFormsObject("groupingGrid1")
  Log.Message ("Current row index: " + GetCurrentRowIndex(Grid) )
  Log.Message ("Current column index: " + GetCurrentColIndex(Grid))
  Log.Message ("Current column caption: " + GetCurrentColCaption(Grid))
  Log.Message ("Current cell value: " + GetCurrentCellValue(Grid).ToString().OleValue)
def GetCurrentRowIndex (Grid):
  CurrentCell = Grid.TableControl.GetNestedCurrentCell()
  RowObj = CurrentCell.Renderer.StyleInfo.TableCellIdentity.DisplayElement.ParentRecord
  return RowObj.ParentGroup.Records.IndexOf(RowObj)
def GetCurrentColIndex (Grid):
  CurrentCell = Grid.TableControl.GetNestedCurrentCell()
  ColumnObj = CurrentCell.Renderer.StyleInfo.TableCellIdentity.Column
  return ColumnObj.Collection.IndexOf(ColumnObj)
def GetCurrentColCaption (Grid):
  CurrentCell = Grid.TableControl.GetNestedCurrentCell()
  ColumnObj = CurrentCell.Renderer.StyleInfo.TableCellIdentity.Column
  return ColumnObj.HeaderText.OleValue
def GetCurrentCellValue (Grid):
  CurrentCell = Grid.TableControl.GetNestedCurrentCell()
  return CurrentCell.Renderer.StyleInfo.CellValue
VBScript
Sub Main ()
   Dim p, Grid
   ' Obtain the grid object
   Set p = Sys.Process("HierarchySample")
   Set Grid = p.WinFormsObject("Form1").WinFormsObject("groupingGrid1")
   Log.Message ("Current row index: " & GetCurrentRowIndex(Grid) )
   Log.Message ("Current column index: " & GetCurrentColIndex(Grid))
   Log.Message ("Current column caption: " & GetCurrentColCaption(Grid))
   Log.Message ("Current cell value: " & GetCurrentCellValue(Grid).ToString().OleValue)
End Sub
Function GetCurrentRowIndex (Grid)
   Set CurrentCell = Grid.TableControl.GetNestedCurrentCell
   Set RowObj = CurrentCell.Renderer.StyleInfo.TableCellIdentity.DisplayElement.ParentRecord
   Set GetCurrentRowIndex = RowObj.ParentGroup.Records.IndexOf(RowObj)
End Function
Function GetCurrentColIndex (Grid)
   Set CurrentCell = Grid.TableControl.GetNestedCurrentCell
   Set ColumnObj = CurrentCell.Renderer.StyleInfo.TableCellIdentity.Column
   Set GetCurrentColIndex = ColumnObj.Collection.IndexOf(ColumnObj)
End Function
Function GetCurrentColCaption (Grid)
   Set CurrentCell = Grid.TableControl.GetNestedCurrentCell
   Set ColumnObj = CurrentCell.Renderer.StyleInfo.TableCellIdentity.Column
   Set GetCurrentColCaption = ColumnObj.HeaderText.OleValue
End Function
Function GetCurrentCellValue (Grid)
   Set CurrentCell = Grid.TableControl.GetNestedCurrentCell
   Set GetCurrentCellValue = CurrentCell.Renderer.StyleInfo.CellValue 
End Function
DelphiScript
procedure Main();
var p, Grid: oleVariant;
begin
   // Obtain the grid object
   p := Sys.Process('HierarchySample');
   Grid := p.WinFormsObject('Form1').WinFormsObject('groupingGrid1');
   Log.Message ('Current row index: ' + GetCurrentRowIndex(Grid) );
   Log.Message ('Current column index: ' + GetCurrentColIndex(Grid));
   Log.Message ('Current column caption: ' + GetCurrentColCaption(Grid));
   Log.Message ('Current cell value: ' + GetCurrentCellValue(Grid).ToString().OleValue);
end;
function GetCurrentRowIndex (Grid): oleVariant;
var CurrentCell, RowObj: oleVariant;
begin
   CurrentCell := Grid.TableControl.GetNestedCurrentCell;
   RowObj := CurrentCell.Renderer.StyleInfo.TableCellIdentity.DisplayElement.ParentRecord;
   Result := RowObj.ParentGroup.Records.IndexOf(RowObj);
end;
function GetCurrentColIndex (Grid): oleVariant;
var CurrentCell, ColumnObj: oleVariant;
begin
  CurrentCell := Grid.TableControl.GetNestedCurrentCell;
  ColumnObj := CurrentCell.Renderer.StyleInfo.TableCellIdentity.Column;
  Result := ColumnObj.Collection.IndexOf(ColumnObj);
end;
function GetCurrentColCaption (Grid): oleVariant;
var CurrentCell, ColumnObj: oleVariant;
begin
  CurrentCell := Grid.TableControl.GetNestedCurrentCell;
  ColumnObj := CurrentCell.Renderer.StyleInfo.TableCellIdentity.Column;
  Result := ColumnObj.HeaderText.OleValue;
end;
function GetCurrentCellValue (Grid): oleVariant;
var CurrentCell: oleVariant;
begin
  CurrentCell := Grid.TableControl.GetNestedCurrentCell;
  Result := CurrentCell.Renderer.StyleInfo.CellValue; 
end;
C++Script, C#Script
function Main ()
{
  var p, Grid;
  // Obtain the grid object
  p = Sys["Process"]("HierarchySample");
  Grid = p["WinFormsObject"]("Form1")["WinFormsObject"]("groupingGrid1");
  Log["Message"]("Current row index: " +  GetCurrentRowIndex(Grid) );
  Log["Message"]("Current column index: " + GetCurrentColIndex(Grid));
  Log["Message"]("Current column caption: " + GetCurrentColCaption(Grid));
  Log["Message"]("Current cell value: " + GetCurrentCellValue(Grid)["ToString"]()["OleValue"]);
}
function GetCurrentRowIndex (Grid)
{
  var CurrentCell = Grid["TableControl"]["GetNestedCurrentCell"]();
  var RowObj = CurrentCell["Renderer"]["StyleInfo"]["TableCellIdentity"]["DisplayElement"]["ParentRecord"];
  return RowObj["ParentGroup"]["Records"]["IndexOf"](RowObj);
}
function GetCurrentColIndex (Grid)
{
  var CurrentCell = Grid["TableControl"]["GetNestedCurrentCell"]();
  var ColumnObj = CurrentCell["Renderer"]["StyleInfo"]["TableCellIdentity"]["Column"];
  return ColumnObj["Collection"]["IndexOf"](ColumnObj);
}
function GetCurrentColCaption (Grid)
{
  var CurrentCell = Grid["TableControl"]["GetNestedCurrentCell"]();
  var ColumnObj = CurrentCell["Renderer"]["StyleInfo"]["TableCellIdentity"]["Column"];
  return ColumnObj["HeaderText"]["OleValue"];
}
function GetCurrentCellValue (Grid)
{
  var CurrentCell = Grid["TableControl"]["GetNestedCurrentCell"]();
  return CurrentCell["Renderer"]["StyleInfo"]["CellValue"];
}
See Also
Working With Syncfusion GridGroupingControl
Selecting Cells in Syncfusion GridGroupingControl
Obtaining and Setting Cell Values in Syncfusion GridGroupingControl
Searching for Records in Syncfusion GridGroupingControl
