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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.04.2017, 11:24   #1  
iglu is offline
iglu
Участник
 
15 / 10 (1) +
Регистрация: 27.07.2011
Создание строк в договоре продажи
Добрый день.
Пытаюсь через код создать строки в договоре продажи. В таблице строки появляются, но на форме их не видно. В чем может быть проблема?

Строки создаю следующим образом:
X++:
	agreementHeader.selectForUpdate(true);
	agreementHeader.DefaultAgreementLineType    = commitmentType;
	agreementHeader.update();

	agreementLineVolume                         = null;
	agreementLineVolume.initValue();
	agreementLineVolume.initFromAgreementHeader(agreementHeader);

	ecoResCategory                              = EcoResCategory::findByName(categoryName, InventParameters::find().CategoryHierarchyId);
	if (!ecoResCategory)
		throw error(strFmt('Категория %1 не существует', categoryName));

	agreementLineVolume.Category                = ecoResCategory.RecId;
	agreementLineVolume.categoryChanged();

	agreementLineVolume.insert();

	this.createRefs(agreementLineVolume);
Метод createRefs():
X++:
protected void createRefs(AgreementLine _agreementLine)
{
    AgreementLineDefault    agreementLineDefault;
    AgreementLineExt_RU     agreementLineExt;

    // AgreementLineDefault
    agreementLineDefault.clear();
    agreementLineDefault.initValue();
    agreementLineDefault.initFromAgreementHeaderDefault(agreementHeader.agreementHeaderDefault());
    switch (salesPurch)
    {
        case SalesPurch::Sales :
            agreementLineDefault.initFromSalesAgreementHeaderDefault(salesAgreementHeader.salesAgreementHeaderDefault());
            break;

        default :
    }

    if (_agreementLine.isItemBased())
        agreementLineDefault.initFromInventTable(_agreementLine.inventTable());

    agreementLineDefault.AgreementLine  = _agreementLine.RecId;

    if (agreementLineDefault.validateWrite())
        agreementLineDefault.insert();

    // AgreementLineExt_RU
    agreementLineExt.clear();
    agreementLineExt.initFromAgreementLine(_agreementLine);

    if (_agreementLine.isItemBased())
        agreementLineExt.initFromInventTable(_agreementLine.inventTable());

    if (agreementLineExt.validateWrite())
        agreementLineExt.insert();
}
Версия Ax 2012 R2
Старый 18.04.2017, 11:42   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от iglu Посмотреть сообщение
В таблице строки появляются, но на форме их не видно. В чем может быть проблема?
Ищите на форме inner join с другой таблицей, в которой отсутствуют связанные строки
Старый 18.04.2017, 11:55   #3  
iglu is offline
iglu
Участник
 
15 / 10 (1) +
Регистрация: 27.07.2011
Так в том-то и дело, что таких не нашел. Единственная таблица на форме SalesAgreement, которая джойнится по InnerJoin к AgreementLine, это InventDim. Но в создаваемых записях поле InventDimId заполняется также, как если бы вручную строки создавались.
Старый 18.04.2017, 12:17   #4  
iglu is offline
iglu
Участник
 
15 / 10 (1) +
Регистрация: 27.07.2011
Для примера картинка во вложении. Первая строка создана вручную и она отображается на форме. Остальные 2 созданы программно, их не видно.
Миниатюры
Нажмите на изображение для увеличения
Название: Image.jpg
Просмотров: 380
Размер:	168.4 Кб
ID:	11342  
Старый 18.04.2017, 13:20   #5  
Pandasama is offline
Pandasama
Участник
 
457 / 137 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Посмотрите какой запрос на форме выполняется где-нибудь в .executeQuery(). Если там нет inner join, то могут быть наложены какие-нибудь доп. фильтры
Старый 18.04.2017, 13:28   #6  
iglu is offline
iglu
Участник
 
15 / 10 (1) +
Регистрация: 27.07.2011
Спасибо, я нашел в чем ошибка. Не заполнял поле InventDimDataAreaId в строке договора.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
"Инвентаризационный код" в группах инвентаризации и создание строк инвентаризации lev DAX: Функционал 0 11.10.2011 09:49
блокировка на создание строк fialka DAX: Программирование 3 01.03.2007 14:31
Создание строк LedgerTrans из TaxTrans Antant DAX: Программирование 0 22.08.2006 13:12
Странное поведение формы Создание строк vc DAX: Функционал 10 22.03.2006 10:32
Создание заявки -- нет строк robocomp DAX: Функционал 2 24.06.2005 15:53

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

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

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