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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.07.2009, 11:52   #1  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Red face Присоедение датасорса , к родительскому в котором сделан GROUP BY на форме
Добрый день всем.

Есть форма , на котором в датасорсе таблица с группированными записями.
Сделано это при помощи следующего кода :
PHP код:
public void executeQuery()
{
    
QueryBuildDatasource qbdsMain,qbds;

    
Query query;
    ;

    
qbds =  this.query().dataSourceTable(tablenum(RpayTaxEmplSum));

    
qbds.clearRanges();

    
qbds.addRange(fieldnum(RPayTaxEmplSum,PayPeriod)).value(queryValue(mkDate(1,1,FundPeriod.value())) + '..' +
                       
queryValue(mkDate(31,12,FundPeriod.value())));



    
qbds.addSortField(fieldnum(RPayTaxEmplSum,EmplId));
    
qbds.addSelectionField(fieldnum(RPayTaxEmplSum,Recid),SelectionField::Count);
    
qbds.orderMode(OrderMode::GroupBy);



    
super();



Пытаюсь на форму добавить EmplTable и связать эти две таблицы, чтобы вывести имя сотрудника и другие поля из таблицы. Хотелось бы, чтобы по этим полям в дальнейшем можно было бы сохранить возможность поиска.

Axapta 3 Sp3

Перепробовал разные варианты. Ничего не помогает. Поможите кто чем может =)

Последний раз редактировалось Bars; 21.07.2009 в 12:01.
Старый 21.07.2009, 12:14   #2  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Bars Посмотреть сообщение
....
Перепробовал разные варианты. Ничего не помогает. Поможите кто чем может =)
А пояснить, что именно делали и как? Какие получили результаты и что не получалось?
__________________
Zhirenkov Vitaly
Старый 21.07.2009, 13:21   #3  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Пробовал добавить датасорс на форму, сделать связь Inner Join, (работает Delayed, но пропадает возможность поиска).
Пробовал не связывать датасорсы, а просто добавлять dynalink и даже пробовал наложить range на второй датасорс.
Старый 21.07.2009, 15:34   #4  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Связь должна быть inner или outer join (это не одно и то же, смотря как вам нужно). Вы на EmplTable поля для группировки прописывали? Что не так получилось?
__________________
С уважением,
glibs®
Старый 21.07.2009, 17:07   #5  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Bars Посмотреть сообщение
Пробовал добавить датасорс на форму, сделать связь Inner Join, (работает Delayed, но пропадает возможность поиска).
Пробовал не связывать датасорсы, а просто добавлять dynalink и даже пробовал наложить range на второй датасорс.
Ну тогда всё ястно...
Вы ж посмотрите что у вас за запрос на сервер уходит - насколько я понимаю что-то в этом роде:
X++:
SELECT COUNT(A.RECID),A.EMPLID 
FROM RPAYTAXEMPLSUM A,EMPLTABLE B 
WHERE .....
GROUP BY A.EMPLID
ORDER BY A.EMPLID
И тот результат, который вы имеете на форме - вполне закономерный...

Вам нужно все нужные поля из EmplTable тоже добавить в группировку и всё у вас появится на форме.
__________________
Zhirenkov Vitaly
Старый 21.07.2009, 18:36   #6  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Цитата:
Сообщение от ZVV Посмотреть сообщение
Ну тогда всё ястно...
Вы ж посмотрите что у вас за запрос на сервер уходит - насколько я понимаю что-то в этом роде:
X++:
SELECT COUNT(A.RECID),A.EMPLID 
FROM RPAYTAXEMPLSUM A,EMPLTABLE B 
WHERE .....
GROUP BY A.EMPLID
ORDER BY A.EMPLID
И тот результат, который вы имеете на форме - вполне закономерный...

Вам нужно все нужные поля из EmplTable тоже добавить в группировку и всё у вас появится на форме.
там нет всех нужных полей . я думал , что можно связать по EmplId.
Но все равно спасибо, попробую поколдовать.
Старый 21.07.2009, 18:38   #7  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Цитата:
Сообщение от glibs Посмотреть сообщение
Связь должна быть inner или outer join (это не одно и то же, смотря как вам нужно). Вы на EmplTable поля для группировки прописывали? Что не так получилось?
EmplId Добавлял в группировку.
Пробовал связь Inner Join.
В результате получил пустые поля , которые привязаны именно к EmplTable
Старый 21.07.2009, 18:53   #8  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Вы пустые поля из EmplTable в группировку добавьте.
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: Bars (1).
Старый 21.07.2009, 18:54   #9  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Выложите сюда код ваш с inner join, вам быстро подправят.
__________________
С уважением,
glibs®
Старый 21.07.2009, 19:33   #10  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от Bars Посмотреть сообщение
там нет всех нужных полей . я думал , что можно связать по EmplId.
Но все равно спасибо, попробую поколдовать.
Что значит "там нет всех нужных полей"? Где "там" их нет?
У вас есть поля в EmplTable, которые вы хотите отобразить на форме.
Но они показываются пустые, т.к. в запросе к БД эти данные не выбираются (см. запрос выше), а выбирается только 2 поля, EmplId и Count.
EmplId показывается потому, что вы по нему группируете.
По аналогии добавляете группировку EmplTable по всем нужным полям из этой таблицы...
__________________
Zhirenkov Vitaly
Старый 22.07.2009, 10:10   #11  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
Выкладываю тестовую форму.... идею понял я думаю, но видимо не до конца.
Буду благодарен за помощь.
Вложения
Тип файла: xpo RpayEmplTestTmp.xpo (66.6 Кб, 262 просмотров)
Старый 22.07.2009, 11:48   #12  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Да уж... Действительно, не до конца...

Переделал немного, часть полей оставил доделать самим:
Вложения
Тип файла: xpo RpayEmplTestTmp (1).xpo (66.6 Кб, 293 просмотров)
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: Bars (1).
Старый 22.07.2009, 12:20   #13  
Bars is offline
Bars
Участник
Аватар для Bars
 
312 / 14 (1) ++
Регистрация: 04.03.2005
Адрес: Москва
критику принял ,
идею понял .

спасибо за помощь
Теги
datasource, group by, join, поиск

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Использование семейства InventDimCtrl_Frm_* - 2 DS InventDim на одной форме Pavlo AKA Panok DAX: База знаний и проекты 5 22.12.2008 17:15
Dianne Siebold: Yahoo Group for Dynamics AX Blog bot DAX Blogs 0 16.10.2007 08:23
Dynamics AX: Dynamics AX New Zealand Users Group Blog bot DAX Blogs 0 28.10.2006 16:40
group , но не by slava DAX: Программирование 9 21.05.2003 19:05

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

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

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