第一篇:EBU客户化开发UAP业务提升手册(V890版)_v1.1
ERP事业部咨询实施客户化开发部
用友软件股份有限公司
地址:北京市海淀区北清路68号
用友软件园
电话:010-62436688
网址:www.xiexiebang.com 客户化开发UAP业务提升手册
起草单位 :ERP咨-客户化开发部 修正单位 :
第1页
共 261页
ERP事业部咨询实施客户化开发部
批
准 :
批准日期 :
第2页
共 261页
ERP事业部咨询实施客户化开发部
目录 2 3 4 摘要...........................................................................................................................................7 样例开发前提...........................................................................................................................8 建立UAP项目.........................................................................................................................8 表单、档案开发.....................................................................................................................11 4.1 建立表单模型.............................................................................................................11 4.1.1 4.1.2 4.2 4.3 新建实体.........................................................................................................12 新建实体属性.................................................................................................14 建立表单布局.............................................................................................................23 行为对象开发.............................................................................................................23 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 表单开发.........................................................................................................26 列表开发.........................................................................................................63 生单二次开发.................................................................................................72 联查报表.........................................................................................................78 联查UAP列表...............................................................................................82 UAP列表联查U8单据.................................................................................82 用户自定义控件开发.....................................................................................88 U8单据引用UAP档案.................................................................................91 第3页
共 261页
ERP事业部咨询实施客户化开发部
4.3.9 5 行为对象注册...............................................................................................111 报表开发...............................................................................................................................115 5.1 5.2 摘要...........................................................................................................................115 基本操作...................................................................................................................116 5.2.1 5.2.2 5.2.3 5.2.4 5.3 新增报表.......................................................................................................116 新增数据源...................................................................................................131 报表查询.......................................................................................................138 分组...............................................................................................................138 报表设计开发实例...................................................................................................141 5.3.1 5.3.2 5.3.3 5.3.4 存储过程模式开发实例(整体条件串)...................................................141 复杂报表开发实例.......................................................................................148 图形化报表开发实例...................................................................................174 UAP报表脚本抽取......................................................................................193 6 建立数据引擎.......................................................................................................................195 6.1 6.2 功能介绍...................................................................................................................195 使用说明...................................................................................................................197 6.2.1 6.2.2 登陆UAP环境.............................................................................................197 配制实体.......................................................................................................198 第4页
共 261页
ERP事业部咨询实施客户化开发部
6.2.3 6.3 7 业务对象.......................................................................................................207 应用技巧...................................................................................................................219 设置过滤条件.......................................................................................................................219 7.1 7.2 7.3 功能介绍...................................................................................................................219 使用说明...................................................................................................................220 应用技巧...................................................................................................................226 8 设置栏目...............................................................................................................................226 8.1 8.2 8.3 功能介绍...................................................................................................................226 使用说明...................................................................................................................226 应用技巧...................................................................................................................229 9 UAP参照..............................................................................................................................229 9.1 9.2 功能介绍...................................................................................................................229 使用说明...................................................................................................................229 权限...............................................................................................................................239 10.1 10.2 10.3 功能权限...............................................................................................................239 记录级权限...........................................................................................................240 字段级权限...........................................................................................................241 部署...............................................................................................................................243 10
第5页
共 261页
ERP事业部咨询实施客户化开发部
11.1 11.2 11.3 11.4 12
12.1 UAP表单导出与导入..............................................................................................243 UAP项目导出与导入..............................................................................................245 行为对象部署.......................................................................................................246 报表部署...............................................................................................................246 附录:功能介绍...........................................................................................................247 行为对象升级说明...............................................................................................247 12.1.1 12.1.2 ReceiptPluginBase新增接口(与872版本的IReceipt接口相比)........247 ReceiptPluginBase新增接口(与871版本的IReceipt接口相比)........250 12.2 LoginInfo 对象介绍................................................................................................254
第6页
共 261页
ERP事业部咨询实施客户化开发部 摘要
本文以U8-ERP中的销售订单为应用原型,介绍了如何通过UAP平台进行软件开发,文中给出了开发方法和丰富的样例。内容包括:
UAP表单开发原理
UAP项目的建立和导入、导出
UAP表单的模型设计和布局设计
UAP表单的行为对象开发
UAP表单列表设计与开发
UAP表单列表的行为对象开发
如何对UAP表单的缺省按钮进行扩展性开发
如何对UAP表单的缺省按钮进行取代性开发
如何为UAP表单增加新的按钮及行为
如何用程序代码调用UAP报表
如何用程序代码调用UAP表单列表
如何在UAP表单中增加权限控制:功能权限、字段权限、记录权限
如何为UAP表单开发自定义控件
如何开发树形档案
如何维护UAP数据引擎
如何维护栏目
如何维护过滤条件
如何调用U8API U8单据自定义项如何引用UAP档案
本文档中使用的示例文件为“销售订单二次开发”,可以通过UAP将该文件导入到帐套中。项目名称为“ SaleVoucher ”,导入后在项目中包括几个自定义单据:“销售订单”为二第7页
共 261页
ERP事业部咨询实施客户化开发部
次开发的Demo示例;“零售日报”为自定义空间二次开发的Demo示例;“列表档案示例”、“树形编辑档案示例”、“树形导航档案示例”分别为各个对应的档案类型的示例。
项目源代码: 样例开发前提
首先,需要安装U8(890)产品,并建立一个帐套。
其次,您需要向用友公司购买UAP表单设计许可;不过您可以使用UAP的演示版本,但是演示版本不能新建UAP项目,也不能注册行为对象。建立UAP项目
使用UAP登录帐套后,在系统界面上的新建项目选项卡,选中“供应链”后,在右边的列表中选择“销售管理”,在界面下方的几个文本框中输入项目名称,编号,描述等;顺序选择框使用“默认”即可。点击“确定”如果输入信息与先前创建的项目信息不冲突,项目就可被成功创建。
您也可以导入我们为您提供的UAP样例项目,导入方法如下。
1、登录UAP;
2、打开菜单“文件-导入和导出”;
第8页
共 261页
ERP事业部咨询实施客户化开发部
3、选中“导入项目数据到目前的服务器”,点“确定”按钮;
4、点“导入”按钮,选取培训目录下的 “Samplefile”;
第9页
共 261页
ERP事业部咨询实施客户化开发部
5、导入成功后;
6、在UAP已存在的项目中产生了一个名称为“SaleVoucher”的项目;
第10页
共 261页
ERP事业部咨询实施客户化开发部 表单、档案开发
4.1 建立表单模型
选中“自定义表单”节点,单击右键,使用“新建自定义表单”功能创建一个新的表单。然后在弹出的选择界面中选择“表单类型”下的“单据”,在名称文本框中输入一个表单名字,不要与以前创建的表单名字重复。在成功创建后,系统界面如下图所示:
图表 1 在上图所示的实体节点,默认有两个子节点,分别为:主表、第一子表,根据当前表单的需要设计实体,包括增加实体和实体属性等。
第11页
共 261页
ERP事业部咨询实施客户化开发部
4.1.1 新建实体
需要为实体填写“实体名称”,和选择“实体类型”。除此以外,还可以通过实体的属性编辑窗口为实体设置各项信息。
第12页
共 261页
ERP事业部咨询实施客户化开发部
实体的相关属性:
名称:实体显示的名称,仅用于设计时。
发布状态:实体是否已发布,只读。
功能:为实体定义自定义功能,在运行时显示为表格对应的工具栏按钮。
状态设置:设置实体属性、功能在表单运行时的状态,决定实体属性、功能在不同的环境下是否可用。
物理表模式:设置实体物理表的创建模式,默认为由UAP在发布时自动创建。在特殊的应用场景中可以使用“使用已存在的对象”或“无”。后两种情况下UAP不负责实体物理表的维护。
第13页
共 261页
ERP事业部咨询实施客户化开发部
物理表:设置该实体在数据库存储时使用的物理表,一般情况下一个实体对应一个物理表。
数据引擎模式:设置实体运行时数据的访问方式。默认为UAP系统在发布时自动创建,特殊的应用场景中可以使用“使用已存在的对象”或“无”,这两种情况下系统不负责实体数据的读取,只能通过用户定义的接口获取数据集。
数据引擎:当数据引擎模式为“使用已存在的对象”时,设置要使用的数据引擎对象。
主键:设置实体物理表的主键字段名。
主键类型:设置实体物理表主键字段的类型,可选“整数”或“GUID”或“字符串”。
行模式:多行或单行。一般主表设置为单行。
4.1.2 新建实体属性
实体必须包含实体属性时才有效。可以在UAP界面“表单”窗口中,右键点击实体对应的节点,选择“新建实体属性”菜单向实体添加实体属性:
实体属性通用属性:
第14页
共 261页
ERP事业部咨询实施客户化开发部
类型:该实体属性的类型。 描述:对该实体属性的单体描述。 属性名称:实体属性的名称。 默认值:实体属性的默认值。
使用默认值:用户未提供数据时,是否使用实体属性的默认值。 发布:该实体属性是否已经发布。
常用条件:该实体属性是否可以在过滤中作为常用条件使用。 区间条件:该实体属性是否可以在过滤中作为区间条件使用。 值更新事件:设置该实体属性值更新时需要处理的脚本列表。
基础资料类型字段共有三种类型的值更新事件:“携带当前字段相关参照属性到指定列”、“计算定义公式的值到指定列”、“表达式为真/假时改变指定栏目编辑状态”;其余类型字段比基础资料类型字段缺少第一种类型的值更新事件。
1.携带当前字段相关参照属性到指定列
2.计算定义公式的值到指定列
第15页
共 261页
ERP事业部咨询实施客户化开发部
3.表达式为真/假时改变指定栏目编辑状态
第16页
共 261页
ERP事业部咨询实施客户化开发部
表达式为真假时修改指定栏目的编辑状态
表达式为真假时修改指定栏目的显示状态
第17页
共 261页
ERP事业部咨询实施客户化开发部
表达式为真假时修改指定功能状态
表单功能
第18页
共 261页
ERP事业部咨询实施客户化开发部
实体功能
第19页
共 261页
ERP事业部咨询实施客户化开发部
唯一约束:是否检查该实体属性的值在整个表单范围内唯一。 文本对齐:实体属性文本的显示位置。
显示文本:实体属性的不同语言环境中显示的文本。 允许空值:实体属性的值是否可以为空。
物理表:实体属性对应物理字段的表名,即该实体属性所属实体的物理表。 字段:实体属性对应的物理字段名。
除了支持以上通用属性外,不同类型的实体属性还具有不同的特性:
1.表单编号
表单编号只能出现的主表实体中,并且只能有一个表单编号类型的实体属性。
2.表单名称
表单名称类型的实体属性只能在档案类型的表单中使用,同表单编号一样,表单名称类型的实体属性只能出现主表实体中,并且只能出现一次。
3.整数和正整数
可否为0:数值型的值是否可为0。
录入长度:限制用户可录入数值的最多位数。 数据格式:数值类型的显示格式。
最大值和最小值:数据的有效范围。正整数的最小值必须等于或大于0。4.小数和正小数
可否为0:数值型的值是否可为0。
录入长度:限制用户可录入数值的最多位数。 数据格式:数值类型的显示格式。
最大值和最小值:数据的有效范围。正小数的最小值必须等于或大于0。 小数位数:数据保留的小数位数。5.文本
多行输入:运行时是否支持录入多行文本。
第20页
共 261页
ERP事业部咨询实施客户化开发部
最大长度:最多可录入的文本长度。6.日期和日期时间
日期类型运行短日期格式,即只包含年月日。日期时间类型包含年月日和时分秒。
7.枚举
枚举类型的实体属性需要设置枚举值列表,枚举值的显示值为在界面显示的文本,保存值为实际保存到数据库的数据,如枚举类型的实体属性“销售类型”的枚举值可设置为如下图所示:
U890中枚举字段支持选择“枚举模式”:使用已存在枚举、新创建枚举。选择“使用已存在枚举”后,需要为“枚举类型”选择一个U8系统中现有的枚举中的一个。
8.基础资料
基础资料类型的值来自指定参照档案的对照值。
参照对象:设置基础资料类型实体属性的参照档案对象,可以从U8档案列表第21页
共 261页
ERP事业部咨询实施客户化开发部
中选择,包含UAP中定义为档案类型的表单。
参照显示值:该属性是设置当前就“基础资料”字段在运行时的文本框里显示参照的那个字段的值。如“参照对象”属性选择的存货档案,如果不设参照显示值,则运行时默认显示为存货编码,如果将“参照显示值”属性设置为存货档案的“存货”名称,运行时该字段就会显示为存货的名称。 选择方式:设置在运行时的对照选择方式。
自动校验:是否对录入的值进行检验以确定数据是否来自指定的参照对象。选择“否”时允许用户录入参照对象中不存在的值。
9.基础资料属性
基础资料属性类型的实体属性必须和基础资料类型的实体属性结合使用。
参照属性:设置基础资料属性类型的实体属性要绑定的基础资料类型实体属性,并指定关联的参照字段。当基础资料类型的实体属性值变化时,基础资料属性类型的实体属性值随之改变。
10.数量、价格和金额
数量、价格和金额类型的实体属性实质上为小数类型,设置等同于小数类型的实体属性。
11.复选框
特殊类型的整数值,运行时显示为复选框,保存的数据为0(未选择)或1(选择)。
12.制单人
当前单据的作者,一般设为登录用户。
13.制单日期和修改日期
制单日期保存当前表单生成的日期;修改日期保存表单最后一次修改的日期。这两第22页
共 261页
ERP事业部咨询实施客户化开发部
种类型的实体属性实质上为日期时间类型,设置等同于日期时间类型的实体属性。
4.2 建立表单布局
在完成实体的设计后,可以设计表单布局,UAP支持一个表单多个布局视图,用户可根据自己的使用习惯选择一种布局视图。布局视图的设计与普通window界面的布局设计基本一致。
4.3 行为对象开发
行为对象开发是指增加表单或列表的功能按钮,除了UAP系统自带的功能按钮外,还可以增加按钮,这些增加的功能按钮是UAP表单开发的基础。
UAP提供了多种增加功能的途径,首先通过设计界面的树形菜单中的“功能”节点下的表单功能和列表功能的“功能管理”(图表2)添加功能按钮,这些功能按钮最终在运行时第23页
共 261页
ERP事业部咨询实施客户化开发部
会被加载到U8产品的门户上;其次可以为每个表单实体添加功能按钮(图表3),为实体添加完成这些功能按钮后,还需要在布局视图上为该表单实体的“功能”属性设置使用这些功能(图表4),这些功能按钮最终在运行时会被加载到该实体的工具栏按钮上。
图表 2
第24页
共 261页
图表
图表
ERP事业部咨询实施客户化开发部
图表 5
增加功能按钮时,很多工作都可以通过上图(图5)的设计界面完成,开发人员关心的仅仅是表单开发业务逻辑的实现。这些按钮的作用主要是通过在运行时对模型对象中数据的修改以及最终将修改的数据持久化来完成的。
UAP表单开发分为表单开发和列表开发两种。因此对应了两种不同的开发类型定义了两种不同的访问模型对象数据的接口。
第25页
共 261页
ERP事业部咨询实施客户化开发部
新增功能开发(锁定、解锁、关闭、打开)表单功能开发表单开发已有功能修改(审核、弃审等)新增功能开发(复制选中行、查询订单对应报价单、订单追溯查询)UAP分层开发列表开发表单实体功能开发新增功能开发(批审、批弃、批量关闭、批量打开)已有功能修改(暂无)已有功能修改(暂无)
4.3.1 表单开发
表单开发访问模型对象的接口
UFIDA.U8.UAP.UI.Runtime.Model.ReceiptPluginBase,该接口被定义在UFIDA.U8.UAP.UI.Runtime.Model.dll中,所以在做表单开发前,你需要为新建的表单开发项目添加UFIDA.U8.UAP.UI.Runtime.Model.dll的引用。
表单开发又可细分为表单功能开发和表单实体功能开发,每个不同部分的开发又都分为UAP已有按钮的功能修改开发和新增按钮的功能开发。目前为止,只要是表单开发,只需要实现上述类即可。在继承ReceiptPluginBase后,在子类中会重写(override)以下这些方法:
public virtual IButtonEventHandler GetButtonEventHandler(UFIDA.U8.UAP.UI.Runtime.Common.VoucherButtonArgs ButtonArgs, VoucherProxy voucherObject){ return null;第26页
共 261页
ERP事业部咨询实施客户化开发部
}
///
/// ///
U8登录对象 ///
.Net登录对象 ///
表单编号 ///
表单数据 ///
表单状态 ///
表单数据 public virtual void ReceiptLoading(U8Login.clsLogin login, string Cardnumber, System.Data.DataSet ds, UFIDA.U8.UAP.UI.Runtime.Common.VoucherStateEnum state, UFIDA.U8.UAP.UI.Runtime.Common.ReceiptLoadingParas loadingParas){
} 第27页
共 261页
ERP事业部咨询实施客户化开发部
///
/// ///
所属表单对象 public virtual void ReceiptLoaded(VoucherProxy ReceiptObject){
}
///
///
Cell的值变动参数 ///
所属业务对象 ///
所属表单对象 ///
CellChanging(UFIDA.U8.UAP.UI.Runtime.Common.CellChangeEventArgs para, 第28页
共 261页
ERP事业部咨询实施客户化开发部
BusinessProxy businessObject, VoucherProxy voucherObject){ return false;} ///
///
Cell的值变动参数 ///
所属业务对象 ///
所属表单对象 /// public virtual void
CellChanged(UFIDA.U8.UAP.UI.Runtime.Common.CellChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){
}
///
第29页
共 261页
ERP事业部咨询实施客户化开发部
///
新增的行参数 ///
所属业务对象 ///
所属表单对象 ///
RowAdding(UFIDA.U8.UAP.UI.Runtime.Common.RowChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){ return false;}
///
///
新增的行参数 ///
所属业务对象 ///
所属表单对象 /// public virtual void
第30页
共 261页
ERP事业部咨询实施客户化开发部
RowAdded(UFIDA.U8.UAP.UI.Runtime.Common.RowChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){
}
///
///
RowChangeEventArgs[]类型,要删除的行参数 ///
所属业务对象 ///
所属表单对象 ///
RowsDeleting(UFIDA.U8.UAP.UI.Runtime.Common.RowChangeEventArgs[] para, BusinessProxy businessObject, VoucherProxy voucherObject){ return false;} 第31页
共 261页
ERP事业部咨询实施客户化开发部
///
///
RowChangeEventArgs[]类型,要删除的行参数 ///
所属业务对象 ///
所属表单对象 /// public virtual void
RowsDeleted(UFIDA.U8.UAP.UI.Runtime.Common.RowChangeEventArgs[] para, BusinessProxy businessObject, VoucherProxy voucherObject){
}
///
///
被单击的按钮参数 ///
所属业务对象 第32页
共 261页
ERP事业部咨询实施客户化开发部
///
所属表单对象 ///
ClickToolBarButton(UFIDA.U8.UAP.UI.Runtime.Common.ToolBarActionEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){ return false;}
///
///
被选择的行参数 ///
所属业务对象 ///
所属表单对象 ///
第33页
共 261页
ERP事业部咨询实施客户化开发部
RowSelecting(UFIDA.U8.UAP.UI.Runtime.Common.RowSelectEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){ return false;}
///
///
被选择的行参数 ///
所属业务对象 ///
所属表单对象 /// public virtual void
RowSelected(UFIDA.U8.UAP.UI.Runtime.Common.RowSelectEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){
}
第34页
共 261页
ERP事业部咨询实施客户化开发部
///
///
所属业务对象 ///
所属表单对象 ///
///
///
所属业务对象 ///
所属表单对象 /// public virtual void DataChecked(BusinessProxy businessObject, VoucherProxy voucherObject)第35页
共 261页
ERP事业部咨询实施客户化开发部
{
}
///
///
观察者视图接口(IEditWindow)对象 ///
即将要填充的数据 /// public virtual void
EditWindowFilling(UFIDA.U8.UAP.UI.Runtime.Common.IEditWindow view, System.Data.DataTable fillDataTable, BusinessProxy businessObject, VoucherProxy voucherObject){
}
///
第36页
共 261页
ERP事业部咨询实施客户化开发部
///
观察者视图接口(IEditWindow)对象 ///
已经填充的数据 /// public virtual void
EditWindowFilled(UFIDA.U8.UAP.UI.Runtime.Common.IEditWindow view, System.Data.DataTable fillDataTable, BusinessProxy businessObject, VoucherProxy voucherObject){
}
///
///
观察者视图接口(IEditWindow)对象 ///
ReferOpenEventArgs参照信息 ///
所属业务对象 ///
所属表单对象 ///
共 261页
ERP事业部咨询实施客户化开发部
public virtual bool
ReferOpening(UFIDA.U8.UAP.UI.Runtime.Common.ReferOpenEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){ return false;}
///
///
观察者视图接口(IEditWindow)对象 ///
ReferCloseEventArgs参照信息 ///
所属业务对象 ///
所属表单对象 /// public virtual void
ReferClosed(UFIDA.U8.UAP.UI.Runtime.Common.ReferCloseEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){
} 第38页
共 261页
ERP事业部咨询实施客户化开发部
///
/// ///
所属业务对象 ///
所属表单对象 ///
布局视图中指定的自定义控件“控件ID” ///
///
///
状态的变动参数 第39页
共 261页
ERP事业部咨询实施客户化开发部
///
所属表单对象 ///
StateChanging(UFIDA.U8.UAP.UI.Runtime.Common.VoucherStateChangeEventArgs para, VoucherProxy voucherObject){ return false;}
///
///
状态的变动参数 ///
所属表单对象 /// public virtual void
StateChanged(UFIDA.U8.UAP.UI.Runtime.Common.VoucherStateChangeEventArgs para, VoucherProxy voucherObject){ 第40页
共 261页
ERP事业部咨询实施客户化开发部
}
///
/// ///
鼠标双击信息 ///
///
public virtual void
RowDoubleClick(UFIDA.U8.UAP.UI.Runtime.Common.RowDoubleClickEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){
}
///
/// 第41页
共 261页
ERP事业部咨询实施客户化开发部
///
鼠标双击信息 ///
所属业务对象 ///
所属表单对象 public virtual void
CellDoubleClick(UFIDA.U8.UAP.UI.Runtime.Common.CellDoubleClickEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){
}
///
/// ///
鼠标双击信息 ///
所属业务对象 ///
所属表单对象 public virtual void
HeaderDoubleClick(UFIDA.U8.UAP.UI.Runtime.Common.HeaderDoubleClickEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){ 第42页
共 261页
ERP事业部咨询实施客户化开发部
}
///
/// ///
单元格信息 ///
所属业务对象 ///
所属表单对象 public virtual void
CellSelected(UFIDA.U8.UAP.UI.Runtime.Common.CellSelectEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){
}
////890 ///
第43页
共 261页
ERP事业部咨询实施客户化开发部
/// ///
单元格信息 ///
所属业务对象 ///
所属表单对象 ///
/// ///
行选择框信息 ///
共 261页
ERP事业部咨询实施客户化开发部
} ///
/// ///
行选择框信息 public virtual void RowChecked(RowCheckEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject){ }
///
/// ///
所属表单对象 ///
退出按钮的参数,可以通过IsCanceled来决定是否关闭表单IsCanceled=true表示不关闭,=false表示关闭 public virtual void ReceiptUnLoading(VoucherProxy ReceiptObject, VoucherButtonArgs exitCommand){ 第45页
共 261页
ERP事业部咨询实施客户化开发部
} ///
/// ///
所属表单对象 ///
退出按钮的参数,可以通过IsCanceled判断是否成功关闭表单,也可以通过IsCanceled来决定是否关闭表单IsCanceled=true表示不关闭,=false表示关闭 public virtual void ReceiptUnLoaded(VoucherProxy ReceiptObject, VoucherButtonArgs exitCommand){ }
4.3.1.1 表单功能开发(门户工具栏按钮功能开发)4.3.1.1.1 说明
ReceiptPluginBase类中的方法
///
第46页
共 261页
ERP事业部咨询实施客户化开发部
///
被点击门户工具栏按钮参数
///
public virtual IButtonEventHandler GetButtonEventHandler(VoucherButtonArgs ButtonArgs, VoucherProxy voucherObject)
这个方法是表单功能按钮执行的入口,根据在UAP表单功能的功能管理(见图2)里添加的按钮的ButtonKey
来区别不同按钮的功能。返回值类型为UFIDA.U8.UAP.UI.Runtime.Model.IButtonEventHandler接口,该返回值对象会被UAP运行时调用,执行该对象中的方法。IButtonEventHandler接口定义了三个方法,按照运行时被调用执行的先后顺序分别为:
string Excuting(VoucherProxy ReceiptObject)、string Excute(VoucherProxy ReceiptObject, string PreExcuteResult)、string Excuted(VoucherProxy ReceiptObject, string PreExcuteResult)。注:
(1)三个方法的返回值为xml字符串,其格式为
“
(2)三个方法共有的参数就是当前表单功能按钮可以操作的表单模型。可以从该对象中取到当前可以操作的任何数据。
第47页
共 261页
ERP事业部咨询实施客户化开发部
4.3.1.1.2 示例
见SalesAcceptOrder.cs ///
/// ///
按钮对象 ///
单据对象 ///
GetButtonEventHandler(UFIDA.U8.UAP.UI.Runtime.Common.VoucherButtonArgs ButtonArgs, VoucherProxy voucherObject){ //return null;//保存按钮----UAP已有功能的部分修改开发
if(ButtonArgs.ButtonKey == “btnSaveVoucher”){ return new AcceptOrderButton();} 第48页
共 261页
ERP事业部咨询实施客户化开发部
//审核按钮UAP已有功能替代修改开发
if(ButtonArgs.ButtonKey == “btnAudit”){ return new AuditButton(AuditType.Audit);}
if(ButtonArgs.ButtonKey == “btnAbandonAudit”){ return new AuditButton(AuditType.AbandonAudit);}
if(ButtonArgs.ButtonKey == “SenDevClose”){ return new CloseVoucherButton(CloseType.Close);}
if(ButtonArgs.ButtonKey == “SenDevOpen”){ 第49页
共 261页
ERP事业部咨询实施客户化开发部
return new CloseVoucherButton(CloseType.Open);}
//锁定按钮新增功能开发
if(ButtonArgs.ButtonKey == “SenDevLock”){ return new LockVoucherButton(LockType.Lock);}
//订单解锁
if(ButtonArgs.ButtonKey == “SenDevUnLock”){ return new LockVoucherButton(LockType.UnLock);}
if(ButtonArgs.ButtonKey == “btnOpenList”){ return new OpenVoucherListButton();;第50页
共 261页