迭代任何 table

Iterating over any table

我刚开始新工作,他们使用 dynamics ax 2009。我是这项技术的新手。

x++ 中有没有一种方法可以遍历任何 table? 我不知道数据从何而来,无论是长度还是字段数。

我的意思是我需要一个像这样的函数

void convert(Table anyTable) 
{
    int i=0; 
    int k=0;
    ;

    for(i; i < anyTable.Lenght; i++)
    {
        for(k; k < anyTable[i].Count; k++) 
        {
            //some xml processing 
        } 
    }
} 

(Table 我的意思是所有 table 中的某种 parent。这基本上是我的问题 - 是否有所有 table 中的 parent 或类似的东西可以帮助我实现这样的目标?

抱歉格式化了,我是在移动设备上输入的

Common table 是所有 table 的基础 class。它不包含任何数据。它主要用于 X++ 代码中以多态方式引用任何 table。请检查 Dictionary classes 来解决您的问题:

void convert(Common _common)
{
    DictTable       dictTable;
    FieldId         fieldId;
    anytype         value;
    ;

    dictTable = new dictTable(_common.TableId);

    if (dictTable)
    {
        while select _common
        {
            fieldId = dictTable.fieldNext(0);

            while (fieldId)
            {
                value = _common.(fieldId);

                //do processing

                fieldId = dictTable.fieldNext(fieldId);
            }
        }
    }
}

看到这个answer。它涉及使用 class DictionaryDictTable 进行反射。

查看 Common class 上的 xml() 方法,它可能有助于生成代表当前记录的 XML。