电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

配套材料采购申请将源单上的字段数据携带到采购申请单

来源:金蝶云社区作者:金蝶2024-09-234

配套材料采购申请将源单上的字段数据携带到采购申请单

配套材料采购申请将源单上的字段数据携带到采购申请单

目前此需求通版不支持,可以写插件二开实现。

下面示例如果在配套采购申请功能里将销售订单的扩展字段数据携带到采购申请单。

  1. 在采购申请、销售订单表体分别添加扩展二开文本类型字段 F_TES_EKZD

  2. 编写插件,该插件继承配套采购申请动态表单的表单插件,重写生成采购申请单后事件AssortReqEdit

using Kingdee.BOS;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.K3.SCM.Purchase.Business.PlugIn;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;

namespace TestCloud
{
    [Description("重写配套材料采购申请逻辑插件")]

    public class TestAssortReqEdit : AssortReqEdit
    {
        /// <summary>
        /// 重写生成采购申请单后事件
        /// </summary>
        /// <param name="reqDatas">申请单数据包</param>
        public override void AfterGenerateReqs(List<DynamicObject> reqDatas)
        {
            base.AfterGenerateReqs(reqDatas);

            if (reqDatas == null || reqDatas.Count == 0)
            {
                return;
            }

            //判断当前配套来源单据是什么,这里演示来源单据是销售订单
            if (OpenSourceBill == "SAL_SaleOrder")
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("FBILLNO");
                dt.Columns.Add("FSEQ");

                char spliteSymbol_1 = ',';
                char spliteSymbol_2 = '_';

                //根据配套来源行号字段获取源单数据信息
                foreach (var billItem in reqDatas)
                {
                    var entrys = billItem["ReqEntry"] as DynamicObjectCollection;

                    foreach (var entryItem in entrys)
                    {
                        string srcRowInfoItem = Convert.ToString(entryItem["ASSORTBILLSEQ"]);
                        if (string.IsNullOrWhiteSpace(srcRowInfoItem) == false)
                        {
                            var srcRowInfoItemArr = srcRowInfoItem.Split(spliteSymbol_1);

                            if (srcRowInfoItemArr != null && srcRowInfoItemArr.Length > 0)
                            {
                                foreach (var item in srcRowInfoItemArr)
                                {
                                    var subiItem = item.Split(spliteSymbol_2);

                                    string itemSrcBillNo = subiItem[0];
                                    string itemSrcSeq = subiItem[1];

                                    DataRow row = dt.NewRow();

                                    row[0] = itemSrcBillNo;
                                    row[1] = itemSrcSeq;
                                    dt.Rows.Add(row);
                                }
                            }
                        }
                    }
                }
                if (dt.Rows.Count == 0)
                {
                    return;
                }

                //批量从数据库过滤取数
                BatchSqlParam sqlParam = new BatchSqlParam("T_SAL_ORDER", dt);
                sqlParam.TableAliases = "TR";
                sqlParam.AddJoinExpression(" INNER JOIN T_SAL_ORDERENTRY T ON T.FID=TR.FID ");
        

配套材料采购申请将源单上的字段数据携带到采购申请单

配套材料采购申请将源单上的字段数据携带到采购申请单目前此需求通版不支持,可以写插件二开实现。下面示例如果在配套采购申请功能里将销售...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信