Показать сообщение отдельно
Старый 04.02.2022, 11:13   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
D365FO, AX2012: Паспорт записи списком (поля списком) - расширение
Добрый день! Решил я расширить всем известную функциональность, которая изначально пришла из DeveloperTools от компании Columbus (первый автор - Роман, db) и которую выложил Денис (trud) в рамках проекта DEVTools (https://github.com/TrudAX/XppTools/t.../DEVRecordInfo).

Здесь описывается версия для D365FO.
Версия для AX2012 ниже, в следующем сообщении
В рамках расширения добавлено:
  • Возможность правки складских аналитик (перевычисление InventDimId). Поле InventDimId вычисляется по Relation-у к таблице InventDim на исходной таблице
  • Позиционирование на нужном InventDimId, если паспорт записи открывается с поля таблицы InventDim (Т.е. из аналитик В в строке журнала переноса мы автоматически попадаем на InventJournalTrans.ToInventDimId, а с аналитик Из - на InventJournalTrans.InventDimId). Т.о. сразу исключается попадание на таблицу InventDim (чтобы не было желания ее править)
  • Объединение кнопок ChangeValue и ChangeValueDim для финансовых аналитик. Теперь система сама догадывается (по Relation-у) - что из себя представляет текущее поле (складские аналитики или финансовые). Функциональность правки (перевычисления кода комбинации) финансовых аналитик осталась такой же.
  • Возможность правки значений полей, представленных на форме сегментированным контролом. При этом, если паспорт записи был запущен с самого контрола, то наследуются свойства контрола (отображение счета ГК с аналитиками или без аналитик, а также в зависимости от типа счета, как в журнале ГК). Если паспорт записи был запущен не с самого контрола, то поведение контрола, в котором можно изменить значение - устанавливается в зависимости от расширенного типа поля: для типа LedgerDimensionDefaultAccount и его наследников устанавливается режим отображения счета ГК без аналитик; для типа DimensionDynamicAccount и его наследников устанавливается режим отображения счета ГК в зависимости от типа счета (тип счета жестко определен - это енум LedgerJournalACType). Если в списке полей отсутствует поле с енумом LedgerJournalACType, то сегментированный контрол не отображается и текущее поле представляет собой просто значение RecId. Важно! Именно поэтому для правки корсчета в журнале ГК важно это делать именно с контрола, поскольку иначе определится тип счета для поля Счет, что неверно. Во всех остальных случаях (т.е. когда расширенный тип поля не наследуется ни от LedgerDimensionDefaultAccount ни от DimensionDynamicAccount) - отображается счет ГК с аналитиками.
  • Поля с дополнительной информацией о типе данных поля (длина строки и ссылка на связанное поле в другой таблице, например для поля Сотрудник будет выведена информация HcmWorker.RecId)
  • Перемещение полей с дополнительной информацией в грид.
  • Кнопка скрытия / отображение полей с дополнительной информацией по типам данных поля (Show types / Hide types)

Код писался в рамках моего ответвления этой утилиты (в свое время мне ее дали без кнопки Change value и сказали сделать возможность правки - ну я и сделал эту возможность напрямую в гриде с использованием лукапа. А потом выяснилось - что "нормальные пацаны" делали кнопку). В связи с этим доработки переносились в стиле устранения фатального недостатка.
Нажмите на изображение для увеличения
Название: SNAG_Program-0156.png
Просмотров: 69
Размер:	86.6 Кб
ID:	13301
Название: Снимок.JPG
Просмотров: 258

Размер: 16.7 Кб
Нажмите на изображение для увеличения
Название: Снимок2.JPG
Просмотров: 43
Размер:	31.9 Кб
ID:	13304
Нажмите на изображение для увеличения
Название: Снимок3.JPG
Просмотров: 39
Размер:	33.8 Кб
ID:	13305
Нажмите на изображение для увеличения
Название: Снимок4.JPG
Просмотров: 46
Размер:	94.0 Кб
ID:	13306

Прилагаю архив модели. В ней изменена только форма и таблица.
Вложения
Тип файла: zip DEVRecordInfo.zip (49.4 Кб, 76 просмотров)
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 09.02.2022 в 23:55.
За это сообщение автора поблагодарили: mazzy (10), GLU (2), trud (10), raz (10), Logger (5), Ace of Database (10), imir (3), Dynamics365Eng (1).