Страница 1 из 1
Конструктор отчётов - отображение "Имени" из глобального списка вместо ID
Добавлено: 20 мар 2025, 13:12
gayfullin.r
Сформировал SQL-запрос в "Конструкторе отчётов", но он выдает id записи из глобального списка, а надо вывести "Имя" (наименование записи). Помогите плиз!
Код: Выделить всё
SELECT
e.field_214 AS tip,
SUM(e.field_215) AS zakaz
FROM app_entity_21 e
GROUP BY tip
ORDER BY zakaz DESC;
Поле 214 - выпадающий список с глобальным списком.

Re: Конструктор отчётов - отображение "Имени" из глобального списка вместо ID
Добавлено: 20 мар 2025, 14:06
nruslan2
ваш запрос выводит данные, которые записаны в ячейке в таблице - а это ид записи списка,
а для вывода имени надо сформировать запрос, таким образом чтобы он еще и брал данные из таблицы, где хранятся данные относящиеся к списку!
Re: Конструктор отчётов - отображение "Имени" из глобального списка вместо ID
Добавлено: 20 мар 2025, 15:34
gayfullin.r
Спасибо большое за наводку!
Получилось так:
Код: Выделить всё
SELECT
glc.name AS tip,
SUM(e.field_215) AS zakaz
FROM app_entity_21 e
JOIN app_global_lists_choices glc ON e.field_214 = glc.id
GROUP BY glc.name
ORDER BY zakaz DESC;
Re: Конструктор отчётов - отображение "Имени" из глобального списка вместо ID
Добавлено: 23 мар 2025, 20:02
Antonyous99
Если в PHP это надо, то вот удобная функция, кладете в Пользовательский PHP.
Код: Выделить всё
function get_mas_from_glob_list($choice_id) {
$item_query = db_query("select * from app_global_lists_choices where id=".$choice_id);
if($item = db_fetch_array($item_query))
return $item;
}
Использование
Код: Выделить всё
$x = get_mas_from_glob_list($id); // $id - этозначение поля глобального списка
// Наименование
$name = $x['name'];
// Значение
$val = $x['val'];
Re: Конструктор отчётов - отображение "Имени" из глобального списка вместо ID
Добавлено: 23 мар 2025, 22:26
Fait
Antonyous99 писал(а): 23 мар 2025, 20:02
Если в PHP это надо, то вот удобная функция, кладете в Пользовательский PHP.
Код: Выделить всё
function get_mas_from_glob_list($choice_id) {
$item_query = db_query("select * from app_global_lists_choices where id=".$choice_id);
if($item = db_fetch_array($item_query))
return $item;
}
Использование
Код: Выделить всё
$x = get_mas_from_glob_list($id); // $id - это значение поля глобального списка
// Наименование
$name = $x['name'];
// Значение
$val = $x['val'];
Ага, и тут благополучно ловится Warning, если вдруг значение списка не указано. Плюс к этому не val, а value.
Нужно проверку на пустоту ещё сделать:
Код: Выделить всё
$x = get_mas_from_glob_list($id); // $id - этозначение поля глобального списка
if (!empty($x)) {
// Наименование
$name = $x['name'];
// Значение
$val = $x['value'];
}
P.S.: Имхо, название функции, как по мне, длинновато.
Re: Конструктор отчётов - отображение "Имени" из глобального списка вместо ID
Добавлено: 23 мар 2025, 23:09
Antonyous99
Точно, ['value'].
Назавние функции ужасно длинное, и не уменьшить никак!
Всем: извините за неточности, спасибо, помогли исправить.
P.S. Кого достали варнинги - отключайте.