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 30.03.2009, 15:38   #1  
SHiSHok ist offline
SHiSHok
Участник
Benutzerbild von SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Registriert seit: 28.07.2005
Ort: Донецк
Задачка с запросом в форме
Всем привет.
есть задачка которую не знаю как сделать.

Исходные данные:
Форма, на ней 3 связанных источника данных: InventSum->InventDim->InventBatch. Данные группируются (хотя думаю это не важно).
Задача: из дата метода на одном источнике данных посмотреть значение полей другого источника данных (например метод на InventSum, а надо посмотреть значение поля на InventDim)
__________________
--- SHiSHok
Alt 30.03.2009, 15:52   #2  
Eldar9x ist offline
Eldar9x
MCTS
Benutzerbild von Eldar9x
Oracle
MCBMSS
 
1.064 / 166 (8) ++++++
Registriert seit: 29.09.2006
Ort: Казань
пишем в методе и все
InventDim.InventLocationId, то есть указываем курсор по названию датасорса
или что-то другое имеется ввиду...?
Alt 30.03.2009, 16:27   #3  
SHiSHok ist offline
SHiSHok
Участник
Benutzerbild von SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Registriert seit: 28.07.2005
Ort: Донецк
Zitat:
Zitat von Eldar9x Beitrag anzeigen
пишем в методе и все
InventDim.InventLocationId, то есть указываем курсор по названию датасорса
или что-то другое имеется ввиду...?
не все так просто. такое обращение (InventDim.InventLocationId) не дает значение соответствующее записи с которой вызывается дата метод (например с InventSum). Т.е. при вызове дата метода на InventSum меняются значения только источника InventSum, остальные источники заполняются первым значение и не изменяются при вызове дата метода.
__________________
--- SHiSHok

Geändert von SHiSHok (30.03.2009 um 16:29 Uhr)
Alt 30.03.2009, 16:29   #4  
glibs ist offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4.942 / 911 (40) +++++++
Registriert seit: 10.06.2002
Ort: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Тогда все поля заполнятся значением, расчитанным по текущему положению курсора в форме, а при переходе по записям будут дружно изменяться.

Лучше переформулировать задачу (либо я чего-то не знаю).
__________________
С уважением,
glibs®
Alt 30.03.2009, 17:10   #5  
SHiSHok ist offline
SHiSHok
Участник
Benutzerbild von SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Registriert seit: 28.07.2005
Ort: Донецк
Zitat:
Zitat von glibs Beitrag anzeigen
Тогда все поля заполнятся значением, расчитанным по текущему положению курсора в форме, а при переходе по записям будут дружно изменяться.
Лучше переформулировать задачу (либо я чего-то не знаю).
уточнение: данные запроса отображаются на grid. значение поля связанной таблицы надо получить в display method-е определенном на DataSource. Как уже говорил запрос с группировкой. InventBatch связан с InventDim (по inventBatchId) и InventSum (по ItemId).
display method определен на DataSource InventSum, надо добраться к InventBatch.
Моя трассировка из дисплей метода показывает что соответствие полей InventSum<->InventDim<->InventBatch отсутствует .
__________________
--- SHiSHok
Alt 30.03.2009, 17:15   #6  
glibs ist offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4.942 / 911 (40) +++++++
Registriert seit: 10.06.2002
Ort: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Zitat:
Zitat von SHiSHok
...
display method определен на DataSource InventSum, надо добраться к InventBatch.
...
Попробуйте наоборот. Или приведите постановку задачи в качестве примера.
__________________
С уважением,
glibs®
Alt 30.03.2009, 17:39   #7  
Bober ist offline
Bober
Участник
 
311 / 104 (4) +++++
Registriert seit: 29.05.2007
SHiSHok, выложил бы проект с этой формой - давно бы нашли в чем дело.
Проверь какой у тебя тип джойна между датасорсами (и есть ли там вообще джойн ).
Alt 30.03.2009, 17:50   #8  
ShowPoint ist offline
ShowPoint
Участник
 
16 / 10 (1) +
Registriert seit: 28.07.2005
Ort: Moscow, Russia
Zitat:
Zitat von SHiSHok Beitrag anzeigen
display method определен на DataSource InventSum, надо добраться к InventBatch.
Можно совсем в лоб:

X++:
display <-> <>(InventSum _cursor)
{
    return InventBatch::find(InventDim::find(_cursor.InventDimId).InventBatchId, _cursor.ItemId).<->;
}
Но, судя по всему, Вы там какого-то кальмара узлом из датасорсов завязали. Лучше развязать, чем так извращаться.
__________________
SY,
AVA

