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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.11.2007, 10:09   #1  
AK9 is offline
AK9
Участник
 
38 / 10 (1) +
Регистрация: 02.06.2005
Адрес: Томск
? Засада с позиционированием при переходе к основной таблице. В чем дело?
Всем привет
Подскажите с такой ситуацией.

Необходимо сделать в форме закупок сортировку по умолчанию не по номеру закупки, а по дате прихода. Сделал новый индекс DeliveryDateIdx в таблице PurchTable, выставил в форме закупок сортировку по этому индексу, все ок. Но при переходе из поля "Закупка" журнала отборочных накладных по меню "Перейти к основной таблице" открывается не та запись в форме закупок.

Прочитал, что для того, чтобы открывалась нужная запись нужно в рилэйшнз таблицы добавить еще один. Создаю в таблице PurchTable рилэйшены PurchTable.PurchId == PurchTable.PurchId и PurchTable.DeliveryDate == PurchTable.DeliveryDate, но все остается как прежде

Что я делаю не так?
Можно, конечно, перегрузить jumpRef в журнале ОН, но закупки много из каких форм вызываются, все замучаешься перегружать...

Axapta 3.0 SP4
Старый 30.11.2007, 10:20   #2  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
Сделал новый индекс DeliveryDateIdx в таблице PurchTable, выставил в форме закупок сортировку по этому индексу, все ок. Но при переходе из поля "Закупка" журнала отборочных накладных по меню "Перейти к основной таблице" открывается не та запись в форме закупок.
т.е. вы хотите сказать, что до того как вы установили сортировку все работало нормально? - да и вообще смотрите запрос который образуется при переходи и все станет ясно
Старый 30.11.2007, 10:31   #3  
AK9 is offline
AK9
Участник
 
38 / 10 (1) +
Регистрация: 02.06.2005
Адрес: Томск
да, работало нормально.
дело не в запросе, а в том, что я, похоже, не так рилэйшны выставляю, а вот как их правильно поставить, чего-то недопру. Вроде делаю как написано здесь http://erpkb.com/Axapta/PerexodKOsnovnojjTablice
Старый 30.11.2007, 11:04   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
собственно оно так и есть. Насколько я помню AndyD разьяснял, что происходит просмостр записей в порядке индекса. Мне кажется, стоит обрабатывать на вызываемой форме - если заполнен args.lookupField то менять сортировку на обычную
Старый 30.11.2007, 11:33   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Упс. Переситал свою же страницу - понял. В принципе, проблема в том, что отношения на таблице не перебивают, насколько я понял отношения на EDT (но я щас не уверен, надо пожкспериментировать) попробуйте сделать свой EDT без отношений а не использовать PurchID
Старый 30.11.2007, 12:13   #6  
AK9 is offline
AK9
Участник
 
38 / 10 (1) +
Регистрация: 02.06.2005
Адрес: Томск
Цитата:
Сообщение от belugin Посмотреть сообщение
попробуйте сделать свой EDT без отношений а не использовать PurchID
Сделал, результат прежний...
Старый 30.11.2007, 12:18   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
можете показать query.xml() в вызываемой таблице и посмотреть, какие дайналинки там есть? Происходит фильтрация или позиционирование?
Старый 30.11.2007, 13:15   #8  
AK9 is offline
AK9
Участник
 
38 / 10 (1) +
Регистрация: 02.06.2005
Адрес: Томск
ммм, честно говоря не совсем понял о чем идет речь, вы это имеете в виду?
X++:
<Query Name="" Title="" Form="SysQueryForm" UserUpdate="Yes" Version="4" Literals="Default" Interactive="Yes" AllowCheck="Yes" RecordLevelSecurity="Yes" NextUniqueId="1001" >
  <methods />
  <Data_Sources>
    <datasource Name="PurchTable" Table="PurchTable" UniqueId="1000" Company="" FirstOnly="No" FirstFast="Yes" AllowAdd="All_fields" OrderMode="Order_by" FetchMode="1:n" JoinMode="InnerJoin" Update="No" Relations="No" Enabled="Yes" >
      <fieldlist Dynamic="Yes" >
      </fieldlist>
      <order>
        <DeliveryDateIdx>
        </DeliveryDateIdx>
      </order>
      <Ranges>
      </Ranges>
      <Data_Sources>
      </Data_Sources>
    </datasource>
  </Data_Sources>
