19.06.2007, 17:37 | #1 |
Участник
|
Вывод в форме "Авансовый отчет" (EmplAdvTable_RU) полей из EmplTable
AX 3.0 SP4 EE.
В форме "Авансовый отчет" есть ошибка: неправильно выводится флаг "Подотчетное лицо". Выводится не включенным, хотя сотрудник является подотчетным лицом. Для исправления надо в форме EmplAdvTable_RU в EmplTable_DS.init() добавить строку: Код: EmplTable_ds.query().dataSourceTable(tableNum(EmplTable)).addSelectionField(fieldNum(EmplTable, AdvHolder_RU)); |
|
19.06.2007, 18:22 | #2 |
SAP
|
?? Странно а в чем проблема. Вывести поля в grid или написать display метод?
|
|
20.06.2007, 08:47 | #3 |
Участник
|
Там в форме датасорс EmplTable соединяется с мастер-таблицей через LinkType Delayed. По-этому просто попытка вывести поле из этого датасорса на грид ни к чему хорошему не приводит.
Я бы посоветовал поменять LinkType на InnerJoin, вывести поле в грид и добавить в метод modified() поля EmplAccount датасорса EmplAdvTable_RU примерно такой код X++: public void modified() { // добавить --> EmplTable et; ; // добавить <-- super(); EmplAdvTable_RU.Dimension = EmplTable::find(EmplAdvTable_RU.EmplAccount).Dimension; // добавить --> if (EmplAdvTable_RU.EmplAccount) { et = EmplTable::find(EmplAdvTable_RU.EmplAccount) if (et) { EmplTable.data(et); EmplTable_ds.active(); } } // добавить <-- } Еще один варинат - сделать дисплейный метод. Только учтите, что если он будет на форме или на датасорсе, то включить его в кэширование будет нельзя.
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Zepp (1). |
20.06.2007, 14:15 | #4 |
Участник
|
Спасибо, AndyD.
Еще, видимо, надо добавить аналогичный код в метод active() DS EmplAdvTable_RU. Иначе нельзя отредактировать поля EmplAdvTable_RU. |
|
20.06.2007, 14:25 | #5 |
Участник
|
На поле в таблице стоит AllowEdit=NO.
Т.е. такое поведение заложено изначально
__________________
Axapta v.3.0 sp5 kr2 |
|
20.06.2007, 15:44 | #6 |
Участник
|
Я имею в виду редактирование прочих полей, например "Назначение аванса", "Профиль разноски". Если в active() не включить данный код, то система при сохранении записи после редактирования полей выдает ошибку 'Поле "Основной номер сотрудника" должно быть заполнено.
|
|
Теги |
ax3.0 |
|
|