yusijie
2023-02-08 7f8ed8cdc49b33178f34c91edf862f831cd30c9c
WarM/ÌõÂë´òÓ¡/Gy_BarCodeBill.cs
@@ -67,19 +67,20 @@
        public const Int16 HInstructNoCol = 46;
        public const Int16 HSeOrderBillIDCol = 47;
        public const Int16 HSeOrderBillNoCol = 48;
        public const Int16 HWhIDCol = 49;
        public const Int16 HWhNumberCol = 50;
        public const Int16 HWhNameCol = 51;
        public const Int16 HSPIDCol = 52;
        public const Int16 HSPNumberCol = 53;
        public const Int16 HSPNameCol = 54;
        public const Int16 HinitQtyCol = 55;
        public const Int16 HRemarkCol = 56;
        public const Int16 HPinfanBarCodeCol = 57;
        public const Int16 HMTONoCol = 58;
        public const Int16 HShowDateCol = 59;
        public const Int16 HInnerBillNoCol = 60;
        public const Int16 HMakerCol = 61;
        public const Int16 HSeOrderSEQCol = 49;
        public const Int16 HWhIDCol = 50;
        public const Int16 HWhNumberCol = 51;
        public const Int16 HWhNameCol = 52;
        public const Int16 HSPIDCol = 53;
        public const Int16 HSPNumberCol = 54;
        public const Int16 HSPNameCol = 55;
        public const Int16 HinitQtyCol = 56;
        public const Int16 HRemarkCol = 57;
        public const Int16 HPinfanBarCodeCol = 58;
        public const Int16 HMTONoCol = 59;
        public const Int16 HShowDateCol = 60;
        public const Int16 HInnerBillNoCol = 61;
        public const Int16 HMakerCol = 62;
        public Int16 HSelectCol = 0;
        public Int16 HSno2Col = 1;
@@ -127,19 +128,20 @@
        public Int16 HInstructNo2Col = 43;
        public Int16 HSeOrderBillID2Col = 44;
        public Int16 HSeOrderBillNo2Col = 45;
        public Int16 HWhID2Col = 46;
        public Int16 HWhNumber2Col = 47;
        public Int16 HWhName2Col = 48;
        public Int16 HSPID2Col = 49;
        public Int16 HSPNumber2Col = 50;
        public Int16 HSPName2Col = 51;
        public Int16 HRemark2Col = 52;
        public Int16 HPinfanBarCode2Col = 53;
        public Int16 HMTONo2Col = 54;
        public Int16 HShowDate2Col = 55;
        public Int16 HInnerBillNo2Col = 56;
        public Int16 HMaker2Col = 57;
        public Int16 HEntryID2Col = 58;
        public Int16 HSeOrderSEQ2Col = 46;
        public Int16 HWhID2Col = 47;
        public Int16 HWhNumber2Col = 48;
        public Int16 HWhName2Col = 49;
        public Int16 HSPID2Col = 50;
        public Int16 HSPNumber2Col = 51;
        public Int16 HSPName2Col = 52;
        public Int16 HRemark2Col = 53;
        public Int16 HPinfanBarCode2Col = 54;
        public Int16 HMTONo2Col = 55;
        public Int16 HShowDate2Col = 56;
        public Int16 HInnerBillNo2Col = 57;
        public Int16 HMaker2Col = 58;
        public Int16 HEntryID2Col = 59;
        //
        public  string ModName = "85";
        public  string ModCaption = "条码生成";
@@ -163,7 +165,10 @@
        public string ERPMode = ""; //ERP模式(WISE、CLOUD)
        public string CampanyName = ""; //客户定制化名称
        public string SourceQtyCtl = ""; //超源单数量控制
                                         //-------------------------------------------------------------------------
        public long PrintQty = 0;               //允许条码打印次数
        public string PrintQtyCtl = "";         //条码打印次数控制
        public string UpdatePrintQtyCtl = "";   //条码打印次数更新
                                                //-------------------------------------------------------------------------
        #region å›ºå®šä»£ç 
        //清空界面
