本帖最后由 xuming 于 2016-6-8 16:21 编辑  
 
功能概述 新建一条染色的订单(脱色,染色,染纱),对订单的订单明细和投料明细进行管理。 操作流程    操作流程说明:    1、用户打开界面    2、用户新建一条订单    3、系统自动保存用户输入的数据    4、UI原型图(可以看出系统的结构) 参数说明 1、参数功能说明 用来区分大货订单为脱色,染绒,染纱    2、参数值说明:1=染绒,2=染纱,3=脱色。 Ref参照   1、单据状态:从常量明细表pbConstDtl中查询出可用的并且常量为292的值    2、经营方式:从常量明细表pbConstDtl中查询出可用的并且常量为1297的值    3、订单类型:从通用数据字典表pbDictionaryData中查询出可用的并且字典类型为1325的值    4、客户:从客商基础表pbCustomer中查询出客户编号,客户名称和客户ID,并且所属部门的ID为1175或者为0的所有客户    5、染色类型:从常量明细表pbConstDtl中查询出可用的并且常量值为1350,并且染色类型的值为参数传过来的值    6、订单状态:从常量明细表pbConstDtl中查询出可用的并且常量值为1278的值    7、用途:从常量明细表pbConstDtl中查询出可用的并且常量值为1351的值    8、模板配方编号: SELECT TOP 50 sColorTemplateNo = A.sBillNo,A.sTemplateName,A.sParentColorNo ,sRemark=dbo.fnpbConcatStringEx(b.sColorNo + '('+CAST( CAST(b.nRate AS DECIMAL(18,2)) AS NVARCHAR)+'%)-'+c.sMaterialNo,' / ') FROM dbo.tmDyeingColorTemplate A(NOLOCK)  JOIN dbo.tmDyeingColorTemplateDtl b ON a.iIden=b.iHdrId LEFT JOIN dbo.mmMaterial c ON b.iMaterialId=c.iIden WHERE  A.iBillStatus= 2  AND A.bUsable=1 AND 1=1 GROUP BY a.sBillNo,a.sTemplateName,a.sParentColorNo 查询出前50行的模板配方编号和模版配方名称,大色号,配方=色号+单纱比例+%-物料编号,当模版配方头表的单据状态为已审核的时候,查出的信息按照编号,模板名称和色号分类。    9、出货地点:从销售交地表sdDestination中查询出可用的出货地点名称和出货地点ID    10、物料: IF :iDyeingType IN(1,3)   BEGIN --染绒时取绒 SELECT /*TOP*/ A.sMaterialNo,A.sMaterialName,iMaterialId = A.iIden,A.iUnitId,sUnitName=A.sUnit FROM dbo.mmMaterial A(NOLOCK)  WHERE A.iMaterialCategoryId = 2 AND A.bUsable=1 AND (/*Condition*/) END ELSE BEGIN --染纱时取原纱库的库存物料 SELECT /*TOP*/ A.sMaterialNo,A.sMaterialName,iMaterialId = A.iIden,A.iUnitId,sUnitName=A.sUnit FROM dbo.mmMaterial A WITH(NOLOCK) WHERE A.iMaterialCategoryId = 4 AND a.bUsable=1 AND (/*Condition*/)  END --当参数传过来的物料类型为1或3的时候(染绒、脱色)都取绒的物料,否则都取纱的物料
   11、单位:从单位表pbUnit中查询出可用的单位名称和单位ID
查询业务逻辑   1、主查询根据菜单所配的参数来查询    2、订单明细根据订单来区分。    3、投料明细根据订单明细来区分 UI显示与控制    1、执行订单,暂停订单,取消订单  用来修改订单明细下的订单状态。    执行订单:当前的订单状态为正常的时候,执行订单的按钮不可见。    暂停订单:当前的订单状态为暂停的时候,暂停订单按钮不可见。    取消订单:当前的订单状态为取消的时候,取消订单按钮不可见。  
   2、控件非空校验:    订单明细:纱支,物料,单位,交期,订单状态非空。    投料明细:物料,物料批次和单位非空。     单点功能说明    执行订单:将订单状态的值更新为1,也就是正常。 UPDATE A SET A.iOrderState=1 FROM dbo.sdDyeingOrderDtl A(NOLOCK) WHERE A.iIden=:iIden    暂停订单:将订单状态的值更新为2,也就是暂停。 UPDATE A SET A.iOrderState=2 FROM dbo.sdDyeingOrderDtl A(NOLOCK) WHERE A.iIden=:iIden    取消订单:将订单状态的值更新为3,也就是取消。 UPDATE A SET A.iOrderState=3 FROM dbo.sdDyeingOrderDtl A(NOLOCK) WHERE A.iIden=:iIden --点击按钮之后执行的action EntitySet.ValidateEmpty(dtlEntitySet);--判断实体类是否为空 DOIF(:f[dtlEntitySet.iOrderState]=1,RefreshControl(btnReturn,false));如果当前的订单状态为执行的话,将执行按钮变为不可用。 DOIF(:f[dtlEntitySet.iOrderState]=2,RefreshControl(btnStop,false));如果当前的订单状态为暂停的话,将暂停按钮变为不可用。 DOIF(:f[dtlEntitySet.iOrderState]=3,RefreshControl(btnCancel,false));如果当前的订单状态为取消的话,将取消按钮变为不可用。 
业务逻辑说明    1、新建一条订单后,填写对应的订单明细和投料明细,然后进行送审和审核对订单来操作。  
 |