Как использовать тип поля «PHP код»?

На вкладке «PHP код» введите ваш код.

Для получения значения из текущей записи или из родительской, используйте конструкцию [id поля], например:

$status = [169];

Чтобы вывести или сохранить значения в базе, значение необходимо присвоить переменной $output_value, например:

$output_value = 'Срочная задача';

По умолчанию код выполняется при добавлении/редактировании записи. При этом, значение из $output_value сохраняется в базе данных, и доступен фильтр по этому значению.

Сохраненное значение в базе доступно в переменной $current_field_value

if(!strlen($current_field_value))
{      
    $output_value = time();
}
else
{
    $output_value = $current_field_value;  
}

Если включена опция «Выполнять динамически», программа будет выводить значение из $output_value, при этом, в базе данных значение не сохраняется.

Опция «Режим отладки» выводит сформированный код для выполнения и массив доступных полей с их значениями. Режим отладки будет работать, если включена опция «Выполнять динамически».

MySql запрос

Используя функцию db_query(), вы сможете построить запрос к необходимой таблице и выбрать нужные вам значения, например:

$info_query = db_query("select id from app_entity_35 where field_169=" . $status );
$info = db_fetch_array($info_query);
$id = $info['id'];

 

«Приземление» динамических типов полей MySQL формула или MySQL запрос

В поле PHP-код можно выбрать конкретную запись с помощью следующей конструкции:

$items_query = new items_query($entity_id,[
'fields_in_query'=>22,
'add_formula'=>true,
'where' => 'and id=' . $item_id,
]);
        
$item_query = db_query($items_query->get_sql());
$item = db_fetch_array($item_query );

22 — id поля с формулой (можно через запятую перечислить несколько)

Еще данный класс можно применить вот так

$items_query = new items_query($entity_id,[
'fields_in_query'=>22,
'add_formula'=>true,
'report_id' => 13,
'add_filters'=>true,
'add_order'=>true,
]);

$item_query = db_query($items_query->get_sql());
while($item = db_fetch_array($item_query ))
{
...
}

То есть передаем ID отчета (13) и выбираем все записи по заданным фильтрам. Может пригодится при какой то выборке или экспорте.

или как пример, считаем (приземляем) результат формул (динамических запросов) суммы 1 поля подчинной сущности, как результат, в главную. Код в поле типа «PHP код», срабатывает при сохранении главной записи, куда и записывается результат.

$items_query = new items_query(33,[
'fields_in_query'=>376,
'add_formula'=>true,
'where' => "and parent_item_id=[id]",
]);
$item_query = db_query($items_query->get_sql());
while ($row = db_fetch_array($item_query)) {
$x += $row['field_376'];
}
$output_value = $x;
//$output_value = number_format($x, 2, ',', ' ');

33 — id подчиненной сущности, 376 — поле (запроса / формулы) подчиненной сущности. Для форматироваия вывода можно использовать функцию number_format.

Ваш вопрос решен?

Похожие статьи