IGlobalErrors.GlobalErrorNumber Property

Gets the number of the first global error if any.
int GlobalErrorNumber {get;}

Property Value

int

The global error number that was reported as the first one. Zero if no such global error was reported.

Remarks
 
This property can store only one error, so only the first one is stored. If another method reports another global error to this property, this next error is simply lost.

The GlobalErrorMessage and GlobalErrorNumber properties represent a pair which is always set together.

Remember that GlobalErrorMessage and MessageStack are completely independent and they are used by different methods in the API. So to determine whether any global error was reported in the old way, you should test GlobalErrorMessage first. If it is empty, it doesn't mean there was no error. In such a case, you need to test whether MessageStack contains any item.

Example
 

The following example shows, how to correctly handle errors from IAnalyticReporting.GetDataSource method which uses the old error handling.

IAnalyticReporting aTools = es.CurrentVersion.GetAnalyticReportingTools();
 // Get all available fields for data source and where applicable, set their "All levels" to True.
 IEnumerable<FieldForQdvFldConfigFile> fields = aTools.GetAvailableFieldsForDataSource(useEightLevelsWhereApplicable: true);
 // Now you can customize or remove individual fields, if needed.
  
 // Save the fields configuration into a qdvfldconfig file. This is an optional step.
 bool collapsed = true;
 aTools.SaveFieldsForDataSource(@"C:\test.qdvfldconfig", fields, collapsed);
  
 // Create the data source.
 IWorkbook dataSourceWorkbook = aTools.GetDataSource(new List<FieldForQdvFldConfigFile>(fields), collapsed);
  
 // Check the errors, because GetDataSource doesn't throw exceptions.
 if (dataSourceWorkbook == null)
 {
     // An error occurred, get the details.
     if (!String.IsNullOrEmpty(context.QdvManager.Environment.GlobalErrors.GlobalErrorMessage))
     {
         // The error is reported in GlobalErrorMessage.
         string errText = context.QdvManager.Environment.GlobalErrors.GlobalErrorMessage;
         MessageBox.Show(errText, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     else if (context.QdvManager.Environment.GlobalErrors.MessageStack.Count > 0)
     {
         // The error(s) is/are reported in MessageStack, display them all.
         string errText = "";
         foreach (string err in context.QdvManager.Environment.GlobalErrors.MessageStack)
         {
             errText += err + "\n";
         }
         MessageBox.Show(errText, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     else
     {
         // No error details.
     }
 }                   

Version
 
Available since QDV 7.21.885.

.NET Framework

Supported in: 4.8, 4.7, 4.6, 4.5.2