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

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

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

просмотр истории страницы

Если появляются записи "None", значит есть абоненты попадающие в выборку, но данные, которые мы пытаемся получить, не заполнены. В таком случае СУБД в ответ на запрос отвечает "null" или "none".
Для решения проблемы используйте конструкцю *coalesce*, задавая какое-то "стандартное" значаение, оно будет выводиться вместо None. Предварительно преобразуем *a.activate_date* в строковый формат, чтобы СУБД могла правильно объединить его с остальным текстом:
{code:title=Было}'Создан: ' || a.activate_date || ';' ||{code}
{code:title=Стало}'Создан: ' || coalesce(cast(a.activate_date as varchar(32)),'1970-01-01 coalesce(a.activate_date,'1970-01-01 00:00:01') || ';' ||{code}

h2. Отчет завершился ошибкой "arithmetic exception, numeric overflow, or string truncation"

Ошибка Отчёт опять завершится ошибкой, но уже другой: "_arithmetic exception, numeric overflow, or string truncation_". Она говорит о том, что мы пытамся производить операции над данными [разных типов|https://firebirdsql.org/manual/migration-mssql-data-types.html], что в ряде случаев пройдет успешно и СУБД произведёт конверсию автоматический, но не всегда.
Чтобы решить проблему, все данные приведём к единому типу: текст. Преобразуем *a.activate_date* в строковый формат, чтобы СУБД могла правильно объединить его с остальным текстом:
Если взять пример где все записи были "None" и убрать оттуда предварительную конверсию даты в строку, вот так:
{code:title=Было}'Создан: ' || coalesce(a.activate_date,'1970-01-01 00:00:01') || ';' ||{code}
То мы получим эту ошибку.
{code:title=Стало}'Создан: ' || coalesce(cast(a.activate_date as varchar(32)),'1970-01-01 00:00:01') || ';' ||{code}

h2. В выгрузке нет ни одной записи