配套表、发料清单添加工序工价列。
声明方法SubAddProcSalaryColumn()为配套表、发料清单的数据源添加工序工价列。
在位数据源赋值前调用该方法。
1个文件已修改
80 ■■■■■ 已修改文件
WorkM/报表分析/Sc_ICMOWorkCompleteSet.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WorkM/±¨±í·ÖÎö/Sc_ICMOWorkCompleteSet.cs
@@ -223,7 +223,7 @@
            //    sDlgWhere = sDlgWhere.Substring(1, sDlgWhere.Length - 1);
            //}
            //
            DSet = SubCn.RunProcReturn("exec h_p_Sc_ICMOWorkCompleteSet " + sDlgWhere, "Gy_Czygl");
            DSet = SubCn.RunProcReturn("exec h_p_Sc_ICMOWorkCompleteSet_New " + sDlgWhere, "Gy_Czygl");
            //生成首行标题
            if (DSet == null)
            {
@@ -231,6 +231,7 @@
                return;
            }
            //
            Sub_AddProcSalaryColumn(DSet);
            grdMain.DataSource = DSet.Tables[0].DefaultView;
            grdSub.DataSource = DSet.Tables[1].DefaultView;
            //获取动态列 ï¼ˆç‰©æ–™ä¿¡æ¯ï¼‰
@@ -482,6 +483,83 @@
            }
            
        }
        private void Sub_AddProcSalaryColumn(DataSet DSet)
        {
            //工序工价变量
            string sProcSalary = "";
            //为数据表添加工序工价列
            DataColumn oProcSalaryColumnPT = new DataColumn();
            DataColumn oProcSalaryColumnFL = new DataColumn();
            oProcSalaryColumnPT.DataType = System.Type.GetType("System.String");
            oProcSalaryColumnFL.DataType = System.Type.GetType("System.String");
            oProcSalaryColumnPT.ColumnName = "工序工价";
            oProcSalaryColumnFL.ColumnName = "工序工价";
            DSet.Tables[0].Columns.Add(oProcSalaryColumnPT);
            DSet.Tables[1].Columns.Add(oProcSalaryColumnFL);
            //拼接配套表成品代码对应工序工价
            for (int i = 0; i < DSet.Tables[0].Rows.Count; i++)
            {
                for(int j=0;j<DSet.Tables[3].Rows.Count;j++)
                {
                    if(DSet.Tables[1].Rows[i]["成品代码"].Equals(DSet.Tables[3].Rows[j]["物料代码"]))
                    {
                        if(DSet.Tables[3].Rows[j]["主工序"]==null||DSet.Tables[3].Rows[j]["主工序"].Equals(""))
                        {
                            sProcSalary = sProcSalary + DSet.Tables[3].Rows[j]["工序"] + "(";
                            for(int k = 0; k < DSet.Tables[3].Rows.Count; k++)
                            {
                                if(DSet.Tables[3].Rows[j]["工序"].Equals(DSet.Tables[3].Rows[k]["主工序"]))
                                {
                                    sProcSalary = sProcSalary + DSet.Tables[3].Rows[k]["工序"] + "(" + DSet.Tables[3].Rows[k]["单价"] + ")"+(double)DSet.Tables[0].Rows[i]["总需求量"]*(double)DSet.Tables[3].Rows[k]["单价"];
                                }
                            }
                            if(sProcSalary.Split('(').Length>1)
                            {
                                sProcSalary = sProcSalary + ")";
                            }else
                            {
                                sProcSalary = sProcSalary + DSet.Tables[3].Rows[j]["单价"] + ")" + (double)DSet.Tables[0].Rows[i]["总需求量"] * (double)DSet.Tables[3].Rows[j]["单价"];
                            }
                        }
                    }
                }
                DSet.Tables[0].Rows[i]["工序工价"] = sProcSalary;
                sProcSalary = "";
            }
            //拼接发料清单成品代码对应工序工价
            for (int i = 0; i < DSet.Tables[1].Rows.Count; i++)
            {
                for (int j = 0; j < DSet.Tables[3].Rows.Count; j++)
                {
                    if (DSet.Tables[1].Rows[i]["成品代码"].Equals(DSet.Tables[3].Rows[j]["物料代码"]))
                    {
                        if (DSet.Tables[3].Rows[j]["主工序"] == null || DSet.Tables[3].Rows[j]["主工序"].Equals(""))
                        {
                            sProcSalary = sProcSalary + DSet.Tables[3].Rows[j]["工序"] + "(";
                            for (int k = 0; k < DSet.Tables[3].Rows.Count; k++)
                            {
                                if (DSet.Tables[3].Rows[j]["工序"].Equals(DSet.Tables[3].Rows[k]["主工序"]))
                                {
                                    sProcSalary = sProcSalary + DSet.Tables[3].Rows[k]["工序"] + "(" + DSet.Tables[3].Rows[k]["单价"] + ")"+ (double)DSet.Tables[0].Rows[i]["总需求量"] * (double)DSet.Tables[3].Rows[k]["单价"];
                                }
                            }
                            if (sProcSalary.Split('(').Length > 1)
                            {
                                sProcSalary = sProcSalary + ")";
                            }
                            else
                            {
                                sProcSalary = sProcSalary + DSet.Tables[3].Rows[j]["单价"] + ")"+ (double)DSet.Tables[0].Rows[i]["总需求量"] * (double)DSet.Tables[3].Rows[j]["单价"];
                            }
                        }
                    }
                }
                DSet.Tables[1].Rows[i]["工序工价"] = sProcSalary;
                sProcSalary = "";
            }
        }
        private void label8_Click(object sender, EventArgs e)
        {