birt技术入门准备文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、环境准备(具体可参考仓储(Storage)项目下的示例)

a)eclipse-reporting-helios-SR1-win32(Eclipse可用开发版本)

b)MyEclipse8.0同时也集成了birt开发环境,使用前需先添加birt插件

二、运行环境

a)Ofbiz-1004,首先把framework/example/web-inf 目录下的birt.tld(其为birt各类标

签文件)server-config.wsdd考到所建项目对应文件夹下,同时修改web.xml参考

framework/example/web-inf把此目录下的所有birt相关考到对应项目web.xml中。

b)为ofbiz项目导入

ofbiz10.04\framework\birt\lib\platform\plugins\org.mozilla.rhino_1.7.1.v20090521\lib

下的js.jar

三、birt报表制作(首先新建一个birt报表)

a)jdbc数据源

i.右键新建数据源

选中jdbc数据源

然后根据你的数据库条件建立数据库连接就可以了,你可以根据数据源创建数据集,利用sql语句进行数据集设置(网上这种参考示例比较多,可自行参考)

b)Script数据源

如上,选中script数据源就可以了

新建数据集(inStorage),你可以再创建数据集时添加其参数,也可以先直接创建数据集然后在添加参数。

c)设计报表

新建一个table,直接拖来就行,设定其行列并关联其相关数据集,或可直接把数据集拖入面板里,其会自动生成与数据集对应的table

拖动数据集生成的table

手动创建的table

添加表头(右键插入lable或text;输入相应的表头名字)插入对应数据(右键插入data)

可以点击fx

选中Available Data Sets 然后选择你创建的数据集,你所选的字段名字,编辑data

的Column Binding Name ,Display Name使其与数据集字段对应。这样报表的前期

制作基本就完成了。

d)数据关联

点击面板空白区域,点击script

添加需引用的外部接口

Eg:

importPackage(.ofbiz.base.util);importPackage(Packages.or g.ofbiz.storage.product);importPackage(.sf.json);importPa ckage( ng );importPackage( Packages.javax.servlet.htt p );importPackage( .xoetrope.optional.scripts);importPack age( .ofbiz.entity.condition);

module = "inStorage.rptdesign";

e)点击数据集,在open里进行如下编辑(注意,所有变量声明不加前缀,birt会自动

为其匹配)

inStorageDetails = null;products=null;expr=null;

try {

inStorageDetails = InStorageReport.getInStorageConditions(delegator);

} catch (e) {

Debug.logError(e, module);

}

totalRow = 0;

countOfRow = 0;

if (inStorageDetails) {

totalRow = inStorageDetails.size();

}

f)然后在fecth下进行如下编辑(其可引入你提供的接口方法,web页面传参可用

script Session处理)

if (countOfRow == totalRow) return false;

row["companyName"] = Session.getSession().getAttribute("companyName"); row["startDate"] =

Session.getSession().getAttribute("startDate").substring( 0 , 10 );

row["endDate"] =

Session.getSession().getAttribute("endDate").substring( 0 , 10 ); row["statistics"] =

Session.getSession().getAttribute("userLoginName");

inStorageDetail = inStorageDetails.get(countOfRow);

productId = inStorageDetail.getString("productId");

calculatMode = inStorageDetail.getString("calculatMode");

if(calculatMode.equals("0")){

calculatMode1="过磅";

}else{

calculatMode1="理计";

}

realityNum = inStorageDetail.getString("realityNum");

nUomId = inStorageDetail.getString("nUomId");

realityWeight = inStorageDetail.getString("realityWeight"); wUomId = inStorageDetail.getString("wUomId");

System.out.println(productId);

products = Product.getProductsById(productId);

jsonObj1 = JSONObject.fromObject(products);

productName = jsonObj1.getString("name1200M");

productType = jsonObj1.getString("name1300M");

productGrain = jsonObj1.getString("name1400M");

productVender = jsonObj1.getString("name1500M");

row["checkAccepBillNo"] = checkAccepBillNo;

row["productVender"] = productVender;

row["checkTime"] = checkTime.substring( 0 , 10 );

row["hoistingMemberId"] = hoistingMemberId;

row["remarks"] = remarks;

row["calculatMode"] = calculatMode1;

row["realityNum"] = realityNum;

row["nUomId"] = nUomId;

row["realityWeight"] = realityWeight;

row["wUomId"] = wUomId;

countOfRow ++;

row["countNum"] = Session.getSession().getAttribute("num");

row["countWeight"] = Session.getSession().getAttribute("wht"); return true;

g)Birt标签访问

编辑完报表后为其准备运行环境,可用birt标签处理

首先引入birt.tld文件

相关文档
最新文档