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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.07.2015, 21:14   #15  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Задача:

в таблице есть код (или несколько кодов) чего-то.
поставить рядом с кодом наименование этого чего-то.

ограничения:
= сохранить возможность сортировки, фильтрации по наименованию.
= наименование должно корректно отображаться рядом с кодом как в гриде, так и в закладках с подробными сведениями
= нужно отображать все записи исходной таблицы даже если в подчиненной таблице некоторые записи были удалены (outer join)

Пример:
общий журнал.
есть коды сотрудников, которые утвердили, отклонили журнал.
нужно добавить ФИО сотрудника рядом с кодом.
причем так, чтобы ФИО можно отображалось и в гриде
причем так, чтобы журналы отображались даже тогда, если какого-нибудь сотрудника удалят.
Цитата:
Сообщение от mazzy Посмотреть сообщение
можно и так.
но реальную таблицу надо обслуживать, добавлять и удалять записи в ней.

кроме того, реальность такова, что целостность может быть нарушена. и в lookup-таблице могут отсутствовать записи.

в общем, хоть так, хоть эдак - закат солнца вручную.
Учитывая условие задачи "чтобы журналы отображались даже тогда, если какого-нибудь сотрудника удалят" целостность может быть нарушена безотносительно "индексной" таблицы.

Обслуживание стоит только строчку кода после super() в таблице сотрудников но в той же транзакции. Например EmplIDNameSearchIndex::insertOrupdate(EmplId, Name); Поскольку таблица сугубо служебная то можно при записи в нее emplIDNameSearchIndex.skipTTSCheck(true);

Учитывая что нужно данные из журналов показывать и по удаленным сотрудникам то я бы добавил в EmplIDNameSearchIndex (EmplId | EmplName) еще и checkbox InActive (неактивный/удаленный сотрудник) и соответственно ставил флаг EmplIDNameSearchIndex::markAsDeleted(EmplId). Дополнительно не делал бы только EmplId primary Key, включил бы RecId также.

Но данный костыль я например применяю когда просто деваться некуда, с учетом всех условий и требований.

Лучшим решением на мой взгляд было бы добавление EmplName в строку журнала и создание соответствующего индекса, если буфер записи и количество строк это позволяют.

Потом, как правильно уже написали, идет вариант с изменением UI когда поиск не через grid, а в отдельной функции-форме. Но тут непонятно с требованием поиска по удаленным сотрудникам, если их таки система даст удалить.

И только после этого такие вот железобетонные но костыли. Предложенный подход с View красивый, но не такой надежный.

Последний раз редактировалось ax_mct; 12.07.2015 в 21:17.
Теги
как правильно, ключ, поиск, сортировка, фильтр

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Перенос и адаптация кода с Ax2009 на Ax2012 R3 matew DAX: Прочие вопросы 10 23.01.2015 19:52
axforum blogs: О заполнении Наименования и Кода номенклатуры в печатной форме Накладной (Ax2009 ru7) Blog bot DAX Blogs 0 07.06.2011 09:11
ax2009 игнорирует изменения кода patron DAX: Программирование 6 04.03.2011 10:33
ax2009: как добавить строчку в "Конфигурация сервера"? mazzy DAX: Администрирование 1 21.08.2010 14:37
Отладка кода C# при разработке под EP AX2009 player DAX: Программирование 4 24.09.2008 19:38

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

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

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