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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.03.2013, 16:10   #1  
spirius is offline
spirius
Участник
 
34 / 12 (1) ++
Регистрация: 27.02.2012
Left Navigation Pane. Display 1:N relationship multiple times
Доброго времени суток!

в системе для Salesorderdetail (Order Product) имеются кастомный View под названием "Add-Ons".
Есть ли какая-либо возможность изменить Navigation Pane сущности Order, чтобы появился бы новый элемент "Add-Ons" который бы отображал все Order Product-ы связанные с Order используя кастомый View?
при этом стандартный Navigation Pane Element "Products" должен сохранится.
т.е. чтобы выглядело это примерно так:


есть ли вообще возможность осуществить сию задачу каким-либо способом? саппортед/несаппортыд/изменение метаданных/колдовство - подойдет любой способ который заставит это работать

заранее благодарю.
Старый 21.03.2013, 16:40   #2  
-O_o- is offline
-O_o-
Еда - топливо, Одежда - н
Аватар для -O_o-
Лучший по профессии 2015
Лучший по профессии 2014
 
727 / 80 (4) ++++
Регистрация: 11.05.2012
Адрес: Киев
Ну так система и так вам показывает продукты которые связаны с этим заказом.
Если вы создадите еще одну панель сбоку (стандартно -можно только создав связь, а у вас уже есть такая), то там будут отображаться те же продукты что и в закладке "продукты", только представление другое будет...
Или я вас не понял?
Старый 21.03.2013, 16:54   #3  
spirius is offline
spirius
Участник
 
34 / 12 (1) ++
Регистрация: 27.02.2012
Цитата:
Сообщение от -O_o- Посмотреть сообщение
Ну так система и так вам показывает продукты которые связаны с этим заказом.
Если вы создадите еще одну панель сбоку (стандартно -можно только создав связь, а у вас уже есть такая), то там будут отображаться те же продукты что и в закладке "продукты", только представление другое будет...
Или я вас не понял?
мне именно это и нужно - отобразить продукты используя другую вьюху. и там они будут отличаться от набора всех продуктов.
вот только это не так уж и легко сделать, как оказалось.

попытки изменить customization.xml для Order к успеху не привели. сколько не изменял/добавлял/удалял NavBarByRelationshipItem-ы, а продукт так и оставался в 1 закладке - Products.
+ко всему узнал что в том же NavBarByRelationshipItem не работает атрибут ViewId. он там есть, его "функциональность" описана везде, однако, он не работает.
Старый 21.03.2013, 17:21   #4  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от spirius Посмотреть сообщение
ко всему узнал что в том же NavBarByRelationshipItem не работает атрибут ViewId. он там есть, его "функциональность" описана везде, однако, он не работает.
Проблема устранена в 10м пакете обновления: The ViewId value of the NavBarByRelationshipItem setting is not respected for custom relationships. Однако она касается только кастомных объектов, со стандартными должно работать и в базе. Вот мой эксперимент на эту тему: http://www.axforum.info/forums/blog.php?b=337. Кроме того, посмотрите эту статью: http://blogs.msdn.com/b/crm/archive/...-subgrids.aspx.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional

Последний раз редактировалось Артем Enot Грунин; 21.03.2013 в 17:25.
Старый 21.03.2013, 17:37   #5  
spirius is offline
spirius
Участник
 
34 / 12 (1) ++
Регистрация: 27.02.2012
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Проблема устранена в 10м пакете обновления: The ViewId value of the NavBarByRelationshipItem setting is not respected for custom relationships. Однако она касается только кастомных объектов, со стандартными должно работать и в базе. Вот мой эксперимент на эту тему: http://www.axforum.info/forums/blog.php?b=337. Кроме того, посмотрите эту статью: http://blogs.msdn.com/b/crm/archive/...-subgrids.aspx.
а по поводу отображения продуктов несколько раз есть какая-нибудь информация?
изменив customization.xml (добавив следующие элементы в <NavBar>-узел) следующим образом:

Код:
<NavBarByRelationshipItem RelationshipName="hardcoded_{B7196B13-6B9D-42CD-BD58-B19A3953126F}navProducts" Id="navProducts" Area="Info" Sequence="105">
						<Titles>
						<Title LCID="1033" Text="Products" />
						</Titles>
					</NavBarByRelationshipItem>
<NavBarByRelationshipItem RelationshipName="hardcoded_{B7196B13-6B9D-42CD-BD58-B19A3953126F}navProducts" Id="navAddons" Area="Info" Sequence="106" AvailableOffline="1" Show="1" ViewId="4ABE9CFD-D18F-E211-A432-005056B21BF6">
						<Titles>
						<Title LCID="1033" Text="Add-ons" />
						</Titles>
					</NavBarByRelationshipItem>				
