1

iFrames では、getId() 関数を使用して CRM のアカウントに含める方法を現在知っています。代わりにアカウント番号でこれを行う必要があります。これを達成するための機能またはソリューションはありますか?

助けてくれてありがとう!

-サム

編集: 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 は生成されますが、データがあるはずのアカウントにデータが表示されません。口座番号が正しく一致していないと思われます。

どんな助けでも大歓迎です!

ありがとう、

-サム

4

2 に答える 2

0

ここでアプローチを使用できますIFRAME とエンティティ間の通信

基本的に、親フォームのXrmオブジェクトにアクセスできます。つまり、次のaccountnumberようなプロパティにアクセスできます。

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

編集:あなたのコメントを見たところ...

そこにそのアラートを入れたところ、「未定義」で戻ってきました。アカウント番号については、フォームのフィールドから値を取得します。

この2つは関連しているでしょう。accountnumber非表示であっても、フォーム上にが必要です。

フォームのプロパティで [クロス サイト スクリプティングを制限する] のチェックを外す必要がある場合もあります。

また、アカウント番号が存在しないため、作成フォームの iframe を非表示にします

そうです、アカウントが作成されていない場合は、取得する関連データがないことは明らかです。そのため、取得するのは時間の無駄になります。さらに追加する必要があるかどうかわかりませんか?

フォームが作成モードかどうかをテストするには、次を使用できます

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

こちらをご覧ください

作成モードをテストしてから、作成モードかどうかに応じてセクションを表示/非表示にすることができます。

于 2013-02-05T20:11:15.053 に答える
0

あなたの質問の次の行は、accountnumber 属性オブジェクトを取得しています。

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

accountnumber の値を取得してレポート URL で使用できるようにするには、これを更新する必要があります。

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