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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.04.2007, 11:47   #1  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 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.
Спасибо заранее за участие!
Старый 17.04.2007, 13:32   #2  
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
Какой вы тип JOIN поставили?
__________________
С уважением,
glibs®
Старый 17.04.2007, 16:16   #3  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Вообще InnerJoin, пробовал OuterJoin и ExistsJoin - в последнем случае отображается пустое значение. Пытался связать датасурсы программно - результат не поменялся.
Старый 17.04.2007, 16:33   #4  
Мариночка is offline
Мариночка
Microsoft Dynamics
Аватар для Мариночка
Сотрудники Microsoft Dynamics
 
75 / 56 (2) ++++
Регистрация: 31.01.2005
Адрес: Киев
А что выдается в квери датасорса? какой селект?
Вы пробовали то же самое делать в обыкновенной форме?

А с дисплей и едит методами - это действительно лажа, и не только в отображении первой записи
Старый 17.04.2007, 18:38   #5  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Select проверял, вроде все правильно
Код:
SELECT * FROM smmBusRelTable JOIN * FROM EmplTable WHERE smmBusRelTable.MainContact = EmplTable.EmplId
Проверял и на обычной форме. Тут тоже странность была. Поначалу тоже ничего не выводилось, однако после изменения свойств датасурсов (поставил, например, DelayActive = No) все заработало, причем теперь изменил все значения свойств датасурсов в первоначальный вид - все равно работает, хотя при этих же значениях сначала не работала. С Web-формой так пошаманить пока не удалось ...
Старый 18.04.2007, 01:49   #6  
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
Проверил в 3.0 (до портала на 4.0 нет времени добраться).

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

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

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

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

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

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

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

Проверьте, пожалуйста, данные и напишите.
За это сообщение автора поблагодарили: Link (1).
Старый 26.04.2007, 10:17   #12  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Мариночка
Благодарю за участие. В клиенте действительно все работает на раз, почему сначала не получилось - мне сейчас непонятно. Теперь пробую создать в клиенте новую форму с двумя датасурсами, у второго указываю родительский сурс и меняю связь на InnerJoin - все отлично срабатывает. В портале проверяю правильность по коду сотрудника, пролистываю много записей - код по строкам меняется, название (ФИО) остается от первой записи. Вообще, грешу на класс WebFormHtml (такое ощущение, при обращении к датасурсам данные извлекаются только из первого на форме), однако точно пока в алгоритме разобраться не удалось.
Старый 27.04.2007, 00:10   #13  
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
У меня в 4.0 тоже не работает .

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

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

Пользуясь случаем хочется сказать — ну и гадость же этот портал на Шарапоинте. Нет чтобы портал от 3.0 до ума довести...
__________________
С уважением,
glibs®
Старый 27.04.2007, 13:17   #14  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
glibs
Спасибо, однако с display-методами возникает проблема из моего первого поста: при переходе навигационными клавишами по WebGrid (следующий/предыдущий) первая запись никогда не обновляется. Пример: первая запись выводит данные о клиенте с ответственным Иванов, в следующих записях ответственные все различные. Однако при переходе на следующие 10 записей первая строка сверху никогда не обновляется - всегда остается Иванов. Display-метод так отрабатывает и когда он определен в таблице, и в датасурсе.
Старый 27.04.2007, 14:14   #15  
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
Display-метод у меня вчера работал корректно. Правда, я только 3 записи ввел. Вы точно все корректно настроили?
__________________
С уважением,
glibs®
Старый 27.04.2007, 15:09   #16  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Вроде да. Если не затруднит, попробуйте ввести больше десяти записей (или у грида поставьте свойство VisibleRows какое-нибудь малое значение - 2 например), а также ShowNavigationButtons = Yes. В случае 3-х записей в выборке и 2 выводимых на страницу строках у меня 2 первые показываются нормально. Когда происходит переход навигационной кнопкой Next на следующую запись, дисплейное поле в первой показываемой строке отображается неверно.
Старый 27.04.2007, 15:35   #17  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Вот пример. На первом рисунке выводятся две записи, где Наименование ДО - дисплейное поле. Далее нажимается кнопка next (выделено 1)
Название: Ex1.JPG
Просмотров: 1140

Размер: 14.3 Кб

Получаем следующие 2 записи, у первой дисплейное поле отображает неверное значение (выделено), которое на самом деле является самым значением из самой первой записи в выборке. Оно же будет повторяться в первой строке и при следующем переходе.
Название: Ex2.JPG
Просмотров: 1130

Размер: 17.3 Кб
Старый 27.04.2007, 21:50   #18  
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
Да, проблема с некорректным отображением display-методов при листании страниц действительно наблюдается. При этом display-метод некорректно отрабатывает только для первой строчки грида на следующей странице. Для всех последующих записей он отрабатывает корректно.

Блин! Ну надо же куда мир катится! Нет чтобы что-то хорошее сделать. Например, вьюхи отремонтировать. Тот же код портала рефакторить, чтобы проверку по бэст практису от него не тошнило. Так они то что раньше работало продолжают доламывать. И интегрировать со всякой гадостью. Вчера не в офисе на рабочей машине пытался разобраться в функциональности. Потребовалось переключиться на английский интерфейс, чтобы хоть что-то понять... И знаете чего? Без контролера домена войти в систему можно, но язык интерфейса вы уже не поменяете .
__________________
С уважением,
glibs®
Старый 02.05.2007, 18:14   #19  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 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.
За это сообщение автора поблагодарили: glibs (8).
Старый 04.05.2007, 13:20   #20  
Мариночка is offline
Мариночка
Microsoft Dynamics
Аватар для Мариночка
Сотрудники Microsoft Dynamics
 
75 / 56 (2) ++++
Регистрация: 31.01.2005
Адрес: Киев
Супир! Если после проверок будет работать классно, предложим ЕП-команде исправить в 4.1!
Теги
ax3.0, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Динамическое создание 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

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

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

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