public string GetString(bool withFormula = false) { string result; if (withFormula) { var filters = new DataFilters(formula); result = $"{text} ({filters.GetString()})"; } else { result = text; } return(result); }
internal Table GetSubTable(DataFilters filters, DataFields columns) { //проверяем колонки для фильтрации foreach (var f in filters.filtersList) { if (!HasColumn(f.columnName)) { return(null); } } //проверяем колооки для вывода (нужно ли???) foreach (var c in columns.fields) { if (!HasColumn(c)) { return(null); } } var subTable = dataTable.Copy(); List <DataRow> badRows = new List <DataRow>(); //удаляем линие строки foreach (DataRow r in subTable.Rows) { for (int i = 0; i < r.ItemArray.Count(); i++) { TableCell c = (TableCell)r.ItemArray[i]; string columnName = subTable.Columns[i].ColumnName; if (filters.ItIsCorrectValue(columnName, c.text) == false) { badRows.Add(r); break; } } } foreach (var br in badRows) { subTable.Rows.Remove(br); } //удаляем лишние столбцы List <DataColumn> badColumns = new List <DataColumn>(); foreach (DataColumn c in subTable.Columns) { if (!columns.fields.Any(x => x == c.ColumnName)) { badColumns.Add(c); } } foreach (var bc in badColumns) { subTable.Columns.Remove(bc); } return(new Table(subTable)); }
public DataFilters GetCellFilters() { var filters = new DataFilters(formula); return(filters); }