//查询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里面也写了一种方法:
调用自动编号的服务方法来自动生成批次号
调用wipmain的服务来获取当前批次的节点