UNPKG

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
/** * 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); }); } }