我有3个实体,例如Member,LongList和ShortList。这两个列表都与成员实体具有多对多关系。我将成员添加到LongList中,并且可以在多个LongList中添加成员。
用户将从他/她将选择的LongList成员中创建ShortList。我可以创建视图以根据特定LongList的成员资格过滤成员,但是我不能在用户端进行选择,只能为创建的每个LongList创建不同的视图,这不是一个好情况,因为LongLists也可以由用户创建。
有没有一种方法可以让用户确定他/她将要查看的列表成员?它的工作方式类似于,一个下拉列表选择“ In Long List”视图,另一个下拉列表选择哪个LongList。
简短的答案是,如果没有一些JavaScript的帮助,您将无法做到这一点。
您需要采取一些步骤来实现此目的,首先,您不能添加额外的“下拉列表”,这样用户就可以选择要过滤的长列表。但是,您可以做的是将一些自定义视图添加到查找窗口。因此,您的目标将是这样的:在查找表单上,展开“视图”选择列表。我们可以使用JavaScript为此添加自定义视图。
首先,让我给您一个示例,说明如何执行此自定义视图部分。对于我们的示例,我做了以下假设:
new_member
,new_shortlist
和new_longlist
。用于添加自定义视图的JavaScript如下所示:
function addCustomLonglistView(longlist) {
// Create a view id and a view name
var viewId = "{A2D479C5-53E3-4C69-ADDD-802327E67A0D}";
var viewDisplayName = longlist.New_Name + " members";
// Prepare the fetch xml for the lookup view
var fetchXml =
'<fetch mapping="logical" count="250" version="1.0">' +
'<entity name="new_member">' +
'<attribute name="new_memberid" />' +
'<attribute name="new_name" />' +
'<link-entity name="new_longlist" from="new_memberid" to="new_memberid">' +
'<filter>' +
'<condition attribute="new_longlistid" operator="eq" value="' + longlist.Id + '" />' +
'</filter>' +
'</link-entity>' +
'</entity>' +
'</fetch>';
var layoutXml = '<grid name="resultset" object="1" jump="new_name" select="1" icon="1" preview="1"><row name="result" id="new_memberid"><cell name="new_name" width="300" /></row></grid>';
Xrm.Page.getControl("new_memberfield").addCustomView(viewId, "new_member", viewDisplayName, fetchXml, layoutXml, true);
Xrm.Page.getControl("new_memberfield").setDefaultView(viewId);
}
这使您参与其中。缺少的部分是如何将其添加到按钮上的?有点棘手。幸运的是,我找到了另一个stackoverflow答案,应该可以为您解决这个问题:
从评论更新。
有关开发人员培训和SDK的一些链接:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句