如何读取表中列的每个值

时间:2011-12-29 11:39:43

标签: axapta x++

使用x ++如何创建作业以读取Microsoft Dynamics AX 2009中表中列的每个值?

3 个答案:

答案 0 :(得分:2)

此代码将显示记录的所有列值。

static void Job1(Args _args)
{
    DictTable   dictTable = new DictTable(tableNum(CustTable));
    DictField   dictField;
    int         counter, fieldId;

    CustTable   custTable;
    anytype     value; 

    select firstonly custTable;

    for (counter = 1; counter <= dictTable.fieldCnt(); counter++)
    {
        fieldId = dictTable.fieldCnt2Id(counter);
        dictField = new DictField(tableNum(CustTable), fieldId);

        if (!dictField.isSystem())
        {
            value = custTable.(fieldId);
            if(value)
            {
                info(strFmt('%1 = %2', 
                            dictField.label(),
                            any2str(value)));
            }
        }
    }
}

要获取特定列的所有值,请使用Carlos Heuberger的代码。

答案 1 :(得分:1)

一种可能性:在AOT(Ctrl-D)中右键单击Jobs并选择New Job。在新窗口中输入类似的内容(使用您想要阅读的正确表和列名称):

static void Job()
{
    YourTable  yourTable;
    ;
    while select TheColumn from yourTable
    {
        // process yourTable.TheColumn
        info(strFmt("value: %1", yourTable.TheColumn));
    }
}

但thera还有其他一些方法:Select Statements

答案 2 :(得分:-1)

只是一个轻微的模式,取出any2str让我的桌子工作:

strFmt('%1 = %2 \r\n', dictField.label(), value);