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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.03.2016, 11:31   #1  
Sergey Petrov is offline
Sergey Petrov
Участник
 
80 / 19 (1) ++
Регистрация: 03.04.2007
Адрес: Saint-Petersburg, Russia
Коллеги, добрый день! Возможно, кому-то будет интересно. При разборе собственных авгиевых конюшен, столкнулись со следующим эффектом (воспроизводится на DAX2009, в частности):

если в форме с заказами несколько раз создать строки без сохранения данных в БД, то нумерация таких (не сохранённых) строк правильная. Срабатывает свойство CounterField на источнике данных SalesLine.

Далее, начинаем прописывать код номенклатуры и пр. в созданные "болванки", сохраняем строки в БД. При этом видим: номер строки во всех создаваемых строках равен максимальному номеру строки созданного нами массива "болванок". В результате получаем строки с одинаковыми номерами. Причём, уникальный индекс, который содержит SalesLine.LineNum (SalesLineIdx) позволяет такую штуку, поскольку в него входит ещё и RecId.

Может быть, кто-нибудь знает, как этот момент красиво обойти?
__________________
MS Dynamics AX 2009

Kernel 5.0.1600.4110
Application 5.0.1500.6491
За это сообщение автора поблагодарили: mazzy (2).
Старый 18.03.2016, 16:13   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Sergey Petrov Посмотреть сообщение
если в форме с заказами несколько раз создать строки без сохранения данных в БД, то нумерация таких (не сохранённых) строк правильная. Срабатывает свойство CounterField на источнике данных SalesLine.
Не оно?

Запись не сохраняется при переходе на другую в гриде

Т.е. в метод Create() на SalesLine в источнике данных формы в конце после super() добавить команду

X++:
this.forceWrite(true)

Правда, тогда невозможно будет делать болванки без сохранения
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Sergey Petrov (1).
Старый 21.03.2016, 16:56   #3  
Sergey Petrov is offline
Sergey Petrov
Участник
 
80 / 19 (1) ++
Регистрация: 03.04.2007
Адрес: Saint-Petersburg, Russia
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
...

Правда, тогда невозможно будет делать болванки без сохранения
К сожалению, наши пользователи в целях экономии времени и жизненных сил иногда пользуются таким методом (с "болванками"), хотя мне даже в голову не приходило.

Мы решили не очень элегантно, зато достаточно надёжно: инициируем значения в initValue() источника данных. Предварительно делаем контейнер с имеющимися номерами и развлекаемся с этим контейнером. А свойство CounterField у нас вообще пустое.
__________________
MS Dynamics AX 2009

Kernel 5.0.1600.4110
Application 5.0.1500.6491
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Оптимизация запроса - ranges kashperuk DAX: Программирование 13 31.01.2011 20:19
C# and AX Development: Truncated real fields (ex. LineNum) when table is exported as XML Blog bot DAX Blogs 0 07.02.2009 11:05
Дублирование LineNum в строках журналов tvn DAX: Программирование 5 18.05.2006 18:32
LineNum < 0 Александр Костоусов DAX: Программирование 1 27.09.2004 16:39
Почему в InventJournalTrans поле linenum вещественного типа?! ATimTim DAX: Программирование 7 17.06.2004 17:35

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

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

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