在单据维护界面仅下推选中的单据体行

案例背景:
在单据JDA的维护界面,下推到目标单JDB时,默认是整单下推。
现在需要修改为仅下推选中的单据体焦点行;

实现方案:
二开单据JDA的插件,在 OnGetConvertRule 事件,调整下推所选行参数,这样随后执行的下推服务,就只会下推插件为其选择的数据行。

目标效果:
图一:在源单查看界面,选中需下推的单据体行
20151203 00下推选中行1.png 

图二:点击下推,选择目标单
20151203 00下推选中行2.png 

图三:生成的目标单,仅仅把源单单据体焦点行下推过来
20151203 00下推选中行3.png 

插件代码:

需挂在上游单据JDA的表单插件上

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

using Kingdee.BOS;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.Bill.PlugIn.Args;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.Core.List.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Orm.DataEntity;

namespace JDSample.FormPlugIn.Bill
{
    [Description("在单据上仅下推选中行")]
    public class S151203PushEntryRowEdit : AbstractBillPlugIn
    {
        /// <summary>
        /// 下推(或选单)处理,确定好目标单后,开始下推时,触发此事件:
        /// 可以在此事件中,调整转换规则,调整实际需下推的单据
        /// </summary>
        /// <param name="e"></param>
        public override void OnGetConvertRule(GetConvertRuleEventArgs e)
        {
            if (e.ConvertOperation == Kingdee.BOS.Core.DynamicForm.FormOperationEnum.Push
                && e.RuleElement.TargetFormId.EqualsIgnoreCase("6926e2833d9c40cda44cc95b74208aca"))
            {// 执行的是下推处理,且下推的是JDB

                // 获取当前单据内码
                string pkValue = Convert.ToString(this.View.Model.GetPKValue());

                // 获取当前单据体焦点行分录内码
                int rowIndex = 0;
                DynamicObject activeRow = null;
                if (this.Model.TryGetEntryCurrentRow("FEntity", out activeRow, out rowIndex))
                {
                    string entityId = Convert.ToString(activeRow[0]);

                    // 重新构建下推操作构建的选中行参数
                    ListSelectedRow newSelectedRow = new ListSelectedRow(
                        pkValue, entityId, 0, this.View.BillBusinessInfo.GetForm().Id );
                    newSelectedRow.EntryEntityKey = "FEntity";
                    ListSelectedRow[] newSelectedRows = new ListSelectedRow[] { newSelectedRow };

                    // 替换掉原下推服务上的选中行参数
                    e.SelectedRows = newSelectedRows;
                }
            }
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值