8

I want to add a CheckBox in my Dialog.

I used this code:

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));

So, in Debug I see the value of the variable (checkValue) always NO .

On web-tutorial I saw this code:

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

But I have an error Method typeid not exist .

What is the way? Thanks all,

enjoy!

ulisses
  • 1,347
  • 1
  • 31
  • 69

3 Answers3

11

You can only use typeId (AX 2009 and before) or extendedTypeStr (AX 2012) on extended data types (EDT), not enums like NoYes. It can be used on NoYesId, as it is an EDT.

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

You must call run before you can meaningful acquire the value.

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));
}
Jan B. Kjeldsen
  • 17,339
  • 5
  • 30
  • 49
4

You can use enumStr() if extended data type does not exists for enum, e.g:

dialogField = dialog.addFieldValue(enumStr(NoYes), checkValue);
Aliaksandr Maksimau
  • 2,196
  • 9
  • 20
0

identifierStr instead of extendedTypeStr worked for me (Ax 2012)

Walid
  • 19
  • 1