private void dgvDettaglio_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1)
            {
                return;
            }
            DataRow r              = _DS.CDC_DETTAGLIO.Rows[e.RowIndex];
            decimal IDDETTAGLIO    = (decimal)r[0];
            decimal IDPRENOTAZIONE = (decimal)r[1];
            string  PARTE          = (string)r[7];
            string  COLORE         = (string)r[8];

            _dsServizio = new DataSet();

            DataTable dtDimensioni = _dsServizio.Tables.Add();

            dtDimensioni.TableName = tableName;
            dtDimensioni.Columns.Add("IDPRENOTAZIONE", Type.GetType("System.Decimal"));
            dtDimensioni.Columns.Add("IDDETTAGLIO", Type.GetType("System.Decimal"));

            dtDimensioni.Columns.Add("RIFERIMENTO", Type.GetType("System.String"));
            dtDimensioni.Columns.Add("GRANDEZZA", Type.GetType("System.String"));
            dtDimensioni.Columns.Add("RICHIESTO", Type.GetType("System.String"));
            dtDimensioni.Columns.Add("TOLLERANZA", Type.GetType("System.String"));
            dtDimensioni.Columns.Add("MINIMO", Type.GetType("System.String"));
            dtDimensioni.Columns.Add("MASSIMO", Type.GetType("System.String")); //7
            dtDimensioni.Columns.Add("TAMPONE", Type.GetType("System.String"));
            dtDimensioni.Columns.Add("CONTAMPONE", Type.GetType("System.Boolean"));
            dtDimensioni.Columns.Add("CONFORME", Type.GetType("System.Boolean"));
            dtDimensioni.Columns.Add("PARTE", Type.GetType("System.String"));
            dtDimensioni.Columns.Add("COLORE", Type.GetType("System.String"));

            List <CDCDS.CDC_DIMEMSIONIRow>        dimensioni = _DS.CDC_DIMEMSIONI.Where(x => x.IDDETTAGLIO == IDDETTAGLIO).ToList();
            List <CDCDS.CDC_DIMEMSIONI_MISURERow> misure     = _DS.CDC_DIMEMSIONI_MISURE.Where(x => x.PARTE == PARTE).ToList();

            for (int i = 0; i < 20; i++)
            {
                DataRow riga = dtDimensioni.NewRow();
                riga[0]  = IDPRENOTAZIONE;
                riga[1]  = IDDETTAGLIO;
                riga[11] = PARTE;
                riga[12] = COLORE;
                if (dimensioni.Count > i)
                {
                    CDCDS.CDC_DIMEMSIONIRow dimensione = dimensioni[i];
                    riga[2] = dimensione.RIFERIMENTO;
                    riga[3] = dimensione.GRANDEZZA;
                    riga[4] = dimensione.RICHIESTO;
                    if (dimensione.IsTOLLERANZANull())
                    {
                        riga[5] = string.Empty;
                    }
                    else
                    {
                        riga[5] = dimensione.TOLLERANZA;
                    }

                    if (dimensione.IsMINIMONull())
                    {
                        riga[6] = string.Empty;
                    }
                    else
                    {
                        riga[6] = dimensione.MINIMO;
                    }

                    if (dimensione.IsMASSIMONull())
                    {
                        riga[7] = string.Empty;
                    }
                    else
                    {
                        riga[7] = dimensione.MASSIMO;
                    }

                    if (dimensione.IsTAMPONENull())
                    {
                        riga[8] = string.Empty;
                    }
                    else
                    {
                        riga[8] = dimensione.TAMPONE;
                    }

                    riga[9]  = dimensione.CONTAMPONE == "S" ? true : false;
                    riga[10] = dimensione.CONFORME == "S" ? true : false;
                }
                else
                {
                    if (misure.Count > i)
                    {
                        CDCDS.CDC_DIMEMSIONI_MISURERow misura = misure[i];
                        riga[2] = misura.RIFERIMENTO;
                        riga[3] = misura.GRANDEZZA;
                        riga[4] = misura.RICHIESTO;
                        if (misura.IsTOLLERANZANull())
                        {
                            riga[5] = string.Empty;
                        }
                        else
                        {
                            riga[5] = misura.TOLLERANZA;
                        }

                        if (misura.IsMINIMONull())
                        {
                            riga[6] = string.Empty;
                        }
                        else
                        {
                            riga[6] = misura.MINIMO;
                        }

                        if (misura.IsMASSIMONull())
                        {
                            riga[7] = string.Empty;
                        }
                        else
                        {
                            riga[7] = misura.MASSIMO;
                        }

                        if (misura.IsTAMPONENull())
                        {
                            riga[8] = string.Empty;
                        }
                        else
                        {
                            riga[8] = misura.TAMPONE;
                        }
                        riga[9] = misura.CONTAMPONE == "S" ? true : false;
                    }
                }

                dtDimensioni.Rows.Add(riga);
            }

            dgvMisure.AutoGenerateColumns = true;
            dgvMisure.DataSource          = _dsServizio;
            dgvMisure.DataMember          = tableName;

            dgvMisure.Columns[0].Visible  = false;
            dgvMisure.Columns[1].Visible  = false;
            dgvMisure.Columns[11].Visible = false;
            dgvMisure.Columns[12].Visible = false;
            dgvMisure.Columns[3].Width    = 220;
            dgvMisure.Columns[8].Width    = 320;
            ((DataGridViewTextBoxColumn)dgvMisure.Columns[2]).MaxInputLength = 2;
            ((DataGridViewTextBoxColumn)dgvMisure.Columns[3]).MaxInputLength = 30;
            ((DataGridViewTextBoxColumn)dgvMisure.Columns[4]).MaxInputLength = 5;
            ((DataGridViewTextBoxColumn)dgvMisure.Columns[5]).MaxInputLength = 5;
            ((DataGridViewTextBoxColumn)dgvMisure.Columns[6]).MaxInputLength = 5;
            ((DataGridViewTextBoxColumn)dgvMisure.Columns[7]).MaxInputLength = 5;
            ((DataGridViewTextBoxColumn)dgvMisure.Columns[8]).MaxInputLength = 50;
        }