AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.06.2007, 17:37   #1  
Zepp is offline
Zepp
Участник
MCBMSS
 
37 / 31 (2) +++
Регистрация: 26.10.2005
Вывод в форме "Авансовый отчет" (EmplAdvTable_RU) полей из EmplTable
AX 3.0 SP4 EE.
В форме "Авансовый отчет" есть ошибка: неправильно выводится флаг "Подотчетное лицо". Выводится не включенным, хотя сотрудник является подотчетным лицом.
Для исправления надо в форме EmplAdvTable_RU в EmplTable_DS.init() добавить строку:
Код:
EmplTable_ds.query().dataSourceTable(tableNum(EmplTable)).addSelectionField(fieldNum(EmplTable, AdvHolder_RU));
Подскажите, как вывести на grid поле EmplTable.Name, чтобы оно нормально отображалось?
Старый 19.06.2007, 18:22   #2  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
?? Странно а в чем проблема. Вывести поля в grid или написать display метод?
Старый 20.06.2007, 08:47   #3  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Там в форме датасорс 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  
Zepp is offline
Zepp
Участник
MCBMSS
 
37 / 31 (2) +++
Регистрация: 26.10.2005
Спасибо, AndyD.
Еще, видимо, надо добавить аналогичный код в метод active() DS EmplAdvTable_RU. Иначе нельзя отредактировать поля EmplAdvTable_RU.
Старый 20.06.2007, 14:25   #5  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
На поле в таблице стоит AllowEdit=NO.

Т.е. такое поведение заложено изначально
__________________
Axapta v.3.0 sp5 kr2
Старый 20.06.2007, 15:44   #6  
Zepp is offline
Zepp
Участник
MCBMSS
 
37 / 31 (2) +++
Регистрация: 26.10.2005
Я имею в виду редактирование прочих полей, например "Назначение аванса", "Профиль разноски". Если в active() не включить данный код, то система при сохранении записи после редактирования полей выдает ошибку 'Поле "Основной номер сотрудника" должно быть заполнено.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Второе наименование номенклатуры и проблема добавления полей в форме "номенклатура" EVER DAX: Функционал 28 03.09.2008 21:58
Отчет "Запасы в наличии" evb DAX: Программирование 19 17.01.2008 07:37
Фильтрация в форме "В наличии" по агрегатному полю "Физ. наличие" miaa DAX: Программирование 13 29.08.2006 23:45
поле "Документы к обновлению" в форме "Обработка закупки" sev DAX: Функционал 3 08.12.2005 17:21
Как сбросить флаг "Используется" в форме "Складской журнал" ATimTim DAX: Функционал 1 24.06.2004 19:19

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:54.