<NavBarByRelationshipItem RelationshipName="hardcoded_{B7196B13-6B9D-42CD-BD58-B19A3953126F}navProducts" Id="navFlightParticipations" Area="Info" Sequence="107" AvailableOffline="1" Show="1" ViewId="{EA6D54D6-D38F-E211-A432-005056B21BF6}">
						<Titles>
						<Title LCID="1033" Text="Flight participations" />
						</Titles>
					</NavBarByRelationshipItem>
получаем вот такую катину в редакторе форм:

а вот такая получается на самой форме:


т.е. повторно связь не отображается на самой форме
настройки системы могут как-то это контролировать/на это влиять?
Старый 21.03.2013, 18:03   #6  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
На это может влиять темин "hardcoded_". Однако, если в редакторе форм эта связь появилась, тогда скорее всего дело в том, что вы забыли опубликовать изменения или не сбросили кэш браузера.

В своих экспериментах я сталкивался с проблемой, когда при правке XML структуры навигации, элементы создавались с неправильным именем или не в том разделе. Однако это была еще не обновленная система.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 21.03.2013, 18:05   #7  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Если будет совсем туго, вы можете попробовать создать такой вот веб ресурс: Guru Prasad's Blog: Microsoft Dynamics CRM: Display Custom Advance Find view in Iframe in CRM 2011 и разместить его на панели навигации формы. Id текущей записи можно будет передавать параметром.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 21.03.2013, 19:11   #8  
spirius is offline
spirius
Участник
 
34 / 12 (1) ++
Регистрация: 27.02.2012
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Проблема устранена в 10м пакете обновления: The ViewId value of the NavBarByRelationshipItem setting is not respected for custom relationships. Однако она касается только кастомных объектов, со стандартными должно работать и в базе. Вот мой эксперимент на эту тему: http://www.axforum.info/forums/blog.php?b=337. Кроме того, посмотрите эту статью: http://blogs.msdn.com/b/crm/archive/...-subgrids.aspx.
Только что установил Update Rollup 11
изменил customizations.xml:
Код:
<NavBarByRelationshipItem RelationshipName="hardcoded_{B7196B13-6B9D-42CD-BD58-B19A3953126F}navProducts" Id="navProducts" Area="Info" Sequence="105" ViewId="{EA6D54D6-D38F-E211-A432-005056B21BF6}">
						<Titles>
						<Title LCID="1033" Text="Products1" />
						</Titles>
					</NavBarByRelationshipItem>
указал id необходимого view
//также пробовал: указать id без {}; указать имя связи order_details;

тем не менее, после импорта открывается "Order Product Associated View"


в вашем блоге вы говорите, что функциональность ViewId должна работать для стандартных связей. Order <->Order Product вроде бы такой является?
p.s. а вот для кастомной связи эта штука работать начала О_О

p.s. NavBarByRelationshipItem для продуктов в customization.xml не появляется автоматически. этот кусок нужно было вставлять руками - это нормальное поведение для стандартных связей?


возник попутный вопрос:
а используя JavaScript можно выбрать нужный View?
Xrm.Page.ui.navigation.items будет содержать все элементы панели навигации.
однако для каждого из этих элементов описаны лишь 6 методов, среди которых нету управления атрибутами.
значит ли это что другого использования не может быть?

Последний раз редактировалось spirius; 21.03.2013 в 19:56.
Старый 22.03.2013, 08:14   #9  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Цитата:
Сообщение от spirius Посмотреть сообщение
в вашем блоге вы говорите, что функциональность ViewId должна работать для стандартных связей. Order <->Order Product вроде бы такой является?
p.s. а вот для кастомной связи эта штука работать начала О_О
Читайте внимательнее, до установки 10 пакета функционал работает только для стандартных объектов, после установки для всех. Еще раз повторяю, ваша связь стандартная, но элемент навигации помечен как "hardcoded". Это значит что его работа "прошита" в коде системы, тут можно было лишь надеяться на удачу, но, видимо, чуда не случилось.
Цитата:
Сообщение от spirius Посмотреть сообщение
p.s. NavBarByRelationshipItem для продуктов в customization.xml не появляется автоматически. этот кусок нужно было вставлять руками - это нормальное поведение для стандартных связей?
В customization.xml попадают только изменения настроек стандартных объектов. Попробуйте что-то изменить на панели навигации - удалить, переименовать, поменять местами и тогда узел появится в экспорте. Возможно после этого и загрузится все правильно....
Цитата:
Сообщение от spirius Посмотреть сообщение
возник попутный вопрос:
а используя JavaScript можно выбрать нужный View?
Xrm.Page.ui.navigation.items будет содержать все элементы панели навигации.
однако для каждого из этих элементов описаны лишь 6 методов, среди которых нету управления атрибутами.
значит ли это что другого использования не может быть?
Используя JavaScript можно сделать все! Но системный API увы ограничен. Вы правы, там нет функций смены представлений на панели навигации, однако используя JavaScript DOM API вы можете найти нужный фрейм и попробовать добавить на событие загрузки страницы представления обработчик, который будет менять представление.

