1

CRM 2011 でフィルター処理されたサブ グリッドを作成しようとしています。作成方法を説明する次のリンクを見つけました: http://community.dynamics.com/product/crm/f/117/p/76157/140281.aspx

これは、コードをビルドするために推奨される方法です。

var relatedOHSOrders = document.getElementById("OHSOrderSubGrid_d"); //Set Subgrid Id
var fetchXml = "..."
relatedOHSOrders.control.setParameter("fetchXml", fetchXml);

私が抱えている問題は、私が取得Object does not support .setParameter property or methodし、それをデバッグすると、念のためにrelatedOHSOrders.control. ロールアップ11をアンインストールして再インストールしましたが、それでも同じ問題が発生することです!

setParameter を使用する他の方法を試したことに注意してください。以下のコードも機能しません

Xrm.Page.getControl("OHSOrderSubGrid")._control.get_innerControl();
relatedOHSOrders.setParameter("fetchXml", fetchXml);

誰もがこのコードを使用してフィルターサブグリッドを持っているようですが、それが表示されないという問題が何であるかはわかりません。

ヘルプや提案をお寄せいただきありがとうございます。

4

3 に答える 3

3

ご承知のとおり、オンプレミスの Microsoft Dynamics CRM の最新の更新プログラムのロールアップと Microsoft Dynamics CRM Online のサービスの更新プログラムには、さまざまなブラウザーをサポートできるようにするための Web アプリケーションの大幅な変更が含まれています。この記事をご覧ください: http://support.microsoft.com/kb/2795627

使用しようとしているスクリプトは、CRM の以前の RUP バージョンで動作していました。setParameter関数は使用できなくなりました。代わりにSetParameterを使用できるようになりました。幸い、リフレッシュ機能は引き続き利用できます。したがって、コード内の関数名を変更すると機能します。

于 2013-01-30T13:54:03.053 に答える
2

私は自分の質問に対する答えを自分で見つけました。以下のコードは完全に機能します

function setOhsOrderGrid()
{
   var relatedOrders = document.getElementById("OrderSubGrid"); //Set Subgrid Id

    //If this method is called from the form OnLoad, make sure that the grid is loaded before   proceeding
    if (relatedOrders == null || relatedOrders.readyState != "complete") {
        //The subgrid hasn't loaded, wait 1 second and then try again
        setTimeout('setOhsOrderGrid()', 1000);
        return;
    }

    var fetchXml = "<?xml version='1.0'?>";
    fetchXml += "<fetch distinct='false' mapping='logical' output-format='xml-platform'    version='1.0'>"; 
    fetchXml += "<entity name='new_ohsorder'> <attribute name='new_orderid'/>";
    fetchXml += "<attribute name='new_order_no'/>";
    fetchXml += "<attribute name='createdon'/>"; 
    fetchXml += "<order descending='false' attribute='new_order_no'/>";
    fetchXml += "<filter type='and'> <condition attribute='new_clientcontactid' value='{1E9A621B-ACA1-E011-9A67-005056A8002D}' uitype='new_clientcontact' uiname='OHS-000001-6FBC4-CCR-01' operator='eq'/>";
    fetchXml += "</filter>";
    fetchXml += "</entity>";
    fetchXml += " </fetch>";

    relatedOrders.control.setParameter("fetchXml", fetchXml); --> It breaks
   relatedOrders.control.refresh();  --> It breaks

}; 

setOhsOrderGrid();


var relatedOrders = document.getElementById( "OrderSubGrid_d")をvar relatedOrders = document.getElementById( "OrderSubGrid")に変更する必要がありました


setParameterはサポートされていないというコメントがありました。なぜ、どうやってそれを知ることができたのかわかりません。setParameter document.getElementById( "OrderSubGrid")。control.setParameter !!! 誰かが何か考えを持っていますか?そして、サポートされている方法でフィルターサブグリッドをコーディングする方法を誰かが知っているのだろうか!??

于 2013-01-11T20:28:06.640 に答える
0

control.setParameterをに置き換えるだけcontrol.SetParameterです。

詳細については、このMSDN の記事をご覧ください。

于 2015-04-23T13:01:26.887 に答える