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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.01.2005, 12:19   #1  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Объединение источников данных
Добрый день!

Мне надо фильтровать по полю (Название номенклатуры) из формы В наличии (InventSum + InventDim). Display - метод не устраивает -- нет стандартной сортировки. Добавляю datasource InventTable, в таблице InventTable делаю relation по ItemId связь с InventSum.
Вывожу поле ItemName (из InventTable) на грид, у datasource InventTable делаю JoinSource InventSum, тип связи -- InnerJoin.

Что не так? Почему не видно itemName?

При смене типа связи -- itemName появляется и исчезает.

Думаю дело в обновлении datasource..
Старый 24.01.2005, 12:34   #2  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Дело в том что в датасоурсе InventSum включен режим группировки данных.
Включите его и у вашего ItemTable (orderMode = Group By) и добавьте в sort filed поле ItemName.
Старый 24.01.2005, 12:39   #3  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
поиском что ли, пройдитесь по форуму...

НЕ БУДЕТ СОРТИРОВКИ ПО НАЗВАНИЮ в ЭТОЙ ФОРМЕ, НИКОГДА...
ФИЛЬТР МОЖНО СДЕЛАТЬ...
(без переписывания всей формы целиком)
Старый 24.01.2005, 12:41   #4  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
добавлю: ... но фильтрацию можно сделать.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 24.01.2005, 12:43   #5  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Изначально опубликовано Maxim Gorbunov
добавлю: ... но фильтрацию можно сделать.
КАК??
Старый 24.01.2005, 12:54   #6  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Добавьте DataSource InventTable. Сделайте в нем группировку по ItemName.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 24.01.2005, 13:09   #7  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Если сильно надо, можете скопировать эту форму и в новом варианте сделать InventTable мастер-датасоурсом для InventSum, потому что в Аксапте действительно сортировка в мастер-датасоурсах производится в первую очередь, а в подчинённых уже после них и только после них. По крайней мере в режиме order mode = Group By это так. Но как следует из вышесказанного, в этой новой форме нельзя будет сортировать ни по чему, кроме какого нибудь поля из InventTable
Старый 24.01.2005, 13:42   #8  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
если сделать InventTable первым датасорсом, прийдется еще поковырять в классе
InventDimCtrl_Frm_OnHand modifyQuery... как? - я не знаю, не сильные мы программисты, даже и не программисты вовсе
Старый 24.01.2005, 14:26   #9  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Цитата:
Изначально опубликовано linney
если сделать InventTable первым датасорсом, прийдется еще поковырять в классе
InventDimCtrl_Frm_OnHand modifyQuery... как? - я не знаю, не сильные мы программисты, даже и не программисты вовсе
Да вроде не надо. Ничего преступного там нет - к датасоурсам этот метод обращается исключительно по имени, а не по порядковым номерам, да и на первый взгляд ничего необычного не делает - range-и добавляет, да sort fields...
Самому такие опыты повторять времени нет, поэтому не исключаю возможности существования каких либо еще граблей.
Старый 24.01.2005, 15:37   #10  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
у меня есть - я пробывал.
сортировка все равно не работает и глючит все. форма-то работат по группировкам из InventSum...
Старый 25.01.2005, 14:03   #11  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
Я тоже попробовал.
Удивился результату.
Дело не в том о чём вы говорите.
Кажется форма запоминает последний query, отсюда все проблемы.
Старый 07.07.2005, 13:55   #12  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Изначально опубликовано Maxim Gorbunov
Добавьте DataSource InventTable. Сделайте в нем группировку по ItemName.
Добавил в Датасоурсы InventTable. Перекрыл у него execuiteQuery:

PHP код:
public void executeQuery()
{
    ;
    
inventTable_ds.query().dataSourceName(inventTable_ds.name()).addSortField(fieldNum(InventTable,itemName));
    
inventTable_ds.query().dataSourceName(inventTable_ds.name()).orderMode(OrderMode::GroupBy);
    
super();

В столбце ItemName пусто

Подозреваю что дело в алгоритме класса InventDimCtrl_Frm_OnHand.
Что еще надо дописать чтобы появилось наименование номенклатуры?
Старый 07.07.2005, 14:56   #13  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Надо бы еще группировать по ItemId вроде - бо это связующее поле. Попробуйте так.
А вообще, это лучше в классе делать по-моему
Старый 07.07.2005, 15:04   #14  
linney is offline
linney
Участник
Аватар для linney
 
175 / 12 (1) ++
Регистрация: 11.12.2002
Адрес: Киев
я добавил в инвентсум поле itemname (заполняется при инсерте) и добился желаемого.

Ну не хотелось пол аксапты переписывать.

ЗЫ только в ответ не кидайтесь камнями в виде умных слов про нормализацию и прочую "правильность"
Старый 07.07.2005, 15:28   #15  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Но даже добавив наименование номенклатуры itemName в InventSum просто так наименования на форме не отобразились! Хотя в таблице они есть..

Продолжу ковырять InventDimCtrl_Frm_OnHand...
Старый 07.07.2005, 15:37   #16  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
В методе modifyQuery
PHP код:
qBSSum.addSortField(fieldnum(InventSum,itemName)); 
и все работает.
Старый 07.07.2005, 15:38   #17  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Понятно что не отобразились. по ним же нет группировки.
Нужно добавить строку в классе в методе modifyQuery:

qBSSum.orderMode(OrderMode::GROUPBY);
qBSSum.addSortField(fieldnum(InventSum,itemId));

qBSSum.addSortField(fieldnum(InventSum,ItemName));


ЗЫ. О, уже опередил сам меня.
Старый 07.07.2005, 15:40   #18  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
:)
Спасибо!
Старый 03.08.2005, 10:51   #19  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
Цитата:
Изначально опубликовано linney
я добавил в инвентсум поле itemname (заполняется при инсерте) и добился желаемого.
"
Только в одном месте заполняется(в insert)? И все корректно работает?

Столкнулся с загадочным исчезновением наименования при таком раскладе.
Старый 03.08.2005, 13:35   #20  
Recoilme is offline
Recoilme
злыдень
Аватар для Recoilme
Злыдни
 
895 / 192 (8) ++++++
Регистрация: 18.06.2003
Не мучь себя и пользователей..
Навскидку:
1. Сделай вью по инвентсам (не в акзапте, в субд), переливай в акцесс через дтс по ночам, выложи файл на сервер, дай доступ
2. Построй куб по вью, если нужно оперативно - сделай модель РОЛАП. Название товара вытащи в свойства
3. Подключи субд-шное вью к акзапте, выведи меню итем

Отчеты в акзапте - это зло
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Связывание источников данных в запросах r25 DAX: Программирование 10 17.04.2013 22:45
Невозможно выполнить команду языка определения данных в () iHomer13 DAX: Программирование 8 18.07.2008 10:56
Стандартный импорт данных. Обновление sparur DAX: Функционал 0 24.03.2008 19:07
Древовидная структура источников данных в Query rumpleteazer DAX: Программирование 7 03.02.2003 15:52

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

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

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