// this event is raised prior to the data being written to the underlying datasource private void c1TrueDBGrid1_BeforeColUpdate(object sender, C1.Win.C1TrueDBGrid.BeforeColUpdateEventArgs e) { // e.ColIndex is the index in the grid's Column collection C1.Win.C1TrueDBGrid.C1DataColumn dc = this.c1TrueDBGrid1.Columns[e.ColIndex]; // if we're on the "OrderDate" column with an empty string then set it to null if (dc.DataField == "OrderDate" && dc.Text.Length == 0) { e.OldValue = System.DBNull.Value; } }
void My_FormatearGrid(C1.Win.C1TrueDBGrid.C1TrueDBGrid xDg, string[,] arrColumnas, DataTable dtDataTable, bool boo_Alternar) { int n_NumCols; int A; int IntNumeroElementos; Font MyFont; MyFont = new Font(xDg.Splits[0].Style.Font, FontStyle.Regular); xDg.Splits[0].Style.Font = MyFont; xDg.Columns.Clear(); //while (xDg.Columns.Count != 0) //{ // xDg.Columns.RemoveAt(0); //} n_NumCols = xDg.Columns.Count; xDg.RowHeight = 22; //xDg.Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center; xDg.Style.VerticalAlignment = C1.Win.C1TrueDBGrid.AlignVertEnum.Center; xDg.Splits[0].ColumnCaptionHeight = 30; xDg.AlternatingRows = boo_Alternar; xDg.Splits[0].EvenRowStyle.BackColor = Color.AliceBlue; xDg.Splits[0].EvenRowStyle.BackColor2 = Color.AntiqueWhite; IntNumeroElementos = Convert.ToInt32(arrColumnas.GetLongLength(0)) - 1; #region ASIGNAR DATOS A LA GRILLA for (A = 0; A <= IntNumeroElementos; A++) { C1.Win.C1TrueDBGrid.C1DataColumn colColum = new C1.Win.C1TrueDBGrid.C1DataColumn(); xDg.Columns.Insert(n_NumCols, colColum); xDg.Splits[0].DisplayColumns[colColum].Visible = true; xDg.Splits[0].DisplayColumns[colColum].HeadingStyle.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center; // centramos el titulo de la columna if (Convert.ToInt32(arrColumnas[A, 1]) > 0) { xDg.Splits[0].DisplayColumns[colColum].Width = Convert.ToInt32(arrColumnas[A, 1]); // establecemos el ancho de la columna } else { xDg.Splits[0].DisplayColumns[colColum].Visible = false; } xDg.Columns[0].Caption = arrColumnas[A, 0]; // establecemos el titulo de la columna xDg.Columns[0].DataField = arrColumnas[A, 3]; // establecemos el campo de la columna // establecemos el alineamiento de la columna if (arrColumnas[A, 2] == "D") { xDg.Splits[0].DisplayColumns[colColum].Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Far; xDg.Columns[0].NumberFormat = "0.00"; if (arrColumnas.GetLength(1) == 5) { xDg.Columns[0].NumberFormat = arrColumnas[A, 4]; } else { xDg.Columns[0].NumberFormat = "0.00"; } //int n_row = 0; //for(n_row =0; n_row <= dtDataTable.Rows.Count-1; n_row++) //{ // if (dtDataTable.Rows[n_row]["c_tit"] == arrColumnas[A, 0]) // { // xDg.Columns[0].NumberFormat = dtDataTable.Rows[n_row]["c_format"].ToString(); // } //} } if (arrColumnas[A, 2] == "N") { xDg.Splits[0].DisplayColumns[colColum].Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Far; xDg.Columns[0].NumberFormat = "0"; } if (arrColumnas[A, 2] == "C") { xDg.Splits[0].DisplayColumns[colColum].Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Near; } if (arrColumnas[A, 2] == "F") { xDg.Splits[0].DisplayColumns[colColum].Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center; xDg.Columns[0].NumberFormat = "dd/MM/yyyy"; } if (arrColumnas[A, 2] == "H") { xDg.Splits[0].DisplayColumns[colColum].Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center; xDg.Columns[0].NumberFormat = "hh:mm:ss"; } if (arrColumnas[A, 2] == "FH") { xDg.Splits[0].DisplayColumns[colColum].Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center; xDg.Columns[0].NumberFormat = "dd/MM/yyyy hh:mm:ss"; } if (arrColumnas[A, 2] == "B") { C1.Win.C1TrueDBGrid.ValueItemCollection check1 = xDg.Columns[0].ValueItems.Values; xDg.Columns[0].ValueItems.Translate = true; xDg.Columns[0].ValueItems.Presentation = C1.Win.C1TrueDBGrid.PresentationEnum.CheckBox; check1.Add(new C1.Win.C1TrueDBGrid.ValueItem("0", false)); check1.Add(new C1.Win.C1TrueDBGrid.ValueItem("1", true)); xDg.Columns[0].ValueItems.DefaultItem = 0; xDg.Splits[0].DisplayColumns[colColum].Style.HorizontalAlignment = C1.Win.C1TrueDBGrid.AlignHorzEnum.Center; } xDg.Splits[0].DisplayColumns[colColum].FetchStyle = true; } #endregion xDg.AllowAddNew = false; xDg.AllowDelete = false; xDg.AllowUpdate = false; //xDg.ColumnFooters = true; ' muestra el pie de pagina del grid xDg.FilterBar = true; // muestra el filtro xDg.AllowFilter = false; xDg.MarqueeStyle = C1.Win.C1TrueDBGrid.MarqueeEnum.HighlightRow; //xDg.HighLightRowStyle.BackColor = Color.DarkRed; xDg.HighLightRowStyle.BackColor = Color.OrangeRed; xDg.CurrentCellVisible = true; xDg.SetDataBinding(dtDataTable, "", true); xDg.DataSource = dtDataTable; xDg.Select(); //''Para activar el filtro de filter drop down //'For A = 0 To UBound(xValores) - 1 //' xDg.Columns(A).FilterDropdown = True //'Next A }