UAP表单
一、功能概述
UAP表单为U8产品增加了自定义单据和档案的能力。并为单据和档案提供了全方位的功能支持,包括:增、删、改、查、打、审、格式设计。在实施过程中,可以为用户定制个性化的单据和档案。
1、UAP表单据包括BS表单和CS表单。两者的区别只是在客户端的展现形式不同。CS表单适用于局域网,BS表单适用于局域网和互联网。
2、使用UAP定义的单据,可以实现多子表、多布局视图。
3、使用UAP定义的档案,支持复杂档案、列表档案、树型编辑档案(形如 部门档案)、树形导航档案(形如 人员档案)
4、使用UAP定义的档案可以在U8单据格式设置中引用
5、UAP提供了完善的插件机制,用于个性化开发。 UAP表单允许开发人员进行扩展性和取
代性的开发工作。
二、核心特性
1.支持树形结构的业务实体。
2.支持业务模型的一个实体对应多个视图,一个视图只能对应一个业务实体。
3.支持一个业务实体属性对应多个视图控件。
4.丰富的客户端展现:多子表、分组、页签。
5.表单和业务模型是一对一的关系。
6.与门户集成。
7.视图在表单上支持自由布局。
8.业务逻辑层(M)、界面层(V)、业务逻辑和界面之间的控制层(C)互相分离。
9.支持运行时多语。
10.支持用户自定义控件。
三、集成的开发工具及案例
1、开发工具概述
a)用户通过开发工具实现单据的通用性定制,如单据名称,主子表名称,主子表列的名称、类型等属性,单据的格式设置等。
b)集成开发环境中BS单据和CS单据的开发步骤和过程都是相同的。
2、操作步骤
1、UAP登录
2、建立项目
3、表单
4、建立实体关系
5、增加实体属性
6、设计单据布局
7、单据发布
8、U8中显示表单
四、二次开发接口说明
4.1开发接口概述
    在集成开发环境中已经可以实现自定义单据和档案的增、删、改、查等通用操作,但更加个性化的操作和业务逻辑,就需要通过代码调用接口,可以在下面操作的接口中实现。
4.1二次开发流程
1)安装Microsoft Visual Studio
2)创建一个 C# 类库(.dll)项目
3)为项目添加引用:
UFIDA.U8.Framework.Error
UFIDA.U8.UAP.UI.Runtime.Model
UFIDA.U8.UAP.UI.Runtime.Common
4)添加一个类,并实现接口IReceipt
public class PurchaseOrder : IReceipt
5)实现业务逻辑
6)编译工程,得到一个dll
7)在UAP设计时中注册dll。
4.2  BS单据接口说明
        /// <summary>
        /// 在进入单元格编辑状态之前判断单元格是否可编辑
        /// </summary>
        /// <param name="para">单元格信息</param>
        /// <param name="businessObject">所属业务对象</param>
        /// <param name="voucherObject">所属表单对象</param>
        /// <returns>是否可编辑, true:可编辑, false:不可编辑</returns>
        bool CellEditing(CellSelectEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject);
        /// <summary>
        /// 值更新之前的接口,对值的合法性检查在这里进行
        /// <param name="para">Cell的值变动参数</param>
        /// <param name="businessObject">所属业务对象</param>
        /// <param name="voucherObject">所属表单对象</param>
        /// <return>是否允许更新单元格的值,false--不允许更新,将保持原值</return>
param name
        /// </summary>
        bool CellChanging(CellChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject);
        /// <summary>
        /// 值更新之后的接口,对值的后续处理(如对其他Cell值的变更)在这里进行
        /// <param name="para">Cell的值变动参数</param>
        /// <param name="businessObject">所属业务对象</param>
        /// <param name="voucherObject">所属表单对象</param>
        /// </summary>
        void CellChanged(CellChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject);
        /// <summary>
        /// 增加行之前的接口,对行的合法性检查在这里进行
        /// <param name="para">新增的行参数</param>
        /// <param name="businessObject">所属业务对象</param>
        /// <param name="voucherObject">所属表单对象</param>
        /// <returns>是否允许增加新行,false-不允许增加新的行</returns>
        /// </summary>
        bool RowAdding(RowChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject);
        /// <summary>
        /// 增加行之后的接口,对新增行的后续处理在这里进行
        /// <param name="para">新增的行参数</param>
        /// <param name="businessObject">所属业务对象</param>
        /// <param name="voucherObject">所属表单对象</param>
        /// </summary>
        void RowAdded(RowChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject);
        /// <summary>
        /// 复制行之前的接口,对行的合法性检查在这里进行
        /// <param name="para">复制的行参数</param>
        /// <param name="businessObject">所属业务对象</param>
        /// <param name="voucherObject">所属表单对象</param>
        /// <returns>是否允许增加新行,false-不允许增加新的行</returns>
        /// </summary>
        bool RowCopying(RowChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject);
        /// <summary>
        /// 复制行之后的接口,对复制行的后续处理在这里进行
        /// <param name="para">复制的行参数</param>
        /// <param name="businessObject">所属业务对象</param>
        /// <param name="voucherObject">所属表单对象</param>
        /// </summary>
        void RowCopyed(RowChangeEventArgs para, BusinessProxy businessObject, VoucherProxy voucherObject);
        /// <summary>
        /// 删除行之前的接口,对行的合法性检查在这里进行
        /// <param name="para">RowChangeEventArgs[]类型,要删除的行参数</param>
        /// <param name="businessObject">所属业务对象</param>
        /// <param name="voucherObject">所属表单对象</param>
        /// <returns>是否允许删除这些行,false--不允许删除这些行</returns>
        /// </summary>
        bool RowsDeleting(RowChangeEventArgs[] para, BusinessProxy businessObject, VoucherProxy voucherObject);
        /// <summary>
        /// 删除行之后的接口,对删除行的后续处理在这里进行
        /// <param name="para">RowChangeEventArgs[]类型,要删除的行参数</param>
        /// <param name="businessObject">所属业务对象</param>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。