/// <summary>
        /// 打印箱号
        /// </summary>
        private void PrintBoxCode()
        {
            DataTable dt       = (DataTable)dataGridView1.DataSource;
            int       intCount = dt.Rows.Count;

            if (Math.IEEERemainder(Convert.ToDouble(intCount), 2.0) == 0)
            {
                string FristCode  = dt.Rows[intCount - 1]["ProductCode"].ToString();
                string SecondCode = dt.Rows[intCount - 2]["ProductCode"].ToString();
                PrintPartBarcode.PrintBarcodeBoxTCU(FristCode, SecondCode);
            }

            if (Math.IEEERemainder(Convert.ToDouble(intCount), 20.0) == 0)
            {
                string strBoxNo = dt.Rows[intCount - 1]["BoxNo"].ToString();
                PrintPartBarcode.PrintBarcode_120X30(strBoxNo);
            }
        }
        private void btnBarcodePrint_Click(object sender, EventArgs e)
        {
            List <string> listBarcode = new List <string>();
            DataTable     barcode     = m_findSellIn.GetBarcodeTable(dgv_Show.CurrentRow.Cells["DJH"].Value.ToString());

            for (int i = 0; i < barcode.Rows.Count; i++)
            {
                if (i == 0 || barcode.Rows[i]["BoxNo"].ToString() != barcode.Rows[i - 1]["BoxNo"].ToString())
                {
                    listBarcode = new List <string>();
                }

                listBarcode.Add(barcode.Rows[i]["ProductCode"].ToString());

                if (barcode.Rows.Count - 1 == i || barcode.Rows[i]["BoxNo"].ToString() != barcode.Rows[i + 1]["BoxNo"].ToString())
                {
                    PrintPartBarcode.PrintBarcodeCVTNumberList(listBarcode);
                    PrintPartBarcode.PrintBarcode_120X30(barcode.Rows[i]["BoxNo"].ToString());
                }
            }
        }
        void PrintBoxCode(List <string> lstBoxCode)
        {
            m_dtProductCodes = (DataTable)dataGridView1.DataSource;

            if (lstBoxCode == null || lstBoxCode.Count() == 0)
            {
                return;
            }

            if (m_dtProductCodes == null || m_dtProductCodes.Rows.Count == 0)
            {
                return;
            }

            lstBoxCode = lstBoxCode.Distinct().ToList();

            foreach (string boxCode in lstBoxCode)
            {
                if (UniversalFunction.GetGoodsAttributeInfo(m_barCodeInfo.GoodsID, CE_GoodsAttributeName.CVT).ToString() == "True")
                {
                    DataTable tempTable = DataSetHelper.SiftDataTable(m_dtProductCodes, "BoxNo = '" + boxCode + "'");

                    List <string> lstBarcode = new List <string>();

                    foreach (DataRow dr in tempTable.Rows)
                    {
                        lstBarcode.Add(dr["ProductCode"].ToString());
                    }

                    PrintPartBarcode.PrintBarcodeCVTNumberList(lstBarcode);
                    PrintPartBarcode.PrintBarcode_120X30(boxCode);
                }
                else if (UniversalFunction.GetGoodsAttributeInfo(m_barCodeInfo.GoodsID, CE_GoodsAttributeName.TCU).ToString() == "True")
                {
                    PrintPartBarcode.PrintBarcode_60X20(boxCode);
                }
            }
        }
        /// <summary>
        /// 打印指定列表
        /// </summary>
        /// <param name="listPrint">要打印列表</param>
        private void Print(List <View_P_PrintListForVehicleBarcode> listPrint)
        {
            for (int i = 0; i < listPrint.Count; i++)
            {
                List <string> lstPrintInfo = new List <string>();

                View_P_PrintListForVehicleBarcode data = listPrint[i];

                if (m_productBarcodeServer.IsPrint(data))
                {
                    if (MessageDialog.ShowEnquiryMessage(string.Format("{0},产品日期:{1},打印起始编号【{2}】,打印结束编号【{3}】的条形码有部分或全部条形码已经打印过,是否继续打印?",
                                                                       data.产品类型名称, data.产品日期.ToString("yyyy年MM月"),
                                                                       data.打印起始编号, data.打印结束编号)) == DialogResult.No)
                    {
                        return;
                    }
                }

                if (data.打印模式 == "按序打完所有条码后再按打印次数打下一遍")
                {
                    for (int k = 0; k < data.打印份数; k++)
                    {
                        for (int j = data.打印起始编号; j <= data.打印结束编号; j++)
                        {
                            lstPrintInfo.Add(m_productBarcodeServer.GetFormatStringOfBuildRule(data.打印规则编号, data.产品日期, j));
                        }
                    }
                }
                else
                {
                    for (int j = data.打印起始编号; j <= data.打印结束编号; j++)
                    {
                        for (int k = 0; k < data.打印份数; k++)
                        {
                            lstPrintInfo.Add(m_productBarcodeServer.GetFormatStringOfBuildRule(data.打印规则编号, data.产品日期, j));
                        }
                    }
                }

                foreach (var barcode in lstPrintInfo)
                {
                    if (!PrintPartBarcode.PrintBarcodeForVehicle(barcode))
                    {
                        MessageDialog.ShowErrorMessage(string.Format("打印 {0} 失败!", barcode));
                        return;
                    }
                }

                P_PrintLogForVehicleBarcode log = new P_PrintLogForVehicleBarcode();

                log.BeginNumber = data.打印起始编号;
                log.EndNumber   = data.打印结束编号;
                log.BuildRuleID = data.打印规则编号;

                log.UserCode = BasicInfo.LoginID;
                log.Date     = ServerTime.Time;

                log.ProductDate = data.产品日期;
                log.Reason      = m_printBill.打印说明;
                log.PrintDegree = data.打印份数;
                log.PrintMode   = data.打印模式编号;

                if (!m_productBarcodeServer.WritePrintLog(log, out m_error))
                {
                    MessageDialog.ShowErrorMessage(m_error);
                }
            }
        }
