function BuildSearchGroup: TCatalogPropGroup; begin result := TCatalogPropGroup.Create(nil); result.IncludeStyle := isInclusive; result.States.AddState(cstateRated); result.States.AddState(cstateNotRated); end; procedure OpenNewTabForDataset(ADatasets: TDBXOMDataSets); begin AData := TidElement.Create(nil); try PublicBroadCast(nil, 'OpenNewTab', nil); PublicBroadCastRequest(nil, 'ActiveCollection', AData); AColl := AData.Data; AColl.Clear; AColl.Items._DataSets := ADatasets; PublicBroadCast(nil, 'RefreshActiveCollection', nil); finally AData.Free; end; end; function BuildSearchResultDataSet: TDBXOMDataSets; var AGroup: TCatalogPropGroup; AItems: TCatalogItems; begin result := PublicCatalog.NewDataSet; AItems := TCatalogItems.Create(TCatalogItem, ''); AGroup := BuildSearchGroup; try PublicCatalog.EnumGroupResultQuick(AGroup, AItems, -1); // take over the dataset(s) for extra performance result := AItems.DataSets; AItems._DataSets := TDBXOMDataSets.Create(TDBXOMDataSet, ''); finally AGroup.Free; AItems.Free; end; end; procedure OpenSearchGroup; var ADatasets: TDBXOMDataSets; begin ADatasets := BuildSearchResultDataSet; OpenNewTabForDataset(ADatasets); end; begin OpenSearchGroup; end;