Axapta:Lookup字段显示字符串值而不是ID?

时间:2009-11-11 17:15:58

标签: lookup axapta

当AX生成表单和网格时,所有查找都会正确填充,但查找项的ID会显示在表单中。看到有意义的值的唯一方法是点击该字段 - 不是很理想。有没有办法在表单中显示查找值而不是后面的id号?

我希望“tableB”表单显示tableA_value而不是tableA_id。

表A

  • tableA_id(int - unique)
  • tableA_value(字符串 - 非唯一)

tableB的

  • tableB_id(int - unique)
  • tableA_id(int - 与tableA的关系)
  • tableB_datafields(misc)

由于

1 个答案:

答案 0 :(得分:1)

无法找到更改查找本身值的方法,因此我在其旁边放置一个静态字段,在查找更改时随时更新。以下是我最终如何做到这一点:

表A中的显示方法:

display [datatype] lookupName(tableA _tableA)
{
    ;
    return tableB::find(_tableA.[tableA id column]).[tableB string column];
}

在表B上查找方法:

static tableB find([datatype] [lookup variable], boolean _forUpdate = false,
 ConcurrencyModel _concurrencyModel = ConcurrencyModel::Auto)
{
[TableB] [tableB];

if ([lookup variable])
{
    if (_forUpdate)
    {
        tableB.selectForUpdate(_forUpdate);
        if (_concurrencyModel != ConcurrencyModel::Auto)
        {
            tableB.concurrencyModel(_concurrencyModel);
        }
    }

    select firstonly tableB
        where tableB.[lookup column] == [lookup variable];
}
return tableB;

}

将表A和B都添加为表单的数据源。

在表单中添加了一个字符串字段。

将表A设置为字段的DataSource,将lookupName设置为DataMethod。

在查找字段中添加了一个修改后的方法,以使静态字段更新:

element.redraw();

希望这有助于某人。