Beispiel #1
0
        static void CreateBarCode()
        {
            string dataDir = @"d:\temp\BarCode\";
            string sql     = @"SELECT w.code_wares as CodeWares ,w.name_wares as NameWares,b.bar_code as BarCode
    FROM dbo.Wares w
     JOIN dbo.barcode b ON w.code_wares = b.code_wares
  WHERE w.type_wares = 2
  --AND substring(w.name_wares,1,4)<> 'Пиво'
  AND w.name_group IN('Цигарки','Сигари')
  AND w.is_old = 0
  ORDER BY w.name_wares";
            var    MsSQL   = new WDB_MsSql();
            var    W       = MsSQL.db.Execute <ReceiptWares>(sql);

            // Instantiate barcode object and set differnt barcode properties
            foreach (var el in W)
            {
                var bb = BarcodeWriter.CreateBarcode(el.BarCode, el.BarCode.Length == 13 ? BarcodeWriterEncoding.EAN13 : BarcodeWriterEncoding.Code128, 250, 100);

                bb.SaveAsJpeg(dataDir + el.NameWares.Replace('\\', ' ').Replace('/', ' ').Replace("\"", "'").Replace("*", "x") + " " + el.BarCode + ".jpg");
                // BarcodeGenerator generator = new BarcodeGenerator(el.BarCode.Length==13? EncodeTypes.EAN13: EncodeTypes.Code128, el.BarCode);
                // generator.Parameters.Barcode.XDimension.Millimeters = 1f;

                // Save the image to your system and set its image format to Jpeg
                // generator.Save(dataDir + el.NameWares.Replace('\\',' ' ).Replace('/',' '). Replace("\"","'")+" "+ el.BarCode+".jpg", BarCodeImageFormat.Jpeg);
            }
        }
