Эта активность предназначена для фильтрации данных в таблице на основе SQL-подобного запроса.
Активность TableFilter принимает на вход таблицу данных и SQL-подобный запрос, который определяет, какие строки будут отфильтрованы. Результатом выполнения активности является новая таблица, содержащая только отфильтрованные строки.
-
InputTable: Таблица данных, которую необходимо отфильтровать.
-
Query: SQL-подобный запрос, определяющий условия фильтрации.
- OutTable: Новая таблица, содержащая только отфильтрованные строки.
- Выбор всех строк, где значение в столбце
Ageбольше 30: "Age > 30" - Выбор строк, где значение в столбце Price меньше или равно $100: "Price <= 100"
- Выбор строк, где значение в столбце Date после 2023-01-01: "Date > #2023-01-01#"
- Выбор строк, где значение в столбце Category равно 'Electronics' и значение в столбце Price больше 500: "Category = 'Electronics' AND Price > 500"
- Выбор строк, где значение в столбце Name начинается с буквы 'A' или 'B': "Name LIKE 'A%' OR Name LIKE 'B%'"
Активность JoinTables предназначена для объединения двух таблиц данных
Эта активность позволяет выполнять внутреннее, левое, правое и полное внешнее объединение таблиц.
-
Inner Join: Для проверки этого типа объединения входные таблицы должны содержать общие значения по указанному условию объединения. В результате в результирующей таблице будут только те строки, которые имеют соответствующие значения в обеих входных таблицах.
-
Left Join: При левом объединении в результирующей таблице будут все строки из левой таблицы (Table1), а соответствующие значения из правой таблицы (Table2) будут добавлены, если они есть.
-
Right Join: Правое объединение работает аналогично левому, но в результирующей таблице будут все строки из правой таблицы (Table2), а соответствующие значения из левой таблицы (Table1) будут добавлены, если они есть.
-
Full Outer Join: При полном внешнем объединении будут добавлены все строки из обеих таблиц, а значения, соответствующие друг другу по условию объединения, будут объединены.
-
Table1: Входная таблица №1 для объединения. Тип данных: DataTable.
-
Table2: Входная таблица №2 для объединения. Тип данных: DataTable.
-
JoinType: Тип объединения. Может принимать значения: "Inner", "Left", "Right", "Full".
-
JoinCondition: Условие объединения таблиц. Это поле указывает на столбец, по которому будет происходить объединение.
- ResultTable: Результирующая таблица, содержащая результат объединения двух входных таблиц.
Эта активность предназначена для выполнения поиска данных в предоставленной таблице по заданным критериям.
Активность TableSearch принимает на вход таблицу данных и критерии поиска, определяющие условия поиска. Результатом выполнения активности является список найденных соответствий в таблице.
- SourceTable (DataTable): Таблица данных, в которой будет производиться поиск.
- Criteria (string): Критерии поиска. Это строка, содержащая шаблон для поиска.
- ColumnsToSearch (IEnumerable): Необязательный параметр. Список колонок, по которым следует проводить поиск. Если не указан, поиск будет осуществляться по всем колонкам.
- UseRegex (bool): Флаг, указывающий, следует ли использовать регулярные выражения при поиске.
- IgnoreCase (bool): Флаг, указывающий, игнорировать ли регистр символов при поиске (для регулярных выражений).
- Multiline (bool): Флаг, указывающий, включен ли многострочный режим при поиске (для регулярных выражений).
- SearchFirst (bool): Флаг, указывающий, искать ли только первое найденное соответствие.
- SearchResults (List<(int RowIndex, int ColumnIndex, object Value)>): Список кортежей, содержащих индекс строки, индекс колонки и значение, соответствующее критериям поиска.
- AnyMatch (bool): Флаг, указывающий, было ли найдено хотя бы одно соответствие.
- Поиск всех строк, содержащих слово "apple" в любой колонке:
- Criteria = "apple"
- Пример входных данных: Criteria = "apple", SourceTable = { { "apple pie", 25 }, { "banana", 30 }, { "green apple", 15 } }
- Результаты: SearchResults = { (0, 0, "apple pie"), (2, 0, "green apple") }, AnyMatch = true
- Поиск строк, где значение в колонке "Price" больше 100:
- Criteria = "Price > 100", ColumnsToSearch = { "Price" }
- Пример входных данных: Criteria = "Price > 100", ColumnsToSearch = { "Price" }, SourceTable = { { 120 }, { 90 }, { 150 } }
- Результаты: SearchResults = { (0, 0, 120), (2, 0, 150) }, AnyMatch = true
- Поиск строк, где значение в колонке "Date" после 2023-01-01:
- Criteria = "Date > #2023-01-01#"
- Пример входных данных: Criteria = "Date > #2023-01-01#", SourceTable = { { "2023-02-15" }, { "2022-12-30" }, { "2023-05-20" } }
- Результаты: SearchResults = { (0, 0, "2023-02-15"), (2, 0, "2023-05-20") }, AnyMatch = true
- Поиск строк, где значение в колонке "Name" начинается с буквы 'A' или 'B':
- Criteria = "Name LIKE 'A%' OR Name LIKE 'B%'"
- Пример входных данных: Criteria = "Name LIKE 'A%' OR Name LIKE 'B%'", SourceTable = { { "Alice", 25 }, { "Bob", 30 }, { "Charlie", 40 } }
- Результаты: SearchResults = { (0, 0, "Alice"), (1, 0, "Bob") }, AnyMatch = true
- Поиск строк, где значение в колонке "Email" соответствует шаблону адреса электронной почты:
- Criteria = @"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z|a-z]{2,}\b"
- Пример входных данных: Criteria = @"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z|a-z]{2,}\b", SourceTable = { { "test@example.com" }, { "invalid email", 30 }, { "another@test.com" } }
- Результаты: SearchResults = { (0, 0, "test@example.com"), (2, 0, "another@test.com") }, AnyMatch = true