<< Click to Display Table of Contents >> Navigation: -- ФОРМУЛЫ -- > Встроенные функции для формул |
В формулах, используемых в DIGIMINE можно использовать обращения к различным встроенным функциям.
Функции можно разделить на 2 группы:
1. Функции, которые можно использовать только для обращений к столбцам из той же таблицы, для которой пишется формула. Для этих функций допускается также обращение к столбцам из главной таблицы - таблицы со списком выработок.
2. Функции, которые можно использовать только для обращений к столбцам другой таблицы (кроме обращений к главной таблице).
Рассмотрим некоторые примеры.
Допустим, имеется таблица, со столбцом, в который вводится угол встречи с рудным телом и необходимо вычислить коэффициенты приведения стволовой мощности (длины интервала) к истинной мощности. В этой таблице также имеется расчетный столбец, в который необходимо вычислить и записать значения истинной мощности.
Формула для расчетного столбца Коэф. мощн. выглядит следующим образом:
ЕСЛИ { ЕСТЬ_ПУСТО ( [Угол встречи с р.т.] ) ; ПУСТО () ; SIN_ГРАД ( [Угол встречи с р.т.] ) }
Как программа работает с этой формулой ?
1. Берется значение из столбца Угол встр. с р.т. строки №1 (70 градусов).
2. Проверяется, не является ли значение пустым (вызов функции ЕСТЬ_ПУСТО, которой передается значение из столбца Угол встр. с р.т. текущей строки №1).
3. Так как оно не пустое, вычисляется синус угла - вызывается функция SIN_ГРАД, которой передается значение из столбца Угол встр. с р.т. текущей строки №1).
4. Результат вычисления записывается в столбец Коэф. мощн. текущей строки №1.
5. На 1 увеличивается номер текущей строки и повторяются расчеты, описанные выше.
Для расчетного столбца Мощн. ист. записана следующая формула:
[Длина] * [Коэф. мощн.]
Для каждой строки программа выбирает значения из столбцов Длина и Коэф. мощн., перемножает их, и записывает результат в столбец Мощн. ист..
Отметим, что для вычисления столбца Мощн. ист. можно было бы обойтись и без столбца Коэф. мощн., а все вычисления записать в одной формуле. Но в данном конкретном случае столбец Коэф. мощн. используется и для других целей (при формировании таблицы рудных интервалов по заданным кондициям), поэтому он выделен отдельно.
Отметим также, что значения в столбце Коэф. мощн. должны вычисляться раньше, чем значения в столбце Мощн. ист.. Программа автоматически отслеживает все зависимости расчетных столбцов и расчетных таблиц и определяет порядок, в котором они должны вычисляться, независимо от порядка создания или изменения формул в расчетных столбцах.
Заметим, что обратиться напрямую к какой-либо другой таблице нет возможности, так как значения, которые записаны в строках рассматриваемых таблицах относятся к определенным интервалам "От - До", которые в других таблицах, в общем случае, будут отличаться от интервалов текущей таблицы.
Однако задачи, при которых необходимо произвести привлечение информации из других таблиц, возникают очень часто. Более того, возможность обращения к другим таблицам очень сильно расширяет круг задач, которые можно решить при помощи расчетных столбцов.
Для этой цели в DIGIMINE имеется специальная группа функций, при помощи которых можно привести в соответствие текущей строке информацию из другой таблицы.
Рассмотрим пример использования функций, позволяющих обращаться к другим таблицам.
В базе данных имеется расчетная таблица Руда борт 3, в которой рассчитываются и записываются рудные интервалы по борту 3.0%.
Ставится задача - вычислить длину интервалов (точнее, истинную мощность) с содержанием ниже бортового, которые попадают внутрь рудных интервалов.
В таблице Руда борт 3 создается расчетный столбец Длина безрудных в руде, в который записывается следующая формула (для наглядности формула записана в несколько строк):
ЕСЛИ {
[Номер борта] > 0;
ДР_ТАБЛ_ЕСЛИ_СУММА ( [Опробование!PbK+ZnK] , "<", 3.0, [Опробование!Мощн. ист.] ) ;
ПУСТО ()
}
В этой формуле, во-первых, производится проверка на то, является ли интервал рудным, чтобы расчет вести только для рудных интервалов.
Если интервал рудный, то вызывается функция ДР_ТАБЛ_ЕСЛИ_СУММА, которой задается суммирование истинных мощностей (записанных в столбце Мощн. ист.) для тех интервалов из столбца Pbk+ZnK (по которому производился расчет рудных интервалов) таблицы Опробование, у которых содержание ниже бортового (задается двумя параметрами: "<", 3.0, ).
В рассматриваемом примере функции обращения к другим таблицам использованы также и в расчетных столбцах главной таблицы со списком выработок.
В столбце Сумма безрудных в борте 3 таблицы со списком выработок вычисляется и записывается сумма безрудных интервалов внутри интервалов по борту 3.0% в целом по каждой выработке. Для этого используется формула, состоящая из одного обращения к функции:
ДР_ТАБЛ_СУММА ( [Руда борт 3!Длина безрудных в руде] )
В столбце Длина рудных борт 3 таблицы со списком выработок используется функция, которая производит суммирование истинных мощностей рудных интервалов, пропуская безрудные интервалы:
ДР_ТАБЛ_ЕСЛИ_СУММА ( [Руда борт 3!Номер борта], ">" , 0 , [Руда борт 3!Мощность истинная] )
Полный список встроенных функций приведен в следующих двух разделах: