二开案例.表单插件.动态刷新列表

【应用场景】
将列表嵌入到动态表单的某个面板中,在动态表单上,动态刷新列表。
【案例演示】
采购订单,将物料列表嵌入到明细页签的面板中,新增基础资料字段,基础资料类型绑定物料,当该基础资料字段的值发生变化时,以当前值作为过滤条件,动态刷新物料列表。

【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS.Core.CommonFilter;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】动态刷新列表
/// </summary>
[Description("【表单插件】动态刷新列表"), HotUpdate]
public class RefreshListFormPlugIn : AbstractDynamicFormPlugIn
{
/// <summary>
/// 已经打开的列表视图的页面ID
/// </summary>
private string pageId = "";
public override void DataChanged(DataChangedEventArgs e)
{
base.DataChanged(e);
if (e.Field.Key.EqualsIgnoreCase("F_Jac_Base"))
{
var obj = this.Model.GetValue(e.Field.Key) as DynamicObject;
var filterString = obj != null ? string.Format("FMATERIALID=" + obj[0]) : "1=0";
if (string.IsNullOrWhiteSpace(pageId))
{
// 首次打开物料列表
pageId = Guid.NewGuid().ToString();
var showParameter = new ListShowParameter();
showParameter.ParentPageId = this.View.PageId;
showParameter.PageId = pageId;
showParameter.FormId = "BD_MATERIAL";
showParameter.OpenStyle.TagetKey = "F_Jac_Panel";
showParameter.OpenStyle.ShowType = ShowType.InContainer;
// 强制二开案例.表单插件.动态刷新列表
【应用场景】将列表嵌入到动态表单的某个面板中,在动态表单上,动态刷新列表。【案例演示】采购订单,将物料列表嵌入到明细页签的面板中,...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



