[Решено]Небольшая проблема с PHP полем в таблице MySQL в конструкторе отчетов
Добавлено: 02 июн 2023, 16:07
Суть в следующем:
В Конструкторе отчетов создан отчет для печати скажем "Коммерческое предложение"
В котором используется Таблица (MySQL запрос) (это состав предложения, т.е. сама номенклатура непосредственно), в ней почти все колонки заполняются через PHP поле, в которых происходят определенные манипуляции с полями запроса.
Например есть колонка с "Производитель", в которой идет выборка по полю запроса ID номенклатуры, в Сущности самой номенклатуры, чтобы определить ID производителя и если запрос удачный, то производится далее запрос в Сущность контрагенты, где извлекается Название производителя и выводится в итоге в данное поле.
При этом если производитель в Номенклатуре не указан (а такое может быть, если это услуга например), то код должен вывести прочерки '---' в данном поле в отчете.
Если вся номенклатура с производителем, то все прекрасно, ошибок не выводится, если есть позиции, где не указан производитель, то выходит ошибка:
Но почему значение PHP поля, обязательно всегда должно быть числовым? Бывает необходимость вывести текстовое значение, как в данном случае..
Либо как вариант предложения, может добавить в Конструктор отчетов поле типа Ajax запроса, чтобы можно было любой результат выводить? В том числе и текстовый?
В Конструкторе отчетов создан отчет для печати скажем "Коммерческое предложение"
В котором используется Таблица (MySQL запрос) (это состав предложения, т.е. сама номенклатура непосредственно), в ней почти все колонки заполняются через PHP поле, в которых происходят определенные манипуляции с полями запроса.
Например есть колонка с "Производитель", в которой идет выборка по полю запроса ID номенклатуры, в Сущности самой номенклатуры, чтобы определить ID производителя и если запрос удачный, то производится далее запрос в Сущность контрагенты, где извлекается Название производителя и выводится в итоге в данное поле.
Код: Выделить всё
$manufacture_id_query = db_query("SELECT field_400 FROM app_entity_45 WHERE id=". $item['field_495']);
if($manufacture_id_arr = db_fetch_array($manufacture_id_query)){
if(!$manufacture_id_arr['field_400']){
$output_value = '---';
}else{
$manufacture_id = $manufacture_id_arr['field_400'];
$manufacture_query = db_query("SELECT field_331 FROM app_entity_35 WHERE id=". $manufacture_id);
if($manufacture_arr = db_fetch_array($manufacture_query)){
$output_value = $manufacture_arr['field_331'];}
}
}
Если вся номенклатура с производителем, то все прекрасно, ошибок не выводится, если есть позиции, где не указан производитель, то выходит ошибка:
То есть, как я понимаю проблема в том, что я пытаюсь вывести текст '---' в поле PHP, которое является числовым, и система при этом выдает ошибку.Warning: A non-numeric value encountered in /home/users/.../plugins/ext/classes/report_page/blocks_table.php on line 381
Но почему значение PHP поля, обязательно всегда должно быть числовым? Бывает необходимость вывести текстовое значение, как в данном случае..
Либо как вариант предложения, может добавить в Конструктор отчетов поле типа Ajax запроса, чтобы можно было любой результат выводить? В том числе и текстовый?