У меня есть этот JSon DS:Каков правильный способ добавления json subDataSource в отчеты Jasper?
{
"customername":"home",
"workSiteRows":[
{
"invoiceRows":[
{
"candidateName":"name1",
"units":"13:00"
},
{
"candidateName":"name2",
"units":"18:30"
}
],
"workSiteName":"wsname1"
},
{
"invoiceRows":[
{
"candidateName":"name1",
"units":"13:00"
},
{
"candidateName":"name2",
"units":"18:30"
}
],
"workSiteName":"wsname2"
}
]
}
В моем файле .jrxml я определил подотчет, и я пытаюсь создать subDataSource, чтобы перейти к этому подотчету.
<subreport isUsingCache="false">
<reportElement x="0" y="10" width="555" height="30" uuid="b2d96c34-ad5d-4eb2-b218-43aad4e09282" />
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).dataSource("workSiteRows")]]></dataSourceExpression>
<subreportExpression><![CDATA[$P{REPORT_DIR} + "\\invoice_ws_row.jasper"]]></subreportExpression>
</subreport>
я получаю следующее исключение: Ошибка заполнения печати ...
java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonNode java.lang.ClassNotFoundException: org.codehaus.jackson.JsonNode
Я попытался с помощью ответа от вопроса http://community.jaspersoft.com/questions/956036/caused-javalangclassnotfoundexception-orgcodehausjacksonjsonnode-exception-ireport
Но это не работает. Проблема в том, что в настоящее время ядро jackson находится под репо "com.fasterxml.jackson.core"
, в то время как iReport продолжает запрашивать "org.codehaus.jackson.core"
.
Пробовал искать старые версии ядра Jackson, которые находятся под org.codehaus, и добавить их в путь класса iReport, но он все еще не работает. Любые идеи?
Это работает. Благодарю. *** facepalm ***, кстати, вы когда-нибудь использовали другие альтернативы отчетам Jasper? – ionutab
Добро пожаловать. Я знаю только Jasper Reports, его бесплатное и наилучшее доступное решение, но при использовании его все еще много моментов facepalm :) – hering
Я использую JasperSoft Studio 6.2.1, и невозможно использовать метод 'subDataSource' без кастования 'net.sf.jasperreports.engine.data.JsonDataSource' –