Skip to content

chelslava/Activities.DataTableExt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Активность TableFilter

Эта активность предназначена для фильтрации данных в таблице на основе SQL-подобного запроса.

Описание

Активность TableFilter принимает на вход таблицу данных и SQL-подобный запрос, который определяет, какие строки будут отфильтрованы. Результатом выполнения активности является новая таблица, содержащая только отфильтрованные строки.

Использование

Входные данные

  1. InputTable: Таблица данных, которую необходимо отфильтровать.

  2. Query: SQL-подобный запрос, определяющий условия фильтрации.

Выходные данные

  1. OutTable: Новая таблица, содержащая только отфильтрованные строки.

Примеры запросов

  1. Выбор всех строк, где значение в столбце Age больше 30: "Age > 30"
  2. Выбор строк, где значение в столбце Price меньше или равно $100: "Price <= 100"
  3. Выбор строк, где значение в столбце Date после 2023-01-01: "Date > #2023-01-01#"
  4. Выбор строк, где значение в столбце Category равно 'Electronics' и значение в столбце Price больше 500: "Category = 'Electronics' AND Price > 500"
  5. Выбор строк, где значение в столбце Name начинается с буквы 'A' или 'B': "Name LIKE 'A%' OR Name LIKE 'B%'"

Активность JoinTables

Активность JoinTables предназначена для объединения двух таблиц данных

Описание

Эта активность позволяет выполнять внутреннее, левое, правое и полное внешнее объединение таблиц.

  1. Inner Join: Для проверки этого типа объединения входные таблицы должны содержать общие значения по указанному условию объединения. В результате в результирующей таблице будут только те строки, которые имеют соответствующие значения в обеих входных таблицах.

  2. Left Join: При левом объединении в результирующей таблице будут все строки из левой таблицы (Table1), а соответствующие значения из правой таблицы (Table2) будут добавлены, если они есть.

  3. Right Join: Правое объединение работает аналогично левому, но в результирующей таблице будут все строки из правой таблицы (Table2), а соответствующие значения из левой таблицы (Table1) будут добавлены, если они есть.

  4. Full Outer Join: При полном внешнем объединении будут добавлены все строки из обеих таблиц, а значения, соответствующие друг другу по условию объединения, будут объединены.

Входные данные

  1. Table1: Входная таблица №1 для объединения. Тип данных: DataTable.

  2. Table2: Входная таблица №2 для объединения. Тип данных: DataTable.

  3. JoinType: Тип объединения. Может принимать значения: "Inner", "Left", "Right", "Full".

  4. JoinCondition: Условие объединения таблиц. Это поле указывает на столбец, по которому будет происходить объединение.

Выходные данные

  1. ResultTable: Результирующая таблица, содержащая результат объединения двух входных таблиц.

Активность TableSearch

Эта активность предназначена для выполнения поиска данных в предоставленной таблице по заданным критериям.

Описание

Активность TableSearch принимает на вход таблицу данных и критерии поиска, определяющие условия поиска. Результатом выполнения активности является список найденных соответствий в таблице.

Входные данные:

  1. SourceTable (DataTable): Таблица данных, в которой будет производиться поиск.
  2. Criteria (string): Критерии поиска. Это строка, содержащая шаблон для поиска.
  3. ColumnsToSearch (IEnumerable): Необязательный параметр. Список колонок, по которым следует проводить поиск. Если не указан, поиск будет осуществляться по всем колонкам.
  4. UseRegex (bool): Флаг, указывающий, следует ли использовать регулярные выражения при поиске.
  5. IgnoreCase (bool): Флаг, указывающий, игнорировать ли регистр символов при поиске (для регулярных выражений).
  6. Multiline (bool): Флаг, указывающий, включен ли многострочный режим при поиске (для регулярных выражений).
  7. SearchFirst (bool): Флаг, указывающий, искать ли только первое найденное соответствие.

Выходные данные:

  1. SearchResults (List<(int RowIndex, int ColumnIndex, object Value)>): Список кортежей, содержащих индекс строки, индекс колонки и значение, соответствующее критериям поиска.
  2. AnyMatch (bool): Флаг, указывающий, было ли найдено хотя бы одно соответствие.

Примеры запросов:

  1. Поиск всех строк, содержащих слово "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
  1. Поиск строк, где значение в колонке "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
  1. Поиск строк, где значение в колонке "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

Примеры с регулярными выражениями:

  1. Поиск строк, где значение в колонке "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
  1. Поиск строк, где значение в колонке "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

About

Активности PIX по работа с DataTable

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages