Exemple #1
0
        public string GetString(bool withFormula = false)
        {
            string result;

            if (withFormula)
            {
                var filters = new DataFilters(formula);
                result = $"{text} ({filters.GetString()})";
            }
            else
            {
                result = text;
            }
            return(result);
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        public DataFilters GetCellFilters()
        {
            var filters = new DataFilters(formula);

            return(filters);
        }