Geändert von ShowPoint (30.03.2009 um 17:57 Uhr)
Alt 30.03.2009, 18:04   #9  
glibs ist offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4.942 / 911 (40) +++++++
Registriert seit: 10.06.2002
Ort: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Запрос то с группировкой. Автор не зря спрашивает. _cursor.InventDimId может быть неизвестным по объективным причинам (по InventDim производится группировка по полям аналитик).
__________________
С уважением,
glibs®
Alt 30.03.2009, 18:20   #10  
SHiSHok ist offline
SHiSHok
Участник
Benutzerbild von SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Registriert seit: 28.07.2005
Ort: Донецк
чтоб выложить проект его причесать надо сначала.
Задача простая: SalesQuickQuote
запрос InventTable->InventSum->inventDim->InventBatch (везде inner join). в inventBatch есть аттрибут A в зависимости от значения которого будет вычислять поле на на InventSum (и edit метод по разному будет отрабатывать). inventBatch вяжется к inventSum и inventDim, остальные по очереди друг к дружке. аттрибут А, и вычисляемые поля отображаются на гриде. Исполняемый запрос с группировка имеет все необходимые данные чтобы вычислить поля. (это я к вариантам вида A::find(B::find(c::find... - смерть SQL серверу особенно в дисплей методе источника данных)
Так вот не могу добраться к значениям аттрибута А таблицы InventBatch из display и edit методов inventSum. (надеюсь как то понятней стало)
__________________
--- SHiSHok
Alt 30.03.2009, 18:22   #11  
raz ist offline
raz
NavAx
Benutzerbild von raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1.500 / 1098 (40) ++++++++
Registriert seit: 22.07.2003
Ort: МО
давно это было... тогда делал что то типа такого:

X++:
display <-> <>(InventSum _cursor)
{
    InventDim    _InventDim = _cursor.joinChild();
    InventBatch _InventBatch = _InventDim .joinChild();

    return _InventBatch.<->;
}
This post has been rated by: SHiSHok (2).
Alt 31.03.2009, 10:54   #12  
SHiSHok ist offline
SHiSHok
Участник
Benutzerbild von SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Registriert seit: 28.07.2005
Ort: Донецк
Спасибо raz, то что надо.
__________________
--- SHiSHok
Alt 17.07.2014, 12:42   #13  
userax2009 ist offline
userax2009
Участник
 
24 / 10 (1) +
Registriert seit: 16.05.2014
Zitat:
Zitat von raz Beitrag anzeigen
давно это было... тогда делал что то типа такого:

X++:
display <-> <>(InventSum _cursor)
{
    InventDim    _InventDim = _cursor.joinChild();
    InventBatch _InventBatch = _InventDim .joinChild();

    return _InventBatch.<->;
}
почему я получаю пустоту таким же способом ??? (форма, 2 датасоурса) АХ 2009
X++:
display str 50 usInfoName()
{
    SysDataBaseLog2 _sysDataBaseLog2;
    UserInfo _userInfo = _sysDataBaseLog2.joinChild();


    return _userinfo.name;
}
Alt 17.07.2014, 12:55   #14  
raz ist offline
raz
NavAx
Benutzerbild von raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1.500 / 1098 (40) ++++++++
Registriert seit: 22.07.2003
Ort: МО
1. Почему не:
X++:
display str 50 usInfoName(SysDataBaseLog _sysDataBaseLog2)
{
    UserInfo _userInfo = _sysDataBaseLog2.joinChild();


    return _userinfo.name;
}
2. Какой Link type у датасорса UserInfo?
Alt 17.07.2014, 13:33   #15  
userax2009 ist offline
userax2009
Участник
 
24 / 10 (1) +
Registriert seit: 16.05.2014
стандартный Link Type - Delayed, менял на Inner Join - никакой разницы
Alt 17.07.2014, 13:43   #16  
dech ist offline
dech
Участник
Benutzerbild von dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Registriert seit: 25.06.2009
Ort: Омск
Blog-Einträge: 3
Zitat:
Zitat von userax2009 Beitrag anzeigen
почему я получаю пустоту таким же способом ??? (форма, 2 датасоурса) АХ 2009
X++:
display str 50 usInfoName()
{
    SysDataBaseLog2 _sysDataBaseLog2;
    UserInfo _userInfo = _sysDataBaseLog2.joinChild();


    return _userinfo.name;
}
Сделайте что-нибудь с _sysDataBaseLog2, а то он у вас пустой. Товарищ raz вам как бы уже намекнул в коде.
__________________
// no comments
Alt 17.07.2014, 13:50   #17  
S.Kuskov ist offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3.452 / 1792 (66) ++++++++
Registriert seit: 28.04.2007
Ort: Калуга
Delayed - это как раз не соединение. При такой связи для каждой строки основной таблицы будет выполнен отдельный запрос к подчиненной. В одном гриде, к примеру, вы такую связку не отобразите. Метод joinChild же используется для того чтобы определить соответствующую подчиненную строку внутри одного запроса.

И raz вас правильно поправил. Не понятно для какого курсора вы пытаетесь найти дочернюю запись.
This post has been rated by: userax2009 (1).
Stichworte
datametod, datasource, form, query, программно

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Как мне обновить Grid расположенный на другой форме? Yuri Safronov DAX: Программирование 17 22.01.2013 14:18
Использование семейства InventDimCtrl_Frm_* - 2 DS InventDim на одной форме Pavlo AKA Panok DAX: База знаний и проекты 5 22.12.2008 17:15
executeQuery на Форме Arahnid DAX: Программирование 12 03.11.2007 23:25
Добавление источника к запросу на форме Lucky13 DAX: Программирование 1 21.05.2007 17:12
BugFix: В форме складских журналов нельзя перемещаться с помощью клавиш курсора Maxim Gorbunov DAX: Программирование 5 21.01.2005 01:20

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 05:12 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.