单据编辑插件

单据编辑插件


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


using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.Metadata.EntityElement;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.SqlBuilder;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Core.Bill.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Bill;
using Kingdee.BOS.Util;

namespace JD.K3.CLC.Business.PlugIn
{
    [System.ComponentModel.Description("填充工艺路线")]
    public class TCGYLX : AbstractBillPlugIn
    {

        public override void BarItemClick(BarItemClickEventArgs e)//菜单事件
        {
            if (e.BarItemKey == "tbTC")//填充按钮
            {

                GXTC();//填充方法

            }

          
        }

        public void GXTC()
        {
           
           DynamicObject obj = this.View.Model.GetValue("FMATERIALID") as DynamicObject;//获取物料代码
             
            string str = "";
            string select = "select FID from T_ENG_ROUTE where FMATERIALID=" + obj["Id"].ToString();//根据内码查询工艺路线

            DynamicObjectCollection collections = DBUtils.ExecuteDynamicObject(this.Context, select);
            foreach (DynamicObject dr in collections)
            {
                str = dr["FID"].ToString();//获得工艺路线内码

            }
            //判断工艺路线内码是否为空
            if (str.Equals(""))
            {
                this.View.ShowMessage("物料没有工艺路线");
                return;
            }
            //遍历工序序列
            select = " select * from T_ENG_ROUTEOPERSEQ as A  INNER JOIN  T_ENG_ROUTEOPERSEQ_L as B on  A.FENTRYID = B.FENTRYID  where A.FID=" + str;//根据工艺路线内码查询工序序列
            collections = DBUtils.ExecuteDynamicObject(this.Context, select);


           

            int i = 0;//工序序列行变量
            int j = 0;//工序信息行变量
            foreach (DynamicObject dr in collections)//遍历工序序列
            {
                this.View.Model.CreateNewEntryRow("FEntityGXXL"); //新增行?判断已经填充过一次了


                this.View.Model.SetValue("FSeqNumber", dr["FSEQNUMBER"], i);//序号
                this.View.Model.SetValue("FSeqName", dr["FSEQNAME"], i); //序列名称
                this.View.Model.SetValue("FSeqType", dr["FSEQTYPE"].ToString(), i);//序列类型
                this.View.Model.SetValue("FSeqAlignment", dr["FSEQALIGNMENT"], i);//对齐方式
                this.View.Model.SetValue("FSeqRefer", dr["FSEQREFER"], i);//参照序列
                this.View.Model.SetValue("FSeqOut", dr["FSEQOUT"], i);//转出工序
                this.View.Model.SetValue("FSeqIn", dr["FSEQIN"], i);//转入工序

                this.View.Model.SetValue("FSeqQty", this.View.Model.GetValue("FSL"), i);//数量
                this.View.Model.SetValue("FSeqPlanStartTime", this.View.Model.GetValue("FPlanStartTime"), i);//计划开始时间
                this.View.Model.SetValue("FSeqPlanFinishTime", this.View.Model.GetValue("FPlanFinishTime"), i);//计划完成时间

                i++;

                string data = dr["FENTRYID"].ToString();//工序序列内码
                string select2 = " select * from  T_ENG_ROUTEOPERDETAIL where FENTRYID=" + data;//查询工序序列对应工序列表
                DynamicObjectCollection collections2 = DBUtils.ExecuteDynamicObject(this.Context, select2);

                foreach (DynamicObject drzi in collections2)//遍历工序信息(工序列表)
                {
                    this.View.Model.CreateNewEntryRow("FEntityGXXX");//新增行
                 

                    this.View.Model.SetValue("FGXXLNM", data, j);//工序序列内码
                    this.View.Model.SetValue("FGXH", drzi["FOPERNUMBER"], j);//工序号
                    this.View.Model.SetValue("FJGZZ", drzi["FPROORGID"], j);//加工组织
                    this.View.Model.SetValue("FZZZX", drzi["FWORKCENTERID"], j);//工作中心
                    this.View.Model.SetValue("FZY", drzi["FPROCESSID"], j);//作业
                    this.View.Model.SetValue("FGXKZM", drzi["FOPTCTRLCODEID"], j);//工序控制码
                    this.View.Model.SetValue("FJGCJ", drzi["FDEPARTMENTID"], j);//加工车间
                    this.View.Model.SetValue("FSFSCGL", drzi["FSCWXGL"], j);//是否生成工令
                    this.View.Model.SetValue("FWXLX", drzi["FWXLX"], j);//维修类型
                    this.View.Model.SetValue("FWL", drzi["FSUBMATERIALID"], j);//物料

                    //数量?
                    //单位?
                    //具体单位和一些具体数量是从哪里来的
                   // this.View.Model.SetValue("FJHKSSJ", this.View.Model.GetValue("FPlanStartTime"), i);//计划开始时间
                   // this.View.Model.SetValue("FJHJSSJ", this.View.Model.GetValue("FPlanFinishTime"), i);//计划完成时间
                    //?只有其中一个日期是获取单据头里的时间

                    j++;
                }
            }

            EntryGrid entryGrid = this.View.GetControl<EntryGrid>("FEntityGXXL");//设置当前行
            entryGrid.SetFocusRowIndex(0);
            this.View.Model.SetEntryCurrentRowIndex("FEntityGXXL", 0);

            EntryGrid entryGrid1 = this.View.GetControl<EntryGrid>("FEntityGXXX");//设置当前行

            entryGrid1.SetFocusRowIndex(0);
            this.View.Model.SetEntryCurrentRowIndex("FEntityGXXX", 0);

            this.View.ShowMessage("填充成功");
        }
    }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值