@@ -206,6 +211,8 @@
            cmbSourceBillType.Items.Add("采购订单");
            cmbSourceBillType.Items.Add("收料通知单");
            cmbSourceBillType.Items.Add("委外订单");
            cmbSourceBillType.Items.Add("工序汇报单");
            cmbSourceBillType.Items.Add("工序流转卡");
            cmbSourceBillType.Items.Add("退货通知单");
            cmbSourceBillType.Items.Add("其他入库单");
            cmbSourceBillType.Items.Add("直接调拨单");
@@ -403,6 +410,9 @@
                ERPMode = oSystemParameter.omodel.WMS_WMSStockCtl_ERPMode;
                CampanyName = oSystemParameter.omodel.WMS_CampanyName;
                SourceQtyCtl = oSystemParameter.omodel.BarCode_SourceQtyCtl;
                PrintQty = oSystemParameter.omodel.BarCode_PrintQty;
                PrintQtyCtl = oSystemParameter.omodel.BarCode_PrintQtyCtl;
                UpdatePrintQtyCtl = oSystemParameter.omodel.BarCode_UpdatePrintQtyCtl;
            }
            cmbHWorksNumber.Items.Clear();
@@ -677,10 +687,10 @@
            string HMaterNumber = "";   //物料代码
            double HSumQty = 0;         //产品数量
            double HMinQty = 0;         //最小包装数
            int HBQty = 0;              //箱数
            Int64 HBQty = 0;              //箱数
            double HQty = 0;            //数量
            string WeiShu = "";         //尾数
            int LSH = 0;                //流水号
            Int64 LSH = 0;                //流水号
            string LSH2 = "";           //流水号转换成字符
            string sDate = "";          //日期
            string sYear = "";          //å¹´
@@ -693,7 +703,7 @@
            string HBarCodeBatchNo = "";       //条码批次号
            string HBarCodeDate = "";         //条码日期
            int k = 0;
            int n = 0;                  //同一批生成条码中的第几条
            Int64 n = 0;                  //同一批生成条码中的第几条
            string sTMNumber = "";      //条码自定义前缀
            DataSet Ds;
            //Ds = oCn.RunProcReturn("exec GetLSH '" + ClsPub.GetServerDate(0) + "'", "GetLSH");
@@ -740,7 +750,7 @@
                            sTMNumber = HNumber + sYear + sPeriod + sDay;
                            Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                            //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                            LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                            LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                        }
                        else if (CampanyName == "飞龙")
                        {
@@ -755,7 +765,7 @@
                            sTMNumber = HWorksNumber + HNumber + sYear + sPeriod + sDay;
                            Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                            //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                            LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                            LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                        }
                        else  //通用方法
                        {
@@ -763,7 +773,7 @@
                            sTMNumber = HOrgNumber + HNumber + sYear + sPeriod + sDay;
                            Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                            //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                            LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                            LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                        }
                    }
                    else if (cmbHBarCodeType.Text == "品种条码")
@@ -781,13 +791,22 @@
                    {
                        TM = HOrgNumber + HNumber + HBatchNo;
                    }//博日特殊处理
                    else if (cmbHBarCodeType.Text == "序列码")
                    {
                        //条码规则: GX+物料内码+年年月月日日+5位流水号
                        LSHlen = 5;
                        //条码前缀 = GX+物料内码+年年月月日日
                        sTMNumber = "GX" + HNumber + sYear + sPeriod + sDay;
                        Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                    }
                    else if(cmbHBarCodeType.Text == "仪器外购件条码普通规则" || cmbHBarCodeType.Text == "仪器外购件条码容器规则")
                    {
                        //物料编码+单据日期(YYMMDD)+流水4位 
                        sTMNumber = HMaterNumber + sYear + sPeriod + sDay;
                        Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                                                                                                                    //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                        LSHlen = 4;
                    }
                    else if (cmbHBarCodeType.Text == "仪器成品条码规则") //另外处理了
@@ -796,7 +815,7 @@
                        //sTMNumber = HMaterNumber + sYear + sPeriod + sDay;
                        //Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                        //                                                                                            //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                        //LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                        //LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                    }
                    else if (cmbHBarCodeType.Text == "试剂成品条码规则")
                    {
@@ -804,7 +823,7 @@
                        sTMNumber = HMaterNumber + HBatchNo ;
                        Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                                                                                                                    //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                        LSHlen = 6;
                    }
                    else if (cmbHBarCodeType.Text == "内销机条码")
@@ -814,11 +833,11 @@
                        sTMNumber = "1" + HModelName + HBarCodeDate + HBarCodeBatchNo + HYasuoji + "00" ;
                        Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                                                                                                                    //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                        LSHlen = 5;
                        if (sTMNumber.Length != 16)
                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                        LSHlen = 4;
                        if (sTMNumber.Length != 16 && sTMNumber.Length != 15)
                        {
                            MessageBox.Show("条码长度不够16位,是否数据不全!制造本部1位:[0] + æœºåž‹ä»£ç 5位:[" + HModelName + "] + å¹´æœˆæ—¥5位:["+ HBarCodeDate + "] + æ‰¹æ¬¡å·2位:[" + HBarCodeBatchNo  + "]+ åŽ‹ç¼©æœº1位:["+ HYasuoji + "]+00 ; ");
                            MessageBox.Show("条码长度不够15或16位,是否数据不全!制造本部1位:[0] + æœºåž‹ä»£ç 5位:[" + HModelName + "] + å¹´æœˆæ—¥4或5位:["+ HBarCodeDate + "] + æ‰¹æ¬¡å·2位:[" + HBarCodeBatchNo  + "]+ åŽ‹ç¼©æœº1位:["+ HYasuoji + "]+00 ; ");
                            return;
                        }
                    }
