我想在对话框中添加 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");
但我有一个错误方法类型不存在。
是什么方式? 谢谢大家,
享受!
答案 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)