0

フォームにサブグリッドがあり、javascript を使用して動的に生成された fetchxml クエリを割り当てます。ユーザーがサブグリッドの「ポップアウト」ボタンをクリックすると、クエリが失われ、そのエンティティの既定のビューが表示されます。

ユーザーは、複数選択と一括編集を実行できる必要があります。私の知る限り、これは CRM 2013 以降のサブグリッドでは不可能です。ポップアウトされたときにクエリを保持する方法はありますか?

4

2 に答える 2

1

ポップアウトされたグリッドを操作する方法はサポートされていません。クライアント側のアプリケーション コードを掘り下げ始めると、新しいウィンドウへのフックを見つけることができるかもしれませんが、そうすることはサポートされておらず、破損する可能性があるため、お勧めしません。

ユーザーが一括編集のためにポップアウトされたグリッドを使用する必要があることを再読する前に、エンティティのサブグリッドでそのポップアウト ボタンを完全に非表示にすることをお勧めします。

その場合、最善の選択肢は、JS を捨てて、サブエンティティに対して RetrieveMultiple プラグインに移行することです。RetrieveMultiple プラグインは一般的に避けるべきですが、あなたの場合のように聞こえるので、それが唯一の選択肢です。

そして、徹底的にするために、サブグリッドの動的フェッチが必要だと確信していますか? たとえ完璧でなくても、あなたの要件に十分に近づくビューを思いつく方法はありますか?

更新: コメントで提供された追加情報に基づいて、次の 2 つのオプションしか考えられません。

  1. 複数選択と一括編集を可能にするカスタム グリッドを実装するか、そこにある無料のグリッドの 1 つを変更します。
  2. カスタム Web アプリはユーザーの基準を取得し、ユーザーの個人用ビュー (エンティティ: userquery) を作成してデータベースに保存します。次に、フォーム上の JS がグリッドをそのビューに設定します。

    あなたはこれを好きにすることができます:

    document.getElementById("someGridId").control.SetParameter("viewtype", "4230"); // 4230 is the objecttypecode for userquery
    document.getElementById("someGridId").control.SetParameter("viewid", "{11310965-0306-E611-80E5-3863BB36DD08}");
    

    これを行うと、実際にポップアウトされたグリッドに個人用ビューが読み込まれますが、私のテストでは、グリッドを更新しようとするとグリッドが混乱します。

    このアプローチには明らかな欠点があります。1) 生成された個人用ビューをクリーンアップする方法を考え出す必要があります。2) グリッドが更新時に壊れる可能性があります。3) グリッドはサポートされておらず、更新時に壊れる可能性があります。

    それでも検討する価値はあると思います。

于 2016-04-18T06:02:36.473 に答える
1

サポートされていない getElementById を使用する代わりに、よりサポートされている方法は、プラグインをエンティティの複数の取得にフックし、そこでクエリを修正することです。

クリス

于 2016-06-22T13:38:59.087 に答える