L1-U811.1客开培训文档--UAP(6)

2019-08-31 12:10

U811.1 客开培训资料之UAP ///

///

///

public virtual void ReceiptUnLoading(VoucherProxy ReceiptObject, VoucherButtonArgs exitCommand) {

}

///

/// 运行时表单关闭之后调用的接口,可以处理表单关闭之后的业务要求,如释放已经申请到的功能

///

///

/// public virtual void ReceiptUnLoaded(VoucherProxy ReceiptObject, VoucherButtonArgs exitCommand) {

1、

说明

表单功能开发(门户工具栏按钮功能开发)

ReceiptPluginBase类中的方法

///

/// 门户工具栏按钮被点击时触发该方法,可以根据参数判断是哪个按钮被触发 ///

///

public

virtual

IButtonEventHandler

ButtonArgs

,

VoucherProxy

GetButtonEventHandler(VoucherButtonArgs

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字符串,其格式为

\,该返回值用来标示当前方法是否成功执行,记录在result属性里,errinfo属性用来记录任何可能的信息。Excuting

U811.1 客开培训资料之UAP

方法的返回值可以作为Excute方法的第二个参数PreExcuteResult传入Excute,你可以在Excute方法体重分析传入的信息决定程序是否继续执行,或作出其他处理等,同样,Excute方法的返回值也可作为Excuted方法的参数传入,并作必要检查。另外,你可以在保证上面规定的xml结构的前提下,在节点内扩展该xml结构,以适应你的应用逻辑的需要。

(2)三个方法共有的参数就是当前表单功能按钮可以操作的表单模型。可以从该对象中取到当前可以操作的任何数据。

示例

[IsImplementAttribute(true)] Public override IButtonEventHandler

GetButtonEventHandler(VoucherButtonArgs ButtonArgs) {

//保存按钮----UAP已有功能的部分修改开发

if (ButtonArgs.ButtonKey == \) {

return new AcceptOrderButton(); }

//审核按钮----UAP已有功能替代修改开发

if (ButtonArgs.ButtonKey == \) {

return new AuditButton(AuditType.Audit); }

//锁定按钮----新增功能开发

if (ButtonArgs.ButtonKey == \) {

return new LockVoucherButton(LockType.Lock); } }

这个方法是表单功能按钮执行的入口,IsImplementAttribute属性需要手工添加到方法上面。根据在UAP表单的功能管理里不同功能按钮的ButtonKey来区别不同的功能。上述代码的返回值类型AcceptOrderButton、AuditButton、LockVoucherButton都是继承自UFIDA.U8.UAP.UI.Runtime.Model.IButtonEventHandler接口。

注意项

1) 新增功能开发 说明

在使用UAP进行表单开发时,UAP已经提供的功能都是一些公共功能,而一些表单可能需要很多特别的功能,此时就需要进行新增功能的开发。新增功能开发需要开发者要完全理解当前功能的实际业务,并在实现业务的基础上将对表单相关数据的修改持久化到数据库中,持久化的操作及可能的事务控制等完全由开发人员自己来做。

U811.1 客开培训资料之UAP

示例

//锁定按钮----新增功能开发 双击查看代码 #region 锁定按钮----新增功能开发 using System; using System.Collections.Generic; using System.Text; using UFIDA.U8.UAP.UI.Runtime.Model; using System.Windows.Forms; using System.Data.SqlClient; namespace ufida.u8.uap.plugin.SalesVoucher { public class LockVoucherButton : IButtonEventHandler { public LockVoucherButton() { } #region IButtonEventHandler 成员 public string Excute(VoucherProxy ReceiptObject, string PreExcuteResult) { bool result = false; SqlConnection conn=new SqlConnection(ReceiptObject.LoginInfo.UFDataSqlConSt SqlTransaction tran = null; SqlDataReader rd = null; try { conn.Open(); tran=conn.BeginTransaction(System.Data.IsolationLevel.ReadCommitted); SqlCommand cmd = conn.CreateCommand(); Business b = ReceiptObject.Businesses[\] as Business; BusinessCell cell = b.Cells[\] as BusinessCell; string pkValue = cell.Value; cmd.CommandText = \cVerifier, cCloser,cLocker from so_somain where cSOCode = '\ + pkValue + \; cmd.Transaction = tran; rd = cmd.ExecuteReader(); if (rd.Read()) { string auditMan = \; string closeMan = \; string lockMan = \; if (!rd.IsDBNull(0)) { auditMan = rd.GetString(0); } if (!rd.IsDBNull(1)) { closeMan = rd.GetString(1); } if (!rd.IsDBNull(2)) { lockMan = rd.GetString(2);

U811.1 客开培训资料之UAP

注意项

2) UAP已有功能的修改开发 说明

UAP已经实现了新增表单的保存方法,但是我们可能在使用UAP保存逻辑的基础之上,在保存之前或保存之后对表单的某些数据做一定的修改。具体就是对表单模型中的某些实体属性的值根据业务逻辑的需要做必要的修改再执行已有的表单保存。

U811.1 客开培训资料之UAP

示例

using System; using System.Collections.Generic; using System.Text; using UFIDA.U8.UAP.UI.Runtime.Model; using UFIDA.U8.UAP.UI.Runtime.Common; using System.Xml; namespace ufida.u8.uap.plugin.SalesVoucher { ///

/// 接受订单按钮处理 /// public class AcceptOrderButton : IButtonEventHandler { #region IButtonEventHandler 成员 public string Excute(VoucherProxy ReceiptObject, string PreExcuteResult) { return null; } public string Excuted(VoucherProxy ReceiptObject, string PreExcuteResult) { if (!ReadExcuteState(PreExcuteResult)) { if (ReceiptObject.VoucherState == VoucherStateEnum.New) { if (ReceiptObject.Businesses.ContainsKey(\)) { Business b = ReceiptObject.Businesses[\] as Business; if (b.Rows.Count > 0) { if (b.Columns.ContainsKey(\)) { BusinessCell cell = b.Cells[\] as BusinessCell; cell.Value = \; } } } } return null; } return MakeExcuteState(true, \保存成功\); } public string Excuting(VoucherProxy ReceiptObject) { if (ReceiptObject.VoucherState == VoucherStateEnum.New) { if (ReceiptObject.Businesses.ContainsKey(\)) { Business b = ReceiptObject.Businesses[\] as Business; if (b.Rows.Count > 0) 双击查看代码


L1-U811.1客开培训文档--UAP(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工程地质勘查报告终

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: