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

uli*_*ses 6 checkbox dialog x++ axapta 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));
Run Code Online (Sandbox Code Playgroud)

所以,在Debug中我看到变量(checkValue)的值始终为NO.

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

dialog.addFieldValue(typeid(NoYes), NoYes::Yes, "tip");
Run Code Online (Sandbox Code Playgroud)

但我有一个错误方法typeid不存在.

这是什么方式?谢谢大家,

请享用!

Jan*_*sen 8

您只能在扩展数据类型(EDT)上使用typeId(AX 2009及之前版本)或extendedTypeStr(AX 2012),而不能使用类似的枚举NoYes.它可以用于NoYesId,因为它是EDT.

dialog.addFieldValue(typeid(NoYesId), NoYes::Yes, "Check");
Run Code Online (Sandbox Code Playgroud)

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

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));
}
Run Code Online (Sandbox Code Playgroud)