Dynamics AX 2012 R2 窗体系列 - 在窗体上修改字段时所触发的方法及其顺序
在这个系列里,Reinhard将和大家一起探索在AX的窗体上执行操作时,都会触发窗体、窗体数据源和表上的哪些方法,并且是以怎样的顺序触发的。
这次,我们来看看在窗体上修改或录入数据的情况。图中所示的流程,是在理想情况下的完整触发过程。如果窗体控件、窗体数据源字段或表的验证方法返回False,也可能会提前结束流程。

- 用户在窗体上修改或录入数据后,首先触发了该字段的Form.Control.Validate()方法,如果该方法返回的是False,流程到此结束,用户修改或录入数据失败 。
- 如果返回的是True,会触发Form.Control.Modified()方法。如果这个字段是窗体数据源里的字段,那么当执行到Super()时,会调用该字段在窗体数据源中的Form.Datasource.Field.Validate()方法。
- 在Form.Datasource.Field.Validate()方法中,执行到Super()时,会调用表的Table.ValidateField()方法。Table.ValidateField()执行完毕后,会返回一个Boolean结果。
- 接着继续执行Form.Datasource.Field.Validate()方法中Super()以下的代码。Form.Datasource.Field.Validate()方法执行完毕后,会返回一个Boolean结果。如果返回的是False,则继续执行Form.Control.Modified() 方法中Super()以下的代码。
- 如果返回的是True,会调用该字段在窗体数据源中的 Form.Datasource.Field.Modified() 方法。
- 在Form.Datasource.Field.Modified() 方法中,执行到Super()时,会调用表的Table.ModifiedField()方法。Table.ModifiedField ()执行完毕后,继续执行Form.Datasource.Field.Modified ()方法中Super()以下的代码。
- Form.Datasource.Field.Modified ()方法执行完毕后,继续执行Form.Control.Modified() 方法中Super()以下的代码。
- Form.Control.Modified()方法执行完毕后,会返回一个Boolean结果。如果返回的是False,用户修改或录入数据失败。
需要注意的一点是,直到Form.Control.Modified()方法执行结束,修改过的数据,依然在内存中,并未持久化到数据库中。所以在做客制化开发的时候,不应在这个流程中所触发的方法里,直接执行更新数据库的操作。
Dynamics AX 2012 R2 窗体系列 - 在窗体上修改字段时所触发的方法及其顺序的更多相关文章
- Dynamics AX 2012 R2 业务系列-销售业务流程
在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 1.销售的主要职责 其实这里说的职责主要是针对销售文员,并非整天外面满世界跑业 ...
- Dynamics AX 2012 R2 业务系列-采购业务流程
在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 国际惯例,从采购开始. 1.采购的主要职责 简单点说,采购的主要职责,是从供应 ...
- Dynamics AX 2012 R2 业务系列
在之前的一系列博文里,Reinhard介绍了Dynamics AX Demo的安装与配置.相信同学们看完后,都已经成功拥有了一个测试环境. 众所周知的是,ERP作为一个特殊的软件系统,他有着背后的业务 ...
- [译]Dynamics AX 2012 R2 BI系列-Cube概览
https://msdn.microsoft.com/EN-US/library/dd252604.aspx Cube是一个多维度的结构,它是BI应用开发的基础.本文描述了cube的组成部分, ...
- [译]Dynamics AX 2012 R2 BI系列-规划分析的注意事项
https://msdn.microsoft.com/en-us/library/gg731898.aspx 在开始实施AX的分析特性前,有很多事情要考虑.本文描述了你必须考虑的事情,和在 ...
- [译]Dynamics AX 2012 R2 BI系列-分析的架构
https://msdn.microsoft.com/EN-US/library/dd309691.aspx 下图显示了包含在AX中的SSAS Cube,和用于访问他们的组件. 下面的 ...
- Dynamics AX 2012 R2 安装Reporting Services 扩展
今天Reinhard在VS中部署SSRS报表时,接到以下错误: 部署因错误而被取消.在报表服务器上,验证:-SQL Server Reporting Services 服务是否正在运行. 接着,Rei ...
- Dynamics AX 2012 R2 如何处理运行时间较长的报表
当处理的数据量较多,逻辑比较复杂时,报表可能会超时.为了解决这个问题,Reinhard一直使用SrsReportDataProviderPreProcess来做预处理报表.它会在调用SSRS前,在AX ...
- Dynamics AX 2012 R2 电子邮件广播错误 0x80040213
Dynamics AX 2012 R2 电子邮件广播错误 0x80040213 今天Reinhard在新环境做邮件广播测试时,发现无法发送邮件,并报以下错误: 类"CDO.Message&q ...
随机推荐
- Mysql5.6主从热备配置
数据库是应用系统的核心,为了保证数据库的安全采用主从热备是很常见的方法,也就是主数据库DDL.DML都将被同步到从数据库. 一. 实验环境 操作系统:windowsserver 2008 R ...
- Mysql创建用户并授权
运行命令行 mysql -uroot -p 登录mysql use mysql; 创建用户:create user 'test123'@'localhost' identified by '12345 ...
- context上下文 php版解释
context翻译为上下文其实不是很好,只是翻译理解大概的作用,对于开发来说,context是对定义的使用的变量,常量或者说是配置, 部分的函数功能除了缺省值之外,往往需要手动设置一些定义量来配合当前 ...
- 【转】C# GET 和 SET作用
http://www.cnblogs.com/yinxiangpei/articles/2357091.html C#中get和SET,看来看去还是看不懂,通俗一点解释一下,用了有什么好处,不用会怎么 ...
- rabbitmq之消息重入队列
说起消息重入队列还得从队列注册消费者说起,客户端在向队列注册消费者之后,创建的channel也会被主队列进程monitor,当channel挂掉后,主队列进程(rabbit_amqqueue_proc ...
- 在eclipse中创建一个Maven项目
1. 首先判断eclipse有没有自带Maven Window –> Perferences 如果有Maven,那就是自带了maven插件,如果没有,需要自行安装. 2.配置maven 2.1. ...
- CentOS7.2 创建本地YUM源和局域网YUM源
1背景 由于开发环境只有局域网,没法使用网上的各种YUM源,来回拷贝rpm包安装麻烦,还得解决依赖问题. 想着搭建个本地/局域网YUM源,方便自己跟同事安装软件. 2环境 [root@min-base ...
- 【转载】JMeter学习(三十六)发送HTTPS请求
Jmeter一般来说是压力测试的利器,最近想尝试jmeter和BeanShell进行接口测试.由于在云阅读接口测试的过程中需要进行登录操作,而登录请求是HTTPS协议.这就需要对jmeter进行设置. ...
- SpringMVC常用配置-添加静态资源处理器-针对SpringMVC中静态资源无法访问的问题
- oracle使用DataBase Configuration Assistant创建、删除数据库
可以使用DataBase Configuration Assistant来创建一个心得数据库.Database Configuration Assistant简称是DBCA,是创建.配置以及管理数据库 ...