import { IDimensionMember, Property, PropertyHierarchy, PropertyLevel } from '@metad/ocap-core';
import { DIMENSION_TYPE, XmlaMember } from './rowset';
/**
* MDX Cube Type
*/
export interface MDXCube {
catalogName?: string;
schemaName?: string;
cubeName: string;
}
/**
* 增加 XMLA 相关的 Dimension 属性,继承自 @metad/ocap-core 中的 {@link Property}
*
* ```xml
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
* ```
*
* Sample:
* ```xml
*
FoodMart
FoodMart
HR
Department
[Department]
Department
6
3
13
[Department]
HR Cube - Department Dimension
false
false
0
true
*
* ```
*/
export interface MDXDimension extends Property, MDXCube {
dimensionName: string;
dimensionUniqueName: string;
dimensionGuid?: string;
dimensionCaption: string;
dimensionOrdinal: number;
dimensionType: DIMENSION_TYPE;
dimensionCardinality: number;
defaultHierarchy: string;
description?: string;
isVirtual?: boolean;
isReadwrite?: boolean;
dimensionUniqueSettings?: number;
dimensionMasterUniqueName?: string;
dimensionIsVisible?: boolean;
hierarchies?: Array;
}
/**
*
* ```xml
*
* ```
* ```xml
FoodMart
FoodMart
HR
[Department]
Department
[Department]
Department
3
13
[Department].[All Departments]
[Department].[All Departments]
HR Cube - Department Hierarchy
0
false
false
0
true
true
6
true
false
* ```
*/
export interface MDXHierarchy extends PropertyHierarchy, MDXCube {
dimensionUniqueName: string;
hierarchyName: string;
hierarchyUniqueName: string;
hierarchyGuid?: string;
hierarchyCaption: string;
dimensionType: number;
hierarchyCardinality: number;
defaultMember?: string;
allMember?: string;
description?: string;
structure: number;
isVirtual: boolean;
isReadwrite: boolean;
dimensionUniqueSettings: number;
dimensionIsVisible: boolean;
hierarchyIsVisible: boolean;
hierarchyOrdinal: number;
dimensionIsShared: boolean;
parentChild?: boolean;
levels?: Array;
}
/**
* ```xml
*
* ```
*
* ```xml
*
FoodMart
FoodMart
HR
[Department]
[Department]
(All)
[Department].[(All)]
(All)
0
1
1
0
3
true
HR Cube - Department Hierarchy - (All) Level
FoodMart
FoodMart
HR
[Department]
[Department]
Department Description
[Department].[Department Description]
Department Description
1
12
0
0
1
true
HR Cube - Department Hierarchy - Department Description Level
* ```
*/
export interface MDXLevel extends PropertyLevel, MDXCube {
dimensionUniqueName: string;
hierarchyUniqueName: string;
levelName: string;
levelUniqueName: string;
levelGuid?: string;
levelCaption: string;
levelNumber: number;
levelCardinality: number;
customRollupSettings: number;
levelUniqueSettings: number;
levelIsVisible: boolean;
description?: string;
}
/**
* ```xml
*
* ```
*/
export interface MDXMeasure extends Property, MDXCube {
measureName: string;
measureUniqueName: string;
measureCaption: string;
measureGuid?: string;
measureAggregator: number;
measureIsVisible: boolean;
levelsList?: string;
description?: string;
defaultFormatString?: string;
}
/**
* ```xml
*
FoodMart
FoodMart
HR
[Department]
[Department]
[Department].[Department Description]
1
11
18
[Department].[18]
1
18
0
0
[Department].[All Departments]
1
1
* ```
*
* ```xml
*
* ```
*/
export interface MDXMember extends MDXCube, IDimensionMember {
memberGuid?: string;
memberName: string;
memberCaption: string;
/**
* @deprecated ? What's usage
*/
memberIsVisible?: boolean;
childrenCardinality: number;
parentUniqueName?: string;
parentLevel: number;
parentCount: number;
treeOp?: string;
depth?: number;
}
export declare function convertMDXProperty(row: any): T;
export declare function deconstructDimensionName(dimension: string): string;
export declare const C_MDX_FIELD_NAME_REGEX = "[a-zA-Z0-9\u4E00-\u9FCC\\/\\s_\\-]*";
/**
* 转换 XMLA 接口返回值, 去掉 Hierarchy 名称和单值的中括号 `[ ]`
*/
export declare function convertHierarchyMemberValue(hierarchy: string, value: string): string;
export declare function convertXmlaMember(hierarchyName: string, member: XmlaMember): MDXMember;