拆批开发例子(代码里面调用服务)

48 阅读1分钟
//查询Level对应的批次号生成规则
            string numberingRuleName = "";
            string sqlNumberingRule = string.Format(@"select n.NumberingRuleName from ContainerLevel cl 
                                        inner join numberingrule n on cl.ContainerNumberingRuleId = n.NumberingRuleId
                                        where cl.ContainerLevelName ='{0}'", _Level.Data);
            QueryService queryService = new QueryService(FrameworkManagerUtil.GetFrameworkSession().CurrentUserProfile);
            QueryOptions options = new QueryOptions()
            {
                QueryType = WCF.ObjectStack.QueryType.User,
                StartRow = 1,
                RowSetSize = 100
            };
            var recordSet = new RecordSet();
            var queryResult = queryService.ExecuteAdHoc(sqlNumberingRule, options, out recordSet);
            if (queryResult.IsSuccess && recordSet.Rows != null && recordSet.Rows.Length > 0)
            {
                numberingRuleName = Convert.ToString(recordSet.Rows[0].Values[0]);
            }
            else
            {
                Page.DisplayMessage("Level未关联批次号生成规则,请检查!", false);
                return;
            }
            string containername = "";
            SJ_AutoNumberingRuleService service = new SJ_AutoNumberingRuleService(FrameworkManagerUtil.GetFrameworkSession().CurrentUserProfile);
            SJ_AutoNumberingRule mprule = new SJ_AutoNumberingRule();
            mprule.NumberingRuleName = numberingRuleName;
            mprule.Container = new ContainerRef(_txtSelectionId.Data.ToString());
            //SJ_AutoNumberingRule_Parameters parameters = new SJ_AutoNumberingRule_Parameters();
            SJ_AutoNumberingRule_Result mpResult = new SJ_AutoNumberingRule_Result();
            SJ_AutoNumberingRule_Request mpRequest = new SJ_AutoNumberingRule_Request();
            mpRequest.Info = new SJ_AutoNumberingRule_Info
            {
                RequestValue = true,
                ContainerName = new Info(true)
            };
            ResultStatus rs = new ResultStatus();
            //生成批次号,并添加列表
            string containername1 = "";
            rs = service.ExecuteTransaction(mprule, mpRequest, out mpResult);
            if (rs.IsSuccess)
            {
                containername1 = mpResult.Value.ContainerName.ToString();
            }
            else
            {
                Page.DisplayMessage("批次号生成出错,请检查!", false);
                return;
            }
            SJ_LotSplitDetails item1 = new SJ_LotSplitDetails();
            item1.SJ_Product = new RevisionedObjectRef(_Product.TextEditControl.Text, _Product.RevisionControl.Text);
            item1.SJ_Qty = int.Parse(_Qty.Data.ToString());
            item1.ToContainerName = containername1;
            list.Add(item1);
            (_LotSplitDetails.GridContext as BoundContext).Data = list.ToArray();
            _LotSplitDetails.BoundContext.LoadData();
            CamstarWebControl.SetRenderToClient(_LotSplitDetails);
            _Qty.ClearData();
            _Product.ClearData();
        }
       

另外我在mdb里面也写了一种方法:

调用自动编号的服务方法来自动生成批次号

image.png

image.png

image.png

调用wipmain的服务来获取当前批次的节点

image.png

image.png

image.png

image.png

image.png