protected override bool getRecords(out List <ProductCirculationRecord> records)
        {
            records = new List <ProductCirculationRecord>();

            int number = this.dataGridView1.RowCount;

            double num, price, totalPrice, quantityPerPiece;
            int    pieces;
            bool   isQuantityNull = false, isPiecesNull = false;
            string unit, comment;
            bool   isInputCorrect = true;

            foreach (DataGridViewRow row in this.dataGridView1.Rows)
            {
                object productID = null;
                int    ID        = 0;
                if (ValidateUtility.getLookupValue(row.Cells["product"], out productID) == false ||
                    ValidateUtility.getInt(row.Cells["ID"], false, true, out ID) == false ||
                    ValidateUtility.getDouble(row.Cells["quantityPerPiece"], false, true, out quantityPerPiece, out isQuantityNull) == false ||
                    ValidateUtility.getInt(row.Cells["pieces"], false, true, out pieces, out isPiecesNull) == false ||
                    ValidateUtility.getDouble(row.Cells["num"], true, true, out num) == false ||
                    ValidateUtility.getString(row.Cells["unit"], false, out unit) == false ||
                    ValidateUtility.getDouble(row.Cells["price"], out price) == false ||
                    ValidateUtility.getDouble(row.Cells["totalPrice"], out totalPrice) == false ||
                    ValidateUtility.getString(row.Cells["comment"], false, out comment) == false)
                {
                    return(false);
                }
                ProductStainlessCirculationRecord record = new ProductStainlessCirculationRecord();

                LookupArg arg = ((row.Cells["product"] as DataGridViewLookupCell).EditedValue as LookupArg);
                record.ProductID   = (int)arg.Value;
                record.ProductName = arg.Text;

                record.ID = ID;

                string serial;
                ValidateUtility.getString(row.Cells["serial"], false, out serial);
                record.Serial = serial;

                record.QuantityPerPiece = quantityPerPiece;
                record.QuantityNull     = isQuantityNull;

                record.Pieces     = pieces;
                record.PiecesNull = isPiecesNull;

                record.TotalNum   = num;
                record.Unit       = unit;
                record.Price      = price;
                record.TotalPrice = totalPrice;
                record.Comment    = comment;

                records.Add(record);
            }

            return(isInputCorrect);
        }