问题
How can you create a simple dialog box in Dynamics ax?
回答1:
static void DialogSampleCode(Args _args)
{
Dialog dialog;
DialogField field;
;
dialog = new Dialog("My Dialog");
dialog.addText("Select your favorite customer:");
field = dialog.addField(typeid(CustAccount));
dialog.run();
if (dialog.closedOk())
{
info(field.value());
}
}
回答2:
for really simple dialog boxes, use the Box Class:
Box::info("your message");
or
Box::warning("your message");
or
if (Box::okCancel("continue?", DialogButton::Cancel) == DialogButton::Ok)
{
// pressed OK
...
or one of the other static methods (infoOnce
, yesNo
, yesNoCancel
, yesAllNoAllCancel
, ...)
回答3:
DAX 2012 does not have "typeid" as a method. But you can use extendedTypeStr and then pass in either a known EDT or use the built in string length versions:
str getStringFromUser(str _prompt, str _title)
{
str userResponse = "";
Dialog dlg = new Dialog(_title);
DialogField dlgUserResponse = dlg.addField(extendedTypeStr(String15), _prompt);
// This prompts the dialog
if (dlg.run())
{
try
{
userResponse = dlgUserResponse.value();
}
catch(Exception::Error)
{
error("An error occurred. Please try again.");
}
}
return userResponse;
}
来源:https://stackoverflow.com/questions/4379714/how-can-you-create-a-simple-dialog-box-in-dynamics-ax