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

HMI端联动报工

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

HMI端联动报工

【应用场景】

两工序绑定一起,当A(需要汇报工序)工序手工下推工序汇报单时,B工序(无需汇报工序)自动生成工序汇报单


【实现步骤】

<1>需要(SFC_MobileComplexReportBillEdit)二开插件,继承于ComplexOperReportEdit,重写方法BeforeInvokeBillOperation

<2>相关的代码如下:

1、需要通过当前序找到下序是不用汇报的工序。2、进行循环下推生成工序汇报单

/// <summary>
        /// 调用操作前
        /// </summary>
        /// <param name="e"></param>
        public override void BeforeInvokeBillOperation(BeforeInvokeBillOperationEventArgs e)
        {
            base.BeforeInvokeBillOperation(e);
            switch (e.OperationNumber)
            {
                case "Save":
                    //通过当前序找下道序
                    DynamicObjectCollection rptEntrys = this.View.BillModel.DataObject["OptRptEntry"] as DynamicObjectCollection;
                    long optId = Convert.ToInt64(rptEntrys[0]["OptPlanOptId"]);
                    long optPlanId = Convert.ToInt64(rptEntrys[0]["OptPlanId"]);
                    List<long> lst=new List<long>();
                    //查找当前序往下不用汇报的序
                    string sql =
               @"select IL.fseq,FDETAILID,de.FReportMode from T_SFC_OPERPLANNINGDETAIL IL 
inner join (SELECT tso.FENTRYID ,IL.fseq from T_SFC_OPERPLANNINGDETAIL  IL
inner join T_SFC_OPERPLANNINGSEQ tso on IL.FENTRYID =tso.FENTRYID 
where FDETAILID =@Id) a on IL.FENTRYID =a.FENTRYID  and IL.FSEQ >a.FSEQ 
inner join T_ENG_OPTCTRLCODE de on IL.FOptCtrlCodeId=de.FID 
order by IL.fseq ";
                    List<SqlParam> para = new List<SqlParam>();
                    para.Add(new SqlParam("@Id", KDDbType.Int64, optId));
                    using (IDataReader rd = DBServiceHelper.ExecuteReader(this.Context, sql,para))
                    {
                        while (rd.Read())
                        {
                            if (!rd["FReportMode"].Equals("10"))//10 代表必须汇报
                            {
                                lst.Add(Convert.ToInt64(rd["FDETAILID"]));
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    //循环进行报工
                    foreach (long item in lst)
                    {
                        bool IsSuccess = ReportOper(this.Context, item, optPlanId, rptEntrys[0]);
                        if (!IsSuccess)
                        {
                            break;
                        }
                    }
                    break;
            }
        }

3、在下推工序汇报的时候,需要根据客户的需求把数量赋值到新的工序汇报上去。

public bool ReportOper(Context ctx, long dy, long optPlanId, DynamicObject srcopt)
        {

            ListSelectedRow row = new ListSelectedRow(Convert.ToString(optPlanId),
               

HMI端联动报工

【应用场景】两工序绑定一起,当A(需要汇报工序)工序手工下推工序汇报单时,B工序(无需汇报工序)自动生成工序汇报单【实现步骤】<1>需要(SFC...
点击下载文档文档为doc格式

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

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