Dynamics 365 の財務ディメンションのルックアップ フィールドを作成する
出版された: 2025年2月16日 11:33:48 UTC
最終更新日 2026年1月12日 8:56:10 UTC
この記事では、X++ コード例を含め、Dynamics 365 for Operations で財務分析コードのルックアップ フィールドを作成する方法について説明します。
Creating a Lookup Field for a Financial Dimension in Dynamics 365
この記事の情報は Dynamics 365 for Operations に基づいていますが、そのほとんどは Dynamics AX 2012 でも機能します (下記参照)。
最近、単一の財務ディメンション(この場合は製品)を指定できる新しいフィールドを作成するという課題がありました。もちろん、この新しいフィールドでは、このディメンションの有効な値を参照できる必要があります。
これはテーブル内の通常の検索よりも少し複雑ですが、やり方がわかっていれば、実際にはそれほど難しくありません。
幸いなことに、標準アプリケーションには、ルックアップするディメンション属性を指定するだけで、この目的に使用できる便利なルックアップ フォーム (DimensionLookup) が用意されています。
まず、フォームフィールド自体を作成する必要があります。これはテーブルフィールドまたは編集メソッドに基づいて作成できます。ルックアップ自体には影響しませんが、いずれにしてもDimensionValue拡張データ型を使用する必要があります。
次に、フィールドのOnLookupイベントハンドラを作成する必要があります。イベントハンドラを作成するには、フィールドのOnLookupイベントを右クリックし、「イベントハンドラメソッドのコピー」を選択します。空のイベントハンドラメソッドをクラスに貼り付け、そこから編集できます。
注意: これのほとんどは Dynamics AX 2012 でも機能しますが、イベント ハンドラーを作成する代わりに、フォーム フィールドのルックアップ メソッドをオーバーライドできます。
イベント ハンドラーは次のようになります (必要に応じてフォーム名とフィールド名を置き換えます)。
FormControlEventHandler(formControlStr( MyForm,
MyProductDimField),
FormControlEventType::Lookup)
]
public static void MyProductDimField_OnLookup( FormControl _sender,
FormControlEventArgs _e)
{
FormStringControl control;
Args args;
FormRun formRun;
DimensionAttribute dimAttribute;
;
dimAttribute = DimensionAttribute::findByName('Product');
args = new Args();
args.record(dimAttribute);
args.caller(_sender);
args.name(formStr(DimensionLookup));
formRun = classFactory.formRunClass(args);formRun.init();
control = _sender as FormStringControl;
control.performFormLookup(formRun);
}
さらに読む
この投稿が気に入った場合は、次の提案も気に入るかもしれません:
- Dynamics 365 FO 仮想マシンの開発またはテストをメンテナンス モードにする
- Dynamics 365 の X++ コードから財務分析コード値を更新する
- 最近のプロジェクトをロード中にVisual Studioが起動時にハングする
