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; }