private void BindOrderList() { DataTable tmpDT = new DataTable(); if (Session["DT" + ltlempid.Text] != null) { tmpDT = Session["DT" + ltlempid.Text] as DataTable; } else { tmpDT = CreateTable(); } if (Session[ltlempid.Text] != null) { DataTable dt = (DataTable)Session[ltlempid.Text]; for (int i = 0; i < dt.Rows.Count; i++) { //检测订单是否重复 if (getck(dt.Rows[i]["C_ID"].ToString())) { Mod_TMO_ORDER mod = tmo_order.GetModel(dt.Rows[i]["C_ID"].ToString()); if (mod != null) { ltltype.Text = mod.N_TYPE.ToString(); //发运类型 ltlcon_no.Text = mod.C_CON_NO; //合同号 ltlcustname.Text = mod.C_CUST_NAME; //客户 string areafalg = ts_dic.GetAreaFlag(mod.C_AREA); //获取区域是否按客户发运Y/N //线材 if (dropsfxc.SelectedItem.Text == "是") { if (mod.C_STL_GRD == "GCr15") { tmpDT.Rows.Add(new object[] { dt.Rows[i]["C_ID"], mod.C_CON_NO, mod.C_STL_GRD, mod.C_SPEC, mod.C_STD_CODE, mod.C_FREE1, mod.C_FREE2, mod.C_PACK, mod.N_WGT, mod.C_VDEF1, //质量等级 mod.C_AREA, //区域 mod.C_MAT_CODE, mod.C_MAT_NAME, mod.C_CUST_NAME, //订货单位 mod.C_RECEIPTCORPID, //收货单位 mod.C_RECEIPTAREAID, //收货地区 mod.C_RECEIVEADDRESS, //收货地址 mod.N_TYPE, mod.C_CUST_NO, dt.Rows[i]["PKPLAN"], //日计划主键 dt.Rows[i]["YLXWGT"], //已履行量 dt.Rows[i]["DLXWGT"], //待履行量 "", //可发运量 "" //可发支数 }); } else { #region //引用线材自由项 DataTable dtroll = tmo_order.GetFyd_Roll_Prodcut(mod.C_MAT_CODE, mod.C_STD_CODE, mod.C_AREA).Tables[0]; if (dtroll.Rows.Count > 0) { #region //可发运量/可发支数 decimal sumztwgt = 0; //在途总量 decimal sumztzs = 0; //在途总支数 decimal sumkcwgt = 0; //库存总量 decimal sumkczs = 0; //库存总支数 decimal kfwgt = 0; //可发重量 decimal kfzs = 0; //可发支数 Mod_TQB_CHECKSTATE modzl = tqb_checkstate.GetModel(mod.C_VDEF1); DataTable dtztwgt = areafalg == "N" ? tmo_order.ZTWGT(mod.C_MAT_CODE, dtroll.Rows[0]["C_STD_CODE"].ToString(), mod.C_AREA, dtroll.Rows[0]["C_BZYQ"].ToString(), modzl.C_CHECKSTATE_NAME).Tables[0] : tmo_order.ZTWGT(mod.C_MAT_CODE, dtroll.Rows[0]["C_STD_CODE"].ToString(), mod.C_AREA, dtroll.Rows[0]["C_BZYQ"].ToString(), modzl.C_CHECKSTATE_NAME, mod.C_CUST_NAME, mod.C_CON_NO).Tables[0]; if (dtztwgt.Rows.Count > 0) { sumztwgt = Convert.ToDecimal(dtztwgt.Compute("sum(N_FYWGT)", "true")); //在途量 sumztzs = Convert.ToDecimal(dtztwgt.Compute("sum(N_FYZS)", "true")); //在途支数 } DataTable dtkcwgt = areafalg == "N" ? tmo_order.KCWGT(mod.C_MAT_CODE, dtroll.Rows[0]["C_STD_CODE"].ToString(), mod.C_AREA, dtroll.Rows[0]["C_BZYQ"].ToString(), modzl.C_CHECKSTATE_NAME).Tables[0] : tmo_order.KCWGT(mod.C_MAT_CODE, dtroll.Rows[0]["C_STD_CODE"].ToString(), mod.C_AREA, dtroll.Rows[0]["C_BZYQ"].ToString(), modzl.C_CHECKSTATE_NAME, mod.C_CUST_NAME, mod.C_CON_NO).Tables[0]; if (dtkcwgt.Rows.Count > 0) { sumkcwgt = Convert.ToDecimal(dtkcwgt.Rows[0]["N_WGT"]); //库存量 sumkczs = Convert.ToDecimal(dtkcwgt.Rows[0]["jianshu"]); //库存支数 } kfwgt = sumkcwgt - sumztwgt; kfzs = sumkczs - sumztzs; #endregion tmpDT.Rows.Add(new object[] { dt.Rows[i]["C_ID"], mod.C_CON_NO, mod.C_STL_GRD, mod.C_SPEC, mod.C_STD_CODE, dtroll.Rows[0]["C_ZYX1"].ToString(), dtroll.Rows[0]["C_ZYX2"].ToString(), dtroll.Rows[0]["C_BZYQ"].ToString(), mod.N_WGT, mod.C_VDEF1, //质量等级 mod.C_AREA, //区域 mod.C_MAT_CODE, mod.C_MAT_NAME, mod.C_CUST_NAME, //订货单位 mod.C_RECEIPTCORPID, //收货单位 mod.C_RECEIPTAREAID, //收货地区 mod.C_RECEIVEADDRESS, //收货地址 mod.N_TYPE, mod.C_CUST_NO, dt.Rows[i]["PKPLAN"], //日计划主键 dt.Rows[i]["YLXWGT"], //已履行量 dt.Rows[i]["DLXWGT"], //待履行量 kfwgt.ToString(), //可发运量 kfzs.ToString() //可发支数 }); } else { #region //可发运量/可发支数 decimal sumztwgt = 0; //在途总量 decimal sumztzs = 0; //在途总支数 decimal sumkcwgt = 0; //库存总量 decimal sumkczs = 0; //库存总支数 decimal kfwgt = 0; //可发重量 decimal kfzs = 0; //可发支数 Mod_TQB_CHECKSTATE modzl = tqb_checkstate.GetModel(mod.C_VDEF1); DataTable dtztwgt = areafalg == "N" ? tmo_order.ZTWGT(mod.C_MAT_CODE, mod.C_STD_CODE, mod.C_AREA, mod.C_PACK, modzl.C_CHECKSTATE_NAME).Tables[0] : tmo_order.ZTWGT(mod.C_MAT_CODE, mod.C_STD_CODE, mod.C_AREA, mod.C_PACK, modzl.C_CHECKSTATE_NAME, mod.C_CUST_NAME, mod.C_CON_NO).Tables[0]; if (dtztwgt.Rows.Count > 0) { sumztwgt = Convert.ToDecimal(dtztwgt.Compute("sum(N_FYWGT)", "true")); sumztzs = Convert.ToDecimal(dtztwgt.Compute("sum(N_FYZS)", "true")); } DataTable dtkcwgt = areafalg == "N" ? tmo_order.KCWGT(mod.C_MAT_CODE, mod.C_STD_CODE, mod.C_AREA, mod.C_PACK, modzl.C_CHECKSTATE_NAME).Tables[0] : tmo_order.KCWGT(mod.C_MAT_CODE, mod.C_STD_CODE, mod.C_AREA, mod.C_PACK, modzl.C_CHECKSTATE_NAME, mod.C_CUST_NAME, mod.C_CON_NO).Tables[0]; if (dtkcwgt.Rows.Count > 0) { sumkcwgt = Convert.ToDecimal(dtkcwgt.Rows[0]["N_WGT"]); sumkczs = Convert.ToDecimal(dtkcwgt.Rows[0]["jianshu"]); } kfwgt = sumkcwgt - sumztwgt; kfzs = sumkczs - sumztzs; #endregion tmpDT.Rows.Add(new object[] { dt.Rows[i]["C_ID"], mod.C_CON_NO, mod.C_STL_GRD, mod.C_SPEC, mod.C_STD_CODE, mod.C_FREE1, mod.C_FREE2, mod.C_PACK, mod.N_WGT, mod.C_VDEF1, //质量等级 mod.C_AREA, //区域 mod.C_MAT_CODE, mod.C_MAT_NAME, mod.C_CUST_NAME, //订货单位 mod.C_RECEIPTCORPID, //收货单位 mod.C_RECEIPTAREAID, //收货地区 mod.C_RECEIVEADDRESS, //收货地址 mod.N_TYPE, mod.C_CUST_NO, dt.Rows[i]["PKPLAN"], //日计划主键 dt.Rows[i]["YLXWGT"], //已履行量 dt.Rows[i]["DLXWGT"], //待履行量 kfwgt.ToString(), //可发运量 kfzs.ToString() //可发支数 }); } #endregion } } else { #region //钢坯 tmpDT.Rows.Add(new object[] { dt.Rows[i]["C_ID"], mod.C_CON_NO, mod.C_STL_GRD, mod.C_SPEC, mod.C_STD_CODE, mod.C_FREE1, mod.C_FREE2, mod.C_PACK, mod.N_WGT, mod.C_VDEF1, //质量等级 mod.C_AREA, //区域 mod.C_MAT_CODE, mod.C_MAT_NAME, mod.C_CUST_NAME, //订货单位 mod.C_RECEIPTCORPID, //收货单位 mod.C_RECEIPTAREAID, //收货地区 mod.C_RECEIVEADDRESS, //收货地址 mod.N_TYPE, mod.C_CUST_NO, dt.Rows[i]["PKPLAN"], //日计划主键 dt.Rows[i]["YLXWGT"], //已履行量 dt.Rows[i]["DLXWGT"], //待履行量 "", //可发运量 "" //可发支数 }); #endregion } } } } } if (tmpDT.Rows.Count > 0) { rptList.DataSource = tmpDT; Session["DT" + ltlempid.Text] = tmpDT; rptList.DataBind(); Session[ltlempid.Text] = null; } else { rptList.DataSource = null; Session["DT" + ltlempid.Text] = null; rptList.DataBind(); txtcount.Value = ""; txtsumwgt.Value = ""; Session[ltlempid.Text] = null; } }