如何读取表中某列的每个值

发布于 2024-12-23 07:52:12 字数 60 浏览 0 评论 0原文

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

Using x++ how to create a job to read each value of a column in a table in Microsoft dynamics AX 2009?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

说不完的你爱 2024-12-30 07:52:12

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

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 的代码。

This code will display all the column values for a record.

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)));
            }
        }
    }
}

For getting all the values for a specific column, please use Carlos Heuberger's code.

顾冷 2024-12-30 07:52:12

一种可能性:在 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));
    }
}

但还有其他一些方法: 选择语句

One possibility: in the AOT (Ctrl-D) right-click on Jobs and select New Job. In the new window enter something like (using the correct table and column name you want to read):

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

but thera are some other ways: Select Statements

金橙橙 2024-12-30 07:52:12

只是一个小小的修改,拿出 any2str 来让我的表格工作:

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

Just a slight mod, took out any2str to make my table work:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文