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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.04.2007, 10:23   #1  
DocSerzh is offline
DocSerzh
Участник
 
51 / 22 (0) +++
Регистрация: 28.06.2004
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Прежде всего, спасибо за то, что не остались просто " еще одному человеку, пожелавнему остаться неизвестным" Страна должна знать своих героев
.
Как то неудачно засветился с комментариями...хм
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Теперь по делу:
А почему во втором способе восстанавливается только lookupField, а lookupValue остается с RecId?
.
После executeQuery lookupValue сбрасывается (или после super() в нем, перекрытом).

Цитата:
Сообщение от kashperuk Посмотреть сообщение
Мне кажется, особенно учитывая, что форма вызывается новая, и args формируется здесь же, что по ветке с findRecord идти никогда не будет
.
Честно говоря, я тоже так думаю - просто не могу представить себе обработчик формы (логику обработчика), который при запуске использует позиционирование по lookup методам. Единственный - это механизм JumpRef - но в данном коде мы ему не мешаем..

Цитата:
Сообщение от kashperuk Посмотреть сообщение
Завтра поищу по АОТ, чтобы утверждать наверняка.
.
Проверил у себя [ сильно перелопаченный retail от коруса] :
В основном Lookup используются в init'e для анализа включать фильтры , накладываемые на форме, или нет...
Единственна критическая форма - Addresses , с ипользованием linkActivate в случае открытия из vendTable...
К сожалению, нет сейчас appl под рукой - по памяти....

Цитата:
Сообщение от AndyD Посмотреть сообщение
А почему вы считаете, что по lookupField( ) по RecId будет искать правильно?
В случае с SalesTable будет работать корректно, потому что большему salesId будет соответствовать больший recId (пока не перевалили на отрицательные recId!).
А, к примеру, InventTable. Там сортировка идет по itemId, и далеко не всегда большему itemId соответствует больший recId. И таких примеров по AOT можно привести массу
.
Насколько я понимаю, позиционирование идет самим движком, уже в выбранном и отсортированном ds [?]..Не вижу причин [но проверю обязательно - есть такая большая DB с отрицательными recId] почему бы ему (движку) искать не корректно... или имелось ввиду время позиционирования?

Цитата:
Сообщение от kashperuk Посмотреть сообщение
Можно усложнить - найти индекс по которому отсортирован дс, проверить уникальный ли он, проверить состоит ли он из 1 поля и только в ежэтом случае лукапить. Иначе скатываться к тормозному варианту
.
Эксперементировал на эту тему до знакомства с tabax...Положительных результатов не получил - как то странно работают объекты AOT, отвечающие за анализ PrimaryKey и уникальность индекса.. ( нет appl под рукой - иначе бы запостил результаты и код job'a, который меня смутил)... Поэтому и остановился на варианте ,используемом в tabax.
Цитата:
Сообщение от AndyD
Тогда надо формировать строку axpath опираясь не на recId, а на поля уникального индекса (если он есть, опять же).
А в случае recId корректнее все-таки поиск перебором.
.
В случае НЕуникальности RecId?
Старый 27.04.2007, 10:58   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от DocSerzh Посмотреть сообщение
Насколько я понимаю, позиционирование идет самим движком, уже в выбранном и отсортированном ds [?]..Не вижу причин [но проверю обязательно - есть такая большая DB с отрицательными recId] почему бы ему (движку) искать не корректно... или имелось ввиду время позиционирования?
Нет. Не верно.
При лукапе на сервер отправляется запрос вида
X++:
select *
from TableName
where recid >= recIdValue
order by [- ,     ]
После этого курсор на форме позиционируется на первую полученную запись.
Если порядок сортировки по полям не будет совпадать с порядком сортировки по recId, то запись отпозиционируется неверно
__________________
Axapta v.3.0 sp5 kr2
За это сообщение автора поблагодарили: DocSerzh (1), gl00mie (3).
Старый 27.04.2007, 11:03   #3  
DocSerzh is offline
DocSerzh
Участник
 
51 / 22 (0) +++
Регистрация: 28.06.2004
Цитата:
Сообщение от AndyD Посмотреть сообщение
Нет. Не верно.
При лукапе на сервер отправляется запрос вида
X++:
select *
from TableName
where recid >= recIdValue
order by [- ,     ]
После этого курсор на форме позиционируется на первую полученную запись.
Если порядок сортировки по полям не будет совпадать с порядком сортировки по recId, то запись отпозиционируется неверно
Спасибо за проверку, нет возможности сечас проверить самому...
Старый 27.04.2007, 12:35   #4  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от AndyD Посмотреть сообщение
При лукапе на сервер отправляется запрос вида
X++:
select * from TableName where recid >= recIdValue
order by [- ,     ]
После этого курсор на форме позиционируется на первую полученную запись.Если порядок сортировки по полям не будет совпадать с порядком сортировки по recId, то запись отпозиционируется неверно
Кстати, да. Я «по просьбам трудящихся» переделал сортировку в формах закупок и заказов - сделал сортировку по ожидаемой дате поставки, в результате jumpRef из журнала накладных стал попадать не туда
Теги
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
[ANN] Sidax 0.3.6 - многоцелевая боковая панель для Axapta belugin DAX: База знаний и проекты 104 30.06.2008 11:32
axaptafreak: Tabax: tabbed Axapta interface !!!! Blog bot DAX Blogs 0 10.11.2006 01:14
Панель задач в Аксапте wb DAX: Программирование 14 18.04.2006 17:13
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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