How to understand ReferenceGroup control on Form[AX2012]
在AX2012的Form开发中,微软引入了新的控件ReferenceGroup,它用在Lookup其他表RecId的时候显示更人性化的字段,它的使用还必须从表的索引说起。AX2012的表有这些索引(http://msdn.microsoft.com/en-us/library/hh812105.aspx):
Primary key:主键用来唯一标识一条纪录,比如InventTable的ItemIdx索引,包含ItemId字段,用它标识唯一的一个物料,AX2012要求主键必须只有一个字段,当然必须是唯一的。
Alternate Key:可以包含多个字段且索引必须是唯一的,其属性AllowDuplicated=No,AlternateKey=yes,可以把Alternate key设为表的主键,前提是只包含一个字段。对于ValidateTimeState的表可以在Alternate key上设置ValidateTimeStateKey属性。
Surrogate Key:就其说明来讲是指机器产生的唯一键,一般就是纪录的RecId,表的CreatedRecIdIndex=Yes创建Surrogate key,Surrogate key可以设置为表的主键。
Relacement Key:表的Replacement key属性下可以选择表的某个Alternate key,在设置Replacement key时,表的AutoIdentification filed group下自动包含Replacement key的字段,其意义是人能看懂的键,和Surrogate key对应。
ReferenceGroup控件就是依靠Surrogate key、Replacement Key和Autoidentification字段组来工作的,比如我们有个表叫做ProdCharge,包含ProdId、ChargeId和Qty三个字段,用来表示某个工单下的某车重量,ProdId和ChargeId表示工单下的某个车次,组合成一个Alternate Key,同时设置为表的Replacement key:

我们要在另外一张发货表DispatchPick中引用ProdCharge,可以在DispatchPick新建ProdId、ChargeId字段来表示要出货的某个车次,但是更方便的是直接使用ProdCharge的RecId:

新建一个DispatchPick form来编辑出货表DispatchPick,以前的方法在Lookup prodCharge表的时候你可能看到ProdCharge表的Recid一栏的内容,但是在AX2012中当我们把DispatchPick的ChargeRecId字段拖到Form上的时候会自动生成一个ReferenceGroup的控件:

注意它的Referencefield是DispatchPick的ChargeRecId字段,而RelacementFieldGroup自动设置为AutoIdentification,这里是可以选择其他字段组的比如AutoLookup字段组,我们这里就选择为ProdCharge表的AutoLookup字段组,运行一下DispatchPick form来看看:

可以看到Reference控件下包含了来自于ProdCharge的3个字段,分别是工单、车次号和数量,下拉Lookup的时候也出现ProdCharge的AutoLookup字段组的内容,而实际上保存在DispatchPick表中的ProdCharge数据仅仅是其RecId,这就是ReferenceGroup的作用,使用对我们没有意义的代码来关联表,在Lookup的时候则呈现更加人性化的字段,在以前的版本中这需要代码重载控件的Lookup方法来自定义Lookup form来实现,还必须加入一些display方法来显示来自于父表的prodid、chargeid这些信息,而使用referencegroup这些就变得很自然而不需要一行代码。当然AX2012也支持重载Lookup方法(http://msdn.microsoft.com/EN-US/library/hh185372),RefereceGroup控件还多了一个LookupReference方法(http://msdn.microsoft.com/EN-US/library/aa627966)。
另外在form的Datasource节点下多了一个Reference data source节点,用它来显式的定义一个引用数据源,这一般只在需要自定义引用数据源的AllowDeferredLoad、OnlyFetchActive属性的时候需要(http://msdn.microsoft.com/EN-US/library/gg845085)。
From: http://www.cnblogs.com/duanshuiliu/archive/2012/09/04/2669984.html
How to understand ReferenceGroup control on Form[AX2012]的更多相关文章
- Tutorial: WPF User Control for AX2012
原作者: https://community.dynamics.com/ax/b/goshoom/archive/2011/10/06/tutorial-wpf-user-control-for-ax ...
- Business Unit Lookup in Form
Just add the below code in lookup() of StringEdit control in Form to get the Business Unit Lookup: p ...
- 细说angular Form addControl方法
在本篇博文中,我们将接触angular的验证.angular的验证是由form 指令和ngModel协调完成的.今天博主在这里想要说的是在验证在的一种特殊情况,当验证控件没有没有name属性这是不会被 ...
- Using Controls in a Form Design [AX 2012]
Using Controls in a Form Design [AX 2012] This topic has not yet been rated - Rate this topic Update ...
- C#:将子Form加入父Form中
实现的功能:已建立了多个子Form界面,在父Form界面左面,点击不同标题的链接文本,父Form界面右面显示不同的子界面内容. 具体如下: 1.加入split拆分器控件 2.在splitControl ...
- angular2 学习笔记 ( Form 表单 )
refer : https://angular.cn/docs/ts/latest/guide/forms.html https://angular.cn/docs/ts/latest/cookboo ...
- Building Forms with PowerShell – Part 1 (The Form)
For those of you familiar with Scripting languages you are probably used to using alternate applicat ...
- [精]Oracle APEX 5.0 入门教程(一) Form表单
Oracle APEX Tutorial for Beginners (APEX 5.0) 1- Introduction 2- Create Workspace 3- Work with Works ...
- Sending form data
https://developer.mozilla.org/en-US/docs/Learn/HTML/Forms/Sending_and_retrieving_form_data This arti ...
随机推荐
- [设计模式] .NET设计模式笔记 - 有多少种设计模式
.NET下的23中设计模式. ※创建型模式篇 ●单件模式(Single Pattern) ●抽象工厂模式(Abstract Factory) ●建造者模式(Builder Pattern) ●工厂方法 ...
- 【Linux/Ubuntu学习4】ubuntu 下面安装 vim 的问题
ubuntu 下面安装 vim 的问题 1.输入vim时,显示: 程序“vim”已包含在以下软件包中: * vim * vim-gnome * vim-tiny * vim-gtk * vim-nox ...
- android refbase类
在Android的源代码中,经常会看到形如:sp<xxx>.wp<xxx>这样的类型定义,这其实是Android中的智能 指针.智能指针是C++中的一个概念,通过基于引用计数的 ...
- iOS - UI - UITextView
1.UITextView //因为继承于UIScrollView 拥有scrollView的所有属性和方法 //placeholder只有UITextField有,UITextView是没有的.(提示 ...
- iOS - 提示信息 - UIAlertView、UIActionSheet、UIAlertController的实际应用
1.UIAlertView(屏幕中央弹出框)(不需要服从代理) UIAlertView * alertView = [[UIAlertView alloc] initWithTitle:@" ...
- 《MFC游戏开发》笔记七 游戏特效的实现(一):背景滚动
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9344721 作者:七十一雾央 新浪微博:http:// ...
- struts1标签-<html:radio> 使用注意事项
struts1标签-<html:radio> 使用注意事项 1.默认选中效果 在后台XxxForm中写入如下代码,可保证默认选中效果实现: @Override public void re ...
- [UML]UML之开篇
前言 大学时,学习软件工程时,学到了UML,由于当时接触项目太少,认识不清,再加上毕业后一直忙于coding,很少有时间去真正的认识和学习UML. 现在感觉有必要去回头看看这些东西啦. 什么是UML ...
- Visual Studio 扩展包(.vsix)制作
前言:上篇介绍了 Visual Studio扩展工具添加与卸载,本编要介绍的是Visual Studio 扩展包(.vsix)的制作. 方法: ①.下载并安装Visual Studio 2010 SD ...
- JAVA数字证书制作生成
1.加密算法 为了网络通讯中的报文安全,一般需要对报文进行加密,目前常用的加密算法有: 非对称加密算法:又称公钥加密算法,如RSA.DSA/DSS,最常用的就是RSA算法(算法公开,可自行百度了解算法 ...