如何在Acumatica中重写DailyFieldReport的RowPersisting方法移除日期校验
在Acumatica中重写DailyFieldReport的RowPersisting方法(移除日期校验逻辑)
要移除DailyFieldReport原有RowPersisting方法里的日报日期与项目开始日期比较及异常抛出逻辑,推荐用Acumatica标准的**图扩展(Graph Extension)**方式实现,无需修改系统原有代码,具体步骤如下:
实现方式
创建DailyFieldReportEntry的扩展类,通过PXOverride属性覆盖原有的RowPersisting事件处理方法,在重写的方法中跳过日期校验逻辑:
public class DailyFieldReportEntryExtension : PXGraphExtension<DailyFieldReportEntry> { [PXOverride] public void _(Events.RowPersisting<DailyFieldReport> args, PXRowPersisting baseHandler) { // 不执行原有的日期比较和异常抛出逻辑 // 若原方法存在其他需要保留的基础逻辑,可调用 baseHandler(args); // 本场景需求为移除指定逻辑,此处留空即可 } }
说明
- 图扩展是Acumatica自定义开发的最佳实践,避免直接修改系统核心代码,防止版本升级时自定义代码被覆盖。
PXOverride属性用于标记要替换的原有方法,参数baseHandler对应原方法的执行委托,按需选择是否调用原方法逻辑。
如果因特殊需求必须直接修改原DailyFieldReportEntry类,只需删除原方法中的日期判断及异常抛出代码即可:
public class DailyFieldReportEntry : PXGraph<DailyFieldReportEntry, DailyFieldReport> { public virtual void _(Events.RowPersisting<DailyFieldReport> args) { // 移除原有的日期比较和异常抛出代码,方法留空或保留其他必要逻辑 } }
内容的提问来源于stack exchange,提问作者user3783932
相关产品推荐
相关产品推荐

