2015-06-04 9 views
6

Ich möchte eine CheckBox in meinem Dialog hinzufügen.Wie man CheckBox im Dialog hinzufügt und Wert erhält?

habe ich diesen 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)); 

, also in Debug ich den Wert der Variablen (Checkvalue) sehen immer NO.

auf Web-Tutorial habe ich diesen Code:

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

Aber ich habe einen Fehler Methode typeid nicht existieren.

Wie ist der Weg? Danke allen,

viel Spaß!

Antwort

8

Sie können nur typeId (AX 2009 und früher) oder extendedTypeStr (AX 2012) für erweiterte Datentypen (EDT) verwenden, nicht Enums wie NoYes. Es kann auf NoYesId verwendet werden, da es ein EDT ist.

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

Sie müssen Run aufrufen, bevor Sie den Wert sinnvoll erfassen können.

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)); 
} 
+0

Vielen Dank für Hilfe @JanB. Kjeldsen – ulisses

-1

identifierStr statt extendedTypeStr für mich gearbeitet (Ax 2012)

+0

Dies wird zu einer Best Practice-Warnung führen. "Verwenden Sie speziellere intrinsische Funktionen" –

0

Sie können enumStr() verwenden, wenn erweiterte Datentyp für ENUM nicht existiert, zum Beispiel:

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