@syncfusion/ej2-pivotview
Version:
The pivot grid, or pivot table, is used to visualize large sets of relational data in a cross-tabular format, similar to an Excel pivot table.
451 lines (450 loc) • 13.4 kB
TypeScript
import { Internationalization, Ajax } from '@syncfusion/ej2-base';
import { IField, IDataOptions, IMembers, IDrillOptions, IDrilledItem, IFieldOptions, IPageSettings, ISort } from '../engine';
import { IAxisSet, IGridValues, IFilter, ICustomProperties, IValueSortSettings, ICalculatedFieldSettings } from '../engine';
import { IFormatSettings, IMatrix2D } from '../engine';
import { ExportPageSize } from '../../common/base/interface';
/**
* OlapEngine is used to manipulate the olap or Multi-Dimensional data as pivoting values.
*/
/** @hidden */
export declare class OlapEngine {
/** @hidden */
isEmptyData: boolean;
/** @hidden */
globalize: Internationalization;
/** @hidden */
fieldList: IOlapFieldListOptions;
/** @hidden */
fields: string[];
/** @hidden */
rows: IFieldOptions[];
/** @hidden */
columns: IFieldOptions[];
/** @hidden */
values: IFieldOptions[];
/** @hidden */
filters: IFieldOptions[];
/** @hidden */
calculatedFieldSettings: ICalculatedFieldSettings[];
/** @hidden */
isMutiMeasures: boolean;
/** @hidden */
drilledMembers: IDrillOptions[];
/** @hidden */
valueSortSettings: IValueSortSettings;
/** @hidden */
isEngineUpdated: boolean;
/** @hidden */
savedFieldList: IOlapFieldListOptions;
/** @hidden */
savedFieldListData: IOlapField[];
/** @hidden */
valueAxis: string;
/** @hidden */
columnCount: number;
/** @hidden */
rowCount: number;
/** @hidden */
colFirstLvl: number;
/** @hidden */
rowFirstLvl: number;
/** @hidden */
pageColStartPos: number;
/** @hidden */
enableSort: boolean;
/** @hidden */
enableValueSorting: boolean;
/** @hidden */
isHeaderAvail: boolean;
/** @hidden */
fieldListData: IOlapField[];
/** @hidden */
fieldListObj: FieldData;
/** @hidden */
dataFields: {
[key: string]: IFieldOptions;
};
/** @hidden */
formats: IFormatSettings[];
/** @hidden */
formatFields: {
[key: string]: IFormatSettings;
};
/** @hidden */
emptyCellTextContent: string;
/** @hidden */
isMondrian: boolean;
/** @hidden */
olapValueAxis: string;
/** @hidden */
isMeasureAvail: boolean;
/** @hidden */
selectedItems: string[];
/** @hidden */
filterSettings: IFilter[];
/** @hidden */
sortSettings: ISort[];
/** @hidden */
filterMembers: {
[key: string]: string[] | IFilter[];
};
/** @hidden */
allowMemberFilter: boolean;
/** @hidden */
allowLabelFilter: boolean;
/** @hidden */
allowValueFilter: boolean;
/** @hidden */
mdxQuery: string;
/** @hidden */
isPaging: boolean;
/** @hidden */
exportSpeciedPages: ExportPageSize;
/** @hidden */
pageSettings: IPageSettings;
/** @hidden */
calcChildMembers: IOlapField[];
/** @hidden */
drilledSets: {
[key: string]: HTMLElement;
};
/** @hidden */
olapVirtualization: boolean;
/** @hidden */
isExporting: boolean;
/** @hidden */
measureIndex: number;
private measurePosition;
private showSubTotalsAtTop;
private showSubTotalsAtBottom;
aggregatedValueMatrix: IMatrix2D;
private localeObj;
private measureReportItems;
private locale;
private olapRowValueIndex;
private mappingFields;
private formatRegex;
private clonedValTuple;
private clonedColumnTuple;
private clonedRowTuple;
/** @hidden */
xmlaCellSet: NodeListOf<Element>;
/** @hidden */
pivotValues: IAxisSet[][];
/** @hidden */
dataSourceSettings: IDataOptions;
/** @hidden */
valueContent: IGridValues;
/** @hidden */
headerContent: IGridValues;
/** @hidden */
colMeasurePos: number;
/** @hidden */
rowStartPos: number;
/** @hidden */
pageRowStartPos: number;
/** @hidden */
rowMeasurePos: number;
/** @hidden */
tupColumnInfo: ITupInfo[];
/** @hidden */
tupRowInfo: ITupInfo[];
/** @hidden */
gridJSON: string;
/** @hidden */
namedSetsPosition: {
[key: string]: {
[key: number]: string;
};
};
/** @hidden */
errorInfo: string | Error;
/** @hidden */
colDepth: number;
private totalCollection;
private parentObjCollection;
private colMeasures;
private curDrillEndPos;
private headerGrouping;
private lastLevel;
private xmlDoc;
private request;
private customArgs;
private onDemandDrillEngine;
private showRowSubTotals;
private showColumnSubTotals;
private hideRowTotalsObject;
private hideColumnTotalsObject;
private sortObject;
private isColDrill;
private getHeaderSortInfo;
renderEngine(dataSourceSettings?: IDataOptions, customProperties?: IOlapCustomProperties, onHeadersSort?: Function): void;
generateGridData(dataSourceSettings: IDataOptions, action?: string): void;
generatePagingData(xmlDoc: Document, request: Ajax, customArgs: FieldData): void;
scrollPage(): void;
private getVirtualScrollingData;
private getAxisdepth;
private getVirtualTotals;
private getVirtualValues;
generateEngine(xmlDoc: Document, request: Ajax, customArgs: FieldData): void;
private getDrillInfo;
private getActualTuples;
private clearEngineProperties;
private performEngine;
private getValueSortInfo;
private getParentElement;
private reArrangeHeaders;
private getSubTotalsVisibility;
private frameRowHeader;
private insertRowSubTotal;
private insertRowGrandTotal;
private frameGrandTotalAxisSet;
private getDepth;
private checkAttributeDrill;
private frameTupCollection;
private getCaptionCollectionWithMeasure;
/**
* It performs the set named sets position.
*
* @returns {void}
* @hidden
*/
setNamedSetsPosition(): void;
private updateRowEngine;
private updateTupCollection;
private frameGrandTotalValues;
private frameColumnHeader;
private orderTotals;
private setParentCollection;
private setDrillInfo;
private levelCompare;
private mergeTotCollection;
private getLevelsAsString;
private frameCommonColumnLoop;
private isAttributeDrill;
private isAdjacentToMeasure;
private getDrilledParent;
private performRowSorting;
private performColumnSorting;
private frameUniqueName;
private getMeasurePosition;
private sortRowHeaders;
private sortColumnHeaders;
private applyCustomSort;
private frameSortObject;
private getParentUname;
private performColumnSpanning;
private getOrdinal;
private frameValues;
/**
* It performs to returns the formatted value.
*
* @param {number} value - It Defines the value of formatting data.
* @param {string} fieldName - It contains the value of the field name.
* @param {string} formattedText - It contains the value of the formatted text.
* @returns {string} - It returns formatted Value as string.
* @hidden
*/
getFormattedValue(value: number, fieldName: string, formattedText: string): string;
private getMeasureInfo;
private frameMeasureOrder;
getDrilledSets(uNameCollection: string, currentCell: IAxisSet, fieldPos: number, axis: string): {
[key: string]: string;
};
updateDrilledInfo(dataSourceSettings: IDataOptions): void;
updateCalcFields(dataSourceSettings: IDataOptions, lastcalcInfo: ICalculatedFieldSettings): void;
onSort(dataSourceSettings: IDataOptions, isValueSort?: boolean): void;
private updateFieldlist;
updateFieldlistData(name: string, isSelect?: boolean): void;
/**
* It used to set format a field.
*
* @param {IFormatSettings[]} formats - It cotains the formatSettings.
* @returns {void}
* @hidden
*/
getFormattedFields(formats: IFormatSettings[]): void;
private getCubes;
private validateCube;
private getFieldList;
getTreeData(args: ConnectionInfo, successMethod: Function, customArgs: object): void;
private getAxisFields;
private getAggregateType;
getUniqueName(name: string): string;
private updateFilterItems;
private getParentNode;
updateDrilledItems(drilledMembers: IDrillOptions[]): IDrillOptions[];
/**
* It performs to returns the drill through data.
*
* @param {IAxisSet} pivotValue - It cotains the pivotValues data.
* @param {number} maxRows - It cotains the maximum number of row data.
* @returns {void}
* @hidden
*/
getDrillThroughData(pivotValue: IAxisSet, maxRows: number): void;
private drillThroughSuccess;
getFilterMembers(dataSourceSettings: IDataOptions, fieldName: string, levelCount: number, isSearchFilter?: boolean, loadLevelMember?: boolean): string;
getMembers(dataSourceSettings: IDataOptions, fieldName: string, isAllFilterData?: boolean, filterParentQuery?: string, loadLevelMember?: boolean, filterItemName?: string): void;
private getOlapFilterText;
getChildMembers(dataSourceSettings: IDataOptions, memberUQName: string, fieldName: string): void;
getCalcChildMembers(dataSourceSettings: IDataOptions, memberUQName: string): void;
getSearchMembers(dataSourceSettings: IDataOptions, fieldName: string, searchString: string, maxNodeLimit: number, isAllFilterData?: boolean, levelCount?: number): void;
private generateMembers;
private getFieldListItems;
private loadCalculatedMemberElements;
private loadDimensionElements;
private loadNamedSetElements;
private loadHierarchyElements;
private updateMembersOrder;
private loadLevelElements;
private loadMeasureElements;
private loadMeasureGroups;
doAjaxPost(type: string, url: string, data: string, success: Function, customArgs?: Object): void;
private beforeSend;
private getSoapMsg;
getConnectionInfo(connectionString: string, locale: string | number): ConnectionInfo;
getMDXQuery(dataSourceSettings: IDataOptions): string;
}
/**
* @hidden
*/
export interface IOlapFieldListOptions {
[index: string]: IOlapField;
}
/**
* @hidden
*/
export interface IOlapField extends IField {
pid?: string;
tag?: string;
hasChildren?: boolean;
expanded?: boolean;
spriteCssClass?: string;
name?: string;
defaultHierarchy?: string;
hasAllMember?: boolean;
allMember?: string;
isChecked?: boolean;
filterMembers?: IOlapField[];
childMembers?: IOlapField[];
searchMembers?: IOlapField[];
htmlAttributes?: {
[key: string]: string;
};
currrentMembers?: IMembers;
isHierarchy?: boolean;
isNamedSets?: boolean;
formatString?: string;
actualFilter?: string[];
levels?: IOlapField[];
levelCount?: number;
memberType?: number;
fieldType?: string;
parentHierarchy?: string;
}
/**
* @hidden
*/
export interface ConnectionInfo {
url?: string;
LCID?: string;
catalog?: string;
cube?: string;
request?: string;
roles?: string;
}
/**
* @hidden
*/
export interface FieldData {
hierarchy?: IOlapField[];
hierarchySuccess?: Document;
measures?: IFieldOptions[];
dataSourceSettings?: IDataOptions;
action?: string;
reportElement?: string[];
measuresGroups?: HTMLElement[];
fieldName?: string;
drillInfo?: IDrilledItem;
loadLevelMembers?: boolean;
}
/** @hidden */
export interface IOlapCustomProperties extends ICustomProperties {
savedFieldList?: IOlapFieldListOptions;
savedFieldListData?: IOlapField[];
}
/** @hidden */
export interface ITupInfo {
allCount?: number;
allStartPos?: number;
measure?: Element;
measureName?: string;
measurePosition?: number;
members?: NodeListOf<Element>;
typeCollection?: string[];
levelCollection?: number[];
uNameCollection?: string;
captionCollection?: string;
drillInfo?: IDrillInfo[];
drillStartPos?: number;
drillEndPos?: number;
startDrillUniquename?: string;
endDrillUniquename?: string;
showTotals?: boolean;
}
/** @hidden */
export interface IDrillInfo {
level: number;
uName: string;
hierarchy: string;
isDrilled: boolean;
}
/** @hidden */
export interface ITotCollection {
allCount: number;
allStartPos?: number;
ordinal: number;
members: NodeListOf<Element>;
drillInfo?: IDrillInfo[];
}
/** @hidden */
export interface IParentObjCollection {
[key: number]: {
[key: number]: Element;
};
}
/** @hidden */
export interface ILastSavedInfo {
[key: string]: string | number;
}
/** @hidden */
export interface IMeasureInfo {
measureAxis: string;
measureIndex: number;
valueInfo: string[];
}
/** @hidden */
export interface IOrderedInfo {
orderedValueTuples: Element[];
orderedHeaderTuples: Element[];
}
/** @hidden */
export interface VirtualScrollingData {
columnTuple: Element[];
rowTuple: Element[];
valueTuple: Element[];
isCalculated: boolean;
}
/** @hidden */
export interface VirtualTotals {
totalsCollection: Element[];
indexCollection: number[];
}
/** @hidden */
export interface ValueSortInfo {
memberIndex: number;
columnLength: number;
rowLength: number;
isValueSorting: boolean;
}