@@ -829,11 +848,11 @@
                        sTMNumber = HMaterNumber.Replace( "."  ,  "" ) + HBarCodeDate + HBarCodeBatchNo;
                        Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                                                                                                                    //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                        LSHlen = 5;
                        if (sTMNumber.Length != 18)
                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                        LSHlen = 4;
                        if (sTMNumber.Length != 18 && sTMNumber.Length != 17)
                        {
                            MessageBox.Show("条码长度不够18位,是否数据不全!物料代码11位:["+ HMaterNumber.Replace(".", "") + "]+年月日5位:["+ HBarCodeDate + "]+批次号2位:[" + HBarCodeBatchNo  + "];");
                            MessageBox.Show("条码长度不够17或18位,是否数据不全!物料代码11位:["+ HMaterNumber.Replace(".", "") + "]+年月日4或5位:["+ HBarCodeDate + "]+批次号2位:[" + HBarCodeBatchNo  + "];");
                            return;
                        }
                    }
@@ -843,7 +862,7 @@
                        sTMNumber = HICMOBillNo;
                        Ds = oCn.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo");    //获取最大流水号
                                                                                                                    //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                        LSH = ClsPub.isInt(Ds.Tables[0].Rows[0][0]);
                        LSH = ClsPub.isLong(Ds.Tables[0].Rows[0][0]);
                        LSHlen = 5;
                    }
                    //else if (cmbHBarCodeType.Text == "托盘条码")
@@ -856,10 +875,11 @@
                        return;
                    }
                    HBQty = HBQty + ClsPub.isInt(grdMain.Rows[j].Cells[HBQtyCol].Value);
                    HBQty = HBQty + ClsPub.isLong(grdMain.Rows[j].Cells[HBQtyCol].Value);
                    HMinQty = ClsPub.isDoule(grdMain.Rows[j].Cells[HMinQtyCol].Value);
                    HSumQty = ClsPub.isDoule(grdMain.Rows[j].Cells[HQtyCol].Value);
                    n = 0;
                    int nn = 0;
                    for (int i = k; i < HBQty; i++)
                    {
                        if (HSumQty - HMinQty > 0)
@@ -887,6 +907,11 @@
                            LSH2 = "0" + LSH2;
                        }
                        if (cmbHBarCodeType.Text == "唯一条码")
                        {
                            //条码编号 = æ¡ç å‰ç¼€ + æµæ°´å·
                            TM = sTMNumber + LSH2;
                        }
                        else if (cmbHBarCodeType.Text == "序列码")
                        {
                            //条码编号 = æ¡ç å‰ç¼€ + æµæ°´å·
                            TM = sTMNumber + LSH2;
@@ -964,6 +989,7 @@
                        grdSub.Rows[i].Cells[HSourceName2Col].Value = grdMain.Rows[j].Cells[HSourceNameCol].Value;
                        grdSub.Rows[i].Cells[HEndDate2Col].Value = grdMain.Rows[j].Cells[HEndDateCol].Value;
                        grdSub.Rows[i].Cells[HSeOrderBillNo2Col].Value = grdMain.Rows[j].Cells[HSeOrderBillNoCol].Value;
                        grdSub.Rows[i].Cells[HSeOrderSEQ2Col].Value = grdMain.Rows[j].Cells[HSeOrderSEQCol].Value;
                        grdSub.Rows[i].Cells[HInnerBillNo2Col].Value = grdMain.Rows[j].Cells[HInnerBillNoCol].Value;
                        grdSub.Rows[i].Cells[HMaker2Col].Value = grdMain.Rows[j].Cells[HMakerCol].Value;
                        grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value = grdMain.Rows[j].Cells[HGiveAwayFlagCol].Value;
@@ -975,8 +1001,11 @@
                        grdSub.Rows[i].Cells[HGiveAwayFlag2Col] = oCell;
                        k = k + 1;
                        n = n + 1;
                        oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                        //oCn.RunProc("exec h_p_WMS_SetMaxNo '" + sTMNumber + "'");
                        nn = nn + 1;
                    }
                    //后台批量执行语句
                    oCn.RunProc("exec h_p_WMS_SetMaxNo_QTY '" + sTMNumber + "'," + nn.ToString() + " ");
                }
            }
            string HWei = "";      //尾数
