Axapta 在AX 2012中创建带有对话框的按钮
我想做一个钮扣 我有一个EDT“辞职”,不能编辑,只能编辑一次,当我按下按钮时。 单击按钮时,将弹出一个对话框,我可以在其中键入日期 我想我得写一门课,但我很努力 致以亲切的问候Axapta 在AX 2012中创建带有对话框的按钮,axapta,x++,dynamics-ax-2012-r2,Axapta,X++,Dynamics Ax 2012 R2,我想做一个钮扣 我有一个EDT“辞职”,不能编辑,只能编辑一次,当我按下按钮时。 单击按钮时,将弹出一个对话框,我可以在其中键入日期 我想我得写一门课,但我很努力 致以亲切的问候 Khashayar您可以在按钮的单击方法中编写代码 下面是一个简单的工作: 要防止覆盖现有值,可以按以下方式修改方法: public void clicked() { Dialog dialog; DialogField dialog
Khashayar您可以在按钮的
单击方法中编写代码
下面是一个简单的工作:
要防止覆盖现有值,可以按以下方式修改方法:
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
方法中调用它。我在最后一个if子句中添加了“EmploymentTable.Resigning=dialogDate.value();”。当我点击相同记录的按钮时,我仍然能够覆盖辞职日期。如何才能改变它,使我不能改变它,即使我再次点击按钮为同一记录。TTSBegin?,with if子句?,如果您对EmploymentTable.update()
yes needTTSBegin和ttsCommit
有错误。尝试此从EmploymentTable中选择更新,其中…
然后ttsbegin;EmploymentTable.update();TTS委员会代码>不幸的是,我仍然有问题。所有代码都有助于我使用该按钮,但再次…在输入日期后,我仍然可以更改它。void clicked(){syclesigning resigning;syclemploymenttable EmploymentTable;Dialog Dialog;DialogField dialogDate;date NewDate;super();if(EmploymentTable.Resigning==dateNull()){dialog=new dialog(“设置新日期”);dialogDate=dialog.addField(ExtendedTypeStr(SycResigning),“new date:”);if(dialog.run()){newDate=dialogDate.value();//获取新日期的值//这里是更新表SycEmploymentTable.Resigning=dialogDate.value();}的代码,否则{警告(“值已存在”);}将代码划分为2个更可能用作表单中表单数据源的SycEmploymentTable
。在这种情况下,不需要局部变量EmploymentTable
。只需更改if
语句:if(SycEmploymentTable.Resigning==dateNull())
其中SycEmploymentTable
-您的数据源名称。
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.");
}
}