如何在Table控件中获取用户的位置(col,row)更改单元格?

时间:2015-03-20 09:50:33

标签: axapta dynamics-ax-2012

我正在使用tutorial_Form_Table。

该表具有动态分配的值,如:

for (col = 1; col <= 5; col++)
{
    for (row = 1; row <= 5; row++)
    {
        if ((col == 2) || (col == 4))
        {
            if (row > 1)
                table.cell(col,row).data(row*col);
            else
                table.cell(col,row).data("Text "+int2str(row*col));
        }
        else
            table.cell(col,row).data("Text "+int2str(row*col));
    }
}

Table

当我在其中输入新值时,我需要获取单元格的位置,因此我可以使用输入的值更新相应的表格。

谢谢。

1 个答案:

答案 0 :(得分:3)

表有两个属性:row()和column(),它们返回当前活动单元格的值。

public void activeCellChanged()
{
    super();
    info(strFmt('%1 %2 %3', Table.row(), Table.column(), Table.cell(Table.column(), Table.row()).data()));
}

在您添加到表格控件的每个控件上,您可以覆盖修改后的方法以查看您输入的新值。

public boolean modified()
{
    boolean ret;

    ret = super();

    info(strFmt('New data that we need to save: %1, %2 -> %3', Table.row(), Table.column(), Table.cell(Table.column(), Table.row()).data()));

    return ret;
}

如果您正在处理大量数据,则应考虑使用其他控件,例如.NET网格控制,因为性能问题。