Beispiel #2
0
        public static byte[] BuildQRCode(Credential credentialSelected)
        {
            if (credentialSelected != null)
            {
                string stringToShow = string.Empty;
                stringToShow += credentialSelected.Title.ToUpper();
                if (!string.IsNullOrEmpty(credentialSelected.Url))
                {
                    stringToShow += " (Url: " + credentialSelected.Url + ")";
                }
                stringToShow += Environment.NewLine;

                if (!string.IsNullOrEmpty(credentialSelected.Email))
                {
                    stringToShow += "Email: " + credentialSelected.Email;
                    stringToShow += Environment.NewLine;
                }
                if (!string.IsNullOrEmpty(credentialSelected.Username))
                {
                    stringToShow += "Username: "******"Password: " + credentialSelected.Password + Environment.NewLine;

                GeneratedBarcode qrCode = BarcodeWriter.CreateBarcode(stringToShow, BarcodeWriterEncoding.QRCode, 200, 200);
                qrCode.AddAnnotationTextBelowBarcode(credentialSelected.Title);
                return(qrCode.ToPngBinaryData());
            }

            return(null);
        }
        private void DoMyJob()
        {
            if (ErrorLabel != null)
            {
                ErrorLabel.Content = null;
            }

            string text = new TextRange(TextInput.Document.ContentStart, TextInput.Document.ContentEnd).Text.Trim();

            if (!string.IsNullOrEmpty(text) && Image1 != null)
            {
                try
                {
                    Image1.Source = null;

                    GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode(text, BarcodeWriterEncoding.DataMatrix);
                    Image1.Source = Convert(myBarcode.ToBitmap());
                }
                catch (Exception e)
                {
                    if (ErrorLabel != null)
                    {
                        ErrorLabel.Content = e.Message;
                    }
                }
            }
            else
            {
                if (text == "" && Image1 != null)
                {
                    Image1.Source = null;
                }
            }
        }
Beispiel #4
0
        private void btnOffers_Click(object sender, RoutedEventArgs e)
        {
            ProductsPanel.Visibility = Visibility.Hidden;
            ContactPanel.Visibility  = Visibility.Hidden;
            LocationPanel.Visibility = Visibility.Hidden;
            OffersPanel.Visibility   = Visibility.Visible;
            GeneratedBarcode MyBarCode = BarcodeWriter.CreateBarcode(loggedClient.Password, BarcodeWriterEncoding.Code128).ResizeTo(450, 250).SaveAsImage("barcode.jpeg");

            BarCode.Source = ToImageSource(MyBarCode.Image, ImageFormat.Png);
        }
        /// <summary>
        /// Genera un codigo de barras a partir de la data especificada y lo guarda como imagen en formato .png
        /// </summary>
        /// <param name="data">Los datos que se van a codificar.</param>
        /// <param name="fullPathDirectory">El directorio de salida de la imagen.</param>
        /// <returns>Devuelve un número entero positivo o negativo.</returns>
        public int GenerateBarCodeAsPNG(string data, string fullPathDirectory, bool rotate)
        {
            try
            {
                var directory = fullPathDirectory.Substring(fullPathDirectory.Length - 1, 1) != "\\" ? fullPathDirectory = fullPathDirectory + "\\" : fullPathDirectory;

                string fileName = $"{directory}barCode.png";
                var    barCode  = BarcodeWriter.CreateBarcode(data, BarcodeEncoding.Code128);
                var    result   = barCode.SaveAsPng(fileName);

                if (rotate)
                {
                    DocumentProcessor.RotateImage(result.ToBitmap(), fileName);
                }

                return((int)TypesEvent.SuccessProccess);
            }
            catch (IronBarCodeEncodingException encex)
            {
                var message = encex.Message;

                if (message.Contains("Bad character in input"))
                {
                    return((int)TypesEvent.BadCharacter);
                }
                else if (message.Contains("Contents length should be between 1 and 80 characters"))
                {
                    return((int)TypesEvent.ContentLength);
                }
                else
                {
                    return((int)TypesEvent.ErrorGeneric);
                }
            }
            catch (Exception)
            {
                return((int)TypesEvent.ErrorGeneric);
            }
        }
        public async Task <ActionResult> AddProduct(AddProductVM model)
        {
            if (ModelState.IsValid)
            {
                Supplier supplier = db.Suppliers.Find(model.SupplierId);
                // Check for and set sku
                // Sku must be Upper case and replace spaces with dashes
                string sku           = "";
                string CustomSkuName = model.Name + model.PackSize;
                if (string.IsNullOrWhiteSpace(model.SkuCode))
                {
                    sku = CustomSkuName.Replace(" ", "-").ToLower();
                }
                else
                {
                    sku = model.SkuCode.Replace(" ", "-").ToLower();
                }

                // Check if sku is unique
                if (db.Products.Any(x => x.SkuCode.Equals(sku)))
                {
                    ModelState.AddModelError("", "The Sku Code already exists");
                    model = new AddProductVM
                    {
                        Categories = new SelectList(db.Categories.ToList(), "Id", "Name"),
                        Suppliers  = new SelectList(db.Suppliers.ToList(), "Id", "Name")
                    };
                    return(View(model));
                }

                // Check for and set slug
                // Slug must be lower case and replace spaces with dashes
                string slug = "";
                string name = sku;
                if (string.IsNullOrWhiteSpace(model.Slug))
                {
                    slug = name.Replace(" ", "-").ToLower();
                }
                else
                {
                    slug = model.Slug.Replace(" ", "-").ToLower();
                }

                // Check if slug and title is unique
                if (db.Products.Any(x => x.Slug.Equals(slug)))
                {
                    ModelState.AddModelError("", "The slug or title already exists");
                    model = new AddProductVM
                    {
                        Categories = new SelectList(db.Categories.ToList(), "Id", "Name"),
                        Suppliers  = new SelectList(db.Suppliers.ToList(), "Id", "Name")
                    };
                    return(View(model));
                }

                #region Upload Image and Generate Barcode
                // Upload Image
                string imgUrl = "";
                try
                {
                    if (model.Image == null)
                    {
                        imgUrl = "/Files/Images/noproduct.png";
                    }
                    else if (model.Image.ContentLength > 0)
                    {
                        var    uploadPath     = "~/Files/Images";
                        string _FileName      = Path.GetFileName(model.Image.FileName);
                        string UniqueFileName = model.SkuCode +
                                                "-" + _FileName.ToLower();

                        string _path = Path.Combine(Server
                                                    .MapPath(uploadPath), UniqueFileName);
                        model.Image.SaveAs(_path);

                        imgUrl = "/Files/Images/" + UniqueFileName;
                    }
                    else
                    {
                    }
                }
                catch (Exception e)
                {
                    throw e;
                }

                /*
                 * Generate Barcode
                 */

                // Check if SkuCode exists already
                if (db.Products.Any(x => x.SkuCode.Equals(sku)))
                {
                    ModelState.AddModelError("", "The barcode already exists");
                    return(View(model));
                }

                // Save Barcode to that path
                string _barcodePath = Path.Combine(Server
                                                   .MapPath("~/Files/Barcodes"), sku + ".png");

                // Generate a Simple BarCode image and save as PNG
                //using IronBarCode;
                GeneratedBarcode MyBarCode = BarcodeWriter
                                             .CreateBarcode(sku,
                                                            BarcodeWriterEncoding.Code128);

                MyBarCode.SetMargins(50);

                MyBarCode.SaveAsPng(_barcodePath);

                string _barcodeUrl = "/Files/Barcodes/" + sku + ".png";
                //string _barcodeUrl = "/";
                #endregion

                // Add Product
                db.Products.Add(new Product
                {
                    Name          = model.Name,
                    SkuCode       = sku,
                    CategoryId    = model.CategoryId,
                    Description   = model.Description,
                    Slug          = slug,
                    ImageUrl      = imgUrl,
                    BarcodeUrl    = _barcodeUrl,
                    PackSize      = model.PackSize,
                    Quantity      = 0,
                    SupplierPrice = model.SupplierPrice,
                    SupplierId    = model.SupplierId,
                    SellingPrice  = model.SellingPrice,
                    IsOnSale      = false,
                    Supplier      = supplier
                });

                await db.SaveChangesAsync();

                // Add notification
                var product = await db.Products.OrderByDescending(m => m.Id).FirstOrDefaultAsync();

                db.Notifications.Add(new Notification
                {
                    CreatedDate = DateTime.Now,
                    Message     = "You have added a new product to the pharmacy: " +
                                  product.Name,
                    isRead = false,
                    Icon   = "fa-check",
                    BackgroundColorIcon = "bg-success"
                });

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            model = new AddProductVM
            {
                Categories = new SelectList(db.Categories.ToList(), "Id", "Name"),
                Suppliers  = new SelectList(db.Suppliers.ToList(), "Id", "Name")
            };
            return(View(model));
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            Console.WriteLine("*** BARCODE READER ***");

            string path = Environment.CurrentDirectory;

            string barcodeName, barcodeContent;

            Dictionary <int, string> menu = new();

            menu.Add(1, "Barkod Oluştur");
            menu.Add(2, "Barkodu Göster");

APoint:
            foreach (var item in menu)
            {
                Console.WriteLine("{0} - {1}", item.Key, item.Value);
            }

            byte code = 0;

            byte.TryParse(Console.ReadLine(), out code);

            switch (code)
            {
            case 1:
                Console.WriteLine("Barkodun adını giriniz: ");
                barcodeName = Console.ReadLine();

                Console.WriteLine("Barkodun içeriğini giriniz: ");
                barcodeContent = Console.ReadLine();

                BarcodeWriter.CreateBarcode(barcodeContent, BarcodeWriterEncoding.QRCode).SaveAsJpeg($"{path}\\{barcodeName}.jpg");

                Console.WriteLine("Barkod başarıyla oluşturuldu.");

                Process.Start("mspaint.exe", $"{path}\\{barcodeName}.jpg");
                goto APoint;

            case 2:
                Console.WriteLine("Barkodun adını giriniz: ");
                barcodeName = Console.ReadLine();

                BarcodeResult barcodeResult = BarcodeReader.QuicklyReadOneBarcode($"{path}\\{barcodeName}.jpg");

                if (barcodeResult != null)
                {
                    Process.Start("mspaint.exe", $"{path}\\{barcodeName}.jpg");
                    Console.WriteLine($"Barkodun içeriği: {barcodeResult.Text}");
                    goto APoint;
                }
                else
                {
                    Console.WriteLine("Barkod bulunamadı!");
                    goto APoint;
                }

            default:
                Console.WriteLine("Geçersiz giriş!");
                goto APoint;
            }
        }
        public Bitmap CreateBarcodeImage(Barcode barcodeData)
        {
            var barcode = BarcodeWriter.CreateBarcode(barcodeData.BarcodeValue, barcodeData.BarcodeType);

            return(barcode.ToBitmap());
        }
Beispiel #9
0
        public void secme(PaintEventArgs e)
        {
            switch (barkodtip)       //tum tipler icinden
            {
            case barkodTipi.code128: //secileni
                label5.Text      = "CODE 128";
                label5.ForeColor = Color.Black;
                label6.Visible   = false;
                uyar             = false;
                img1             = BarcodeWriter.CreateBarcode(gecici, BarcodeWriterEncoding.Code128, maxX, maxY).ToImage(); //olustur
                e.Graphics.DrawImage(img1, new PointF(10f, 10f));                                                            //ve ciz
                break;

            case barkodTipi.code39:
                label5.Text      = "CODE 39";
                label5.ForeColor = Color.Black;
                label6.Visible   = false;
                uyar             = false;
                img1             = BarcodeWriter.CreateBarcode(gecici, BarcodeWriterEncoding.Code39, maxX, maxY).ToImage();
                e.Graphics.DrawImage(img1, new PointF(10f, 10f));
                break;

            case barkodTipi.code93:
                label5.Text      = "CODE 93";
                label5.ForeColor = Color.Black;
                label6.Visible   = false;
                uyar             = false;
                img1             = BarcodeWriter.CreateBarcode(gecici, BarcodeWriterEncoding.Code93, maxX, maxY).ToImage();
                e.Graphics.DrawImage(img1, new PointF(10f, 10f));
                break;

            case barkodTipi.ean13:
                label5.Text      = "EAN 13";
                label5.ForeColor = Color.Black;
                label6.Visible   = false;
                if (basamak > 12)
                {
                    uyar = true;
                    //MessageBox.Show("EAN 13 tipi etikeler maksimum 12 basamaktan olusabilir. Sadece ilk 12 basamak aliniyor..");
                    basamakAyarla();
                }
                if (uyar)
                {
                    label6.Text      = "tipi etikeler maksimum 12 basamaktan olusabilir. Sadece ilk 12 basamak aliniyor..";
                    label5.ForeColor = Color.Red;
                    label6.ForeColor = Color.Red;
                    label6.Visible   = true;
                }
                e.Graphics.ScaleTransform(0.8f, 0.75f);
                img1 = BarcodeWriter.CreateBarcode(gecici, BarcodeWriterEncoding.EAN13, maxX, maxY).ToImage();
                e.Graphics.DrawImage(img1, new PointF(10f, 10f));
                break;

            case barkodTipi.ean8:
                label5.Text      = "EAN 8";
                label5.ForeColor = Color.Black;
                label6.Visible   = false;
                if (basamak > 7)
                {
                    uyar = true;
                    //MessageBox.Show("EAN 8 tipi etikeler maksimum 7 basamaktan olusabilir. Sadece ilk 7 basamak aliniyor..");
                    basamakAyarla();
                }
                if (uyar)
                {
                    label6.Text      = "tipi etikeler maksimum 7 basamaktan olusabilir. Sadece ilk 7 basamak aliniyor..";
                    label5.ForeColor = Color.Red;
                    label6.ForeColor = Color.Red;
                    label6.Visible   = true;
                }
                img1 = BarcodeWriter.CreateBarcode(gecici, BarcodeWriterEncoding.EAN8, maxX, maxY).ToImage();
                e.Graphics.DrawImage(img1, new PointF(10f, 10f));
                break;

            case barkodTipi.upcA:
                label5.Text      = "UPC-A";
                label5.ForeColor = Color.Black;
                label6.Visible   = false;
                if (basamak > 11)
                {
                    uyar = true;
                    //MessageBox.Show("UPC-A tipi etikeler maksimum 11 basamaktan olusabilir. Sadece ilk 11 basamak aliniyor..");
                    basamakAyarla();
                }
                if (uyar)
                {
                    label6.Text      = "tipi etikeler maksimum 11 basamaktan olusabilir. Sadece ilk 11 basamak aliniyor..";
                    label5.ForeColor = Color.Red;
                    label6.ForeColor = Color.Red;
                    label6.Visible   = true;
                }
                img1 = BarcodeWriter.CreateBarcode(gecici, BarcodeWriterEncoding.UPCA, maxX, maxY).ToImage();
                e.Graphics.DrawImage(img1, new PointF(10f, 10f));
                break;

            case barkodTipi.upcE:
                label5.Text      = "UPC-E";
                label5.ForeColor = Color.Black;
                label6.Visible   = false;
                if (basamak > 6)
                {
                    uyar = true;
                    //MessageBox.Show("UPC-E tipi etikeler maksimum 6 basamaktan olusabilir. Sadece ilk 6 basamak aliniyor..");
                    basamakAyarla();
                }
                if (uyar)
                {
                    label6.Text      = "tipi etikeler maksimum 6 basamaktan olusabilir. Sadece ilk 6 basamak aliniyor..";
                    label5.ForeColor = Color.Red;
                    label6.ForeColor = Color.Red;
                    label6.Visible   = true;
                }
                img1 = BarcodeWriter.CreateBarcode(gecici, BarcodeWriterEncoding.UPCE, maxX, maxY).ToImage();
                e.Graphics.DrawImage(img1, new PointF(10f, 10f));
                break;

            case barkodTipi.msi:
                label5.Text      = "MSI";
                label5.ForeColor = Color.Black;
                label6.Visible   = false;
                uyar             = false;
                img1             = BarcodeWriter.CreateBarcode(gecici, BarcodeWriterEncoding.MSI, maxX, maxY).ToImage();
                e.Graphics.DrawImage(img1, new PointF(10f, 10f));
                break;

            case barkodTipi.itf14:
                label5.Text      = "ITF 14";
                label5.ForeColor = Color.Black;
                label6.Visible   = false;
                if (basamak > 14)
                {
                    uyar = true;
                    //MessageBox.Show("ITF 14 tipi etikeler maksimum 14 basamaktan olusabilir. Sadece ilk 14 basamak aliniyor..");
                    basamakAyarla();
                }
                if (uyar)
                {
                    label6.Text      = "tipi etikeler maksimum 14 basamaktan olusabilir. Sadece ilk 14 basamak aliniyor..";
                    label5.ForeColor = Color.Red;
                    label6.ForeColor = Color.Red;
                    label6.Visible   = true;
                }
                img1 = BarcodeWriter.CreateBarcode(gecici, BarcodeWriterEncoding.ITF, maxX, maxY).ToImage();
                e.Graphics.DrawImage(img1, new PointF(10f, 10f));
                break;

            case barkodTipi.qrCode:     //qr kod icin ayri komutu kullanarak tolerans ayari yapabiliyoruz
                label5.Text      = "QR CODE";
                label5.ForeColor = Color.Black;
                label6.Visible   = false;
                uyar             = false;
                img1             = QRCodeWriter.CreateQrCode(gecici, maxX, QRCodeWriter.QrErrorCorrectionLevel.Low).ToImage();
                //img1 = BarcodeWriter.CreateBarcode(icerik, BarcodeWriterEncoding.QRCode, maxX, maxY).ToImage();
                e.Graphics.DrawImage(img1, new PointF(10f, 10f));
                break;
            }
            label3.Text = img1.Width.ToString();  //resimin genislik
            label4.Text = img1.Height.ToString(); //ve yuksekligini ekranda sayisall olarak goster
        }
Beispiel #10
0
        private void btnImport_Click(object sender, EventArgs e)
        {
            string Barcode, Kyhieu, MaSP, Dai, Rong, ARTID, SonID, DVT, Mieuta, ngaytao, ngaysua;

            Barcode = Kyhieu = MaSP = Dai = Rong = ARTID = SonID = DVT = Mieuta = ngaytao = ngaysua = string.Empty;
            try
            {
                using (OpenFileDialog ofd = new OpenFileDialog()
                {
                    Filter = "Excel Workbook|*.xlsx|Excel Workbook 97-2003|*.xls", ValidateNames = true
                })
                {
                    if (ofd.ShowDialog() == DialogResult.OK)
                    {
                        using (var stream = File.Open(ofd.FileName, FileMode.Open, FileAccess.Read))
                        {
                            IExcelDataReader reader;
                            if (ofd.FilterIndex == 2)
                            {
                                reader = ExcelReaderFactory.CreateBinaryReader(stream);
                            }
                            else
                            {
                                reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                            }

                            DataSet ds = reader.AsDataSet(new ExcelDataSetConfiguration()
                            {
                                ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
                                {
                                    UseHeaderRow = true
                                }
                            });


                            string InsertItemQry     = "";
                            int    count             = 0;
                            System.Data.DataTable dt = ds.Tables[0];
                            string[] columnNames     = dt.Columns.Cast <DataColumn>()
                                                       .Select(x => x.ColumnName)
                                                       .ToArray();

                            for (int i = 7; i < dt.Rows.Count; i++)
                            {
                                //BarcodeWriter writer = new BarcodeWriter() { Format = BarcodeFormat.CODE_128 };
                                //pictureBox1.Image = writer.Write(textBox1.Text);
                                //Barcode = BarcodeFormat.CODE_128;
                                string           now        = DateTime.Now.ToString("ddmmyyyhhmmssff");
                                GeneratedBarcode newbarcode = BarcodeWriter.CreateBarcode(now, BarcodeWriterEncoding.Code128);

                                Barcode = newbarcode.ToString();
                                Kyhieu  = Convert.ToString(dt.Rows[i][1]).Trim();
                                MaSP    = Convert.ToString(dt.Rows[i][2]).Trim();
                                Dai     = Convert.ToString(dt.Rows[i][3]).Trim();
                                Rong    = Convert.ToString(dt.Rows[i][4]).Trim();
                                ARTID   = DBHelper.Lookup("ART", "ARTID", "Ten", Convert.ToString(dt.Rows[i][5]).Trim('\'').Trim());
                                if (string.IsNullOrEmpty(ARTID))
                                {
                                    MessageBox.Show(Convert.ToString(dt.Rows[i][5]).Trim('\''));
                                }
                                SonID = DBHelper.Lookup("Color", "SonID", "Ten", Convert.ToString(dt.Rows[i][6]).Trim('\'').Trim());
                                if (string.IsNullOrEmpty(SonID))
                                {
                                    MessageBox.Show(Convert.ToString(dt.Rows[i][6]).Trim('\''));
                                }
                                DVT     = Convert.ToString(dt.Rows[i][8]).Trim();
                                Mieuta  = string.Empty;
                                ngaytao = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt");
                                ngaysua = DateTime.Now.ToString("MM/dd/yyyy hh:mm:ss tt");
                                if (Kyhieu != string.Empty)
                                {
                                    InsertItemQry = "Insert into Product([Barcode],[Kyhieu],[Dai],[Rong],[ArtID],[SonID],[DVT],[Mieuta],[Ngaytao],[Ngaysua],[MaSP]) Values ('" + Barcode + "','" + Kyhieu + "','" + Dai + "','" + Rong + "','" + ARTID + "','" + SonID + "','" + DVT + "','" + "" + "','" + ngaysua + "','" + ngaytao + "','" + MaSP + "')";
                                    if (DBAccess.IsServerConnected())
                                    {
                                        if (InsertItemQry.Length > 5)
                                        {
                                            isSuccess = DBAccess.ExecuteQuery(InsertItemQry);
                                        }
                                    }
                                    if (isSuccess)
                                    {
                                        count++;
                                    }
                                    else
                                    {
                                        MessageBox.Show(InsertItemQry);
                                    }
                                }
                                else
                                {
                                    GetTotalRow();
                                    GetAllDataProduct(1, 50);
                                    MessageBox.Show("Import " + count + " dòng thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return;
                                }
                            }
                            if (isSuccess)
                            {
                                MessageBox.Show("Import " + count + " dòng thành công!", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            else
                            {
                                MessageBox.Show("Import dòng " + count + " không thành công!Kyhieu = " + Kyhieu, "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("File không đúng format! Format Đúng: Dữ liệu bắt đầu từ dòng 7, cột 1: Ký Hiệu, cột 2: Mã SP, cột 3: Dài, cột 4: Rộng, cột 5: ART, cột 6: SON, cột 8:DVT ");
            }
        }