理解Agrs Class
这个类在很多代码中出现,在启动报表的时候也需要用到它.
简单来说这个类用于共享构造参数.在Axapta中之所以可以用Args的方式,是因为:
1.通常参数的数目比较少.
2.用的参数类型很类似.
3.有时候构造一个主要的对象,需要构造与之相关的对象,在构造这些对象时需要用到相
同的构造参数.
在传统的OO世界里,一个对象往往有多个重载的构造函数,通常情况下这没什么问题,但
当一个主要的对象需要通过特定构造器去构造相关的对象时,事情变得糟糕起来.有时候需要
通过逻辑判定到底该构造哪个构造函数,并且要在很多层之间传递这些信息.事实证明在
Axapta中,很多报表,窗体,Action类的构造参数都是很类似的,于是Axapta采用了单一的Args
对象来传递参数,它封装了最常用的几个参数.
属性 类型 描述
caller object 创建Args的对象的引用
dataset tableid 待查找字段或者记录指向的表,通常情况下为null,大多数情况下dataset是隐式的.
designName str 将采用报表的哪个设计,如为null则用默认设置.
lookupField Fieldid 当显示窗体时,用于过滤记录的字段
loopupValue Str 当显示窗体时,过滤字段对应的值.
menuitemName Str 引起对象创建的菜单名称
menuitemType Str 引起对象创建的菜单类型
Name Str 对于Form和Report指触发Form和Report的菜单名称
parentWnd Int 不常用,可以不予理会.
Parm Str 一般的字符串参数
parmenumType int 基本枚举类型的ID,通常会使用enumnum(some-type)函数
parmenum int 通过paramnumType指定的一个基础枚举类型的值.通常结合parmenumType 选择不同的行为.
paramObject Object 一般的object类型
Record common dataset的一条空记录,可以用DictTable.makeRecord来创建.