1

使用 iFrames,我目前知道如何使用 getId() 函数将它们包含在 CRM 中的帐户中。我需要能够通过帐号来执行此操作。是否有功能或解决方案可以实现这一目标?

感谢所有的帮助!

-山姆

编辑:在接受 glossrob 的建议后,我添加了 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 已生成,但没有数据显示在应有数据的帐户上。这让我觉得帐号没有正确匹配。

任何帮助,将不胜感激!

谢谢,

-山姆

4

2 回答 2

0

The following line in you question is getting the accountnumber attribute object:

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

This needs to be updated in order to get the value of the accountnumber so that you can use it in your report URL:

var id = window.parent.Xrm.Page.data.entity.attributes.get('accountnumber').getValue()
于 2013-02-11T12:48:02.253 回答
0

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

本质上,您可以访问父表单的Xrm对象,这意味着您可以通过以下方式访问该accountnumber属性:

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

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

我把那个警报放在那里,它回来了'未定义'。对于帐号,您可以从表单上的字段中获取值。

这两个应该是相关的。accountnumber即使它是隐藏的,你也需要在表单上。

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

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

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

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

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

这里

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

于 2013-02-05T20:11:15.053 回答