Платформа 3V/Выражение/Расчет выражений: различия между версиями

Материал из 3v-wiki
Перейти к навигации Перейти к поиску
Строка 6: Строка 6:
 
* Логические константы: true, false
 
* Логические константы: true, false
  
==Приведение типов==
+
==Приведение  
 
* приведение числа к строке можно воспользоваться операцией сложения. '' + [0] - в данном случае т.к. первый элемент строка, то вторая часть выражения приведется к строке.
 
* приведение числа к строке можно воспользоваться операцией сложения. '' + [0] - в данном случае т.к. первый элемент строка, то вторая часть выражения приведется к строке.
  
Строка 64: Строка 64:
 
* Padleft([строка], [ожидаемая длина строки], [символ "замощения" слева])
 
* Padleft([строка], [ожидаемая длина строки], [символ "замощения" слева])
 
* Substring([строка], [начальный индекс, начиная с 0]'', [кол-во символов]'')
 
* Substring([строка], [начальный индекс, начиная с 0]'', [кол-во символов]'')
 +
* Split([0], [1]) - Разбивает строку на коллекцию строковых элементов через разделитель
 +
* Join([0], [1]) - Объединяет коллекцию через разделитель в строку
 
=== Для работы с датами ===
 
=== Для работы с датами ===
 
