anchor.diff:      property HorizontalKeysIndex : TmKeysIndex read FHorizontalKeysIndex;
     end;
   
  -
  +  function TmGroupByOperationKindToString(const aValue: TmGroupByOperationKind) : String;
   
   implementation
   
   uses
     sysutils, dateutils;
  +
  +function TmGroupByOperationKindToString(const aValue: TmGroupByOperationKind): String;
  +begin
  +  Result := 'unknown';
  +  if aValue = gpoDistinct then
  +    Result := 'distinct'
  +  else if aValue = gpoDateYear then
  +    Result := 'year'
  +  else if aValue = gpoDateMonth then
  +    Result := 'month'
  +  else if aValue = gpoDateTheMonth then
  +    Result := 'year + month'
  +  else if aValue = gpoDateDay then
  +    Result := 'day'
  +  else if aValue = gpoDateTheDay then
  +    Result := 'year + month + day'
  +  else if aValue = gpoDateQuarter then
  +    Result := 'quarter'
  +  else if aValue = gpoDateTheQuarter then
  +    Result := ' year + quarter'
  +  else if aValue = gpoFirstLetter then
  +    Result := 'first letter'
  +  else if aValue = goFormula then
  +    Result := 'formula';
  +end;
   
   { TKeyValuesForGroupByDefs }
   
  
positive.code:   FFormula := '';
  end;
  
  { TmCalculationDef }
  
  constructor TmCalculationDef.Create;
  
negative.code: 
  unit mPivoter;
  
  {$IFDEF FPC}
    {$MODE DELPHI}
  {$ENDIF}
  
  interface
  
  uses
  