Поле ответственный?

Добрый день! В данный момент есть задача во всех карточках в которых есть поле ответственный отображать не наименование контакта к которому он привязан а именно название логина. Оно различаются в связи с этим появилась такая задача. Нашел датасет ds_Owner и запрос sq_Owner. Изменил запрос во так

SELECT
        [tbl_Contact].[ID] AS [ID],
        [tbl_Contact].[Name] AS [Name],
        [tbl_Contact].[AccountID] AS [AccountID],
        [tbl_Account].[Name] AS [AccountName],
        [tbl_AdminUnit].[UserContactID] AS [UserContactID],
        [tbl_AdminUnit].[SQLObjectName] AS [AdminName]
FROM
        [dbo].[tbl_Contact] AS [tbl_Contact]
INNER JOIN
        [dbo].[tbl_AdminUnit] AS [tbl_AdminUnit] ON [tbl_AdminUnit].[UserContactID] = [tbl_Contact].[ID]
LEFT OUTER JOIN
        [dbo].[tbl_Account] AS [tbl_Account] ON [tbl_Account].[ID] = [tbl_Contact].[AccountID]

В датасете поставил первичное поле для отображения AdminName. По сути когда добавляешь новую запись то отображается контакт. А если редактируешь то уже имя логина. Хотелось бы при добавлении так же видить имя логина.

Нравится

5 комментариев

Нужно поменять SelectQuery того Dataset , где используется это лукапное поле , поле для отображения

Это вполне логично, ведь в таблице хранится значение ID из tbl_Contact, соответственно при добавлении Вы должны выбрать именно контакта. Для того, чтобы отображать логин нужно везде с ним оперировать. Хранить ID из tbl_AdminUnit и отображать имя логина по имени. Или же везде, где есть ответственный связывать не ID и имя ответственного, а ID ответственного и имя логина. Здесь требуется больше изменнений, чем в одном датасете ds_Owner.

----В датасете поставил первичное поле для отображения AdminName.
я так и сделал.

я просто плохо понимаю сам механизм. После сохранения карточки при ее редактировании отображается уже имя логина. почему при создании имя контакта?

Заполнение имени контакта при отображении карточки сразу при ее создании - особенность передачи этого значения через значения по умолчанию и через базовое окно редактирования в создаваемую карточку. Если просто сохранить запись, то последующее отображение в реестре или при последующем открытии будет отрабатывать согласно ожиданиям - там будет логин, поскольку отработала логика, которая учитывает, что поле справочника завязано на ID контакта, на имя логина и на датасет, в котором первичным полем является логин.

Показать все комментарии