anchor.diff:  begin
     TBooleanDatum.FillVirtualFieldDefs(aFieldDefs, aPrefix);
   end;
  +
   
   { TBooleanDatum }
   
  
positive.code: function TBooleanDatumKey.AsString: string;
  begin
    Result := BoolToStr(FValue, true);
  end;
  
  { TBooleanDataProvider }
  
negative.code:     procedure FillVirtualFieldDefs (aFieldDefs : TmVirtualFieldDefs; const aPrefix : String);
    end;
  
    { TBooleanDatasetDataProvider }
  
    TBooleanDatasetDataProvider = class (TmDatasetDataProvider)
    strict private
      FTrueValue : TBooleanDatum;
      FFalseValue : TBooleanDatum;
    public
      constructor Create; override;
      destructor Destroy; override;
      procedure FillVirtualFieldDefs (aFieldDefs : TmVirtualFieldDefs; const aPrefix : String); override;
      function GetKeyFieldName : String; override;
    end;
  
  implementation
  
  uses
  