@@ -1009,6 +1038,7 @@
            DateTime HEndDate;
            string HWorkLineName = "";
            string HSeOrderBillNo = "";
            Int64 HSeOrderSEQ = 0;
            string HInnerBillNo = "";
            bool HGiveAwayFlag = false;
            Int64 HEntryID = 0;
@@ -1054,6 +1084,7 @@
                        HEndDate = ClsPub.isDate(grdSub.Rows[i].Cells[HEndDate2Col].Value);
                        HWorkLineName = ClsPub.isStrNull(grdSub.Rows[i].Cells[HSourceName2Col].Value);
                        HSeOrderBillNo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HSeOrderBillNo2Col].Value);
                        HSeOrderSEQ = ClsPub.isLong(grdSub.Rows[i].Cells[HSeOrderSEQ2Col].Value);
                        HInnerBillNo = ClsPub.isStrNull(grdSub.Rows[i].Cells[HInnerBillNo2Col].Value);
                        HGiveAwayFlag = ClsPub.isBool(grdSub.Rows[i].Cells[HGiveAwayFlag2Col].Value);
                        oCn.RunProc("insert into Gy_BarCodeBill (HBarCode,HBarCodeType,HMaterID,HUnitID,HQty" +
@@ -1062,7 +1093,7 @@
                                    ",HBarcodeQtys,HBarcodeNo,HDeptID,HWhID,HSPID,HRemark " +
                                    ",HCusID,HCusType,HEndDate,HWorkLineName,HBarCodeDate " +
                                    ",HSTOCKORGID,HOWNERID,HSeOrderBillNo,HInterID,HEntryID " +
                                    ",HGiveAwayFlag " +
                                    ",HGiveAwayFlag,HSeOrderSEQ,HInitSourceEntryID " +
                                    ",HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo,HInnerBillNo " +
                                    ") values ("
                                    + "'" + HBarCode + "','" + HBarCodeType + "'," + HMaterID.ToString() + "," + HUnitID.ToString() + "," + HQty2.ToString()
@@ -1071,7 +1102,7 @@
                                    + ", " + HBarcodeQtys.ToString() + "," + HBarcodeNo.ToString() + "," + HDeptID.ToString() + "," + HWhID.ToString() + "," + HSPID.ToString() + ",'" + HRemark + "'"
                                    + ", " + HCusID.ToString() + ",'" + HCusType + "','" + HEndDate.ToShortDateString() + "','" + HWorkLineName + "','" + sDate + "'"
                                    + ", " + HOrgID.ToString() + "," + HOrgID.ToString() + ",'" + HSeOrderBillNo + "'," + HInterID.ToString() + "," + HEntryID.ToString() + ""
                                    + ", " + DBUtility.ClsPub.BoolToString(HGiveAwayFlag)
                                    + ", " + DBUtility.ClsPub.BoolToString(HGiveAwayFlag) + "," + HSeOrderSEQ.ToString() + "," + HSourceEntryID.ToString()
                                    + ",'" + HMaterName + "','" + HMaterModel + "','" + HPinfan + "'," + HAuxPropID.ToString() + ",'" + HMTONo + "','" + HInnerBillNo + "')");
