public override object this[string key]
 {
     get
     {
         if (key == null)
         {
             return(null);
         }
         m_reportOM.PerformPendingFieldValueUpdate();
         m_usedInExpression = true;
         if (ReportProcessing.CompareWithInvariantCulture(key, "Value", ignoreCase: true) == 0)
         {
             return(Value);
         }
         if (ReportProcessing.CompareWithInvariantCulture(key, "IsMissing", ignoreCase: true) == 0)
         {
             return(IsMissing);
         }
         if (ReportProcessing.CompareWithInvariantCulture(key, "LevelNumber", ignoreCase: true) == 0)
         {
             return(LevelNumber);
         }
         return(GetProperty(key));
     }
 }
 private FieldImpl CheckedGetFieldByIndex(int index)
 {
     try
     {
         if (m_collection[index] == null || m_collection[index].IsCalculatedField)
         {
             m_reportOM.PerformPendingFieldValueUpdate();
         }
         return(m_collection[index]);
     }
     catch (Exception e)
     {
         if (AsynchronousExceptionDetection.IsStoppingException(e))
         {
             throw;
         }
         throw new ReportProcessingException_NonExistingFieldReference();
     }
 }