MS Dynamics CRM 2011,从其他表单获取子网格元素

时间:2015-03-31 09:46:16

标签: dynamics-crm-2011 crm jscript subgrid

我是jscript的新手,并且在子网格中获取所有元素时遇到问题。 我尝试了这些网站的代码,

Retrieve rows in crm2011 subgrid with JScript

https://lakshmanindian.wordpress.com/2012/05/25/retrieve-subgrid-rows-in-crm-2011-using-jscript/

但每次都会收到错误消息:

翻译


字段的用户定义事件出错

字段:窗口

事件:onload

错误:无法调用未定义或空引用的首选项“控件”。


我试过的最后一个代码:

var grid = document.getElementById("accountContactsGrid").control;
for (var rowNo = 0; rowNo<grid.getRecordsFromInnerGrid().length; rowNo++)
  for (var cellNo = 0; cellNo<grid.getRecordsFromInnerGrid()[rowNo][3].cells.length; cellNo++)
     alert(grid.getRecordsFromInnerGrid()[rowNo][3].cells[cellNo].outerText);

我在实体帐户(公司)中使用子网格“accountContactsGrid”进行了尝试。

我的主要目标是捕获帐户表单中的所有已分配元素,并将其列在联系人表单下。但只有激活了复选框“Eko”。

到目前为止,这是我的工作代码:

var chkEko = Xrm.Page.getAttribute("testcrm_ekonomi").getValue();
if (chkEko === true)
{
    alert("Eko active: " + chkEko);
}
else
{
    alert("Eko not active: " + chkEko);
}

2 个答案:

答案 0 :(得分:0)

经过一段时间和一些线程的帮助,我能够获得这个网格的信息。但现在我有问题要抓住这些元素。 我查找变量“grid”,发现变量是一个Object。 因为我真的不知道对象的属性,所以我试图把它全部搞定。 但似乎我的代码不起作用,我无法理解为什么。 这是迄今为止的代码:

function subgridItemCount() {

// Get the Subgrid Control
var grid = Xrm.Page.ui.controls.get('accountContactsGrid')._control;

var keys = Object.keys(grid);

var getKeys = function(obj){
    var keys = [];
    for(var key in obj){
        keys.push(key);
    }
    return keys;
}
    for(var i = 0; i<keys.length; i++) {
    document.write(keys[i]);    
    }
}

首先,我想获取对象的属性,然后获取propertyValue。 或者是否有其他方法可以获取对象的所有值?

答案 1 :(得分:0)

好像我走错了路。这就是我尝试做的事情:

在帐户/公司表单中是一个名为“联系人”的现有网格。在此字段中分配了一些联系人(使用按钮&#34;添加现有联系人&#34;)。

现在当我打开一些联系人时,应该有一个box / grid / iframe,其中列出了所有公司的联系人。

此列表应链接到公司(当我点击它们时,CRM应该打开表单)。

也许有人可以给我一个提示? 我的计划是首先寻找所有公司,然后将分配的联系人与打开的联系人与一些Jscript进行比较。然后,脚本应列出联系表单中所有匹配的联系人。

这种方式并不是真正有效,因为脚本需要先读取所有公司。但我不知道另一种方式......