AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 17.04.2007, 11:47   #1  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
DataSource на Web-форме (DAX 4.0)
Доброе время суток!

Пытаюсь связать два датасурса на Web-форме и вывести поле из подчиненного датасурса. Пример: связываю таблицу деловых отношений (smmBusRelTable) и сотрудников (EmplTable), чтобы показать фамилию/имя ответственного за компанию. Однако в WebGrid в данном поле (имя сотрудника) во всех строках отображается первое выбранное значение из датасурса EmplTable, т.е. значение почему-то не обновляется после первой строки. Если повесить произвольный display-метод (просто возвращающий пустое значение) на какое-либо поле WebGrid, то значение поля "Имя сотрудника" отображается корректно (происходит обновление), правда, кроме первой строки WebGrid.
Ax 4.0, SP1; SQL Server 2005; WSS 3.0.
Спасибо заранее за участие!
Old 17.04.2007, 13:32   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Join Date: 10.06.2002
Location: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Какой вы тип JOIN поставили?
__________________
С уважением,
glibs®
Old 17.04.2007, 16:16   #3  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
Вообще InnerJoin, пробовал OuterJoin и ExistsJoin - в последнем случае отображается пустое значение. Пытался связать датасурсы программно - результат не поменялся.
Old 17.04.2007, 16:33   #4  
Мариночка is offline
Мариночка
Microsoft Dynamics
Мариночка's Avatar
Сотрудники Microsoft Dynamics
 
75 / 56 (2) ++++
Join Date: 31.01.2005
Location: Киев
А что выдается в квери датасорса? какой селект?
Вы пробовали то же самое делать в обыкновенной форме?

А с дисплей и едит методами - это действительно лажа, и не только в отображении первой записи
Old 17.04.2007, 18:38   #5  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
Select проверял, вроде все правильно
Code:
SELECT * FROM smmBusRelTable JOIN * FROM EmplTable WHERE smmBusRelTable.MainContact = EmplTable.EmplId
Проверял и на обычной форме. Тут тоже странность была. Поначалу тоже ничего не выводилось, однако после изменения свойств датасурсов (поставил, например, DelayActive = No) все заработало, причем теперь изменил все значения свойств датасурсов в первоначальный вид - все равно работает, хотя при этих же значениях сначала не работала. С Web-формой так пошаманить пока не удалось ...
Old 18.04.2007, 01:49   #6  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Join Date: 10.06.2002
Location: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Проверил в 3.0 (до портала на 4.0 нет времени добраться).

Правда, использовал PurchTable и EmplTable.

Работает InnerJoin. Active, по-моему, не должен (не проверял, но в GUI по-моему не работало).

У вас связь между таблицами прописана (в АОТ или вручную на форме)?

PS. Уже вижу, прописан.

В общем, проверьте ваши настройки на форме. Скорее всего должно работать (раз в 3.0 работает). Как до портала на четверке доберусь — отпишу.
__________________
С уважением,
glibs®

Last edited by glibs; 18.04.2007 at 01:52.
Old 18.04.2007, 11:37   #7  
Мариночка is offline
Мариночка
Microsoft Dynamics
Мариночка's Avatar
Сотрудники Microsoft Dynamics
 
75 / 56 (2) ++++
Join Date: 31.01.2005
Location: Киев
Могу высказать дурацкое предположение (не бейте): может вы код не рефрешите после изменений в коде?
Old 18.04.2007, 14:28   #8  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
К сожалению, код точно рефрешится ...
Old 19.04.2007, 10:08   #9  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
glibs
Еще раз попробовал в 3.0 создать аналогичную форму - все отлично работает.
В любом случае спасибо всем за участие! Если вдруг еще мысли появятся - просьба написать.
Old 25.04.2007, 16:29   #10  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
Up на всякий случай - вдруг что-нибудь новое подскажут...
Old 25.04.2007, 19:05   #11  
Мариночка is offline
Мариночка
Microsoft Dynamics
Мариночка's Avatar
Сотрудники Microsoft Dynamics
 
75 / 56 (2) ++++
Join Date: 31.01.2005
Location: Киев
Сорри, нету машинки с порталом, чтобы проверить.

Но я попробовала в клиенте и все работает, просто сделала smmBusRelTable джойн сорсом у EmplTable. ДелейАктив тут не должен никак повлиять, только в случае если у вас медленная машина, потому что он просто вставляет задержку отображения записи в подчиненном датасорсе.
Сначала мне показалось, что у меня та же проблема - "во всех строках отображается первое выбранное значение из датасурса EmplTable". Но потом я обратила внимание, что поле, по которому таблички связаны, и содержит это первое значение из ЕмплТейбл (если у вас стндртная демодата, то первых 15 бизнес аккаунтов будет иметь МаinContact - AJE, что и есть первая запись в табличке). На веб-форме вы могли не заметить этого, потому что там ограничение на вывод 10 записей, потом нужно прощелкать некст.

Проверьте, пожалуйста, данные и напишите.
This post has been rated by: Link (1).
Old 26.04.2007, 10:17   #12  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
Мариночка
Благодарю за участие. В клиенте действительно все работает на раз, почему сначала не получилось - мне сейчас непонятно. Теперь пробую создать в клиенте новую форму с двумя датасурсами, у второго указываю родительский сурс и меняю связь на InnerJoin - все отлично срабатывает. В портале проверяю правильность по коду сотрудника, пролистываю много записей - код по строкам меняется, название (ФИО) остается от первой записи. Вообще, грешу на класс WebFormHtml (такое ощущение, при обращении к датасурсам данные извлекаются только из первого на форме), однако точно пока в алгоритме разобраться не удалось.
Old 27.04.2007, 00:10   #13  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Join Date: 10.06.2002
Location: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
У меня в 4.0 тоже не работает .

