【发布时间】:2016-10-04 03:01:59
【问题描述】:
有没有办法在标准代码中跳转所有对话框?
例如,如果在TaxVatTable.validateWrite 中调用一个类TaxVATNumValidateES\validateVATNum 并且这里存在一个BOX,我不想显示,有没有解决方案?
是否存在在所有情况下都禁用对话框功能的方法?
【问题讨论】:
标签: dialog axapta dynamics-ax-2012 x++
有没有办法在标准代码中跳转所有对话框?
例如,如果在TaxVatTable.validateWrite 中调用一个类TaxVATNumValidateES\validateVATNum 并且这里存在一个BOX,我不想显示,有没有解决方案?
是否存在在所有情况下都禁用对话框功能的方法?
【问题讨论】:
标签: dialog axapta dynamics-ax-2012 x++
可以,修改\Classes\Box中的相关方法即可。
问题在于那些Box 消息是用户做出的决定。那么你怎么知道他们总是会选择什么?您可以返回 _defaultButton,并且在大多数情况下可能会正常。
它们调用不同类型的表单,但您指的是\System Documentation\Classes\DialogBox,它是内核代码,因此您可以覆盖它的最低点是Box 类。
您可以通过这样做来查看它们是如何短路的:
if (clientKind() == ClientType::COMObject)
return _defaultButton;
编辑:
我想补充一点,我不建议这样做。只需更改调用位置的代码即可。你会在功能上破坏框架的一部分。其他开发人员可能需要在某些时候调用此功能。
它用于表格和所有地方。如果你只是让它总是返回Yes,你可能会导致各种各样的问题。
【讨论】:
SystemDocumentation 或Box 类下的DialogBox 并说AddIns>Where Used,它会识别出它们被使用的每个地方。