p.s. Я дал вам уже как минимум 2 альтернативных и работающих решения. Они точно вам не подходят?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 22.03.2013, 12:32   #10  
spirius is offline
spirius
Участник
 
34 / 12 (1) ++
Регистрация: 27.02.2012
Цитата:
p.s. Я дал вам уже как минимум 2 альтернативных и работающих решения. Они точно вам не подходят?
оба решения подразумевают хороший кодинг.
если помощью стандартной функциональности этого сделать нельзя, то тогда пойдут в ход они. (хотя затраты на реализацию >> потребности в этой реализации, в данном случае)

Цитата:
...Попробуйте что-то изменить на панели навигации -...
Вы правы! элемент действительно появляется в customization.xml:
X++:
                  <NavBarByRelationshipItem RelationshipName="hardcoded_{B7196B13-6B9D-42CD-BD58-B19A3953126F}navProducts" Sequence="0" Area="Info" Id="navProducts">
                    <Titles>
                      <Title LCID="1033" Text="Products Test" />
                    </Titles>
                  </NavBarByRelationshipItem>
и он автоматически использует hardcoded_... не смог найти никакой информации по воводу этого RelationshipName и где он хранится. думаю вы правы и проблема "неотображения" может быть спрятана именно тут. (в подтверждение этому - провел тест с кастомной связью - указал RelationshiName=НормальноеИмяСвязи... и все (почти) заработало - дополнительные секции появились и отобразились на форме)
Старый 22.03.2013, 14:07   #11  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Первый вариант подразумевает только правку XML что вы уже и так освоили: http://blogs.msdn.com/b/crm/archive/...-subgrids.aspx

Единственное ограничение - грид будет на форме, но это с легкостью можно назвать фитчей.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 26.03.2013, 11:19   #12  
spectr is offline
spectr
Участник
Аватар для spectr
MCBMSS
Лучший по профессии 2014
 
287 / 70 (3) ++++
Регистрация: 19.10.2011
Адрес: Киев
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Если будет совсем туго, вы можете попробовать создать такой вот веб ресурс: Guru Prasad's Blog: Microsoft Dynamics CRM: Display Custom Advance Find view in Iframe in CRM 2011 и разместить его на панели навигации формы. Id текущей записи можно будет передавать параметром.
Это плохой вариант но рабочий. Плохой он тем что в этом варианте можно попрощаться с риббоном, но если вам он и не нужен то этот вариант будет работать с любой даже не связанной сущностью.
Старый 29.03.2013, 10:08   #13  
spirius is offline
spirius
Участник
 
34 / 12 (1) ++
Регистрация: 27.02.2012
В данный момент пытаюсь сделать все используя JS.
добился интересного результата следующим образом:
1) на форму ордера добавил новый Navigation Link с любым URL
2) в OnLoad методе переопределить onclick событие:
PHP код:
var items Xrm.Page.ui.navigation.items.get();

for (var 
i in items)
{
  var 
item items[i];
  var 
itemLabel item.getLabel();
 
  
//Check if this is the navigation item we are looking for using the label name.
  
if(itemLabel == "AddOns")
  {
    var 
areaId item.getId();
    var 
navElement document.getElementById(areaId);
    if (
navElement != null && navElement != undefined)
    {
         
navElement.onclick = function ()
            {
                
loadArea('areaProducts');
            }
    }
  } 
3) получаем что по нажатию на новый navItem в панели навигации, будет открыватся список всех продуктов ордера:


дело осталось за малым - нужно изменить тип въюхи вверху страницы. несколько дней рысканья в js/html пока ничего не дали. через какое-то время опишу окончательный результат (если довьюсь его)

может кто-нибудь знает как изменить значение view через javascript?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
a33ik: MS CRM 2011: Embed context report to left navigation pane Blog bot Dynamics CRM: Blogs 0 26.05.2012 03:33
crminthefield: CRM 2011 Solution Import Fails with error “Object reference not set to an instance of an object” due to missing relationship “goal_DuplicateBaseRecord” Blog bot Dynamics CRM: Blogs 0 10.04.2012 22:11
Gareth Tucker: Working with Display Rules in CRM 2011–Ribbon Customisation Blog bot Dynamics CRM: Blogs 0 13.09.2011 10:11
CRM DE LA CREME! Some more useful javascripts for MS CRM Blog bot Dynamics CRM: Blogs 0 04.05.2010 11:05

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

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

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