Справка DIGIMINE

Встроенные функции для формул

Встроенные функции для формул

Previous topic Next topic  

Встроенные функции для формул

Previous topic Next topic  

 

 

В формулах, используемых в 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!Мощность истинная] )

 

 

 

 

Полный список встроенных функций приведен в следующих двух разделах:

Функции внутри одной таблицы

Функции для 'других' таблиц