@@ -1154,7 +1185,7 @@
            string HMaterNumber = "";   //物料代码
            double HSumQty = 0;         //产品数量
            double HMinQty = 0;         //最小包装数
            int HBQty = 0;              //箱数
            Int64 HBQty = 0;              //箱数
            double HQty = 0;            //数量
            string WeiShu = "";         //尾数
            //int LSH = 0;                //流水号
@@ -1205,7 +1236,7 @@
                    //    return;
                    //}
                    HBQty = HBQty + ClsPub.isInt(grdMain.Rows[j].Cells[HBQtyCol].Value);
                    HBQty = HBQty + ClsPub.isLong(grdMain.Rows[j].Cells[HBQtyCol].Value);
                    HMinQty = ClsPub.isDoule(grdMain.Rows[j].Cells[HMinQtyCol].Value);
                    HSumQty = ClsPub.isDoule(grdMain.Rows[j].Cells[HQtyCol].Value);
                    n = 0;
@@ -1478,7 +1509,7 @@
            //
            grdMain.RowCount = 0;
            grdSub.RowCount = 0;
            grdMain.ColumnCount = 62;                       //总列数
            grdMain.ColumnCount = 63;                       //总列数
            DBUtility.Xt_BaseBillFun.initGridFst(grdMain, this.Name);
            grdMain.Columns[HSnoCol].HeaderText = "序号";
            grdMain.Columns[HMainIDCol].HeaderText = "源单主ID";
@@ -1520,6 +1551,7 @@
            grdMain.Columns[HSPNameCol].HeaderText = "仓位";
            grdMain.Columns[HInstructNoCol].HeaderText = "指令单号";
            grdMain.Columns[HSeOrderBillNoCol].HeaderText = "销售订单号";
            grdMain.Columns[HSeOrderSEQCol].HeaderText = "销售订单行号";
            grdMain.Columns[HDateCol].HeaderText = "进料日期";
            grdMain.Columns[HRemarkCol].HeaderText = "备注";
            grdMain.Columns[HMTONoCol].HeaderText = "计划跟踪号";
@@ -1611,7 +1643,7 @@
            DBUtility.Xt_BaseBillFun.initGridLast(sAllowCol, sTotalCol,oSumGrid);
            //----------------------------
            grdSub.ColumnCount = 59;                       //总列数
            grdSub.ColumnCount = 60;                       //总列数
            DBUtility.Xt_BaseBillFun.initGridFst(grdSub, this.Name);
            grdSub.Columns[HSelectCol].HeaderText = "选择";
            grdSub.Columns[HTMCol].HeaderText = "条码编号";
@@ -1640,6 +1672,7 @@
            grdSub.Columns[HSourceBillNo2Col].HeaderText = "源单单号";
            grdSub.Columns[HSourceBillType2Col].HeaderText = "源单类型";
            grdSub.Columns[HSeOrderBillNo2Col].HeaderText = "销售订单号";
            grdSub.Columns[HSeOrderSEQ2Col].HeaderText = "销售订单行号";
            grdSub.Columns[HBarcodeNoCol].HeaderText = "托号";
            grdSub.Columns[HBarcodeQtysCol].HeaderText = "总托数";
            grdSub.Columns[HSupID2Col].HeaderText = "供应商ID";
