U811.1 客开培训资料之UAP ///
/// 源单据被选择事件,可以重写缺省的选择算法 ///
/// /// /// ///
public virtual DataSet ReceiptCheck(UFGeneralListService listService,object sender,string voucherId) {
return null; }
///
/// 源单据被选择事件,可以重写缺省的选择算法 ///
/// /// ///
public virtual void ReceiptChecked(UFGeneralListService listService,object sender, CellEventArgs e) { }
U872已经默认的生单插件就是继承了该接口类,重写了上述的U872新增接口中的三个方法:ReceiptListFilter(负责查询生单的源单据列表的数据)、ReceiptCheck(当单据列表上的一条单据被选择后,负责查询该单据的数据)、ReceiptChecked(负责为生单源单据列表上刚刚选择或取消选择的记录添加或取消CheckBox)。如果在实际的业务开发中需要做二次开发,只需要继承U872的默认的生单插
件的
实现类
UFIDA.U8.UAP.VoucherTransform.List.BasePlugin.
BasePluginUIEvent,重写基类中的方法即可。
示例一 列表门户按钮二次开发
双击查看代码
U811.1 客开培训资料之UAP
using System; using System.Collections.Generic; using System.Text; using UFIDA.U8.UAP.UI.Runtime.List; using UFIDA.U8.UAP.UI.Runtime.Model; using System.Data; using UFIDA.U8.UAP.UI.Runtime.List.Metas; using System.Collections; using System.Data.SqlClient; using System.Diagnostics; using UFIDA.U8.Portal.Framework.Commands; using UFIDA.U8.Portal.Proxy.Accessory; namespace ufida.u8.uap.plugin.SalesVoucher { public class SalesOrderList : UFIDA.U8.UAP.UI.Runtime.List.UI.BaseUIEventHandler { ///
U811.1 客开培训资料之UAP
示例二 生单二次开发列表部分
public class
BasePluginUIEvent:UFIDA.U8.UAP.UI.Runtime.List.UI.BaseUIEventHandler {
///
/// 根据条件过滤源单据列表数据,可以重写缺省的过滤算法 ///
///
///
///
public override void ReceiptListFilter(FilterPluginArgs filterArgs) {
string scriptSql = \; string selectCountSql = \;
filterArgs.CurrentPageData = new DataSet(); filterArgs.RowCountData = new DataSet();
System.Diagnostics.Debug.WriteLine(\开始解析转换规则获取.........\ + DateTime.Now.ToLongTimeString());
UFIDA.U8.UAP.Common.LoginInfo tempLogin = new UFIDA.U8.UAP.Common.LoginInfo(this.ListService.VbLogin);
DataServiceUtil.ProcessQueryReponse(filterArgs.BizDAEScript, filterArgs.QueryBOID, tempLogin.AppServer, tempLogin.UFMetaSqlConStr, this.ListService.MakerVoucherRuleID, ref scriptSql, ref selectCountSql);
using (SqlConnection conn = new SqlConnection(tempLogin.UFDataSqlConStr)) {
conn.Open();
if (filterArgs.NeedPaginate) {
SqlDataAdapter adapter = new SqlDataAdapter(scriptSql, conn); adapter.Fill(filterArgs.CurrentPageData,
(filterArgs.CurrentPageIndex - 1) * filterArgs.PageSize, filterArgs.PageSize, \); } else {
SqlDataAdapter adapter = new SqlDataAdapter(scriptSql, conn); adapter.Fill(filterArgs.CurrentPageData); }
SqlDataAdapter adapter1 = new SqlDataAdapter(selectCountSql,
U811.1 客开培训资料之UAP conn);
adapter1.Fill(filterArgs.RowCountData); } }
///
/// 源单据被选择事件,可以重写缺省的选择算法 ///
/// /// /// ///
public override DataSet ReceiptCheck(UFGeneralListService listService, object sender, string voucherId) {
DataSet result = null; if (sender is MakeVoucher) {
MakeVoucher tempObj = sender as MakeVoucher; result =
tempObj.VoucherLogic.VoucherSrv.GetVoucherTransformData(voucherId, tempObj.MakeVoucherRuleId); }
}
///
/// 源单据被选择事件,可以重写缺省的选择算法 ///
/// /// ///
public override void ReceiptChecked(UFGeneralListService listService, object sender, CellEventArgs e) {
this.ListService.ListPanel.SelectSameReceiptList(e, sender); } }
return result;
U811.1 客开培训资料之UAP
注意项
(三) 生单二次开发
生单二次开发共涉及到三个方面的二次开发:
生单接口二次开发; 列表接口二次开发; 单据接口二次开发;
其中列表接口和单据接口的二次开发参照行为对象二次开发章节的“表单二次开发”、“列表二次开发”。本节主要讲述生单的二次开发接口。
生单二次开发访问生单模型对象的接口为UFIDA.U8.UAP.UI.Runtime.Controller. IMakeReceipt,该接口是生单二次开发的基础接口。被定义在UFIDA.U8.UAP.UI.Runtime.Controller.dll中,所以在生单二次开发前,你需要为新建的表单开发项目添加UFIDA.U8.UAP.UI.Runtime.Controller.dll的引用。然后根据你的业务需要实现接口IMakeReceipt接口中的方法:
///
public interface IMakeReceipt {
///
/// /// ///
bool DataConverting(MakeVoucher makeReceipt, DataSet sourceDataSet);
///
/// /// ///
DataSet DataConvert(MakeVoucher makeReceipt,DataSet sourceDataSet);
///
/// /// ///
bool DataConverted(MakeVoucher makeReceipt, DataSet convertedDataSet);