Отладка отчетов

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (8)

просмотр истории страницы
{toc:maxlevel=2}

h1. Стандартные отчёты

В состав биллинга входит набор стандартных отчётов. Если у Вас возникла проблема с одним из них то:
# Возможно в отчёте уже есть нужные исправления. Скопируйте свежую версию отчёта к себе на биллинг из демонстрационной базы данных https://demo5.carbonsoft.ru/admin/reports/AdminCustomReports/
{info}
Для доступа к демо базе авторизуйтесь на [странице|https://www.carbonsoft.ru/products/carbon_billing/demo-access/?land=modern]
{info}
# Если в свежей версии отчёта также есть ошибка обратитесь в [техническую поддержку|https://www.carbonsoft.ru/support/]

h1. Почему вообще могут возникнуть ошибки?
Отчеты из статей ориентированы на стандартный набор реквизитов и их параметры. Чем отчет больше, тем выше вероятность допустить ошибку в какой-нибудь мелочи. Работая над большими отчетами, вероятней всего, придется потратить какое-то время на их отладку.

{info}Мы писпользуем *Firebird 2.1*, детальную информацию по языку СУБД Вы можете посмотреть по ссылкам:
* [Firebird 2.1 Language Reference Update|https://firebirdsql.org/refdocs/langrefupd21.html] - наиболее исчерпывающее оффициальное руководство на английском языке
* [Руководство по языкуSQL СУБД Firebird 2.5|https://firebirdsql.org/file/documentation/reference_manuals/Firebird_Language_Reference_RUS.pdf] - то же самое на русском языке для версии СУБД 2.5, от 2.1 в основном отличие в добавлении новых функций и процедур
* [Словарик по FireBird|http://firebirdsql.su/doku.php?id=o_sajte] - сайт посвященный Firebird на русском языке, поиском можно найти описание большинства функций с примерами
{info}

h2. При выполнении отчета ошибка "not enough arguments for format string"

Такая ошибка может возникнуть если Вы сделали отчет для выполнения в [конструкторе отчетов|CarbonBilling:Конструктор отчетов] и добавили в форму параметры для заполнения ("_Параметры полей формы_"), при этом где-то в отчете допущена ошибка - одна из выше описанных.
Такая ошибка может возникнуть если в отчете допущена любая ошибка, и при этом в тексте отчета есть символ процента "%" или другие спецсимволы.
Ниже приведены несколько примеров как решить такую проблему.

h3. Параметры заполнения формы
Если Вы сделали отчет для выполнения в [конструкторе отчетов|CarbonBilling:Конструктор отчетов] и добавили в форму параметры для заполнения ("_Параметры полей формы_"), то их нужно убрать чтобы увидеть реальную ошибку отчета.

Чтобы найти проблему:
# Замените все _заполняемые_ параметры статическими, например: \\ \\
# Выполните отчет и в выводе будет описана настоящая ошибка.

h3. Символ "%"

Если где-либо в отчёте Вы используете символ процента "%", его тоже необходимо убрать:
* Возможно Вы используете оператор "LIKE" чтобы найти подходящие строки, например:
{code:title=Было}when ABONENTS.NAME like '%Васильев%'{code}
Его можно заменить на оператор "CONTAINING" получив приблизительно тот же эффект
{code:title=Стало}when ABONENTS.NAME containing 'Васильев'{code}
В любом случае, исправив основную ошибку отчета, форму LIKE можно будет вернуть.
* Еще возможный вариант - Вы вывводите символ процента чтобы обозначить что в столбце отображаются именно проценты, например:
{code:title=Было}select '3% суммы всех платежей: ' sum(OP_SUMMA)/100*3 from FINANCE_OPERATIONS where OP_TYPE=2{code}
Просто уберите из отчета символ процента и в данном отчете увидите ошибку "arithmetic exception...":
{code:title=Стало}select '3 процента суммы всех платежей: ' sum(OP_SUMMA)/100*3 from FINANCE_OPERATIONS where OP_TYPE=2{code}
После исправления основной ошибки отчета, символ процента можно будет вернуть.



h2. Я не могу найти ошибку. Что делать?
+Локализуйте проблему+. Максимально упростите запрос и постепенно добавляйте объединения таблиц, или наоборот - постепенно удаляйте поля из исходного запроса.