/// <summary> /// To string function /// </summary> /// <returns>A string containing the file information</returns> public override string ToString() { StringBuilder Builder = new StringBuilder(); Rows.ForEach <Row>(x => Builder.Append(x.ToString())); return(Builder.ToString()); }
/// <summary> /// Creates the table in database. /// </summary> /// <remarks>Table must contain at least one column to be created (SQLite requirement).</remarks> internal void AddToDatabase(Database database) { if (String.IsNullOrEmpty(Name)) { throw new InvalidNameException(Name, Resources.InvalidTableName.FormatExt(Name)); } if (!Columns.Any()) { throw new InvalidOperationException(Resources.MustHaveColumns.FormatExt(Name)); } var invalidColumn = Columns.FirstOrDefault(col => !Column.IsNameValid(col.Name)); if (invalidColumn != null) { throw new InvalidNameException(invalidColumn.Name, Resources.InvalidColumnName.FormatExt(invalidColumn.Name)); } Database = database; using (var connection = Database.Connection.Connect()) { var sql = CreateSql.FormatExt(Name, String.Join(",", Columns.Select(x => x.Definition)), String.IsNullOrEmpty(PrimaryKeyDefinition) ? "" : "," + PrimaryKeyDefinition, String.IsNullOrEmpty(ForeignKeysDefinitions) ? "" : "," + ForeignKeysDefinitions); using (var command = new SQLiteCommand(sql, connection)) { command.ExecuteNonQuery(); } Columns.Where(c => c.Quantity == ColumnQuantity.List).ForEach(c => c.AddListColumn(connection)); Rows.ForEach(row => row.AddToTable(this, connection)); } }
public void LogDebugData() { string rowLocs = string.Empty; Rows.ForEach(r => rowLocs += r.Rect.ToString() + " "); Log.Message(string.Format("Table Debug. Table Rect: {0}, colCnt: {1}, rowCnt: {2}, rowLocs: {3}", TableRect.ToString(), Columns.Count.ToString(), Rows.Count.ToString(), rowLocs)); }
public override XmlNode AppendXmlNode(XmlNode parent) { XmlNode node = XmlHelper.AppendNodeWithNamespace(parent, "Table", Namespaces.ss); if (ExpandedColumnCount > 0) { XmlHelper.AppendNotNullAttr(node, "ExpandedColumnCount", ExpandedColumnCount); } if (ExpandedRowCount > 0) { XmlHelper.AppendNotNullAttr(node, "ExpandedRowCount", ExpandedRowCount); } XmlHelper.AppendNotDefaultAttr(node, "DefaultColumnWidth", DefaultColumnWidth); XmlHelper.AppendNotDefaultAttr(node, "DefaultRowHeight", DefaultRowHeight); XmlHelper.AppendNotDefaultAttr(node, "LeftCell", LeftCell); XmlHelper.AppendNotDefaultAttr(node, "TopCell", TopCell); XmlHelper.AppendNotNullAttr(node, "StyleID", StyleID); XmlHelper.AppendNotDefaultAttrWithNamespace(node, "FullColumns", Namespaces.x, DataConverter.ChangeType <bool, int>(FullColumns)); XmlHelper.AppendNotDefaultAttrWithNamespace(node, "FullRows", Namespaces.x, DataConverter.ChangeType <bool, int>(FullRows)); Columns.ForEach(column => column.AppendXmlNode(node)); Rows.ForEach(row => row.AppendXmlNode(node)); return(node); }
public void WriteTo(Stream bufferStream) { Rows.ForEach(row => { row.Sort((t1, t2) => { if (!ReferenceEquals(t1, t2) && t1.Order.Equals(t2.Order)) { throw new InvalidOperationException("Each field must have different order."); } return(t1.Order.CompareTo(t2.Order)); }); }); ProcessStringTable(); ProcessDataFields(); UtfFieldImage[] orderedDataFieldImages; var header = GetHeader(out orderedDataFieldImages); WriteHeaderTo(header, bufferStream); SetStringFieldRelocations(header); SetExtraDataFieldRelocations(header, orderedDataFieldImages); WriteFieldDescriptorsTo(header, bufferStream); WritePerRowDataTo(header, bufferStream); WriteStringTableTo(header, bufferStream); WriteExtraDataTo(header, bufferStream); }
public EntityContainer <T> Remove(string key) { var index = Keys.IndexOf(key); if (index > 0) { Keys.RemoveAt(index); Rows.ForEach(c => c.Cell.RemoveAt(index)); } return(this); }
public void OrderBy(int cellIndex, int renderIndex, bool desc = false) { Rows.ForEach(row => row.OrderBy(cellIndex, renderIndex, desc)); if (!desc) { Rows = Rows.OrderBy(x => x.GetOrderValue(cellIndex, renderIndex)).ToList(); } else { Rows = Rows.OrderByDescending(x => x.GetOrderValue(cellIndex, renderIndex)).ToList(); } }
public List <string> RecordsCsv() { List <string> results = new List <string>(); if (Rows?.Length < 1) { Log.Info("no rows in table", ConsoleColor.White); return(results); } Rows.ForEach(r => results.Add(string.Join(",", (Array.ConvertAll(r, ra => ra.ToString()))))); Log.Info($"returning {results.Count} record csv's", ConsoleColor.Cyan); return(results); }
private void UnselectAll() { Columns.ForEach(x => { x.Unselect(); }); Rows.ForEach(r => { for (int i = 0; i < r.Cells.Length; i++) { r.Cells[i].Unselect(); } }); SelectedRow = null; SelectedCell = null; SelectedColumn = null; }
/// <summary> /// 功能描述:加载column /// 作 者:HZH /// 创建日期:2019-08-08 17:51:50 /// 任务编号:POS /// </summary> private void LoadColumns() { try { if (DesignMode) { return; } ControlHelper.FreezeControl(this.panHead, true); this.panColumns.Controls.Clear(); this.panColumns.ColumnStyles.Clear(); if (m_columns != null && m_columns.Count() > 0) { int intColumnsCount = m_columns.Count(); if (m_isShowCheckBox) { intColumnsCount++; } this.panColumns.ColumnCount = intColumnsCount; for (int i = 0; i < intColumnsCount; i++) { Control c = null; if (i == 0 && m_isShowCheckBox) { this.panColumns.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(SizeType.Absolute, 30F)); UCCheckBox box = new UCCheckBox(); box.TextValue = ""; box.Size = new Size(30, 30); box.CheckedChangeEvent += (a, b) => { Rows.ForEach(p => p.IsChecked = box.Checked); if (HeadCheckBoxChangeEvent != null) { HeadCheckBoxChangeEvent(a, b); } }; c = box; } else { var item = m_columns[i - (m_isShowCheckBox ? 1 : 0)]; this.panColumns.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(item.WidthType, item.Width)); Label lbl = new Label(); lbl.Name = "dgvColumns_" + i; lbl.Text = item.HeadText; lbl.Font = m_headFont; lbl.ForeColor = m_headTextColor; lbl.TextAlign = ContentAlignment.MiddleCenter; lbl.AutoSize = false; lbl.Dock = DockStyle.Fill; lbl.MouseDown += (a, b) => { if (HeadColumnClickEvent != null) { HeadColumnClickEvent(a, b); } }; c = lbl; } this.panColumns.Controls.Add(c, i, 0); } } } finally { ControlHelper.FreezeControl(this.panHead, false); } }
public void ExportTo(ExportVisitor visitor) { visitor.Visit(this, () => Rows.ForEach(r => r.ExportTo(visitor))); }
public string Print() { StringBuilder toPrint = new StringBuilder(); // Ensure enough columns for given rows if (Rows.Count > 0) { while (Rows.Select(R => R.Count).Max() > Columns.Count) { Columns.Add(""); } // Shortens overly lengthy fields this.ShortenFields(); } // Calculate max Column Lengths List <int> ColumnsMaxLengths = Columns.Select(C => 0).ToList(); for (int i = 0; i < Rows.Count; i++) { for (int j = 0; j < Rows[i].Count; j++) { ColumnsMaxLengths[j] = Math.Max(ColumnsMaxLengths[j], Rows[i][j].Length); } } bool empty = !(ColumnsMaxLengths.Max() > 0); for (int i = 0; i < ColumnsMaxLengths.Count; i++) { // Remove empty columns, if it is not a completely empty menu if (ColumnsMaxLengths[i] == 0 && !empty) { Rows.ForEach(R => R.RemoveAt(i)); Columns.RemoveAt(i); ColumnsMaxLengths.RemoveAt(i); i--; } else { // Column name is the max, if longer than all the column's fields ColumnsMaxLengths[i] = Math.Max(ColumnsMaxLengths[i], Columns[i].Length); } } toPrint.Append(EliteConsole.PrintInfoLine()); toPrint.Append(EliteConsole.PrintInfoLine()); switch (this.MenuType) { case EliteConsoleMenuType.Menu: toPrint.Append(PrintMenuType(ColumnsMaxLengths)); break; case EliteConsoleMenuType.Parameter: toPrint.Append(PrintParameterType(ColumnsMaxLengths)); break; case EliteConsoleMenuType.List: toPrint.Append(PrintListType(ColumnsMaxLengths)); break; } if (this.PrintEndBuffer) { toPrint.Append(EliteConsole.PrintInfoLine()); toPrint.Append(EliteConsole.PrintInfoLine()); } return(toPrint.ToString()); }
public void Redo(DataGridViewUndoRedoManager manager) { if (manager == null) { return; } var dgv = manager.GridView; if (dgv == null) { return; } manager.IsBusy = true; try { switch (CommandType) { case DataGridViewUndoRedoCommandType.ChangeValue: UndoRedoValues(manager, false); break; case DataGridViewUndoRedoCommandType.ChangeColumn: if (OldColumns != null && OldColumns.Count > 0) { OldColumns.ForEach(o => o.Remove()); } if (NewColumns != null && NewColumns.Count > 0) { NewColumns.ToList().ForEach(o => o.Insert(o.LastIndex)); } break; case DataGridViewUndoRedoCommandType.RemoveColumn: if (OldColumns != null && OldColumns.Count > 0) { OldColumns.ForEach(o => o.Remove()); } break; case DataGridViewUndoRedoCommandType.AddColumn: if (NewColumns != null && NewColumns.Count > 0) { NewColumns.ToList().ForEach(o => o.Insert(o.LastIndex)); } break; case DataGridViewUndoRedoCommandType.RemoveRow: if (Rows != null && Rows.Count > 0) { Rows.ForEach(o => dgv.Rows.Remove(o)); } break; case DataGridViewUndoRedoCommandType.AddRow: if (Rows != null && Rows.Count > 0) { Rows.OrderBy(o => o.Index).ToList().ForEach(o => dgv.Rows.Insert(o.Index, o)); } break; } } finally { manager.IsBusy = false; } }
public void ShrinkColumnAt(int idx) { RebindRows(); Columns.RemoveAt(idx); Rows.ForEach(it => it.OnRemovColumn(idx)); }
public ImportProgramPlan() { this.CustomValidate = (Rows, Messages) => { Dictionary <string, List <IRowStream> > ProgramPlans = new Dictionary <string, List <IRowStream> >(); #region 根據課程規劃名稱、科目名稱及科目屬性分類 Rows.ForEach (x => { string Level = x.GetValue(mLevel); if (!string.IsNullOrEmpty(Level)) { string ProgramPlanName = x.GetValue(mProgramPlanName); string Subject = x.GetValue(mSubject); string Domain = x.GetValue(mDomain); string Entry = x.GetValue(mEntry); string RequiredBy = x.GetValue(mRequiredBy); string Required = x.GetValue(mRequired); string NotIncludeInCalc = x.GetValue(mNotIncludeInCalc); string NotIncludeInCredit = x.GetValue(mNotIncludeInCredit); string SubjectKey = ProgramPlanName + "_" + Subject + "_" + Domain + "_" + Entry + "_" + RequiredBy + "_" + Required + "_" + NotIncludeInCalc + "_" + NotIncludeInCredit; if (!ProgramPlans.ContainsKey(SubjectKey)) { ProgramPlans.Add(SubjectKey, new List <IRowStream>()); } ProgramPlans[SubjectKey].Add(x); } } ); #endregion #region 科目群組其級別是否連續 foreach (string SubjectKey in ProgramPlans.Keys) { List <IRowStream> SubjectRows = ProgramPlans[SubjectKey]; List <int> Levels = new List <int>(); bool IsContinuous = true; #region 取得所有級別清單 SubjectRows.ForEach(x => { int Level = K12.Data.Int.Parse(x.GetValue(mLevel)); if (!Levels.Contains(Level)) { Levels.Add(Level); } } ); #endregion #region 判斷級別是否連續 int MaxLevel = Levels.Max(); int MinLevel = Levels.Min(); for (int i = MinLevel; i <= MaxLevel; i++) { if (!Levels.Contains(i)) { IsContinuous = false; } } #endregion #region 若不連續寫入錯誤訊息 if (!IsContinuous) { SubjectRows.ForEach(x => Messages[x.Position].MessageItems.Add(new Campus.Validator.MessageItem(Campus.Validator.ErrorType.Error, Campus.Validator.ValidatorType.Row, "科目『" + x.GetValue(mSubject) + "』相同屬性其級別必須連續!"))); } #endregion } #endregion }; }
public Day07() { Rows.ForEach(x => ParseRow(x)); }
public void ExpandColumn(EntityColumn newColumn) { RebindRows(); Columns.Add(newColumn); Rows.ForEach(it => it.OnAppendColumn()); }