如何在Dialog中添加checkBox并获取值?

时间:2015-06-04 08:05:42

标签: checkbox dialog axapta x++ dynamics-ax-2012

我想在对话框中添加 CheckBox

我使用了这段代码:

Dialog dialog;
DialogField dialogField;
NoYesId checkValue;
;
dialog = new Dialog("New dialog with checkBox");

dialogField = dialog.addFieldValue(identifierStr(NoYes) , checkValue);
checkValue= dialogField.value();
dialog.run();
info(strfmt("Value %1" , checkValue));

因此,在 Debug 中,我看到变量(checkValue)的值始终为NO。

在网络教程中,我看到了这段代码:

dialog.addFieldValue(typeid(NoYes), NoYes::Yes, "tip");

但我有一个错误方法类型不存在

是什么方式? 谢谢大家,

享受!

3 个答案:

答案 0 :(得分:8)

您只能对扩展数据类型(EDT)使用NoYes(AX 2009及更早版本)或NoYesId(AX 2012),而不能使用dialog.addFieldValue(typeid(NoYesId), NoYes::Yes, "Check"); 之类的枚举。它可以在Dialog dialog = new Dialog("New dialog with checkBox"); NoYesId checkValue = NoYes::No; DialogField dialogField = dialog.addFieldValue(extendedTypeStr(NoYesId), checkValue, "Check it"); if (dialog.run()) { checkValue = dialogField.value(); info(strfmt("Value %1" , checkValue)); } 上使用,因为它是EDT。

{{1}}

您必须先调用run才能有意义地获取值。

{{1}}

答案 1 :(得分:3)

如果枚举不存在扩展数据类型,则可以使用enumStr(),例如:

dialogField = dialog.addFieldValue(enumStr(NoYes), checkValue);

答案 2 :(得分:-1)

identifierStr而不是extendedTypeStr为我工作(Ax 2012)