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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.11.2019, 09:46   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,719 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Мда... Тут даже и не понятно с чего начинать... Ликбез по теории реляционных баз данных читать как-то глупо...

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

Как так получилось - Вам лучше знать. Ищите, где такая пустота образовалась. Можно, конечно, разными настройками подавить это сообщение, но!

Так связь между таблицами не делают. В теории (и практике) реляционных баз данных связь между таблицами осуществляют по специальным полям, на которые накладывают специфические ограничения. Прежде всего, по уникальности. А у таблицы UserInfo поле Name не уникально. Т.е. связь не однозначна

Вторая проблема - поле Name может быть в любой момент изменено. Как следствие, Вы потеряете связь. Т.е. совершенно непредсказуемо для пользователя образуется связь с "левой" записью таблицы или наоборот, такая связь пропадет

Поэтому, делают следующим образом.

1. В Вашей таблице в обязательном порядке создают поле Id с кодом записи из таблицы UserInfo.

2. Заполнение поля Id
2.1 Если значение поля Name приходит "из вне" системы, то при вводе имени в modifiedField выполняют поиск записи в таблице UserInfo по указанному пользователем имени и программно заполняют поле id

В результате имеем 2 поля - значение пришедшие из вне для контроля и код записи справочника Axapta

2.2. Если в Вашей таблице надо просто выбрать запись из таблицы UserInfo, то просто Lookup для выбора Id и отображение поле Name, но уже из таблицы UserInfo
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: GSP (1).
Старый 25.11.2019, 13:31   #2  
GSP is offline
GSP
Участник
 
34 / 10 (1) +
Регистрация: 14.10.2019
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Мда... Тут даже и не понятно с чего начинать... Ликбез по теории реляционных баз данных читать как-то глупо...

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

Как так получилось - Вам лучше знать. Ищите, где такая пустота образовалась. Можно, конечно, разными настройками подавить это сообщение, но!

Так связь между таблицами не делают. В теории (и практике) реляционных баз данных связь между таблицами осуществляют по специальным полям, на которые накладывают специфические ограничения. Прежде всего, по уникальности. А у таблицы UserInfo поле Name не уникально. Т.е. связь не однозначна

Вторая проблема - поле Name может быть в любой момент изменено. Как следствие, Вы потеряете связь. Т.е. совершенно непредсказуемо для пользователя образуется связь с "левой" записью таблицы или наоборот, такая связь пропадет

Поэтому, делают следующим образом.

1. В Вашей таблице в обязательном порядке создают поле Id с кодом записи из таблицы UserInfo.

2. Заполнение поля Id
2.1 Если значение поля Name приходит "из вне" системы, то при вводе имени в modifiedField выполняют поиск записи в таблице UserInfo по указанному пользователем имени и программно заполняют поле id

В результате имеем 2 поля - значение пришедшие из вне для контроля и код записи справочника Axapta

2.2. Если в Вашей таблице надо просто выбрать запись из таблицы UserInfo, то просто Lookup для выбора Id и отображение поле Name, но уже из таблицы UserInfo
Там нет пустых значений, такая ошибка выходит на выбор любого ФИО. Связь есть по id, но ошибка та же
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Таблица UserInfo. Права доступа. Poleax DAX: Администрирование 7 25.04.2016 12:37
SysUserInfo & UserInfo - какая разница kitty DAX: Программирование 7 10.02.2010 16:39
вопрос по userinfo fialka DAX: Программирование 3 10.10.2007 17:58
Корректировка структуры табицы UserInfo Alex_Molot DAX: Программирование 2 22.05.2007 14:14
как связать usergroupinfo c userinfo? Aslan DAX: Программирование 3 18.01.2006 09:47
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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