コンボボックスが列挙型「ABC」にリンクされているとします。その中の要素はA、BC、Dです。
今、私はコンボボックスでAとCだけを取得する必要があり、BとDは取得する必要はありませんか?
これは可能ですか?
簡単です。フォームにrunメソッドを作成し、次のように入力します。
public void run()
{
super();
YourCombo.delete(enum2str(YourEnum::B));
YourCombo.delete(enum2str(YourEnum::D));
}
よろしく
列挙値またはコンボボックス値を削除することはできません。
列挙型を複製してから、要素を削除するか、順序を変更できます(ただし、列挙型の値は変更できません)。将来の変更と同期した両方の列挙型を維持するのはあなたの責任です。
互換性のない別の列挙型に列挙型を割り当てるには、それにゼロを追加するだけです。
abc = myAbc + 0;
または、プログラミングを使用してコンボボックスを更新できます(列挙型を指定せずにコンボボックスを使用)。
YourComboBox.add("A");
YourComboBox.add("C");
コンボボックスへの新しい値の追加については、DynamicsAXのパラメーターとしての列挙型も参照してください。
実行時に列挙値を削除することはできませんが、アプリケーション全体の列挙値を非表示にすることは可能です。列挙値のConfiguratioKeyを「SysDeletedObjects40」に変更するだけで、有効な値として表示されなくなります。この構成キーが有効になっていないと想定します。
両方を組み合わせて使います!combobox.addを実行しますが、列挙型から値を取得し、不要な値を除外します。これにより、列挙型を反復処理し、これを小さなコードと組み合わせると、次のように設定できます。
static void Job23(Args _args)
{
SysDictEnum sysDictEnum;
int i;
;
sysDictEnum = new SysDictEnum(EnumNum(SalesStatus));
for (i=0; i<sysDictEnum.values(); i++)
{
info(strfmt("%1", sysDictEnum.index2Label(i)));
}
}