2015年8月21日金曜日

[AX2012][Dev] クラスから既存のFormの操作を実行する方法

カスタムクラスからFormを表示しないで、既存のFormの操作を実行する方法

この処理は主にフォームで入力してデータを作成する流れをトレースしてデータを作成したい場合に有効(だと思う)。

大まかな流れ
  1. Args クラスを使って対象Formを呼び出すのに必要なパラメーターを設定する
  2. FormRun クラスをnewする際に1で用意したargsを渡す。
  3. インスタンス化したFormRunでデータの作成に必要なFormのメソッドを実行していく。

具体例

Args        xargs;
FormRun  xFRun;

xargs = new Args( fromStr(formName) );
xargs.parmEnumType( enumNum(enumName) );
xargs.parmEnum(xargs.ParmEnum() );

xFRun = new FormRun(xargs);
xFRun.init();

xFRun.dataSource().create();

xFrun.dataSource().object( fieldNum(TableName, FieldName) ).setValue(value);
xFrun.dataSource().object( fieldNum(TableName, FieldName) ).modified();

ちなみにForm操作中にロックの掛かる仕訳帳明細行系画面は、操作中はロックされるので、
操作のあとxFRun.close()でformRunオブジェクトを閉じて、ロックを解除するのを忘れずに。

0 件のコメント:

コメントを投稿