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来创建.
|