@@ -2160,6 +2193,24 @@
                    FillSelectData(oIF_PackageDismantleBillList.oBillSelectColl);
                }
            }
            else if (cmbSourceBillType.Text.Trim() == "工序流转卡")
            {
                string sWhere = " and HOrgID =" + HOrgID.ToString();
                DAL.Cls_S_IF_ProcessExchangeBillList oIF_ProcessExchangeBillList = new DAL.Cls_S_IF_ProcessExchangeBillList();
                if (oIF_ProcessExchangeBillList.Refresh(sWhere))  //选择原单
                {
                    FillSelectData(oIF_ProcessExchangeBillList.oBillSelectColl);
                }
            }
            else if (cmbSourceBillType.Text.Trim() == "工序汇报单")
            {
                string sWhere = " and HOrgID =" + HOrgID.ToString();
                DAL.Cls_S_IF_ProcessReportBillList oIF_ProcessReportBillList = new DAL.Cls_S_IF_ProcessReportBillList();
                if (oIF_ProcessReportBillList.Refresh(sWhere))  //选择原单
                {
                    FillSelectData(oIF_ProcessReportBillList.oBillSelectColl);
                }
            }
            else
            {
@@ -2302,6 +2353,26 @@
                    grdMain.Rows[i].Cells[HTagCol].Value = "*";
                    //得到信息
                    Ds = oCn.RunProcReturn("select * from h_v_IF_PackageDismantleList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_PackageDismantleList");
                    //写入信息
                    Sub_WriteInForm1(Ds.Tables[0], i);
                }
                //工序流转卡
                if (oSelectRow.BillType == "3772")
                {
                    grdMain.Rows.Add();
                    grdMain.Rows[i].Cells[HTagCol].Value = "*";
                    //得到信息
                    Ds = oCn.RunProcReturn("select * from h_v_IF_ProcessExchangeList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_ProcessExchangeList");
                    //写入信息
                    Sub_WriteInForm1(Ds.Tables[0], i);
                }
                //生产汇报单
                if (oSelectRow.BillType == "3714")
                {
                    grdMain.Rows.Add();
                    grdMain.Rows[i].Cells[HTagCol].Value = "*";
                    //得到信息
                    Ds = oCn.RunProcReturn("select * from h_v_IF_ProcessReportList where hmainid=" + oSelectRow.BillMainID + " and hsubid=" + oSelectRow.BillSubID, "h_v_IF_ProcessReportList");
                    //写入信息
                    Sub_WriteInForm1(Ds.Tables[0], i);
                }
@@ -2459,6 +2530,8 @@
                    {
                        grdMain.Rows[i].Cells[HGiveAwayFlagCol].Value = 0;
                    }
                    grdMain.Rows[i].Cells[HSeOrderBillNoCol].Value = oTable.Rows[0]["销售订单号"].ToString();
                    grdMain.Rows[i].Cells[HSeOrderSEQCol].Value = oTable.Rows[0]["销售订单行号"].ToString();
                }
            }
