在AX 2012中创建一个带有对话框的按钮

时间:2017-01-11 11:32:42

标签: axapta x++ dynamics-ax-2012-r2

我想制作一个Button。

我有一个EDT“Resigning”,它无法编辑,只能编辑一次,当我按下按钮时。 单击按钮时,对话框将弹出我可以输入日期的位置。

我必须写一堂课,但我正在努力奋斗......

善意的问候

Khashayar

2 个答案:

答案 0 :(得分:1)

您可以在按钮的clicked方法中编写代码。

这是一项简单的工作:

static void StackOverflow(Args _args)
{
    Dialog                     dialog;
    DialogField                dialogDate;
    date                       newDate;    
    ;
    dialog     = new Dialog("Set new date");
    dialogDate = dialog.addField(ExtendedTypeStr("YourEDTName"), "New date:");        
    if (dialog.run())
    {    
        newDate = dialogDate.value(); //Get value of new date.        
        //Here code to update your table                
    }
}

答案 1 :(得分:0)

为防止覆盖现有值,您可以按以下方式修改方法:

public void clicked()
{
    Dialog                     dialog;
    DialogField                dialogDate;
    date                       newDate;    
    ;

    if (EmploymentTable.Resigning == dateNull())
    {
        dialog     = new Dialog("Set new date");
        dialogDate = dialog.addField(ExtendedTypeStr("YourEDTName"), "New date:");        
        if (dialog.run())
        {    
            newDate = dialogDate.value(); //Get value of new date.        
            //Here code to update your table                
        }
    }
    else
    {
        warning("Value already exists.");
    }
}

上面的代码是在允许分配新值之前检查值是否已存在。

如果值已存在,更好的方法是禁用按钮。为此,请编写一个方法来禁用/启用您的按钮,并在表单数据源的active方法中调用它。