2

AX では配列を定義できますが、.NET Business Connector を介して情報をフェッチする間、それは単一のフィールドとして表示されます。例: ディメンションは次のように設定されます:

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

「ディメンション」にいくつのフィールドがあるかを知るにはどうすればよいですか?

4

1 に答える 1

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;  
}
于 2013-02-16T08:35:34.087 に答える