Пример #1
0
 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);
 }