我正在使用iReport构建jaspersoft报告,并且正在使用Fishbowl作为我的DBMS。
我建立了表,并在iReport中显示了我的表是关系型的,但是由于某种原因,它使我出错并且无法运行。它应该非常简单。我要输入邮政编码,日期范围或州名,并输出productName,已实现的总数量,邮政编码和州名的缩写。
当我确实将报告上载到Fishbowl时,它可以运行,但最终崩溃并显示错误消息,提示它已内存不足。我不认为这是问题所在,但这是导致报告无法正确运行的原因。也许是我的加入?
SELECT STATECONST."CODE" AS STATECONST_CODE, ADDRESS."STATEID" AS ADDRESS_STATEID, ADDRESS."ZIP" AS ADDRESS_ZIP, SOITEM."PRODUCTNUM" AS SOITEM_PRODUCTNUM, SOITEM."QTYFULFILLED" AS SOITEM_QTYFULFILLED FROM "STATECONST" STATECONST INNER JOIN "ADDRESS" ADDRESS ON STATECONST."ID" = ADDRESS."STATEID" INNER JOIN "ACCOUNT" ACCOUNT ON ADDRESS."ACCOUNTID" = ACCOUNT."ID" INNER JOIN "CUSTOMER" CUSTOMER ON ACCOUNT."ID" = CUSTOMER."ACCOUNTID" INNER JOIN "SO" SO ON CUSTOMER."ID" = SO."CUSTOMERID" INNER JOIN "SOITEM" SOITEM ON SO."ID" = SOITEM."SOID"
java.lang.OutOfMemoryError:Java堆空间
当您的内存不足时,一般的操作是:
与jasper报告相关,它默认情况下会 在内存中 生成 整个报告 ,可以使用JRVirtualizer进行更改,请参见示例参考中的示例
示例 (来自使用文件虚拟器的示例参考)
//Create the virtualizer after 2 pages filled save in tmp director JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "tmp"); //Preparing parameters Map parameters = new HashMap(); parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);