我将尝试简要解释我的目标。当我单击按钮并且发生某种情况时,我的代码应该显示“NoYes”弹出窗口,如果我按“是”,代码将继续运行,如果我按“否”,它将停止。我使用了命令链类,作为表单上按钮的扩展,这是我的代码:
[ExtensionOf(formControlStr(VendEditInvoice, OK))]
final class VendEditInvoice_OK_AzimutBenetti_Extension
{
public void clicked()
{
IntentLetter_IT intentLetter;
VendInvoiceInfoLine vendInvoiceInfoLine;
Info(strFmt('%1, %2', vendInvoiceInfoLine.LineAmount, intentLetter.remainAmountMST()));
if(vendInvoiceInfoLine.LineAmount >= intentLetter.remainAmountMST())
{
DialogButton diagBut;
str strMessage = "Importo da decurtare al saldo della lettera di intento maggiore dell’importo residuo. Proseguire?";
str strTitle = "Splafonamento";
diagBut = Box::yesNo(
strMessage,
DialogButton::No,
strTitle
);
if(diagBut == DialogButton::No)
{
//return;
info('Operazione annullata');
throw error('Operazione annullata');
}
}
next clicked();
}
}
如果我将 Return 放在第二个 if 中,则在构建项目后会收到此错误:对“next”的调用应该仅无条件地执行一次。 我认为这是因为如果我按“否”,代码将返回,并且永远不会调用下一个方法,因为如果我删除“返回”并输入例如信息,则一切正常。我尝试抛出错误,如您所见,但是,即使它有效,我认为这不是正确的方法,因为当我按 NO 时,没有真正的错误或异常。我怎样才能以不同的方式做到这一点? 非常感谢。
您可以使用 EventHandler 和 FormControlCancelableSuperEventArgs