@@ -2698,9 +2771,10 @@
        #region  //打印设置
        GridppReport Report;
        int CurRows = 0;
        string sBarCodeItemID = ""; //条码自增列
        //预览
        int CurRows = 0;
        private void yl_Click(object sender, EventArgs e)
        {
            //判断是否已经生成条码
@@ -2729,32 +2803,68 @@
            }
        }
        //打印前判断条码是否已打印过
        //打印
        private void dy_Click(object sender, EventArgs e)
        {
            //判断是否已经生成条码
            if (DBUtility.ClsPub.isStrNull(grdSub.Rows[0].Cells[HTMCol].Value) == "")
            {
                MessageBox.Show("条码未生成,请先生成条码后再打印!");
                return;
            }
            //打印前判断条码是否已打印过
            if (ReportPrintBegin())
            {
                return;
            }
            //选择打印模板
            BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp();
            oFrm.sBillName = ModName;
            oFrm.sBillModel = ModCaption;
            oFrm.ShowDialog();
            if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK)
            {
                //循环选中行
                Sub_SetReport(oFrm.sOpenTmp);
                Report.Print(true);
                Thread.Sleep(1000);
            }
        }
        ////打印前判断条码是否已打印过
        //private bool ReportPrintBegin()
        //{
        //    string sRelQty = "";
        //    if (oBar.Set_BPrintQty(DBUtility.ClsPub.isStrNull(grdSub.Rows[0].Cells[HTMCol].Value), ref sRelQty))
        //    {
        //        MessageBox.Show("条码已经打印过,不可重复打印!");
        //        return true;
        //    }
        //    else
        //    {
        //        return false;
        //    }
        //}
        //打印前判断条码是否超过允许可打印次数
        private bool ReportPrintBegin()
        {
            string sRelQty = "";
            if (oBar.Set_BPrintQty(DBUtility.ClsPub.isStrNull(grdSub.Rows[0].Cells[HTMCol].Value), ref sRelQty))
            string sHRemark = "";
            if (PrintQtyCtl == "Y")
            {
                MessageBox.Show("条码已经打印过,不可重复打印!");
                return true;
                if (oBar.Set_CheckPrintQty_SD(HInterID, PrintQty, ref sHRemark))
                {
                    MessageBox.Show(sHRemark);
                    return true;
                }
                return false;
            }
            else
            {
                return false;
            }
        }
        //打印结束后回填条码打印次数
        private void ReportPrintEnd()
        {
            try
            {
                oCn.RunProc("update Gy_BarCodeBill set HPrintQty=isnull(HPrintQty,0)+1 where HInterID=" + HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
            }
            catch (Exception e)
            {
                MessageBox.Show("打印失败!打印结束 ï¼š" + e.Message);
            }
        }
@@ -2764,26 +2874,6 @@
            for (int i = 0; i < grdList.Rows.Count; i++)
            {
                grdList.Rows[i].Cells[0].Value = "*";
            }
            //
            Report = new GridppReport();
            Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf");  //here .
            Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord);
            Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable);
            Report.PrintEnd += new _IGridppReportEvents_PrintEndEventHandler(ReportPrintEnd);
        }
        private void Sub_SetReportView(string sOpenTmp)
        {
            //判断行数
            for (int i = 0; i < grdList.Rows.Count; i++)
            {
                grdList.Rows[i].Cells[0].Value = "";
            }
            for (int i = 0; i < grdList.SelectedRows.Count; i++)
            {
                grdList.Rows[grdList.SelectedRows[i].Index].Cells[0].Value = "*";
            }
            //
            Report = new GridppReport();
@@ -2815,11 +2905,7 @@
            }
        }
        private Int32 Fun_GetCol(string sCol)
        {
            return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdList);
        }
        //填入单据表体信息
        private void ReportFetchRecordByDataTable()
        {
            try
@@ -2833,17 +2919,40 @@
            }
        }
        private void dy_Click(object sender, EventArgs e)
        ////打印结束后回填条码打印次数
        //private void ReportPrintEnd()
        //{
        //    try
        //    {
        //        oCn.RunProc("update Gy_BarCodeBill set HPrintQty=isnull(HPrintQty,0)+1 where HInterID=" + HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
        //    }
        //    catch (Exception e)
        //    {
        //        MessageBox.Show("打印失败!打印结束 ï¼š" + e.Message);
        //    }
        //}
        //打印结束后回填条码打印次数
        private void ReportPrintEnd()
        {
            if (UpdatePrintQtyCtl == "Y")
            {
                oBar.Set_UpdatePrintQty_SD(HInterID);
            }
        }
        //试打印
        private void sdy_Click(object sender, EventArgs e)
        {
            //判断是否已经生成条码
            if (DBUtility.ClsPub.isStrNull(grdSub.Rows[0].Cells[HTMCol].Value) == "")
            {
                MessageBox.Show("条码未生成,请先生成条码后再打印!");
                MessageBox.Show("条码未生成,请先生成条码后再预览!");
                return;
            }
            //打印前判断条码是否已打印过
            if (ReportPrintBegin())
            if (ReportPrintBegin_SDY())
            {
                return;
            }
@@ -2855,12 +2964,71 @@
            oFrm.ShowDialog();
            if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK)
            {
                //循环选中行
                Sub_SetReport(oFrm.sOpenTmp);
                Report.Print(true);
                Sub_SetReportView(oFrm.sOpenTmp);
                Report.PrintPreview(false);
                Thread.Sleep(1000);
            }
        }
        //打印前判断条码是否超过允许可打印次数
        private bool ReportPrintBegin_SDY()
        {
            string sHRemark = "";
            sBarCodeItemID = "";
            for (int i = 0; i < grdList.SelectedRows.Count; i++)
            {
                sBarCodeItemID = sBarCodeItemID + "," + DBUtility.ClsPub.isLong(grdList.Rows[grdList.SelectedRows[i].Index].Cells[Fun_GetCol("HItemID")].Value).ToString();
            }
            sBarCodeItemID = sBarCodeItemID.Remove(0, 1);
            if (PrintQtyCtl == "Y")
            {
                if (oBar.Set_CheckPrintQty(sBarCodeItemID, PrintQty, ref sHRemark))
                {
                    MessageBox.Show(sHRemark);
                    return true;
                }
                return false;
            }
            else
            {
                return false;
            }
        }
        private void Sub_SetReportView(string sOpenTmp)
        {
            //判断行数
            for (int i = 0; i < grdList.Rows.Count; i++)
            {
                grdList.Rows[i].Cells[0].Value = "";
            }
            for (int i = 0; i < grdList.SelectedRows.Count; i++)
            {
                grdList.Rows[grdList.SelectedRows[i].Index].Cells[0].Value = "*";
            }
            //
            Report = new GridppReport();
            Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf");  //here .
            Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord);
            Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable);
            Report.PrintEnd += new _IGridppReportEvents_PrintEndEventHandler(ReportPrintEnd_SDY);
        }
        //打印结束后回填条码打印次数
        private void ReportPrintEnd_SDY()
        {
            if (UpdatePrintQtyCtl == "Y")
            {
                oBar.Set_UpdatePrintQty(sBarCodeItemID);
            }
        }
        private Int32 Fun_GetCol(string sCol)
        {
            return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdList);
        }
        #endregion
