devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
52 lines (51 loc) • 3.14 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (designer\dataObjects\universalDataSource.js)
* Version: 24.2.6
* Build date: Mar 18, 2025
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
import { SerializableModel } from '@devexpress/analytics-core/analytics-elements';
import { extend } from '@devexpress/analytics-core/analytics-internal-native';
import { deserializeArray } from '@devexpress/analytics-core/analytics-utils';
import { FilterStringOptions } from '@devexpress/analytics-core/analytics-widgets';
import * as ko from 'knockout';
import { filterString, filterStringEditable } from '../controls/metadata/properties/metadata';
import { ObjectItem, ObjectStorageParameter } from './objectStorageItem';
export class TableInfoCollectionItem extends SerializableModel {
constructor(model, dataSource, dsHelper, serializer) {
super(model, serializer, tableInfoCollectionItemSerializationsInfo);
this.filterString = ko.observable(null);
const options = new FilterStringOptions(this['_filterString'], ko.pureComputed(() => {
return dsHelper() && (dsHelper().getDataSourcePath(dataSource) + '.' + this['tableName']());
}), ko.pureComputed(() => !dataSource));
options.helper.canChoiceParameters = true;
this.filterString(options);
}
}
const tableInfoCollectionItemSerializationsInfo = [filterString, filterStringEditable, { propertyName: 'tableName', modelName: '@TableName' }];
export class UniversalDataSource extends ObjectItem {
dispose() {
super.dispose();
this.disposeObservableArray(this.parameters);
this.disposeObservableArray(this.tableInfoCollection);
this.disposeObservableArray(this.spParameterInfoCollection);
this.resetObservableArray(this.parameters);
this.resetObservableArray(this.tableInfoCollection);
this.resetObservableArray(this.spParameterInfoCollection);
}
getInfo() {
return super.getInfo().concat([
{ propertyName: 'parameters', modelName: 'Parameters', array: true },
{ propertyName: 'tableInfoCollection', modelName: 'TableInfoCollection', array: true },
{ propertyName: 'spParameterInfoCollection', modelName: 'StoredProcedureParameterInfoCollection', array: true },
{ propertyName: 'name', modelName: '@Name' }
]);
}
constructor(model, dsHelperProvider, serializer) {
super(extend({ '@ObjectType': 'DevExpress.ReportServer.Infrastructure.Data.UniversalDataSource' }, model), dsHelperProvider, serializer);
this.parameters = deserializeArray(model.Parameters || [], (item) => { return new ObjectStorageParameter(item, serializer); });
this.tableInfoCollection = deserializeArray(model.TableInfoCollection || [], (item) => { return new TableInfoCollectionItem(item, this, dsHelperProvider, serializer); });
this.spParameterInfoCollection = deserializeArray(model.StoredProcedureParameterInfoCollection || [], (item) => { return new ObjectStorageParameter(item, serializer); });
}
}