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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.09.2022, 09:12   #1  
DaniilT is offline
DaniilT
Участник
 
52 / 12 (1) ++
Регистрация: 28.04.2020
Не удается найти уникальную запись Комбинация кодов аналитик, соответствующую введенным значениям.
Добрый день.
Второй день сижу не поиму в чем дело.
Добавил на форму LedgerJournalTransDaily два поля одно дисплейное, другое обычное. Дисплейное поле "Группа" добавил в таблице LedgerJournalTrans.
Вот его код:
X++:
display VendGroupId display_Group()
{
    LedgerJournalTrans                  ledgerJournalTrans;
    CustTable                           custTable;
    VendTable                           vendTable;
    DimensionAttributeValueCombination  dimensionAttributeValueCombination;

   select ledgerJournalTrans where ledgerJournalTrans.RecId == this.RecId;
   if (!ledgerJournalTrans)
   {
      return '';
   }

    if (ledgerJournalTrans.AccountType == LedgerJournalACType::Cust)
    {
       select dimensionAttributeValueCombination where dimensionAttributeValueCombination.RecId == ledgerJournalTrans.LedgerDimension;
       return CustTable::find(dimensionAttributeValueCombination.DisplayValue).CustGroup;
    }
    else if (ledgerJournalTrans.AccountType == LedgerJournalACType::Vend) {


        select dimensionAttributeValueCombination where dimensionAttributeValueCombination.RecId == ledgerJournalTrans.LedgerDimension;
        return vendTable::find(dimensionAttributeValueCombination.DisplayValue).VendGroup;
    }
    else return '';

}
Но почему в форме LedgerJournalTransDaily при выборе любого поля и переключения на другое возникает ошибка
Не удается найти уникальную запись Комбинация кодов аналитик, соответствующую введенным значениям.

Подскажите пожалуйста в чем может быть проблема?

Дополню:
В классе Info в методе add поставил точку остановки
в строках вызова вижу что перед этим вызывались системные методы FormSegmentedEntryControl.modified() , FormSegmentedEntryControl.leave()

Последний раз редактировалось DaniilT; 23.09.2022 в 09:15.
Старый 23.09.2022, 11:43   #2  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,204 / 3262 (115) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
А Вы уверены в том, что причина ошибки кроется именно в добавленном Вами дисплей-поле с тем методом, который Вы написали?
Потому что судя по сообщению - система пытается найти запись в dimensionAttributeValueCombination и результат поиска где-то использовать, а использовать не получается из-за этой ошибки.

В Вашем коде формально нет ошибок, но такие вещи обычно делаются стандартными классами, в которых заведом "все затычки" стоят
__________________
Возможно сделать все. Вопрос времени
Старый 23.09.2022, 11:55   #3  
smailik is offline
smailik
Участник
Аватар для smailik
 
246 / 57 (2) ++++
Регистрация: 10.04.2012
Адрес: Москва
X++:
select ledgerJournalTrans where ledgerJournalTrans.RecId == this.RecId;
"this" это что за таблица? LedgerJournalTrans?
Зачем её повторно искать?
Вместо
X++:
select dimensionAttributeValueCombination where dimensionAttributeValueCombination.RecId == ledgerJournalTrans.LedgerDimension;
return vendTable::find(dimensionAttributeValueCombination.DisplayValue).VendGroup;
можно использовать
X++:
return VendTable::find(DimensionAttributeValueCombination::getDisplayValue(ledgerJournalTrans.LedgerDimension)).VendGroup;
Чтобы не было столько return лучше создать переменную типа "VendGroupId" и в конце метода её возвращать.
Старый 23.09.2022, 11:56   #4  
axm2017 is offline
axm2017
Участник
 
1,394 / 264 (11) ++++++
Регистрация: 15.05.2017
FormSegmentedEntryControl?
Вы корректно используете данный control? Он несколько специфичен на сколько помню
Старый 23.09.2022, 12:32   #5  
DaniilT is offline
DaniilT
Участник
 
52 / 12 (1) ++
Регистрация: 28.04.2020
FormSegmentedEntryControl я не использую. Он вызывается сам.
Старый 23.09.2022, 13:06   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,204 / 3262 (115) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
А действия на форме какие при этом делаются пользователем (Вами) ? Раз отрабатывает modified - значит Вы пытаетесь чего-то выбрать на форме. Либо стереть значение
__________________
Возможно сделать все. Вопрос времени
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ошибка при трансляции: Не удается возвратить запись DimensionAttributeValue для 005 mnt_dx DAX: Функционал 0 21.05.2014 18:54
Конфигуратор как альтернатива добавлению новых складских аналитик vey DAX: Функционал 20 30.04.2010 09:28
Как для ГК операции в LedgerTrans найти соответствующую операцию в VendTrans? romulis DAX: Программирование 20 29.08.2006 14:10
Ошибка при импорте демоданных (Axapta 3.0 CIS SP1) KocDm DAX: Администрирование 2 11.08.2005 12:04
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:20.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.