在这个系列里,Reinhard将和大家一起探索在AX的窗体上执行操作时,都会触发窗体、窗体数据源和表上的哪些方法,并且是以怎样的顺序触发的。

    这次,我们来看看在窗体上修改或录入数据的情况。图中所示的流程,是在理想情况下的完整触发过程。如果窗体控件、窗体数据源字段或表的验证方法返回False,也可能会提前结束流程。

  1. 用户在窗体上修改或录入数据后,首先触发了该字段的Form.Control.Validate()方法,如果该方法返回的是False,流程到此结束,用户修改或录入数据失败 。
  2. 如果返回的是True,会触发Form.Control.Modified()方法。如果这个字段是窗体数据源里的字段,那么当执行到Super()时,会调用该字段在窗体数据源中的Form.Datasource.Field.Validate()方法。
  3. 在Form.Datasource.Field.Validate()方法中,执行到Super()时,会调用表的Table.ValidateField()方法。Table.ValidateField()执行完毕后,会返回一个Boolean结果。
  4. 接着继续执行Form.Datasource.Field.Validate()方法中Super()以下的代码。Form.Datasource.Field.Validate()方法执行完毕后,会返回一个Boolean结果。如果返回的是False,则继续执行Form.Control.Modified() 方法中Super()以下的代码。
  5. 如果返回的是True,会调用该字段在窗体数据源中的 Form.Datasource.Field.Modified() 方法。
  6. 在Form.Datasource.Field.Modified() 方法中,执行到Super()时,会调用表的Table.ModifiedField()方法。Table.ModifiedField ()执行完毕后,继续执行Form.Datasource.Field.Modified ()方法中Super()以下的代码。
  7. Form.Datasource.Field.Modified ()方法执行完毕后,继续执行Form.Control.Modified() 方法中Super()以下的代码。
  8. Form.Control.Modified()方法执行完毕后,会返回一个Boolean结果。如果返回的是False,用户修改或录入数据失败。

    需要注意的一点是,直到Form.Control.Modified()方法执行结束,修改过的数据,依然在内存中,并未持久化到数据库中。所以在做客制化开发的时候,不应在这个流程中所触发的方法里,直接执行更新数据库的操作。

Dynamics AX 2012 R2 窗体系列 - 在窗体上修改字段时所触发的方法及其顺序的更多相关文章

  1. Dynamics AX 2012 R2 业务系列-销售业务流程

    在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 1.销售的主要职责 其实这里说的职责主要是针对销售文员,并非整天外面满世界跑业 ...

  2. Dynamics AX 2012 R2 业务系列-采购业务流程

    在博文Dynamics AX R2 业务系列中,Reinhard对这个系列做了一个规划,下面我们就按照规划开始说业务吧. 国际惯例,从采购开始. 1.采购的主要职责 简单点说,采购的主要职责,是从供应 ...

  3. Dynamics AX 2012 R2 业务系列

    在之前的一系列博文里,Reinhard介绍了Dynamics AX Demo的安装与配置.相信同学们看完后,都已经成功拥有了一个测试环境. 众所周知的是,ERP作为一个特殊的软件系统,他有着背后的业务 ...

  4. [译]Dynamics AX 2012 R2 BI系列-Cube概览

    https://msdn.microsoft.com/EN-US/library/dd252604.aspx     Cube是一个多维度的结构,它是BI应用开发的基础.本文描述了cube的组成部分, ...

  5. [译]Dynamics AX 2012 R2 BI系列-规划分析的注意事项

    https://msdn.microsoft.com/en-us/library/gg731898.aspx       在开始实施AX的分析特性前,有很多事情要考虑.本文描述了你必须考虑的事情,和在 ...

  6. [译]Dynamics AX 2012 R2 BI系列-分析的架构

    https://msdn.microsoft.com/EN-US/library/dd309691.aspx     下图显示了包含在AX中的SSAS Cube,和用于访问他们的组件.     下面的 ...

  7. Dynamics AX 2012 R2 安装Reporting Services 扩展

    今天Reinhard在VS中部署SSRS报表时,接到以下错误: 部署因错误而被取消.在报表服务器上,验证:-SQL Server Reporting Services 服务是否正在运行. 接着,Rei ...

  8. Dynamics AX 2012 R2 如何处理运行时间较长的报表

    当处理的数据量较多,逻辑比较复杂时,报表可能会超时.为了解决这个问题,Reinhard一直使用SrsReportDataProviderPreProcess来做预处理报表.它会在调用SSRS前,在AX ...

  9. Dynamics AX 2012 R2 电子邮件广播错误 0x80040213

    Dynamics AX 2012 R2 电子邮件广播错误 0x80040213 今天Reinhard在新环境做邮件广播测试时,发现无法发送邮件,并报以下错误: 类"CDO.Message&q ...

随机推荐

  1. Neil·Zou 语录二

    1 “Later equals never !”LeBlanc法则   2 爱情使人忘记时间,时间也会使人忘记爱情,不要让太多的昨天占据你的今天,请相信:是你的不管你怎样任性他都不会离开你:失去的其实 ...

  2. 读书笔记:const和readonly、static readonly 那些事

    C#中表示不变的量(常量)的两种形式:const 和readonly const 是静态常量 readonly 是动态常量 严格的来讲:const 应该称为常量 而readonly 则应称为只读变量. ...

  3. 关于安装AccessDatabaseEngine_x64.exe 的说明

    开始--运行中 输入  cmd  进入界面   再输入路径  E:\BaiduYunDownload\AccessDatabaseEngine_X64.exe /passive 即完成安装. 注意,路 ...

  4. 20145220&20145209&20145309信息安全系统设计基础实验报告(2)

    20145220&20145209&20145309信息安全系统设计基础实验报告(2) 实验报告链接: http://www.cnblogs.com/zym0728/p/6083664 ...

  5. ECMAScript Web APIs node.js

    https://hacks.mozilla.org/2015/04/es6-in-depth-an-introduction/ What falls under the scope of ECMASc ...

  6. 使用Webview实现app启动引导页

    效果如下: 首先需要一个html页面及相应的js和css支持放在assets目录下(如果没有这个目录请项目上右键-new-folder-assets) 配置权限: <uses-permissio ...

  7. 深入理解js的prototype以及prototype的一些应用

    上一篇讲了js的prototype概念,在这里回顾一下prototype的定义: prototype是函数的一个属性,并且是函数的原型对象.引用它的必然是函数,这个应该记住. 但是,很奇怪,各位看官, ...

  8. 【尝新】微信小程序初体验

    文档地址:https://mp.weixin.qq.com/debug/wxadoc/dev/?t=1474644089434 根据文档地址中下载微信开发工具后,按照文档指引可以创建一个快速体验的小d ...

  9. Android下Cocos2d创建HelloWorld工程

    最近在搭建Cocos2d的环境,结果各种问题,两人弄了一天才能搞好一个环境-! -_-!! 避免大家也可能会遇到我这种情况,所以写一个随笔,让大家也了解下如何搭建吧- 1.环境安装准备 下载 tadp ...

  10. 教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

    本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http://www.xiaohuar.com/,让你体验爬取校花的成就感. Scr ...