2011-06-09 86 views
3

我有一对自定义实体,它们使用包含一些链接属性的链接实体链接在一起,具有多对多关系。为了清晰起见,我们称这些超级英雄和Supervillain,并且链接将是战斗。Dynamics CRM 2011 - 更改相关实体列表的视图

(Superhero) 1 --------- * (Fight) * -------- 1 (Supervillain) 

也就是说,每一个战斗英雄1和1个超级大间,每个超级英雄/ suppervillain组合可以有任意数量的战斗也许不同类型的 - 剑,拳等

所有简单的东西至今。实际上,我在这里做的是再现新的“连接”功能,但使用只适用于Superheros和Supervillains的自定义链接类型。原因是我想将这些显示为表单左侧的单独导航项目,而不是将它们全部放在“连接”下。

现在,从超级英雄的形式,当我看着左侧窗格中的相关实体时,我想显示一个战斗列表,以及超级英雄正在战斗的Supervillain。很简单,我可以自定义“扑灭相关视图”以显示扑灭类型和Supervillain实体。这让我直接点击超级英雄到他正在战斗的Supervillain。

但是如果我想从Supervillain做同样的事情呢? Supervillains也显示了相同的“扑灭相关视图”,但需要定制以显示斗争类型和相关的超级英雄......但是,我不想要“一刀切”的相关视图,超级英雄和Supervillain领域。

我希望关联的视图根据我是在看超级英雄还是在Supervillain而改变。所以我创建了两个新视图,每个视图都有所需的列。我现在可以手动在每个实体中选择相关列表时切换到这些视图。这工作正常,但我不希望每次看到相关战斗时手动步骤。

所以,最后我得到的问题点:我怎样才能自动(即通过脚本,如果需要的话)选择将显示,对与超级英雄和的supervillains战斗默认的“关联”的说法,依赖于实体类型?

使用表单脚本,我可以得到的导航项目很轻松了,但在那之后,我失去了:

function SuperHero_OnLoad() 
{ 
    var fightItem = Xrm.Page.ui.navigation.items.get("nav_new_fight"); 
    // What next?! 
    fightItem.MagicFunctionThatSelectsADefaultViewOrHacksIntoTheIframeParametersOrSomething(); 
} 

注:我知道我可以在主编辑表单使用分格,它可以让你选择要显示的视图,但我不想用更多的子网格阻塞表单。我想使用窗体左侧的相关树。

+1

好的,所以我在文档[这里](http://msdn.microsoft.com/en-us/library/gg328217)中找到,您可以通过编辑 '在Customizations.xml中添加一个'ViewId'属性。 唯一的问题是,这是行不通的。其中,tbh是一个相当大的问题。 – Mark 2011-06-09 16:12:42

+0

为了清楚起见,您希望显示窗体左侧的导航项(如果您打开SuperHero)显示不同的关联视图,而不是如果您打开SuperVill表单? 我记得摆弄周围的地图,并与像这样创建一个导航项目: HTTP://url/ORG/main.aspx?etn=new_entity&pagetype=entitylist&viewid=%7b550DB1BB-9AF4-42A1-856E-4CAE35A5EB3A% 7d&viewtype = 1039 所以它会直接进入视图。我发现,直接指向视图似乎有问题,但(它会重新打开网站内的整个网站)。 – ryanjones 2011-06-09 17:55:28

+0

没错。因此,在CRM 2011中,有一项新功能允许用户从列表中的下拉列表中选择1:N关系项目的视图。我只想根据父实体的类型指定默认视图。 'ViewId'应该这样做,但它不适合我。任何人都有幸运? – Mark 2011-06-10 08:00:12

回答

3

Customizations.xml中的ViewId可以工作,但您提出的问题太早;-) 有一个在Update Rollup 10及以上解决的错误。在更新之前,我遇到了同样的问题。

+0

很高兴知道。谢谢! – Mark 2012-11-12 15:45:34