#jasper-reports #jaspersoft-studio
#jasper-отчеты #jaspersoft-studio
Вопрос:
Как я могу перечислить все домены и источники данных, используемые в доменах в Jaspersoft.
я имею в виду, что у меня есть разные домены, такие как домены аудита, домен клиента и т.д. Есть ли какой-либо способ получить все домены с таблицами (источниками данных), используемыми в этих доменах в jaspersoft?
У меня около 20 доменов, и вручную переход к каждому домену и перечислению таблиц занимает много времени, поэтому мне нужна помощь!
Ответ №1:
я не нашел хорошего способа (я уверен, что вы можете покопаться в базе данных), один из способов получить это — экспортировать домены, и это экспортируется в хороший аккуратный XML-файл. Поскольку мы используем только источники JDBC, нам нужно только искать теги «jdbcTable» и «jdbcQuery», чтобы увидеть, какой домен использует, это все во второй 1/2 части xml. если вы используете другие источники данных, вам может потребоваться просмотреть xml, чтобы увидеть, как Jasper ссылается на них в XML.
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.jaspersoft.com/2007/SL/XMLSchema" version="1.0">
<resources>
<jdbcTable id="" datasourceId="" tableName="">
<jdbcQuery id="" datasourceId="">
<query> select * from table <query>
Ответ №2:
Приведенное ниже решение предназначено для определения представлений Adhoc, которые зависят от доменов, но я полагаю, что вы могли бы реализовать аналогичное решение с доменами, которые зависят от источников данных.
В домене я создал производную таблицу [AdhocViewName]. Запрос для этого домена:
SELECT a.id as AdhocID,
r.label as AdhocLabel,
a.reportDataSource as AdhocDataSourceID,
t.AdhocDataSourceLabel
FROM (SELECT id as AdhocDataSourceID,
label as AdhocDataSourceLabel
FROM public.jiresource
) as t
INNER JOIN public.jiadhocdataview a ON a.reportDataSource = t.AdhocDataSourceID
INNER JOIN public.jiresource r ON a.id = r.id
Примечания:
- несмотря на то, что таблицы отображаются с подчеркиванием (public_jiresource, запрос сработал только путем замены «.» (public.jiresource).
- по какой-то причине jasper не нравится, когда вы используете скобки; например, a.id [AdhocID], поэтому я использовал a.id как AdhocID.
Когда вы извлекаете производную таблицу в специальное представление,
- создайте таблицу
- фильтр с resourcetype является одним из SemanticLayerDataSource, AdhocDataView
- Столбцы: метка ресурса, uri
- Группы: adhocdatasourcelabel