如何通过代码跳转所有对话框?

时间:2016-10-03 14:34:48

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

有没有办法在标准代码中跳转所有对话框

例如,如果在TaxVatTable.validateWrite中调用了一个班级TaxVATNumValidateES\validateVATNum并且此处存在一个BOX并且我不想显示,是否有解决方案?

在所有情况下都存在禁用对话框功能的方法吗?

1 个答案:

答案 0 :(得分:2)

是的,你可以,只需修改\Classes\Box中的相关方法。

问题是那些Box消息是由用户做出的决定点。那么你怎么知道他们总会选择什么呢?在大多数情况下,您可以返回_defaultButton并且可能是O-K。

他们调用不同类型的表单,但你所指的是\System Documentation\Classes\DialogBox,它是内核代码,所以你可以覆盖它的最低点是Box类。

你可以通过这样做看出它们是如何短路的:

if (clientKind() == ClientType::COMObject)
    return _defaultButton;

修改

我想补充一点,我不建议这样做。只需更改调用位置的代码即可。你将在功能上打破框架的一部分。其他开发人员可能需要在某个时候调用此功能。

它用于表格和所有地方。如果你只是让它总是返回Yes,你可能会导致各种各样的问题。