配套表、发料清单添加工序工价列。
声明方法SubAddProcSalaryColumn()为配套表、发料清单的数据源添加工序工价列。
在位数据源赋值前调用该方法。
1个文件已修改
108 ■■■■ 已修改文件
WorkM/报表分析/Sc_ICMOWorkCompleteSet.cs 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WorkM/±¨±í·ÖÎö/Sc_ICMOWorkCompleteSet.cs
@@ -54,7 +54,7 @@
            //oDlg.ShowDialog();
            //if (oDlg.IsOk == 1)
            //{
                timer1.Enabled = true;
            timer1.Enabled = true;
            //}
            Sub_PrintRecord(1);
        }
@@ -142,14 +142,14 @@
                Report.PrintPreview(false);
            }
        }
        #endregion
        #region ç•Œé¢å¤„理
        //初始化表头显示
        private void initHeadCaption()
        {
        }
        private bool Fun_AllowQuery()//审核查询条件
@@ -173,7 +173,7 @@
            long HEmpID = 0;
            long HProcID = 0;
            //显示报表头 æ ‡é¢˜
            //停止GRID刷新 åŠ å¿«é€Ÿåº¦
            //
            string[] sNumber = txtHMaterNumber.Text.Split(',');
@@ -194,7 +194,7 @@
            string sDlgWhere = "";
            sDlgWhere = "'" + txtHICMOInterID.Text.Trim() + "'";
            if (chkHSupFlag.Checked==true)
            if (chkHSupFlag.Checked == true)
            {
                sDlgWhere = sDlgWhere + ",-1 ";
            }
@@ -213,7 +213,7 @@
            }
            sDlgWhere = sDlgWhere + ",'" + sNewMaterNumber + "'";
            if(sDlgWhere == "")
            if (sDlgWhere == "")
            {
                sDlgWhere = "_";
            }
@@ -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,11 +231,12 @@
                return;
            }
            //
            Sub_AddProcSalaryColumn(DSet);
            grdMain.DataSource = DSet.Tables[0].DefaultView;
            grdSub.DataSource = DSet.Tables[1].DefaultView;
            //获取动态列 ï¼ˆç‰©æ–™ä¿¡æ¯ï¼‰
            if (DSet.Tables[2].Rows.Count != 0)
            {
                txtcpNumber.Text = DSet.Tables[2].Rows[0]["成品代码"].ToString();
@@ -346,7 +347,7 @@
            //oDlg.ShowDialog();
            //if (oDlg.IsOk == 1)
            //{
                timer1.Enabled = true;
            timer1.Enabled = true;
            //}
        }
@@ -405,9 +406,9 @@
        {
            BLL.ClsPub_BLL.Sub_ClearText(txtHCenterID);
        }
        //配套表、发料清单查询时显示打印次数和最新打印记录
        private void Sub_PrintRecord(int iOperationIndex)
        private void Sub_PrintRecord(int iOperationIndex)
        {
            if (iOperationIndex == 1) {              //查询时显示打印次数和打印记录
                ClsCN SubCn = new ClsCN();
@@ -445,17 +446,17 @@
                //更新窗口的展示数据
                if (DSet.Tables[0].Rows.Count != 0)
                {
                    lblHPrintTimes.Text = lblHPrintTimes.Text.Substring(0,5) + DSet.Tables[1].Rows[0]["打印次数"].ToString();
                    lblHPrintTimes.Text = lblHPrintTimes.Text.Substring(0, 5) + DSet.Tables[1].Rows[0]["打印次数"].ToString();
                    lblHPrinterName.Text = lblHPrinterName.Text.Substring(0, 4) + DSet.Tables[0].Rows[0]["打印人"].ToString();
                    lblHPrintTime.Text = lblHPrintTime.Text.Substring(0, 7) + DSet.Tables[0].Rows[0]["打印时间"].ToString();
                }
                else
                {
                    lblHPrintTimes.Text = lblHPrintTimes.Text.Substring(0, 5)+"0";
                    lblHPrintTimes.Text = lblHPrintTimes.Text.Substring(0, 5) + "0";
                    lblHPrinterName.Text = lblHPrinterName.Text.Substring(0, 4);
                    lblHPrintTime.Text = lblHPrintTime.Text.Substring(0, 7);
                }
            }else if (iOperationIndex == 2)
            } else if (iOperationIndex == 2)
            {
                ClsCN SubCn = new ClsCN();
@@ -480,7 +481,84 @@
                SubCn.RunProcReturn("exec h_p_Sc_SavePrintRecord " + sWhere, "Sc_PrintRecord_PtFl");
                Sub_PrintRecord(1);
            }
        }
        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)
        {