</Query>
что такое дайналинки так до конца и не понял... буду разбираться.
Старый 30.11.2007, 13:38   #9  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Таки Максим правильно написал в первом сообщении
При переходе к основной таблице делается запрос вида >= Значение поля PurchId
И если записи отсортированы не по этому полю, то переход к основной таблице пойдет лесом.
Дело в том, как выполняется поиск этой записи - как только АХ натыкается на значение МЕНЬШЕ чем Значение поля PurchId, она думает, что уже все - дальше искать смысла нет. Что при использовании другой сортировки может быть неправдой
Старый 30.11.2007, 13:41   #10  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
А Relation тут вроде как вообще не при чем.
Он используется для диналинков, а переход к основной таблице использует другой подход
Старый 30.11.2007, 13:50   #11  
AK9 is offline
AK9
Участник
 
38 / 10 (1) +
Регистрация: 02.06.2005
Адрес: Томск
хм, ну я исходил из вышеуказанной статьи http://erpkb.com/Axapta/PerexodKOsnovnojjTablice
а про то, что условие позиционирования будет по типу >= purchId я читал. Вот вроде как эту то проблему рилэйшны и должны решить, как я понял из статьи.
Старый 30.11.2007, 13:52   #12  
AK9 is offline
AK9
Участник
 
38 / 10 (1) +
Регистрация: 02.06.2005
Адрес: Томск
"Следует учесть, что позиционирование работает не правильно, если порядок сортировки в форме на которую осуществляется переход не начинается с ключевого поля. В этом случае надо добавить в отношение второе поля, чтобы осуществлялась фильтрация. (пример можно найди в Таблица / Vend Invoice Jour — там задано отношение Vend Invoice Jour? из нескольких полей и при переходе к основной таблице на поле «Номер накладной» происходит фильтрация формы перехода)"

Ну вот я и добавил в отношения две записи:
PurchTable.PurchId == PurchTable.PurchId
PurchTable.DeliveryDate == PurchTable.DeliveryDate
Старый 30.11.2007, 13:57   #13  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Проблема в том, что не происходит фильтрация (показывается больше 1 записи) или в том, что фильтрует неправильно?
Старый 30.11.2007, 14:05   #14  
AK9 is offline
AK9
Участник
 
38 / 10 (1) +
Регистрация: 02.06.2005
Адрес: Томск
происходит следующее. например есть, например, закупки ЗК123 с датой прихода 13.11.2007 и ЗК124 тоже с датой прихода 12.11.2007. Если в журнале отборочных накладных встать на накладную по ЗК123, и из поля "Закупка" перейти к основной таблице, то получим форму закупок, с курсором, стоящим на ЗК124.
Старый 30.11.2007, 14:09   #15  
AK9 is offline
AK9
Участник
 
38 / 10 (1) +
Регистрация: 02.06.2005
Адрес: Томск
Происходит так потому, что сортировка в форме стоит по дате прихода, а при
Цитата:
Сообщение от kashperuk Посмотреть сообщение
При переходе к основной таблице делается запрос вида >= Значение поля PurchId
получается при переборе первой записью со значением purchId >= ЗК123 мы находим ЗК124, так как дата прихода у нее раньше.
Старый 30.11.2007, 14:14   #16  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
так релейшены ты настроил на PurchTable или на журнале отборочных накладных?

Вот это будет работать только при переходе с PurchTable на PurchTable
PurchTable.PurchId == PurchTable.PurchId и PurchTable.DeliveryDate == PurchTable.DeliveryDate
Старый 30.11.2007, 14:21   #17  
AK9 is offline
AK9
Участник
 
38 / 10 (1) +
Регистрация: 02.06.2005
Адрес: Томск
да я уже и там, и там пробовал... вроде должно работать, ан нет
Старый 30.11.2007, 14:42   #18  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Чек лист:
1. Убедитесь, что на таблице, с которой вы переходите есть relation c двумя полями на PurchTable
2. Убедитесь что на таблице, с которой вы переходите, отсутствуют поля, EDT которых имеют relation на PurchTable. И у предков EDT до седьмого колена
3. Наугад: попробуйте перестроить перекрестные ссылки по структуре данных

Проверка:

При переходе к основной таблице должнене быть не поиск а фильтрация, то есть в вызываемой форме должна отображаться ровно одна запись.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Пропавшие поля в таблице Андре DAX: Программирование 10 03.03.2016 10:32
Переход к основной таблице Antoncheg DAX: Программирование 3 19.12.2008 11:37
Отчет, основанный на временной таблице Андре DAX: Программирование 10 21.02.2007 13:47
Переход к основной таблице Maxim Gorbunov DAX: Функционал 4 20.03.2002 15:27
сопоставление открытых проводок - 'коррекция' в основной валюте фирмы sguryev DAX: База знаний и проекты 0 18.12.2001 15:14
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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