private void CalculateOWCFlags(MatrixHeading heading) { if (heading == null) { return; } if (heading.Grouping == null) { m_staticHeadingCount++; if (m_staticHeadingCount > 1) { m_useOWC = false; return; } if (heading.SubHeading != null) { m_useOWC = false; return; } if (heading.ReportItems != null) { for (int i = 0; i < heading.ReportItems.Count; i++) { DetectIllegalReportItems(heading.ReportItems[i]); if (IsFinish()) { return; } TextBox textBox = FindNotAlwaysHiddenTextBox(heading.ReportItems[i]); if (IsFinish()) { return; } if (textBox == null) { m_useOWC = false; return; } } } } else { ExpressionInfo expressionInfo = null; if (heading.Grouping.GroupExpressions != null) { if (heading.Grouping.GroupExpressions.Count != 1) { m_useOWC = false; return; } expressionInfo = heading.Grouping.GroupExpressions[0]; } DetectIllegalReportItems(heading.ReportItem); if (IsFinish()) { return; } TextBox textBox2 = FindNotAlwaysHiddenTextBox(heading.ReportItem); if (IsFinish()) { return; } if (textBox2 == null) { m_useOWC = false; return; } Global.Tracer.Assert(expressionInfo != null); Global.Tracer.Assert(textBox2.Value != null); if (expressionInfo.OriginalText != textBox2.Value.OriginalText) { m_owcGroupExpression.Add(true); } else { m_owcGroupExpression.Add(false); } } CalculateOWCFlags(heading.SubHeading); }