使用iFrames我目前知道如何使用getId()函数将它们包含在CRM中的帐户中。我需要能够通过accountnumber来做到这一点。是否有功能或解决方案来实现这一目标?
感谢您的帮助!
萨姆
编辑:在采取glosrob的建议之后,我添加了get('accountnumber')行,让我更接近我想要的位置,但它没有产生正确的结果。这是我用来生成IFRAME的代码:function SetReport() {
var id = window.parent.Xrm.Page.data.entity.attributes.get('accountnumber')
var serverAndOrgUrl = '(*Company URL*)&AccountNumber=';
var mycmd = '&rs:Command=Render&rc:Toolbar=false'
var iframeSrc = serverAndOrgUrl + id + mycmd;
var report = document.createElement("iframe");
report.setAttribute('id', 'reportFrame');
report.setAttribute('name', 'reportFrame');
report.setAttribute('src', iframeSrc);
report.setAttribute('height', '100%');
report.setAttribute('width', '100%');
report.setAttribute('scrolling', 'auto');
report.setAttribute('frameborder', '0');
var reportDiv = document.createElement("div");
reportDiv.setAttribute('height', '100%');
reportDiv.setAttribute('width', '100%');
reportDiv.appendChild(report);
document.body.appendChild(reportDiv);
function ShowFrame() {
if(report.readyState == "complete") {
menubar = report.contentWindow.document.getElementById('mnuBar1');
if(menubar != null) {
menubar.style.display = "none";
}
editFilter = report.contentWindow.document.getElementById('trEditFilter');
if(editFilter != null) {
editFilter.style.display = "none";
}
}
}
}
生成了IFRAME,但没有数据出现在应该有数据的帐户上。这让我觉得帐号不匹配。
任何帮助将不胜感激!
谢谢,
萨姆
答案 0 :(得分:0)
您可以在Communicating between IFRAME and an entity
使用此方法基本上,您可以访问父表单的Xrm
对象,这意味着您可以使用以下内容访问accountnumber
属性:
parent.window.Xrm.Page.data.entity.attributes.get('accountnumber')
编辑:刚看到你的评论......
我把那个警报放在那里,它以'undefined'的形式返回。对于帐号,您可以从表单上的字段中获取值。
这两者是相关的。您需要在表单上使用accountnumber
,即使它已被隐藏。
您可能还需要取消选中表单属性上的“限制跨站点脚本”。
此外,在创建表单上隐藏iframe,因为不存在帐号
是的,如果帐户尚未创建,那么显然没有相关数据需要检索,这样做会浪费时间 - 不确定我还有更多要添加的内容吗?
要测试表单是否处于创建模式,您可以使用
Xrm.Page.ui.getFormType() == 1//CREATE MODE
请参阅here
您可以测试创建模式,然后显示/隐藏该部分,具体取决于它是否处于创建模式。
答案 1 :(得分:0)
你问的以下几行是获取accountnumber属性对象:
var id = window.parent.Xrm.Page.data.entity.attributes.get('accountnumber')
这需要更新才能获取帐户编号的值,以便您可以在报告网址中使用它:
var id = window.parent.Xrm.Page.data.entity.attributes.get('accountnumber').getValue()