Esempio n. 5
0
        private void btnCreate_Click(object sender, EventArgs e)
        {
            Dictionary <CE_GoodsAttributeName, object> dic = UniversalFunction.GetGoodsInfList_Attribute_AttchedInfoList(Convert.ToInt32(cmbProduct.Tag));

            if (!dic.Keys.ToList().Contains(CE_GoodsAttributeName.装箱数))
            {
                throw new Exception(UniversalFunction.GetGoodsMessage(Convert.ToInt32(cmbProduct.Tag)) + "基础属性未设置【装箱数】");
            }

            DataTable dt = (DataTable)dataGridView1.DataSource;

            if (dt == null || dt.Rows.Count == 0)
            {
                return;
            }

            dt.Columns.Add("BoxNo");

            string prefix = "";

            if (Convert.ToBoolean(dic[CE_GoodsAttributeName.CVT]))
            {
                prefix = CE_GoodsAttributeName.CVT.ToString();
            }
            else if (Convert.ToBoolean(dic[CE_GoodsAttributeName.TCU]))
            {
                prefix = CE_GoodsAttributeName.TCU.ToString();
            }

            string boxNo    = m_findSellIn.GetBoxNo(prefix);
            int    boxCount = 0;

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                if (dt.Rows[i]["入库方式"].ToString() == "未知")
                {
                    MessageDialog.ShowPromptMessage("入库方式不能为【未知】,请选择正确的入库方式");
                    return;
                }

                if (cmbStorage.Text == "售后库房" &&
                    (dt.Rows[i]["入库方式"].ToString() == "生产入库" || dt.Rows[i]["入库方式"].ToString() == "生产返修入库"))
                {
                    MessageDialog.ShowPromptMessage("入库方式错误,请选择正确的入库方式");
                    return;
                }

                if (boxCount == Convert.ToInt32(dic[CE_GoodsAttributeName.装箱数]))
                {
                    boxNo    = prefix + (Convert.ToInt64(boxNo.Substring(prefix.Length, boxNo.Length - prefix.Length)) + 1).ToString();
                    boxCount = 0;
                }

                dt.Rows[i]["BoxNo"] = boxNo;
                boxCount           += 1;
            }

            if (!m_findSellIn.BatchCreateBill(dt, out m_err))
            {
                MessageDialog.ShowPromptMessage(m_err);
                return;
            }
            else
            {
                MessageDialog.ShowPromptMessage("自动生成成功!");

                List <string> listBarcode = new List <string>();

                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    listBarcode.Add(dt.Rows[i]["箱体编号"].ToString());

                    if (i + 1 == dt.Rows.Count || dt.Rows[i]["BoxNo"] != dt.Rows[i + 1]["BoxNo"])
                    {
                        PrintPartBarcode.PrintBarcodeCVTNumberList(listBarcode);
                        PrintPartBarcode.PrintBarcode_120X30(dt.Rows[i]["BoxNo"].ToString());
                        listBarcode = new List <string>();
                    }
                }

                this.Close();
            }
        }