Pergunta

Quando o AX gera formas e grades, todas as pesquisas são preenchidas corretamente, mas o ID do item de pesquisa é exibido no formulário. A única maneira de ver valores que fazem sentido é clicar no campo-não é realmente ideal. Existe uma maneira de exibir o valor da pesquisa no formulário em vez do número de identificação por trás dele?

Eu gostaria que o formulário "tabelab" exibisse o tablea_value em vez do tablea_id.

Tablea

  • tablea_id (int - exclusivo)
  • Tablea_value (String - Unique)

Tabela

  • Tableb_id (int - exclusivo)
  • tablea_id (int - relação com tablea)
  • Tableb_datafields (Misc)

Obrigado

Foi útil?

Solução

Não consegui encontrar uma maneira de alterar o valor da pesquisa em si, então coloquei um campo estático ao lado dele que atualiza sempre que a pesquisa for alterada. Aqui está como eu acabei fazendo isso:

Método de exibição na Tabela A:

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

Encontre o método na Tabela 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;

}

Adicionado a Tabela A e B como DataSources para o formulário.

Adicionado um campo de string ao formulário.

Defina a Tabela A como a fonte de dados para o campo e o nome de pesquisa como o DataMethod.

Adicionado um método modificado ao campo de pesquisa para fazer com que o campo estático seja atualizado:

element.redraw();

Espero que isso ajude alguém.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top