这个类在很多代码中出现,在启动报表的时候也需要用到它.
简单来说这个类用于共享构造参数.在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来创建. |