ошибка при создании отчета

Автор at0mix, 28 июля 2022, 14:06

0 Пользователи и 1 гость просматривают эту тему.

at0mix

ЛО База 7.3.2
ява-11

с 8й явой отчет не запускался - ругался на версию явы, файловые функции старые не поддерживают.
поставил яву-11, подключил в ЛО.

при редактировании отчета все хорошо, при запуске на исполнение при любом содержимом ошибка

JNI exception occurred /builds/AstraOS/buildsystem/astra-build-fixes/ci__libreoffice/libreoffice-7.3.2/stoc/source/javavm/javavm.cxx:1471

где найти что за ошибка и как устранить?

economist

Можно использовать другое расширение для построения отчётов.

Можно вытащить SQL-запрос по Ctrl+Shift+F4 в Calc и на соседнем листе отформатировать таблицу по вкусу.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

at0mix

С ошибкой разобрался.
сейчас дальше иду.
в отчете нужно сделать список нумерованный - в первом поле № по порядку.
в таблице номера ID нет.
как в селекте организовать автонумерацию?

SELECT 1 AS "№", "Цех", "Должность", "ФИО", "Логин",
FROM "Список ПК"

т.е. вместо константы "1" - автонумерация?

rami

Так?
SELECT row_number() over() "№", "Цех", "Должность", "ФИО", "Логин" FROM "Список ПК"

at0mix

Цитата: rami от 11 августа 2022, 11:08Так?
Да, спасибо, допер уже %)
вот вычитал про select list - тоже думал как из столбца сделать строку полей через запятую :)
но пока не пойму как сделать быстро отчет из готового шаблона?
есть шаблон письма - вверху слева шапка, справа - получатели,
далее текст шаблона, потом таблица расчетная, ну и подпись.
нужно в поле "получателей" загнать список из select list, а в поле таблицы - рассчитанную таблицу.
можно ли как то использовать готовый шаблон для подготовки отчета и указать только те области куда нужно внести список и таблицу?

economist

#5
В LO бесплатно можно все, вопрос в ресурсах. "Отчет" - это в Base документ/объект Writer (как и Форма, кстати). Форму можно отсоединить и сохранить в отдельный файл, Отчет, имхо, нет. Но отчет можно вызывать ярлыком с Рабстола.

Штатный построитель Отчетов, второй, от Sun и третий - работают по одному SQL-запросу, работают без макросов и довольно капризны. Они продуцируют документ Writer с его не совсем удобными таблицами. Настраивать формат ячеек, шапку, тело и подвал в них муторно, ради 1-5 отчетов я бы погружаться не стал. На Форуме не припомню чтобы кто-то хвалился наработками по этой теме. Хорошо три этих построителя зайдут кадровикам/расчетчикам - там понятие красоты деформировано формами от ФСС РФ (хуже сделать нельзя, но все терпят, т.к. без вариантов). А вот экономистам "построители" не зайдут.

Есть куча (десятки) альтернативных "построителей", работающих с любой СУБД, типа CrystalReport, в т.ч. свободных. Там можно накрутить что угодно, но через полгода погружения. И опять же, если хочется это сделать своим навыком и включить в резюме.

Легкий путь, кмк, в Base написать 2 запроса - для списка получателей и для таблицы расчетной, вытянуть их во Writer и отформатировать стилями абзаца и содержимого таблицы во Writer. Для достижения "корпоративного стиля" этот путь будет легким.

Но т.к. нужно выбирать период и что-то еще - придется создать Форму во Writer, с контролами для выбора периода итд. Тут будет немного макросов, их примеров на трех Форумах (этом, OO-en и LO-en) - достаточно.

Если таблица в Отчете важнее текста - я бы делал отчет не во Writer, а в Calc: часть бизнес-логики, расчетов и красоты можно сделать в нем функциями, формулами, Усл. форматированием (и напрячь для этого кучу других людей). Так можно выиграть самый ценный фактор - время. В Calc легко затянуть огромные таблицы методом doImport (много примеров есть на Форуме), агрегировать данные можно в Calc (сводные таблицы), да и авто-графики по ним построить тоже можно. Сводная в Calc - это интерактивный отчет. Часто нужен не циркуляр, а именно он. Но юзеры стесняются говорить правду о том что им нужно, или просто не знают что это возможно (потому и не спрашивают).
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

at0mix

Цитата: economist от 12 августа 2022, 09:08Если таблица в Отчете важнее текста - я бы делал отчет не во Writer, а в Calc: часть бизнес-логики, расчетов и красоты можно сделать в нем функциями, формулами, Усл. форматированием
не знаю где прокололся - но селект в одном отчете пошел в строке sql-запроса.
а вот второй отчет хотел сделать через СТЕ ( with...as srlect...) - выдает ошибку, пока никак не поборю...
буду экспериментировать как бы СТЕ-таблицу загнать во временную и с этой временной работать.

кстати - как очистить таблицу без дропа/рекрита таблицы?

economist

Языку SQL полтос, как-то без CTE 40 лет люди обходились. Всегда можно переписать на подзапросах.

Цитата: at0mix от 12 августа 2022, 15:19как очистить таблицу без дропа/рекрита таблицы?

Можно удалить все строки, но это дольше.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

at0mix

Цитата: economist от 12 августа 2022, 16:55Языку SQL полтос, как-то без CTE 40 лет люди обходились. Всегда можно переписать на подзапросах.
буду пробовать, в принципе если только для отчета можно один подзапрос не делать.
хотя более правильно будет доп-таблицу делать.
но боюсь что если просто апдейт делать - то старые строки останутся и все подсчеты псу под хвост

Цитата: economist от 12 августа 2022, 16:55
Цитата: at0mix от Сегодня в 15:19
как очистить таблицу без дропа/рекрита таблицы?
Можно удалить все строки, но это дольше.
понятно.

тут еще проблема - в убунте 20 стоит 6я версия, сейчас то что работает на работе на 7.3 дома в 6 не работает.
буду ставить 7.3 из ппа.....