AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 31.08.2009, 17:18   #1  
KpecT ist offline
KpecT
Участник
 
56 / 10 (1) +
Registriert seit: 14.08.2007
Фильтр в Grid
Всем привет!
Столкнулся с такой ситуацией.
Есть форма на ней грид состоящий из двух таблиц скажем(InventJournalTrans и связанная с ней InnerJoin InventDim) и поле combobox типа InventLocationId.
Необходимо при выборе в поле значения склада фильтровались записиси в Gride.

С одной таблицей все получается, но если 2 и связанные, то не выходит.
Alt 31.08.2009, 18:10   #2  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
sql на сервер правильный уходит?
Alt 31.08.2009, 18:33   #3  
KpecT ist offline
KpecT
Участник
 
56 / 10 (1) +
Registriert seit: 14.08.2007
Делала по подобию Журнала LedgerJournalTable, только с двумя связаными таблицами.
Сейчас работает только таким образом выбираю значение ничего не происходит в Gride, выбираю второе значение в Gride фильтруется по предыдущему значению.

Метод modified на поле combobox
X++:
...
ret = super();

inventLocationId = combInventLocationId.text();
InventJournalTrans_ds.executeQuery();
InventDim_ds.executeQuery();
...
Alt 01.09.2009, 07:31   #4  
Freeangel ist offline
Freeangel
Участник
 
173 / 55 (2) ++++
Registriert seit: 01.04.2005
Попробуйте сначала перечитать подчиненный запрос
This post has been rated by: KpecT (1).
Alt 01.09.2009, 08:32   #5  
KpecT ist offline
KpecT
Участник
 
56 / 10 (1) +
Registriert seit: 14.08.2007
Мне как раз эта мысль пришла в голову, когда я ехал на работу :-) Вчера тупил.
Alt 01.09.2009, 11:25   #6  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
Zitat:
Zitat von KpecT Beitrag anzeigen
Делала ...
Zitat:
Zitat von KpecT Beitrag anzeigen
... когда я ехал на работу :-) Вчера тупил.
Сколько ж вас там?

Лучше покажите, как вы именно фильтр применяете на основании inventLocationId.
И в каком методе
Alt 01.09.2009, 16:48   #7  
KpecT ist offline
KpecT
Участник
 
56 / 10 (1) +
Registriert seit: 14.08.2007
На форме:
1. Объявляем глобальную переменную в методе ClassDeclaration()
2. В dataSource в методе init() инициализируем поле, по которому собираемся фильтровать.
В executeQuery() присваиваем значение глобальной переменной (см. шаг 1)
3. Перекрываем метод modified() у поля InventLocationId, там присваиваем новое значение глобальной переменной и вызываем у dataSource’ов метод executeQuery().

Geändert von KpecT (01.09.2009 um 16:54 Uhr)
Alt 01.09.2009, 20:44   #8  
dech ist offline
dech
Участник
Benutzerbild von dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Registriert seit: 25.06.2009
Ort: Омск
Blog-Einträge: 3
Zitat:
Zitat von KpecT Beitrag anzeigen
Есть форма на ней грид состоящий из двух таблиц скажем(InventJournalTrans и связанная с ней InnerJoin InventDim) и поле combobox типа InventLocationId.
ComboBox - для енумов. Это у вас лукап. И похоже, что вы путаете чистый контрол и контрол, отображающий конкретное поле. У вас просто на контроле забит EDT.
Zitat:
Zitat von KpecT Beitrag anzeigen
На форме:
1. Объявляем глобальную переменную в методе ClassDeclaration()
2. В dataSource в методе init() инициализируем поле, по которому собираемся фильтровать.
В executeQuery() присваиваем значение глобальной переменной (см. шаг 1)
3. Перекрываем метод modified() у поля InventLocationId, там присваиваем новое значение глобальной переменной и вызываем у dataSource’ов метод executeQuery().
п.3. попробуйте вместо метода modified() использовать selectionChange(), в котором будут вызываться executeQuery(). Также, похоже, что вы дважды присваиваете глобальной переменной значение, достаточно только в executeQuery().

