插件二开:单据插件.根据单据类型动态切换视图

一、概述
本篇主要介绍单据插件.根据单据类型动态切换视图。
二、详情
客户案例:客户通过实体服务规则设置了单据类型在不同条件的值,在新增打开后,单据类型是按预期设置正确的,但单据类型对应的视图并未刷新。

以下通过【表单插件】方式实现动态切换视图,参考如下:
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.Linq;
namespace BOS.Debug.PCPlugIn
{
/// <summary>
/// 表单插件
/// </summary>
[System.ComponentModel.Description("表单插件---根据单据类型切换视图"),HotUpdate]
public class BillPlugIn_BillTypeChangeView : AbstractBillPlugIn
{
public override void AfterBindData(EventArgs e)
{
base.AfterBindData(e);
//按单据类型切换视图(这里只是按当前案例需要放在AfterBindData,实际以业务需要调整如:BarItemClick)
var billTypeId = ((DynamicObject)this.Model.GetValue("FBillTypeID"))[0] as String;
this.BillTypeChanged(billTypeId);
}
/// <summary>
/// 获取单据类型对应的视图ID
/// </summary>
/// <param name="billTypeId">单据类型ID</param>
/// <returns></returns>
private string GetLayoutId(string billTypeId=null) {
var billTypeField = this.View.BillBusinessInfo.GetBillTypeField();
if (string.IsNullOrWhiteSpace(billTypeId))
{
//获取单据类型ID
//var enumList = billTypeField.BuildEnumList();
billTypeId = ((DynamicObject)this.Model.GetValue(billTypeField))[0].ToString();
}
var BillType = billTypeField.BillTypeInfo.First(o => o["Id"].ToString() == billTypeId);
var layoutId = BillType["LayoutSolution_Id"].ToString();
return layoutId;
}
/// <summary>
/// 切换单据类型(通过ShowForm刷新视图)
/// </summary>
/// <param name="billTypeId"></param>
/// <param name="layoutId"></param>
private void BillTypeChanged(string billTypeId)
{
//只在新增时可切换单据类型的视图
if (this.View.OpenParameter.Status == OperationStatus.ADDNEW)
{
var layoutId = GetLayoutId(billTypeId);
if (layoutId == this.View.OpenParameter.LayoutId) return;
var para = new BillShowParameter();
this.CopyCustomeParameter(para);
para.OpenStyle.ShowType = ShowType.InCurrentForm;
para.FormId = this.View.OpenParameter.FormId;
para.DefaultBillTypeId = billTyp插件二开:单据插件.根据单据类型动态切换视图
一、概述本篇主要介绍单据插件.根据单据类型动态切换视图。二、详情客户案例:客户通过实体服务规则设置了单据类型在不同条件的值,在新增...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



