2013-02-14 2 views
2

AX позволяет определять массивы, но при получении информации через .NET Business Connector он отображается как одно поле. Например: Размеры устанавливаются по:Как получить количество значений в массиве в .Net?

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

Как узнать, сколько полей имеет «размерность»?

ответ

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; 
} 
+0

спасибо. работает. –