Конструктор отчётов - отображение "Имени" из глобального списка вместо ID

Все вопросы/проблемы по установке и использовании.
Ответить
gayfullin.r
Сообщения: 66
Зарегистрирован: 31 май 2018, 14:24
Имя: Рустем Гайфуллин
Откуда: РФ, Казань
Контактная информация:

Конструктор отчётов - отображение "Имени" из глобального списка вместо ID

Сообщение 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 - выпадающий список с глобальным списком.
Изображение
Вложения
изображение_2025-03-20_131042594.png
nruslan2
Сообщения: 2631
Зарегистрирован: 14 окт 2020, 09:13
Имя: Ruslan
Откуда: Moscow
Контактная информация:

Re: Конструктор отчётов - отображение "Имени" из глобального списка вместо ID

Сообщение nruslan2 »

ваш запрос выводит данные, которые записаны в ячейке в таблице - а это ид записи списка,
а для вывода имени надо сформировать запрос, таким образом чтобы он еще и брал данные из таблицы, где хранятся данные относящиеся к списку!
gayfullin.r
Сообщения: 66
Зарегистрирован: 31 май 2018, 14:24
Имя: Рустем Гайфуллин
Откуда: РФ, Казань
Контактная информация:

Re: Конструктор отчётов - отображение "Имени" из глобального списка вместо ID

Сообщение 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;
Аватара пользователя
Antonyous99
Сообщения: 719
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Конструктор отчётов - отображение "Имени" из глобального списка вместо ID

Сообщение 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'];
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 1085
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Конструктор отчётов - отображение "Имени" из глобального списка вместо ID

Сообщение 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.: Имхо, название функции, как по мне, длинновато.
Аватара пользователя
Antonyous99
Сообщения: 719
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

Re: Конструктор отчётов - отображение "Имени" из глобального списка вместо ID

Сообщение Antonyous99 »

Точно, ['value'].
Назавние функции ужасно длинное, и не уменьшить никак! :D
Всем: извините за неточности, спасибо, помогли исправить.
P.S. Кого достали варнинги - отключайте.
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
Ответить