2016-05-04 47 views
0

我想用另一个查找字段editorial(我的公司出售教科书)来筛选查找字段products如何将查找对象值传递给FetchXml查询?

我知道如何从查找对象中检索值,但我不知道如何将它们传递到我的fetchXml查询语句中。

function preFilterLookup() 
{ 
    Xrm.Page.getControl("new_editorialsearch").addPreSearch(function() { 

     var ediObject = Xrm.Page.getAttribute("new_editorialsearch").getValue(); 

     // Get the lookup Object, and extract the Value (ID and Text) 
     if(ediObject != null) 
     { 
      var ediTextValue = ediObject[0].name; 
      var ediID = ediObject[0].id; 

      // Filter products by editorial 
      fetchXml = "<filter type='and'><condition attribute='name' operator='eq' value='" + ediTextValue + "' /></filter>"; 

      // Apply the filter to the field 
      Xrm.Page.getControl("new_engpro").addCustomFilter(fetchXml); 
     }   
    }); 
} 

我知道我做错了什么,因为CRM不断告诉我,我的作用是不确定的,我看不到任何语法错误。

有人可以告诉我正确的方法将对象名称和ID传递到fetchXml语句吗?

+0

如果你得到的函数是未定义的错误,这可能不是一个问题,而是你如何调用'preFilterLookup'。在函数的开头放入一个'console.log(“running”);'语句来确保它实际上正在执行。如果这样做不能让你超越驼峰,请提供你收到的错误信息,并让我们知道你如何布置该事件。 – Polshgiant

+0

最初它是'onLoad',但我把它设置为'onChange'作'编辑',它不会给我一个错误,但它不会做我想要的。 'console.log(“running”)'显示**正在运行**,所以函数正在发生。我的'fetchXml'是否正确?我是否正确传递数据? –

+0

我不再收到错误'onLoad',但它不是过滤。我在'if'语句中放置了一条日志语句,它不显示任何内容。即使该字段有值,'if'语句似乎也会返回'null'。难道我做错了什么? –

回答

0

addCustomFilter只能从addPreSearch事件中调用相同的控件。因此,请致电new_engpro,致电new_editorialsearch,致电addPreSearch

相关问题