Display-методы Микрософт пока не сломал

Пользуйтесь ими

Пользуясь случаем хочется сказать — ну и гадость же этот портал на Шарапоинте. Нет чтобы портал от 3.0 до ума довести...
__________________
С уважением,
glibs®
Old 27.04.2007, 13:17   #14  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
glibs
Спасибо, однако с display-методами возникает проблема из моего первого поста: при переходе навигационными клавишами по WebGrid (следующий/предыдущий) первая запись никогда не обновляется. Пример: первая запись выводит данные о клиенте с ответственным Иванов, в следующих записях ответственные все различные. Однако при переходе на следующие 10 записей первая строка сверху никогда не обновляется - всегда остается Иванов. Display-метод так отрабатывает и когда он определен в таблице, и в датасурсе.
Old 27.04.2007, 14:14   #15  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Join Date: 10.06.2002
Location: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Display-метод у меня вчера работал корректно. Правда, я только 3 записи ввел. Вы точно все корректно настроили?
__________________
С уважением,
glibs®
Old 27.04.2007, 15:09   #16  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
Вроде да. Если не затруднит, попробуйте ввести больше десяти записей (или у грида поставьте свойство VisibleRows какое-нибудь малое значение - 2 например), а также ShowNavigationButtons = Yes. В случае 3-х записей в выборке и 2 выводимых на страницу строках у меня 2 первые показываются нормально. Когда происходит переход навигационной кнопкой Next на следующую запись, дисплейное поле в первой показываемой строке отображается неверно.
Old 27.04.2007, 15:35   #17  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
Вот пример. На первом рисунке выводятся две записи, где Наименование ДО - дисплейное поле. Далее нажимается кнопка next (выделено 1)
Name:  Ex1.JPG
Views: 3692
Size:  14.3 KB

Получаем следующие 2 записи, у первой дисплейное поле отображает неверное значение (выделено), которое на самом деле является самым значением из самой первой записи в выборке. Оно же будет повторяться в первой строке и при следующем переходе.
Name:  Ex2.JPG
Views: 3679
Size:  17.3 KB
Old 27.04.2007, 21:50   #18  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Join Date: 10.06.2002
Location: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Да, проблема с некорректным отображением display-методов при листании страниц действительно наблюдается. При этом display-метод некорректно отрабатывает только для первой строчки грида на следующей странице. Для всех последующих записей он отрабатывает корректно.

Блин! Ну надо же куда мир катится! Нет чтобы что-то хорошее сделать. Например, вьюхи отремонтировать. Тот же код портала рефакторить, чтобы проверку по бэст практису от него не тошнило. Так они то что раньше работало продолжают доламывать. И интегрировать со всякой гадостью. Вчера не в офисе на рабочей машине пытался разобраться в функциональности. Потребовалось переключиться на английский интерфейс, чтобы хоть что-то понять... И знаете чего? Без контролера домена войти в систему можно, но язык интерфейса вы уже не поменяете .
__________________
С уважением,
glibs®
Old 02.05.2007, 18:14   #19  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Join Date: 24.05.2006
Удалось добиться некоторых положительных итогов в вопросе, в частности, наладить работу связанных датасурсов на Web-форме.
В результате испытаний выяснилось, что некорректно отображаются значения контролов на WebGrid, связанных с подчиненным родительскому датаусурсом, имеющих вид WebEdit и WebCheckBox. При этом значения контролов с видом WebComboBox, WebDate, WebInteger и WebReal отображаются правильно!

Как вариант решения, в методе layoutEdit класса WebFormHtml были исправлена строка
X++:
controlText = fwe.text();
на следующие:
X++:
Common common1;
 
...........................
 
if (fwe.dataSource() && fwe.dataField())
{
    common1 = _webrun.dataSourceById(fwe.dataSource()).cursor();
    controlText = common1.(fwe.dataField());
}
else
{
controlText = fwe.text();
}
т.е., формируется обращение напрямую к данным курсора датасурса.
Аналогичным подходом был исправлен метод layoutCheckBox.
This post has been rated by: glibs (8).
Old 04.05.2007, 13:20   #20  
Мариночка is offline
Мариночка
Microsoft Dynamics
Мариночка's Avatar
Сотрудники Microsoft Dynamics
 
75 / 56 (2) ++++
Join Date: 31.01.2005
Location: Киев
Супир! Если после проверок будет работать классно, предложим ЕП-команде исправить в 4.1!
Tags
ax3.0, ax4.0

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Динамическое создание DataSource на форме, и добавление элементов дизайна. epack DAX: Программирование 12 24.11.2010 15:31
Web-разработка в DAX 4.0 без Enterprise Portal alex55 DAX: Администрирование 19 11.09.2008 23:16
Inside Dynamics AX 4.0: The Web Framework Blog bot DAX Blogs 0 25.10.2007 03:04
Pokluda: Outbound web service (AIF) Blog bot DAX Blogs 0 28.10.2006 17:43
Как получить значение поля Datasource на динамически созданной форме? storer DAX: Программирование 2 14.11.2003 16:41

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 04:34.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.