2009-11-11 5 views
0

Когда AX генерирует формы и сетки, все поисковые запросы заполняются правильно, но идентификатор элемента поиска отображается в форме. Единственный способ увидеть ценности, которые имеют смысл, - щелкнуть по полю - не совсем идеально. Есть ли способ отобразить значение поиска в форме вместо числа id за ним?Axapta: Поле поиска отображает строковое значение вместо ID?

Я бы хотел, чтобы форма «tableB» отображала tableA_value вместо tableA_id.

TABLEA

  • tableA_id (интермедиат - уникальный)
  • tableA_value (строка - неуникальным)

TableB

  • tableB_id (интермедиат - уникальный)
  • tableA_id (int - отношение к таблицеA)
  • tableB_datafields (разное)

Благодаря

ответ

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 как источник данных для поля и lookupName как DataMethod.

Добавлен модифицированный метод в поле поиска, чтобы вызвать статическое поле, чтобы обновить:

element.redraw(); 

Надеется, что это помогает кому-то.

 Смежные вопросы

  • Нет связанных вопросов^_^