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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.03.2010, 16:55   #1  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
? Накладной расход, переход к основной таблице
Всем привет.

Наткнулся на интересное поведение ядра(?) Аксапты. На версиях от 3 до 2009.

Ситуация такая:

Берём, для чистоты эксперимента, создаём новую таблицу.
В ней делаем 2 поля:
- Field1 с типом PurchMarkupCode
- Field2 с типом MarkupCode и связью с таблицей MarkupTable на поле МаrkupCode. Для Field2 можно создать и EDT аналогичный и не вешать связь на самой таблице, это ничего не меняет. Суть в том, что второе поле связывается с накладным расходом не конкретного типа (клиент\склад\поставщик), а как бы со всеми сразу.

Дальше идём в сам справочник накладных расходов (форма MarkupTable) и ставим там брэйкпоинт на методе init() - там есть такой код:
X++:
    if (element.args().parmEnumType())
    {
        markupModule = element.args().parmEnum();
    }
    else
    {   // called from 'go to main table'
        if (element.args().dataset())
        {
Теперь открываем нашу новую таблицу в обозревателе, выбираем в 2-х полях какие-нибудь значения НР.
Пробуем перейти к основной таблице с одного поля и с другого. Чувствуем разницу.

Разница в том, что для прехода с Field1 element.args().dataset() (и .record(), соответственно) будут заданы, а для с Field2 - нет.
При этом, если задать в связи для поля Field2 какое угодно дополнительное условие (например DataareaId == MarkupTable.DataareaId ), то эти значения в args магическим образом появляются.

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

Мистика, или есть логическое объяснение?

PS Предвосхищая волну советов "как это обойти" оговорюсь, что да, обойти это можно многими различными способами. Вопрос не об этом, а о "теории происходящего".
__________________
Zhirenkov Vitaly
Теги
jumpref

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Права, Переход к основной таблице ktrn DAX: Администрирование 25 22.04.2009 13:32
Переход к основной таблице договоров KolesOlya DAX: Программирование 12 11.04.2007 10:28
Переход на правильную запись при Переходе к основной таблице. - 2 Anais DAX: Программирование 2 01.11.2004 17:14
Переход к основной таблице в Ax3 Wamr DAX: Программирование 0 03.08.2004 17:58
Переход на правильную запись при Переходе к основной таблице. Anais DAX: Программирование 11 29.06.2004 19:16

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

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

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