如何获取.Net中数组中的值的数量?

时间:2013-02-14 10:06:20

标签: axapta business-connector

AX允许定义数组,但在通过.NET Business Connector获取信息时,它显示为单个字段。例如:尺寸设定为:

axRec.setField("Dimension[1]","A");
axRec.setField("Dimension[2]","B");
axRec.setField("Dimension[3]","C");
// and so on...

我怎么知道“Dimension”有多少个字段?

1 个答案:

答案 0 :(得分:2)

AX支持编译时函数dimOf来返回计数,但不能从.Net获得!

救援来自DictField班:

X ++代码:

DictField df = new DictField(tablenum(CustTable), fieldnum(CustTable, AccountNum));   
if (df)  
{ 
    print strfmt("The arraySize is %1.", df.arraySize());  
}

您可以创建一个X ++实用程序函数,然后调用:

static int arraySize(str tableName, str fieldName)
{
    DictField df = new DictField(tableName2Id(tableName), fieldName2Id(tableName2Id(tableName), fieldName)));   
    return df ? df.arraySize() : -1;  
}