Use FieldId, Enum Id, ExtendedDataType ID, ExtendedId in AX

来源:互联网 发布:mac如何固定dock 编辑:程序博客网 时间:2024/06/05 10:39

AX中,每一种数据类型都有对应的ID, 系统也提供了很多函数用于在类型名字,标签(label)以及值之间转换。

 

Enumerate types

ExtendedDataTypes

Field in tables

 

Enumerate types:

以枚举类型ABC为例:

Type

Name

ID

Label

Value

Base Enum

ABC

1

Category

 

Element

None

 

None

0

 

A

 

A

1

 

B

 

B

2

 

C

 

C

3

 

方法名

描述

例子

EnumName2ID

通过Enum Name获取ID

Int EnumName2ID(“ABC”)

结果:1

enumid2name

通过Enum ID获取Name

Identifiername enumid2name(1)

结果:ABC

enumid2pname

通过Enum ID获取Label

Identifiername enumid2pname(1)

结果:Category

enum2symbol

通过Enum NameElementValue获取ElementName

Str enum2symbol(EnumName2ID("ABC"),1)

结果:A

enum2value

通过枚举值获取对应Elementlabel

Str enum2value(ABC::A)

结果:A

Enum2int

通过枚举值获取对应Elementvalue

Int enum2int(ABC::A)

结果:1

 

ExtendedDataTypes

以类型Dimension为例:

 

 

Diemension

 

Type Name

ArrayIndex

Name

Label

ID

Dimension

1

Dimension

Department

132

 

2

Cost center

Cost center

132

 

3

Purpose

Purpose

132

  

 

方法名

描述

例子

extendedTypeName2Id

通过Type Name获取ID

extendedTypeId extendedTypeName2Id (“Dimension”)

结果:132

ExtendedTypeId2name

通过ID获取Type Name

identifiername ExtendedTypeId2name(132)

结果:Dimension

extendedTypeId2pname

通过ID获取Label

identifiername extendedTypeId2pname(132)

结果:Department

extendedTypeId2Type

通过Id获取Type

Types extendedTypeId2Type(132)

结果:Types::String

 

Filed in table

SalesTable中的Dimension为例:

Field Name

Id

Label

Dimension

23

Department

 

ExtendedDataType

ArrayIndex

Name

Label

ID

extId in table

Dimension

1

Dimension

Department

132

65559

 

2

Cost center

Cost center

132

131095

 

3

Purpose

Purpose

132

196631

 

Dimension本是是一个字符串数组的类型,当在SalesTable中加入一个Dimension类型的字段时,这个字段的ID23. 由于这个字段是一个数组,对应每一个元素,对于表SalesTable都有唯一的extendedId,这个extendedIDExtendedDataType上的ID是无关的。ExtendedId是按这样的原则构成的:

16

16

ArrayIndex

Field ID in table

ExtendedId一般是32位的,前16位的值是该元素在数组中的Index,后16位是该元素所在字段(即这个数组)在表中的ID。以Dimension的第一个元素为例,前16位的值是:1,后16位的值是23,整个32位数的值是65559.

ExtendedId会在 SysQueryForm, 系统标准的使用Excel导入导出数据时被用到(当然还有很多其他地方也会用到),所以了解ExtendedIid的构成是很有必要的。

 

 

(在以下表格中,字段指Dimension,元素指Dimension中的数组元素)

方法名

描述

例子

FieldExt2Id

通过extendedID获取字段的ID

fieldId FieldExt2Id(65559)

fieldId FieldExt2Id(131095)

fieldId FieldExt2Id(196631)

结果:23

FieldExt2Idx

通过extendedID获取元素的Index

int FieldExt2Idx(65559)

结果:1

int FieldExt2Idx(131095)

结果:2

int FieldExt2Idx(196631)

结果:3

FieldId2Ext

通过字段的ID和元素的index获取元素的extendedId

fieldId FieldId2Ext(23, 1)

结果:65559

fieldId FieldId2Ext(23, 2)

结果:131095

fieldId FieldId2Ext(23, 3)

结果:196631

FieldLabelValue

查看字段的label,第三个参数只是一个显示的作用,返回的结果是: 字段的label : 第三个参数

str FieldLabelValue(tablenum(SalesTable),

fieldnum(SalesTable,Dimension),

’anything’)

结果:Department:anything

Fieldnum

通过表名和字段名获取字段ID

fielded fieldnum(SalesTable,Dimension)

结果:23

 

 

原创粉丝点击