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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.09.2004, 17:19   #1  
demID is offline
demID
Участник
 
61 / 12 (1) ++
Регистрация: 16.08.2004
Адрес: Москва
? Фильтрование записей при "переходе к основной таблице"
Привет всем!

В форме InventTable есть поле ItemGroupId. Если в этом поле выполнить "переход к основной таблице", то откроется справочник номенклатурных групп. При этом текущей станет номенклатурная группа, которой принадлежит активная номенклатура в форме InventTable. И в то же время выводится полный список всех имеющихся номенклатурных групп.

Я создал свою собственную форму, основанную на моей (нестандартной) таблице. В этой форме есть грид. В одном из полей этого грида есть также функционал "перейти к основной таблице".
Проблема: у меня при переходе к основной таблице открывается основная таблица, но при этом в ней записи фильтруются, то есть отображается только одна запись. Мне же нужно, чтобы отображались все записи справочника.

Вопрос: как это сделать? Как сделать, чтобы при переходе к основной таблице записи в этой таблице не фильтровались, а выводился весь справочник?
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход!
Старый 13.11.2015, 14:21   #2  
abark is offline
abark
Участник
 
14 / 10 (1) +
Регистрация: 26.06.2013
Адрес: Волгоград
Подскажите пожалуйста есть ли способ как то обойти эту "фичу"?
Переопределить какие то методы может быть?

Нужно сделать чтобы при переходе из дочерней таблице по полю, у которого в его EDT есть relation в том числе со связью "Поле ссылки фиксировано", к основной таблице - та фильтровалась не по одной записи, а по всем записям подходящего типа (заданного фиксированной частью связи), а уже конкретная запись делалась текущей.
__________________
Ax 3.0 SP5 FP2 kr2
Старый 14.11.2015, 19:18   #3  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
Цитата:
Сообщение от abark Посмотреть сообщение
Подскажите пожалуйста есть ли способ как то обойти эту "фичу"?
Переопределить какие то методы может быть?

Нужно сделать чтобы при переходе из дочерней таблице по полю, у которого в его EDT есть relation в том числе со связью "Поле ссылки фиксировано", к основной таблице - та фильтровалась не по одной записи, а по всем записям подходящего типа (заданного фиксированной частью связи), а уже конкретная запись делалась текущей.
Ну если я вас правильно понимаю, то вам поможет перекрытие jumpRef() на форме с дочерней таблицей с последующим позиционированием уже при открытии формы основной таблицы через findRecord().
__________________
Zhirenkov Vitaly
Старый 13.11.2015, 15:03   #4  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Не помню уже, как в 3.0, но в 2009 есть методы args.lookupField() и args.lookupValue(). Если их заполнить, то переход будет осуществляться с позиционированием. А фильтрацию можно сделать на открываемой форме, анализируя либо через args.record(), либо через args.caller() - откуда произошел вызов.
__________________
Возможно сделать все. Вопрос времени
Старый 18.11.2015, 12:52   #5  
abark is offline
abark
Участник
 
14 / 10 (1) +
Регистрация: 26.06.2013
Адрес: Волгоград
Спасибо за ответы.

Сделал так:
1. в источнике данных вызываемой формы в методе init() отключил dynalink через
X++:
this.query().datasourceNo(1).clearDynaLinks()
2. в источнике данных вызываемой формы в методе executeQuery() воссоздал нужную фильтрацию по типу записи, которое ограничивается в relation в EDT через "Поле ссылки фиксировано":
X++:
QueryBuildRange     qbr;
;
qbr = this.query().dataSourceNo(1).addRange(fieldnum(MyTable, MyTableFixedTypeField));
qbr.value(int2str(_myValueForFilterFixedTypeField));
3. а затем в том же методе executeQuery(), но уже после super(), спозиционировался на нужную запись через
X++:
MyTable record;
;
...
record = MyTable::find(_myRecordId);
if(record)
    this.findRecord(record);
__________________
Ax 3.0 SP5 FP2 kr2
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Засада с позиционированием при переходе к основной таблице. В чем дело? AK9 DAX: Программирование 17 30.11.2007 14:42
Переход к основной таблице договоров KolesOlya DAX: Программирование 12 11.04.2007 10:28
Переход на правильную запись при Переходе к основной таблице. - 2 Anais DAX: Программирование 2 01.11.2004 17:14
Переход на правильную запись при Переходе к основной таблице. Anais DAX: Программирование 11 29.06.2004 19:16
Позиционирование при переходе к основной таблице dn DAX: Программирование 2 29.01.2004 18:35

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

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

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