P.S. Кстати, а что там внутри executeQuery()?
__________________
// no comments

Geändert von dech (01.09.2009 um 21:04 Uhr)
Alt 01.09.2009, 21:29   #9  
belugin ist offline
belugin
Участник
Benutzerbild von belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.622 / 2925 (107) +++++++++
Registriert seit: 16.01.2004
Blog-Einträge: 5
Zitat:
Zitat von dech Beitrag anzeigen
п.3. попробуйте вместо метода modified() использовать selectionChange(), в котором будут вызываться executeQuery().
А еще можно едит метод написать
Alt 02.09.2009, 08:27   #10  
KpecT ist offline
KpecT
Участник
 
56 / 10 (1) +
Registriert seit: 14.08.2007
1.Обычно ComboBox используется в двух ситуациях:
  • когда пользователю необходимо выбрать одно или несколько значений из списка размером от 4-х до нескольких десятков позиций. Если позиций меньше, то проще использовать переключатели, если больше — то ориентироваться в списке становится неудобно и необходимо использовать специальные приемы, когда пользователь вводит первые буквы нужного слова и в списке остаются только значения, которые начинаются на эти буквы;
  • когда список позиций для выбора необходимо формировать динамически на основании данных из источника (базы данных, листа Excel и т.п.)
Для меня это Combobox, но если для вас это так важно, то это StringEdit. Lookup - это метод.

2.В executeQuery() Range'у присваиваем значение глобальной переменной (см. шаг 1). Так что дважды я нигде не присваиваю значение.
Alt 02.09.2009, 09:26   #11  
dech ist offline
dech
Участник
Benutzerbild von dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Registriert seit: 25.06.2009
Ort: Омск
Blog-Einträge: 3
В аксапте combobox используется для выбора значения из статического списка, основанного на Base Enum. На основании данных из источника - поле с лукапом. Это не суть важно, но все же combobox и stringedit - два разных объекта.
По каким полям фильтруете?
__________________
// no comments
Alt 02.09.2009, 10:07   #12  
KpecT ist offline
KpecT
Участник
 
56 / 10 (1) +
Registriert seit: 14.08.2007
Проблему решил. Фильтрую по складу.

Появился другой вопрос. Можно ли из метода lookup() вызвать скажем какую-нибудь форму InventLookup ?

Geändert von KpecT (02.09.2009 um 10:12 Uhr)
Alt 02.09.2009, 12:16   #13  
dech ist offline
dech
Участник
Benutzerbild von dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Registriert seit: 25.06.2009
Ort: Омск
Blog-Einträge: 3
Конечно, обычный FormRun. Но если нужно только вызывать форму-лукап, то можно указать её в свойстве FromHelp на EDT.
__________________
// no comments
Alt 02.09.2009, 13:09   #14  
KpecT ist offline
KpecT
Участник
 
56 / 10 (1) +
Registriert seit: 14.08.2007
Пример: есть скажем таблица InventDim поле InventLocationId на нем уже есть EDT c FromHelp. Мне нужно на определенной форме перекрыть lookup, другим EDT с FromHelp.
Alt 02.09.2009, 15:08   #15  
dech ist offline
dech
Участник
Benutzerbild von dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Registriert seit: 25.06.2009
Ort: Омск
Blog-Einträge: 3
Не забудьте у контрола MyStringEdit поставить AutoDeclaration в Yes:
X++:
MyStringEdit.extendedDataType(extendedtypenum(SalesId));
__________________
// no comments
Stichworte
grid, фильтр

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
axaptapedia: Filter-by-Grid Blog bot DAX Blogs 2 30.05.2012 13:39
Dynamics AX: DAX 4.0 Filter by Grid [Update] Blog bot DAX Blogs 0 27.04.2007 17:10
Advanced programming: Grid data and view manipulations batiskaf_new DAX: Программирование 15 21.06.2006 11:44
Программируемый фильтр по Grid ArturK DAX: Программирование 6 01.03.2004 09:23

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 19:38 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.