Description
A log table can have a tree-like structure, that is, its rows can have child rows (in this case, the parent row is called the log folder). For example, the script log can contain folders, which you have created using the Log.CreateFolder
or Log.AppendFolder
method.
The ChildRowCount
property returns the total number of child rows of the given table row. To obtain a single child row by its index, use the ChildRow
property.
Declaration
LogTableRowObj.ChildRowCount
Read-Only Property | Integer |
LogTableRowObj | An expression, variable or parameter that specifies a reference to a LogTableRow object |
Applies To
The property is applied to the following object:
Property Value
An integer number that signifies the total number of child rows for the given table row.
Example
The following example iterates through log rows and posts information they contain to an external text file.
JavaScript
var ExportFile;
function ProcessRows()
{
// Obtains a log item
var LogItem = Project.Logs.LogItem(0);
// Checks whether the log item’s data scheme corresponds to the table
var LogData = LogItem.Data(0);
DType = LogData.Scheme.DataType;
if (DType == 0)
{
// Opens a text file for recording
ExportFileName = "D:\\Work Folder\\ExportedLog\\LogRows.txt";
FS = getActiveXObject("Scripting.FileSystemObject");
ExportFile = FS.CreateTextFile(ExportFileName, true);
// Iterates through the log table rows and exports them to the external file
for (var i = 0; i < LogData.RowCount; i++)
{
// Obtains the current row
Row = LogData.Rows(i);
ExportLog(Row, LogData);
}
// Closes the file
ExportFile.Close();
}
}
function ExportLog(ALogRow, ALogData)
{
var Scheme = ALogData.Scheme;
Post = "";
Count = Scheme.ColumnCount;
// Iterates through the log columns
for (var i = 0; i < Count; i++)
{
var Column = Scheme.Column(i);
// If the column does not contain images...
if (Column.DataType != 4)
{
// Obtains the value stored in the cell
Value = aqConvert.VarToStr(ALogRow.ValueByIndex(i));
Post = Post + Value + " ";
}
}
// Posts the row to the external file
ExportFile.WriteLine(Post);
// If the current log row has child rows, posts them to the external file
if (ALogRow.ChildRowCount > 0)
{
for (var i = 0; i < ALogRow.ChildRowCount; i++)
{
var ChildRow = ALogRow.ChildRow(i);
ExportLog(ChildRow, ALogData);
}
}
}
JScript
var ExportFile;
function ProcessRows()
{
// Obtains a log item
var LogItem = Project.Logs.LogItem(0);
// Checks whether the log item’s data scheme corresponds to the table
var LogData = LogItem.Data(0);
DType = LogData.Scheme.DataType;
if (DType == 0)
{
// Opens a text file for recording
ExportFileName = "D:\\Work Folder\\ExportedLog\\LogRows.txt";
FS = Sys.OleObject("Scripting.FileSystemObject");
ExportFile = FS.CreateTextFile(ExportFileName, true);
// Iterates through the log table rows and exports them to the external file
for (var i = 0; i < LogData.RowCount; i++)
{
// Obtains the current row
Row = LogData.Rows(i);
ExportLog(Row, LogData);
}
// Closes the file
ExportFile.Close();
}
}
function ExportLog(ALogRow, ALogData)
{
var Scheme = ALogData.Scheme;
Post = "";
Count = Scheme.ColumnCount;
// Iterates through the log columns
for (var i = 0; i < Count; i++)
{
var Column = Scheme.Column(i);
// If the column does not contain images...
if (Column.DataType != 4)
{
// Obtains the value stored in the cell
Value = aqConvert.VarToStr(ALogRow.ValueByIndex(i));
Post = Post + Value + " ";
}
}
// Posts the row to the external file
ExportFile.WriteLine(Post);
// If the current log row has child rows, posts them to the external file
if (ALogRow.ChildRowCount > 0)
{
for (var i = 0; i < ALogRow.ChildRowCount; i++)
{
var ChildRow = ALogRow.ChildRow(i);
ExportLog(ChildRow, ALogData);
}
}
}
Python
def ProcessRows():
# Obtains a log item
LogItem = Project.Logs.LogItem[0]
# Checks whether the log item's data scheme corresponds to the table
LogData = LogItem.Data[0]
DType = LogData.Scheme.DataType
if DType == 0:
# Opens a text file for recording
ExportFileName = "D:\\Work Folder\\ExportedLog\\LogRows.txt"
FS = Sys.OleObject["Scripting.FileSystemObject"]
ExportFile = FS.CreateTextFile(ExportFileName, True)
# Iterates through the log table rows and exports them to the external file
for i in range(0, LogData.RowCount):
# Obtains the current row
Row = LogData.Rows[i]
ExportLog(Row, LogData, ExportFile)
# Closes the file
ExportFile.Close()
def ExportLog(ALogRow, ALogData, ExportedFile):
Scheme = ALogData.Scheme
Post = ""
Count = Scheme.ColumnCount
# Iterates through the log columns
for i in range(0, Count):
Column = Scheme.Column[i]
# If the column does not contain images...
if Column.DataType != 4:
# Obtains the value stored in the cell
Value = aqConvert.VarToStr(ALogRow.ValueByIndex[i])
Post = Post + Value + " "
# Posts the row to the external file
ExportedFile.WriteLine(Post)
# If the current log row has child rows, posts them to the external file
if ALogRow.ChildRowCount > 0:
for i in range(0, ALogRow.ChildRowCount):
ChildRow = ALogRow.ChildRow[i]
ExportLog(ChildRow, ALogData)
VBScript
Dim ExportFile
Sub ProcessRows
' Obtains a log item
Set LogItem = Project.Logs.LogItem(0)
' Checks whether the log item’s data scheme corresponds to the table
Set LogData = LogItem.Data(0)
DType = LogData.Scheme.DataType
If DType = 0 Then
' Opens a text file for recording
ExportFileName = "D:\Work Folder\ExportedLog\LogRows.txt"
Set FS = Sys.OleObject("Scripting.FileSystemObject")
Set ExportFile = FS.CreateTextFile(ExportFileName, True)
' Iterates through the log table rows and exports them to the external file
For i = 0 To LogData.RowCount - 1
' Obtains the current row
Set Row = LogData.Rows(i)
Call ExportLog(Row, LogData)
Next
' Closes the file
ExportFile.Close
End If
End Sub
Sub ExportLog(ALogRow, ALogData)
Set Scheme = ALogData.Scheme
Post = ""
Count = Scheme.ColumnCount
' Iterates through the log columns
For i = 0 To Count - 1
Set Column= Scheme.Column(i)
' If the column does not contain images...
If Column.DataType <> 4 Then
' Obtains the value stored in the cell
Value = aqConvert.VarToStr(ALogRow.ValueByIndex(i))
Post = Post & Value & " "
End If
Next
' Posts the row to the external file
ExportFile.WriteLine Post
' If the current log row has child rows, posts them to the external file
If ALogRow.ChildRowCount > 0 Then
For i = 0 To ALogRow.ChildRowCount - 1
Set ChildRow = ALogRow.ChildRow(i)
Call ExportLog(ChildRow, ALogData)
Next
End If
End Sub
DelphiScript
var ExportFile;
// Procedure declaration
procedure ExportLog(ALogRow, ALogData); forward;
procedure ProcessRows();
var LogItem, LogData, DType, ExportFileName, i , Row;
begin
// Obtains a log item
LogItem := Project.Logs.LogItem[0];
// Checks whether the log item’s data scheme corresponds to the table
LogData := LogItem.Data[0];
DType := LogData.Scheme.DataType;
if DType = 0 then
begin
// Opens a text file for recording
ExportFileName := 'D:\Work Folder\ExportedLog\LogRows.txt';
AssignFile(ExportFile, ExportFileName);
Rewrite(ExportFile);
// Iterates through the log table rows and exports them to the external file
for i := 0 to LogData.RowCount - 1 do
begin
// Obtains the current row
Row := LogData.Rows[i];
ExportLog(Row, LogData);
end;
// Closes the file
CloseFile(ExportFile);
end;
end;
procedure ExportLog(ALogRow, ALogData);
var Scheme, Post, Column, Value, ChildRow, Count, i;
begin
Scheme := ALogData.Scheme;
Post := '';
Count := Scheme.ColumnCount;
// Iterates through the log columns
for i := 0 to Count - 1 do
begin
Column := Scheme.Column[i];
// If the column does not contain images...
if Column.DataType <> 4 then
begin
// Obtains the value stored in the cell
Value := aqConvert.VarToStr(ALogRow.ValueByIndex[i]);
Post := Post + Value + ' ';
end;
end;
// Posts the row to the external file
WriteLn(ExportFile, Post);
// If the current log row has child rows, posts them to the external file
if ALogRow.ChildRowCount > 0 then
begin
for i := 0 to ALogRow.ChildRowCount - 1 do
begin
ChildRow := ALogRow.ChildRow[i];
ExportLog(ChildRow, ALogData);
end;
end;
end;
C++Script, C#Script
var ExportFile;
function ProcessRows()
{
// Obtains a log item
var LogItem = Project["Logs"]["LogItem"](0);
// Checks whether the log item’s data scheme corresponds to the table
var LogData = LogItem["Data"](0);
DType = LogData.Scheme.DataType;
if (DType == 0)
{
// Opens a text file for recording
ExportFileName = "D:\\Work Folder\\ExportedLog\\LogRows.txt";
FS = Sys["OleObject"]("Scripting.FileSystemObject");
ExportFile = FS["CreateTextFile"](ExportFileName, true);
// Iterates through the log table rows and exports them to the external file
for (var i = 0; i < LogData["RowCount"]; i++)
{
// Obtains the current row
Row = LogData["Rows"](i);
ExportLog(Row, LogData);
}
// Closes the file
ExportFile["Close"]();
}
}
function ExportLog(ALogRow, ALogData)
{
var Scheme = ALogData["Scheme"];
Post = "";
Count = Scheme["ColumnCount"];
// Iterates through the log columns
for (var i = 0; i < Count; i++)
{
var Column = Scheme["Column"](i);
// If the column does not contain images...
if (Column["DataType"] != 4)
{
// Obtains the value stored in the cell
Value = aqConvert["VarToStr"](ALogRow["ValueByIndex"](i));
Post = Post + Value + " ";
}
}
// Posts the row to the external file
ExportFile["WriteLine"](Post);
// If the current log row has child rows, posts them to the external file
if (ALogRow["ChildRowCount"] > 0)
{
for (var i = 0; i < ALogRow["ChildRowCount"]; i++)
{
var ChildRow = ALogRow["ChildRow"](i);
ExportLog(ChildRow, ALogData);
}
}
}