移动BOS插件开发

通过插件开发,开发人员可以自己通过代码调用接口读取、保存业务数据,给界面字段赋值、控制控件的可见性和锁定性,也可以在标准业务功能的基础上做特殊处理,从而达到灵活、自由地实现不同业务的目的。
学习目标
了解移动插件分类。
新建移动插件,了解移动插件的关键插件事件和接口。
如何注册插件。
移动开发如何本地调试
移动插件开发介绍
1、移动插件分类,根据移动业务对象不同,移动插件分为:
1、移动表单插件,它的基类是:AbstractMobilePlugin

2、移动单据插件,它的基类是:AbstractMobileBillPlugin

3、移动单据列表插件,它的基类是:AbstractMobileListPlugin

插件开发时都会调用到平台相关的通用接口,所以插件项目至少引用下图红圈中的组件:

2、关键插件事件和接口
1、移动表单插件开发实例
插件示例代码:
using Kingdee.BOS.Mobile.PlugIn;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LKD.MobileDemoPlugins
{
/// <summary>
/// 移动表单插件
/// </summary>
public class MobileFormEdit : AbstractMobilePlugin
{
public override void AfterBindData(EventArgs e)
{
//单据头字段赋值,"F_LKD_Text"为字段的唯一标识
this.View.Model.SetValue("F_LKD_Text","文本字段设置值");
//单据头字段取值
string strText = this.View.Model.GetValue("F_LKD_Text").ToString();
//移动列表字段赋值
int row = 0; //单据体(移动列表)行索引,索引号从 0开始
this.View.Model.SetValue("F_LKD_Text1", "文本字段设置值", row);
//单据体(移动列表)字段取值
string strRowText = this.View.Model.GetValue("F_LKD_Text1", row).ToString();
//单据体(移动列表)新增行、并给字段赋值
for (int i = 0; i < 5; i++)
{
//单据体(移动列表)新增行,"F_LKD_MobileListViewEntity"为单据体的唯一标识
this.View.Model.CreateNewEntryRow("F_LKD_MobileListViewEntity");
int rowCount = this.View.Model.GetEntryRowCount("F_LKD_MobileListViewEntity");
this.View.Model.SetValue("F_LKD_Text1", "F_LKD_Text1" + rowCount, rowCount);
this.View.Model.SetValue("F_LKD_Integer", rowCount, rowCount);
}
}
}
}打开子界面示例代码
插件代码打开一个移动表单、单据详情界面:
var paramDy = new MobileShowParameter();
paramDy.FormId = "MOB_MobileBill"; //移动单据唯一标识
paramDy.PKey = "1000010"; //单据内码
paramDy.CustomParams.Add("mykey", "myvalue"); //往子窗口传递参数
this.View.ShowForm(paramDy);插件代码打开一个移动单据列表界面(移动单据才有移动单据列表、移动表单没有)
var paramDy = new MobileListShowParameter();
paramDy.FormId = "MOB_MobileBill"; //移动单据唯一标识
paramDy.CustomParams.Add("mykey", "myvalue"); //往子窗口传递参数
this.View.ShowForm(paramDy);
子表单如何获取父表单传递过来的参数
其他参考示例代码
2、移动单据插件关键事件、取值、赋值方法
移动单据的插件和移动表单的插件一样,只是基类不一样,移动单据的插件继承自:AbstractMobileBillPlugin,还有移动单据关联一个来源单据,它的数据来源于对应的来源单据,所以对它取值和赋值操作,实际上就是对来源单据的取值和赋值。
using Kingdee.BOS.Mobile.PlugIn;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LKD.MobileDemoPlugins
{
/// <summary>
/// 移动单据插件
/// </summary>
public class SaleOrderBillDemoEdit : AbstractMobileBillPlugin
{
public override void AfterBindData(EventArgs e)
{
//获取来源单据的单据编号,FBillNo为来源单据的单据编号字段唯一标识
var billNo = this.View.BillModel.GetValue("FBillNo");
//给来源单据的文本字段赋值,FBillNo为来源单据的单据编号字段唯一标识
this.View.BillModel.SetValue("FBillNo", "单据编号");
//获取来源单据的单据体第5行的订单数量,FQty为来源单据的单据体的订单数量字段唯一标识
var billNo = this.View.BillModel.GetValue("FQty", 5);
//获取来源单据的单据体第5行的订单数量,FQty为来源单据的单据体的订单数量字段唯一标识
this.View.BillModel.SetValue("FQty", "单据编号", 5);
//刷新移动代理字段,F_PAEZ_MobileProxyField为移动单据上移动代理字段的唯一标识
//插件中代码给来源单据的字段赋值,要另外调用UpdateView刷新对应代理字段,结果才会在移动单据中展示处理
this.View.UpdateView("F_PAEZ_MobileProxyField");
}
}
}3、移动单据列表插件关键事件
using Kingdee.BOS.Core.List.PlugIn.Args; using King
移动BOS插件开发
通过插件开发,开发人员可以自己通过代码调用接口读取、保存业务数据,给界面字段赋值、控制控件的可见性和锁定性,也可以在标准...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



