次の方法で共有


コードの移行 - マウス ダブルクリック ロジック

コミュニティの関心グループが Yammer から Microsoft Viva Engage に移行されました。 Viva Engage コミュニティに参加し、最新のディスカッションに参加するには、「 Finance and Operations Viva Engage Community へのアクセスを要求する 」フォームに入力し、参加するコミュニティを選択します。

財務と運用において、mouseDblClick() オーバーライドは廃止され、このロジックを新しいコントロールに移動する必要があります。

Microsoft Dynamics AX 2012 では、さまざまな理由で、マウスをダブルクリックするイベントが使用されていました。 たとえば、より良いユーザー エクスペリエンスを提供するのを助け、特定のシナリオを実行する代替方法を提供しました。 共通の使用パターンの例を次に示します。

  • 2 つのリストまたはツリー コントロールの間での要素の移動
  • 選択したフィールドに関する詳細を取得するための新しいフォームを開いています
  • 複雑なビジネス ロジックを実行
  • ルックアップでフィールドを選択

戦略の概要

フォームの使用を開始する前に、「mouseDblClick コントロール メソッドは非推奨であり使用しないでください」というすべてのベスト プラクティス警告メッセージを修正することをお勧めします。 それ以外の場合、フォームが使えなくなるか、限られた方法で動作する可能性があります。

mouseDblClick() メソッドからのコードの移行

先に述べたように、Dynamics AX 2012 で mouseDblClick() メソッドを使用するさまざまな理由がありました。 このセクションでは、最も一般的なシナリオのいくつかを移行する方法について説明します。

2 つのリスト コントロール間での項目の移動

Dynamics AX 2012 では、2 つのリスト コントロールに並べて表示されるリスト パネル シナリオで、マウスのダブルクリックがよく使用されていました。 ユーザーが 1 つのリスト コントロール内の品目をダブルクリックした場合、その品目が 2 つ目のリスト コントロールに移動されました。 この mouseDblClick() への移行のシナリオには、リスト パネルのパターンへの配置が関係しています。 次のように、この使用パターンを移行するための 2 つのオプションがあります。

  • SysListPanel クラス自体を使用します。これは、2 つのリスト コントロール間でアイテムを移動するためのロジックとボタンを提供します。
  • SysListPanel クラス (リストが ListViews ではないため、またはクラスが特定の状況に適していないため)、リスト パネルのサブパターンに従ってコントロールを手動でモデル化できます。 このパターンには、リスト間でアイテムを移動するためのボタンが含まれていますが、開発者はこれらのボタンを動作させるための正しいロジックを追加する必要があります。

新しいフォームを開いています

Dynamics AX 2012 の別の一般的な使用パターンでは、ユーザーがフィールドをダブルクリックすると、そのフィールドに関する詳細な情報を表示する新規フォームが開きました。 次のように、この使用パターンを移行するためのいくつかのオプションがあります。

  • フィールドの詳細を表示するバッキング フォームを開くには、シングルクリックを使用します。 この機能は、テーブル関係に基づいている多くのフィールドで自動的に実装され、コントロールの jumpRef() メソッドをオーバーライドすることで手動で実装できます。 推奨される移行工順は、コードを mouseDblClick() から jumpRef() オーバーライドへ移動して、ナビゲーションがシステム内のその他のフィールドとつながるようにするためです。
  • フォームで新しいボタンをモデル化して、mouseDblClick() メソッドからボタンの clicked() メソッドにロジックを移動します。 この方法は、jumpRef() のオーバーライドが存在しない、非入力フィールド コントロール (たとえば、ツリー コントロール) に対してのみ使用する必要があります。
  • 右クリックのコンテキスト メニュー (ショートカット メニュー) オプションを追加します。 ただし、コンテキスト メニューのコマンドを指定する UX ガイドラインは、常にページの他の場所で使用できる必要があります。 詳細の表示コマンドは、jumpRef() メソッドを上書きしたコントロールの右クリック コンテキスト メニューに自動的に追加されます。 したがって、このアプローチは、以前の移行ルート (新しいボタンのモデリング) へのオプションの追加としてのみ使用する必要があります。 コンテキスト メニューのオプションを追加する方法の詳細については、 コードの移行 - コンテキスト メニュー コード を参照してください。

ボタン コントロールへのロジックの移動

Dynamics AX 2012 の別の一般的な使用パターンでは、ダブルクリックで複雑なビジネス ロジックを実行できました。 このシナリオで、優先される移行工順とは、フォームに新しいボタンをモデル化することであり、次にロジックを mouseDblClick() から新しいボタンの clicked() メソッドに移動します。

ルックアップでフィールドを選択

Dynamics AX 2012 の一部のカスタム ルックアップでは、ユーザーがグリッドの行 (またはツリーの要素) をダブルクリックして値を選択し、ルックアップを閉じることができるように、コードが追加されました。 このシナリオでは、推奨される移行工順とは、ルックアップ フォームの下部にある選択ボタンを追加し、レコード選択を有効にすることです。

UX ガイドライン

マウスのダブルクリック メソッドを移行する際、次のガイドラインを考慮する必要があります。

  • コントロール間で項目を移動するには、可能であれば SysListPanel クラスまたは ListPanel パターンを使用します。
  • マウスのダブルクリック ロジックに置き換わるボタンを追加するとき、できるだけ (コンテキストに依存する方法で) コントロールの近くにボタンを配置します。
  • 場合によっては、フォームを再設計して mouseDblClick() メソッド内に存在していたロジックに対応する必要があります。