@@ -2904,7 +3072,7 @@
            }
            sWhere = " and HOrgID =" + sHOrgID.ToString();
            BLL.Cls_S_KF_ICInventoryList_IF oadd = new BLL.Cls_S_KF_ICInventoryList_IF();
            if (oadd.Refresh(""))  //选择原单
            if (oadd.Refresh(sWhere))  //选择原单
            //if (oadd.Refresh(" and HErpClsID in (1,2,3) "))  //选择原单
            {
                FillSelectData(oadd.oBillSelectColl);
@@ -3003,6 +3171,12 @@
                grdMain.Rows[row + r].Cells[HMTONoCol].Value = grdMain.Rows[row].Cells[HMTONoCol].Value;
                grdMain.Rows[row + r].Cells[HInnerBillNoCol].Value = grdMain.Rows[row].Cells[HInnerBillNoCol].Value;
                grdMain.Rows[row + r].Cells[HMakerCol].Value = grdMain.Rows[row].Cells[HMakerCol].Value;
                //网格打勾
                DataGridViewCheckBoxCell oCell = new DataGridViewCheckBoxCell();
                oCell.ThreeState = false;
                oCell.Value = grdMain.Rows[row].Cells[HGiveAwayFlagCol].Value;
                oCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                grdMain.Rows[row + r].Cells[HGiveAwayFlagCol] = oCell;
            }
            DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid);
@@ -3191,33 +3365,6 @@
            }
        }
        private void sdy_Click(object sender, EventArgs e)
        {
            //判断是否已经生成条码
            if (DBUtility.ClsPub.isStrNull(grdSub.Rows[0].Cells[HTMCol].Value) == "")
            {
                MessageBox.Show("条码未生成,请先生成条码后再预览!");
                return;
            }
            //打印前判断条码是否已打印过
            if (ReportPrintBegin())
            {
                return;
            }
            //选择打印模板
            BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp();
            oFrm.sBillName = ModName;
            oFrm.sBillModel = ModCaption;
            oFrm.ShowDialog();
            if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK)
            {
                Sub_SetReportView(oFrm.sOpenTmp);
                Report.PrintPreview(false);
                Thread.Sleep(1000);
            }
        }
        //生成外箱码
        private void wxm_Click(object sender, EventArgs e)
@@ -3339,5 +3486,23 @@
                MessageBox.Show("生成箱码失败!" + e1.Message );
            }
        }
        private void cmbSourceBillType_TextChanged(object sender, EventArgs e)
        {
            if (cmbSourceBillType.Text == "工序流转卡")
            {
                cmbHBarCodeType.Items.Clear();
                cmbHBarCodeType.Items.Add("序列码");
                this.cmbHBarCodeType.SelectedIndex = 0;
            }
            else
            {
                cmbHBarCodeType.Items.Clear();
                cmbHBarCodeType.Items.Add("唯一条码");
                cmbHBarCodeType.Items.Add("品种条码");
                cmbHBarCodeType.Items.Add("批次条码");
                this.cmbHBarCodeType.SelectedIndex = 0;
            }
        }
    }
}