anchor.diff:      property Formula: TNullableString read FFormula;
       property DisplayLabel : TNullableString read FDisplayLabel;
       property DisplayFormat : TNullableString read FDisplayFormat;
  +    property SortBy : TmSortByCondition read FSortBy write FSortBy;
     end;
   
     { TmGroupByDefs }
  
positive.code:     property VerticalGroupByDefs : TmGroupByDefs read FVerticalGroupByDefs;
      property HorizontalGroupByDefs : TmGroupByDefs read FHorizontalGroupByDefs;
      property SummaryDefinitions : TmSummaryDefinitions read FSummaryDefinitions;
  
      // output values
      property VerticalValues: TKeyValuesForGroupByDefs read FVerticalValues; // the collection of all key values for any vertical level
  
negative.code:   FFormula.Assign(aSource.Formula);
    FDisplayLabel.Assign(aSource.DisplayLabel);
    FDisplayFormat.Assign(aSource.DisplayFormat);
    FSortBy:= aSource.SortBy;
  end;
  
  class function TmGroupByDef.CheckOperationKindCompatibility(const aOperationKind: TmGroupByOperationKind; const aDataType: TFieldType): boolean;
  