BIRT报告修改

时间:2014-10-09 11:47:49

标签: eclipse birt erp ofbiz

我是OFBIZ和BIRT的新成员,我正在尝试修改现有报告“付款报告”,但我无法获得任何数据。而且我认为因为我得到了错误,

The following items have errors:

ReportDesign (id = 1):
+ An exception occurred during processing. Please see the following message for     details:
A BIRT exception occurred. See next exception for more information.
Invalid javascript expression: measure["amount"] (Element ID:1)
+ Can not find the prepared query org.eclipse.birt.data.engine.olap.impl.query.CubeQueryDefinition@a91e3d. (Element ID:1)

这是inbiz“open”中的脚本:

payments = null;
userLogin = null;
parameters = null;
try {
    userLogin = delegator.findByPrimaryKey("UserLogin",UtilMisc.toMap("userLoginId","admin"));
} catch(e) {
        Debug.logError(e,"");
}
input =  FastMap.newInstance();
inputFields =  FastMap.newInstance();
if(params!=null){
    inputFields.put("partyIdTo", params["partyIdTo"]);
    inputFields.put("paymentId", params["paymentId"]);
    inputFields.put("paymentTypeId", params["paymentTypeId"]);
    inputFields.put("paymentId_op", params["paymentId_op"]);
    inputFields.put("paymentRefNum_ic", params["paymentRefNum_ic"]);
    inputFields.put("noConditionFind", params["noConditionFind"]);
    inputFields.put("partyIdFrom", params["partyIdFrom"]);
    inputFields.put("paymentRefNum_op", params["paymentRefNum_op"]);
    inputFields.put("amount", params["amount"]);
    inputFields.put("statusId", params["statusId"]);
    inputFields.put("paymentGatewayResponseId", params["paymentGatewayResponseId"]);
    inputFields.put("paymentId_ic", params["paymentId_ic"]);
    inputFields.put("paymentRefNum", params["paymentRefNum"]);
    inputFields.put("comments_ic", params["comments_ic"]);
    inputFields.put("comments_op", params["comments_op"]);
    inputFields.put("comments", params["comments"]);
}
input.put("userLogin",userLogin);
input.put("inputFields",inputFields);
input.put("entityName","PaymentAndType");
input.put("orderBy","effectiveDate DESC");
//input.put("viewIndex", 0);
//input.put("viewSize", 20);
try {
    result = dispatcher.runSync("performFind", input);
    payments = result.get("listIt");
} catch (e) {
    Debug.logError(e, module);
}

我修改了Entityengine.xml并将derby OFBIZ模式引入了Oracle 我尝试通过修改来更改脚本文件,但经过一些修改(ofbiz数据源无法编辑,我使用eclipse编辑 .rptdesign 文件)我收到了这个错误。

(“付款报告”内置于:“Eclipse BIRT Designer版本2.5.1.v20090903” 但我使用:“Eclipse BIRT Designer版本4.3.1.v201309091055”所以当保存并运行它时,我收到错误)

org.eclipse.birt.report.engine.api.EngineException: The design file <stream> has error and can not be run.

正如我发现的那样,当版本不兼容时会发生这种情况,那么如何更改此文件并获取数据呢? 。我做错了什么?感谢和抱歉英语不好以及任何缺乏信息。

2 个答案:

答案 0 :(得分:0)

在BIRT Designer中,尝试对rptdesign文件进行简单的更改(例如更新说明),然后保存(而不是同时运行)。这应该将文件更新到最新版本的BIRT Designer。然后再次尝试运行它以查看EngineException是否消失。

答案 1 :(得分:0)

BIRT是向后兼容的,因此早期版本报告(2.5)将在BIRT的新版本(4.3)上运行。我看到您说您已经尝试保存报告但报告仍然列为2.5版,这意味着它不会保存您的更改。如果报告正在更新,它将更新为您正在构建的新版本(4.3)。

现有报告中很可能有一个错误被2.5忽略但不会在4.3中运行。

最简单的解决方案(最适合您的教育)是从头开始重建4.3中的报告。在构建时对其进行测试,以确保它以最简单的形式运行。在构建时,您将找到并纠正2.5 OR中允许的设计缺陷,因为您在构建4.3时根本不会创建缺陷/错误。