帐号与帐号-Dynamics CRM中的iFrames

Account Number vs Accountid - iFrames in Dynamics CRM

本文关键字:帐号 iFrames 中的 -Dynamics CRM      更新时间:2023-09-26

使用iFrame,我目前知道如何使用getId()函数将它们包含在CRM中的帐户中。我需要能够通过帐号来做这件事。有没有一种功能或解决方案可以实现这一点?

谢谢你的帮助!

-Sam

编辑:在听取了glosrob的建议后,我添加了get("帐号")行,这让我更接近我想要的位置,但它并没有产生正确的结果。以下是我用来生成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已生成,但在应有数据的账户上没有显示任何数据。这让我觉得帐号不匹配。

任何帮助都将不胜感激!

谢谢,

-Sam

您可以使用此处的方法在IFRAME和实体之间进行通信

本质上,您可以访问父窗体的Xrm对象,这意味着您可以使用以下内容访问accountnumber属性:

parent.window.Xrm.Page.data.entity.attributes.get('accountnumber')

编辑:刚刚看到你的评论。。。

我把警报放在那里,结果是"未定义"。对于帐号,您可以从表单上的字段中获取值。

这两者是相关的。您需要在表单上有accountnumber,即使它是隐藏的。

您可能还需要取消选中表单属性上的"限制跨站点脚本"。

此外,在创建表单上隐藏iframe,因为不存在帐号

好吧,是的,如果账户还没有创建,那么显然没有相关的数据可以检索,所以这样做会浪费时间——不确定我还有更多的内容要添加吗?

要测试表单是否处于创建模式,可以使用

Xrm.Page.ui.getFormType() == 1//CREATE MODE

参见此处

您可以测试创建模式,然后根据是否处于创建模式显示/隐藏节。

问题中的以下行是获取accountnumber属性对象:

var id = window.parent.Xrm.Page.data.entity.attributes.get('accountnumber')

这需要更新,以便获得帐号的值,以便您可以在报告URL:中使用它

var id = window.parent.Xrm.Page.data.entity.attributes.get('accountnumber').getValue()