* DateToString([дата]'', [формат: строка]'') - преобразование даты в строку с учетом формата; если формат не задан, то подставляется "dd.MM.yyyy"; [https://metanit.com/sharp/tutorial/19.2.php подробнее о форматах]
 
* DateToString([дата]'', [формат: строка]'') - преобразование даты в строку с учетом формата; если формат не задан, то подставляется "dd.MM.yyyy"; [https://metanit.com/sharp/tutorial/19.2.php подробнее о форматах]
Строка 85: Строка 87:
 
* ToDate([значение]) - преобразовывает значение в дату
 
* ToDate([значение]) - преобразовывает значение в дату
 
=== Работа с коллекциями ===
 
=== Работа с коллекциями ===
* ToList([0]) - преобразование массива или значения к коллекции произвольных элементов
+
#перенаправление [[Работа с коллекциями]]
* ToDistinctList([0]) - преобразование массива или значения к коллекции уникальных произвольных элементов
 
* ToIntList([0]) - преобразование массива или значения к коллекции целочисленных элементов
 
* ToDoubleList([0]) - преобразование массива или значения к коллекции вещественных элементов
 
* ToStringList([0]) - преобразование массива или значения к коллекции строковых элементов
 
* ToDateList([0]) - преобразование массива или значения к коллекции дат
 
* ToBooleanList([0]) - преобразование массива или значения к коллекции логических элементов
 
* AddToList([0], [1]) - добавление произвольного элемента в коллекцию произвольных элементов
 
* AddToIntList([0], [1]) - добавление целочисленного элемента в коллекцию целочисленных элементов
 
* AddToDoubleList([0], [1]) - добавление произвольного элемента в коллекцию вещественных элементов
 
* AddToStringList([0], [1]) - добавление произвольного элемента в коллекцию строковых элементов
 
* AddToDateList([0], [1]) - добавление произвольного элемента в коллекцию дат
 
* AddToBooleanList([0], [1]) - добавление произвольного элемента в коллекцию логических элементов
 
* AddRangeToList([0], [1]) - добавление коллекции произвольных элементов в коллекцию произвольных элементов
 
* AddRangeToIntList([0], [1]) - добавление коллекции целочисленных элементов в коллекцию целочисленных элементов
 
* AddRangeToDoubleList([0], [1]) - добавление коллекции вещественных элементов в коллекцию вещественных элементов
 
* AddRangeToStringList([0], [1]) - добавление коллекции строковых элементов в коллекцию строковых элементов
 
* AddRangeToDateList([0], [1]) - добавление коллекции дат в коллекцию дат
 
* AddRangeToBooleanList([0], [1]) - добавление коллекции логических элементов в коллекцию логических элементов
 
* RemoveFromList([0], [1]) - исключение произвольного элемента из коллекции произвольных элементов
 
* RemoveFromIntList([0], [1]) - исключение целочисленного элемента из коллекции целочисленных элементов
 
* RemoveFromDoubleList([0], [1]) - исключение вещественного элемента из коллекции вещественных элементов
 
* RemoveFromStringList([0], [1]) - исключение строкового элемента из коллекции строковых элементов
 
* RemoveFromDateList([0], [1]) - исключение даты из коллекции дат
 
* RemoveFromBooleanList([0], [1]) - исключение логического элемента из коллекции логических элементов
 
* RemoveRangeFromList([0], [1]) - исключение коллекции произвольных элементов из коллекции произвольных элементов
 
* RemoveRangeFromIntList([0], [1]) - исключение коллекции целочисленных элементов из коллекции целочисленных элементов
 
* RemoveRangeFromDoubleList([0], [1]) - исключение коллекции вещественных элементов из коллекции вещественных элементов
 
* RemoveRangeFromStringList([0], [1]) - исключение коллекции строковых элементов из коллекции строковых элементов
 
* RemoveRangeFromDateList([0], [1]) - исключение коллекции дат из коллекции дат
 
* RemoveRangeFromBooleanList([0], [1]) - исключение коллекции логических элементов из коллекции логических элементов
 
* Split([0], [1]) - Разбивает строку на коллекцию строковых элементов через разделитель
 
* Join([0], [1]) - Объединяет коллекцию через разделитель в строку
 
* SortList([0], [1] = true) - Сортирует коллекцию по значениям. Первый операнд - это сама коллекция, второй - направление сортировки, true - по возрастанию, false - по убыванию. Второй операнд опциональный, если не задан, то подставляется значение true.
 
* FindIndex([0], [1]) - поиск индекса элемента в коллекции. Первый операнд - коллекция, второй - значение которое ищем. Если значение не нашлось, вернется -1. Индексация начинается  0.
 
* FindDoubleIndex([0], [1], [2] = 1E-9) - поиск индекса вещественного значения в коллекции вещественных значений. Метод аналогичен методу FindIndex, только ожидается строгая типизация к вещественному типу и есть опциональный операнд: точность при поиске (если значение не задано берется 1E-9).
 
* Rank([0], [1], [2] = true) - поиск индекса в коллекции после сортировки. Комбинация фунций FindIndex и SortList, сперва переданная коллекция из первого операнда сортируется по возрастанию или убыванию (третий операнд), а затем в результирующей коллекции ищется индекс значения из второго операнда.
 
* RankDouble([0], [1], [2] = true, [3] = 1E-9) - поиск индекса в коллекции вещественных значений после сортировки. Функция аналогична функции Rank, только использует вместо FindIndex функцию FindDoubleIndex, как следствие добавляется еще один опциональный операнд - точность при поиске (если значение не задано берется 1E-9).
 

Версия 09:19, 15 марта 2021

Синтаксис

  • Операнды задаются в квадратных скобках, например [0].
  • Параметры функций перечисляются через запятую.
  • Логические операторы (не функции): and (или &&), or (или ||), not (или !).
  • Логические константы: true, false

==Приведение

  • приведение числа к строке можно воспользоваться операцией сложения. + [0] - в данном случае т.к. первый элемент строка, то вторая часть выражения приведется к строке.

Функции

Логические

  • if([условие], [если true], [если false])
  • in([значение, с которым сравнивать], [одно или более значений/массивов через запятую, которые сравнивать])

Связанные с null'ом

  • Coalesce([операнды через запятую]) - возвращает первый не null, либо null, если все null
  • Null() - возвращает null
  • IsNull([0]) - проверяет на null
  • IsNullOrEmpty([0]) - проверяет значение на null и пустоту
  • ВНИМАНИЕ!!! в КАРТОЧКАХ при расчете Expression при передаче параметров в формулу значение null меняется на пустую строку.

Пример: if([0] = , true, false), тут если придет null в качестве значения параметра 0, то карточки приведут его значение к пустой строке и формула вернет true.
Но если используется какая то функция в самой формуле которая может вернуть null, то такая проверка не сработает.
Пример: if(if([0] = , Null(), [0]) = , true, false), тут результат вложенного if вернет null и тогда верхний if вернет false.

Агрегатные

С любыми типами данных:

  • Count
  • NullsCount
  • NotNullsCount
  • DistinctCount

С числами и датами:

  • Min
  • Max

С числами:

  • Sum
  • Avg

Со строками:

  • Concatenate([разделитель:строка], [строка 1], ..., [строка N]) - объединение строк

Математические

  • Abs([число]) - модуль числа
  • Acos([число])
  • Asin([число])
  • Atan([число])
  • Ceiling([число])
  • Cos([число])
  • Exp([число])
  • Floor([число])
  • IEEERemainder([число], [число])
  • LinearRegression([массив чисел], [массив чисел], [число])
  • Log([число], [число])
  • Log10([число])
  • Pow([число], [число])
  • Round([число], [целое число])
  • Sign([число])
  • Sin([число])
  • Sqrt([число])
  • Tan([число])
  • Truncate([число])

Строковые

  • Concatenate([разделитель:строка], [строка 1], ..., [строка N]) - объединение строк
  • IndexOf([строка, в которой ищем], [строка, которую ищем]) - возвращает индекс первого символа строки, которую ищем или -1, если не найдена
  • Length([строка]) - возвращает длину строки
  • Letter([целое число - индекс латинской буквы]) - возвращает букву от A до Z
  • Padleft([строка], [ожидаемая длина строки], [символ "замощения" слева])
  • Substring([строка], [начальный индекс, начиная с 0], [кол-во символов])
  • Split([0], [1]) - Разбивает строку на коллекцию строковых элементов через разделитель
  • Join([0], [1]) - Объединяет коллекцию через разделитель в строку

Для работы с датами

  • DateToString([дата], [формат: строка]) - преобразование даты в строку с учетом формата; если формат не задан, то подставляется "dd.MM.yyyy"; подробнее о форматах
  • DayOfMonth([дата]) - возвращает число: день месяца
  • DayOfYear([дата])
  • DayOfWeek([дата])
  • DaysInMonth([год:число], [месяц:число])
  • FullYears([дата начала], [дата окончания]) - кол-во полных лет
  • IsLeapYear([год:число]) - високосный ли год
  • Month([дата]) - возвращает число: номер месяца
  • Now() - возвращает сегодняшнее число и текущее время
  • Today() - возвращает сегодняшнее число (время 00:00:00)
  • Year([дата]) - возвращает число: год
  • ComposeDate([год:число], [месяц:число], [день:число]) - возвращает дату
  • ComposeDate([год:число], [месяц:число], [день:число], [час:число], [минута:число], [секунда:число]) - возвращает дату-время

Преобразование

  • ToString([значение]) - преобразовывает значение в строку
  • ToInt([значение]) - преобразовывает значение в целое число
  • ToDouble([значение]) - преобразовывает значение в число с плавающей запятой
  • ToBoolean([значение]) - преобразовывает значение в логическое значение
  • ToDate([значение]) - преобразовывает значение в дату

Работа с коллекциями

  1. перенаправление Работа с коллекциями