アクサプタ:フォームのライフサイクルに関する質問
質問
グリッド内にネストされたウィンドウに画像アイコンを手動で入力しようとしています。
実行イベントでは、フィールドにはまだ値が設定されていないように見えます。文字列コントロールは常に空の値を返します。このコードにもっと適した場所はありますか?.NET では、データバインドされたイベントを使用します。AX に同等のものはありますか?
void run()
{
FormStringControl s = element.control(control::ABC_Icons_FileName);
FormWindowControl w = element.control(control::ABC_Window);
;
w.imageName(s.valueStr());
super();
}
ありがとう
解決
タスクを正しく理解していれば、グリッドの各行に画像を表示したいということですか?それから:
form.init() で ImageList を作成します。
imageList = new ImageList(ImageList::smallIconWidth(), ImageList::smallIconHeight(); Image image = new Image(); ; image.loadImage(filename) imageList.add(image); // ... image.loadImage(filename-n) imageList.add(image);
ImageList は ClassDEclaration セクションで宣言する必要があります。
グリッドの Window フィールドの AutoDaclaration プロパティを「Yes」に設定します。
フォームの init() メソッドで window フィールドの ImageList を設定します。
MyWindow.imageList(imageList);
フォームで使用しているテーブルで表示メソッドを作成します。このようなもの:
display int status() { if(this.amount > 10) return 5; // 5th image from image list else return 6; }
ウィンドウ コントロールのプロパティ DataSource および DataMethod を設定します。
DataSource = dataMethod = status
さらに例が必要な場合は、フォーム ReqTransPo を参照してください。
所属していません StackOverflow