C# 插件脚本
1. 写窗体回调函数
public void Contacts_CallBack(FormResult res)
{
try
{
if (res.ReturnData == null)
return;
var m = ((ListSelectedRowCollection)res.ReturnData)[0];
var row = m.DataRow as DynamicObjectDataRow;
var obj = (Kingdee.BOS.Orm.DataEntity.DynamicObject)row.DynamicObject;
var mobile = obj["FMOBILE"].ToString();
this.View.Model.SetValue("FRECIPIENT_TEL", mobile);
this.View.Model.SetValue("FReveiceName", m.Name);
}
catch (Exception ex)
{
this.View.ShowMessage("选择数据返回异常,请联系管理员!", Kingdee.BOS.Core.DynamicForm.MessageBoxOptions.OK);
}
//foreach (var item in res.ReturnData)
//{
//}
}
2. 封装弹出窗体函数
/// <summary>
/// 弹出列表窗体
/// </summary>
/// <param name="Bill">this</param>
/// <param name="form_id">弹出窗体id</param>
/// <param name="action">回调函数</param>
/// <param name="strFilter">筛选脚本</param>
public static void Show_FrmList(AbstractBillPlugIn Bill, string form_id, Action<FormResult> action, string strFilter = "")
{
var showParam = new ListShowParameter()
{
Context = Bill.Context,
FormId = form_id,//e.FieldKey
IsShowApproved = true,// 只显示审核后的单据
MultiSelect = false,
PermissionItemId = PermissionConst.View,
IsLookUp = true,
//OpenStyle = ShowType.Modal,
PageId = Guid.NewGuid().ToString(),
ParentPageId = Bill.View.PageId
};
if (!string.IsNullOrEmpty(strFilter))
{
showParam.ListFilterParameter.Filter = strFilter;
}
Bill.View.ShowForm(showParam, action);
}
3. 重写BeforeF7Select
public override void BeforeF7Select(BeforeF7SelectEventArgs e)
{
base.BeforeF7Select(e);
switch (e.FieldKey.ToUpper())
{
case "FREVEICENAME":// 选择客户联系人 改为Python 插件
string cusid = this.View.Model.DataObject["FCustomerID_Id"].ToString();
if (!string.IsNullOrEmpty(cusid) && cusid != "0")
{
// 调用封装好的 弹出窗体
Common.PlugIn_Helper.Show_FrmList(this, "BD_CustContact", Contacts_CallBack, " FCustId= '" + cusid + "'");
}
else
{
this.View.ShowMessage("请先选择开票客户或者选择合同号!", Kingdee.BOS.Core.DynamicForm.MessageBoxOptions.OK);
}
break;
default:
break;
}
}