1. 框架元数据:
Ø 主界面UI:com.kingdee.eas.framework.bireport.client.BireportBaseMainUI.ui
Ø 条件界面UI:com.kingdee.eas.framework.bireport.client.BireportBaseFilterUI.ui
Ø Facade功能对象:com.kingdee.eas.framework.bireport.app.BireportBaseFacade.facade
2. 维度配置文件:xml文件,放在与app/client同级的config目录下。
3.相关组件及辅助类。
4.框架讲解
Ø 设计主界面UI继承BireportBaseMainUI,根据业务设计界面,要求至少有一个显示数据的KDTable。
Ø 设计条件界面UI继承BireportBaseFilterUI,根据业务设计界面。
Ø 设计功能对象继承BireportBaseFacade,通常不再需要添加接口,除非业务上自身的要求。
5.EnergyUseMainUI.java
注意:
protected RptParams getParamsForInit() {
return new RptParams();
}
protected RptParams getParamsForRequest() {
return params;
}
protected BireportBaseFilterUI getQueryDialogUserPanel() throws Exception {
return new EnergyUse_FilterUI();
}
protected IBireportBaseFacade getRemoteInstance() throws BOSException {
return com.kingdee.eas.zjreport.EnergyUse_FacadeFactory.getRemoteInstance();
}
protected KDTable getTableForPrintSetting() {
return this.tblMain;
}
6.EnergyUseFilterUI.java
注意:
public RptParams getCustomCondition() {
}
//初始化界面上控件数据
public void onInit(RptParams arg0) throws Exception {
}
public void setCustomCondition(RptParams arg0) {
}
public boolean verify() {
return true;
}
7.EnergyUseFacadeControllerBean.java
protected SchemaSource readySchemaSource(RptParams params, Context ctx)
throws BOSException, EASBizException
{
SchemaSource ss = new SchemaSource();
ss.setCaller(EnergyUse_FacadeControllerBean.class);
ss.setFilename("energyUse.xml");
int yy = Integer.parseInt((String) params.getObjectElement("yy"));
int mm = Integer.parseInt((String) params.getObjectElement("mm"));
String material = (String)params.getObjectElement("material");
String sql = "";
//纵向维度
sql = "select fid as fid,fid as fname,fname_l2 as fname1 from T_BD_Material as material where 1 = 1 ";
if(material != null){
sql += " and fid in "+material;
}
ss.setDataItem("material", sql, null);
//横向维度
sql = "select customer.fid as fid,customer.fname_l2 as fname,customer.FParentID as fparentid from T_BD_Customer as customer " +
"union all " ;
sql +=" select storage.fid as fid,storage.fname_l2 as fname,storage.FParentID as fparentid from T_ORG_Storage as storage ";
ss.setDataItem("customer", sql, null);
//报表所有的数据
sql = "select bill.FStorageOrgUnitID as orgunitid,regentry.FMaterialID as materialid,regentry.FQty as fqty,0 as qty from T_IM_MaterialReqBill as bill " +
"inner join T_IM_MaterialReqBillEntry as regentry on regentry.FParentID = bill.fid " ;
if(yy >= 0){
sql += " and bill.FYear ="+yy;
if(mm >= 0){
sql += " and bill.FPeriod = "+mm;
}
}
sql += " union all " +
"select trbill.FIssueStorageOrgUnitID as orgunitid,trentry.FMaterialID as materialid,trentry.FQty as fqty,0 as qty from T_IM_StockTransferBill as trbill " +
"inner join T_IM_StockTransferBillEntry trentry on trentry.fparentID = trbill.fid " ;
sql += " union all " +
"select isbill.FCustomerID as orgunitid,isentry.FMaterialID as materialid,isentry.FQty as fqty,0 as qty from T_IM_SaleIssueBill isbill " +
"inner join T_IM_SaleIssueEntry isentry on isentry.fparentID = isbill.fid";
ss.setDataItem("Fact", sql, null);
String mdx = " with member [material].total as '[material].[V$All]' , caption='合计',formatString='#,###.00' " +
" member [customer].total as '[customer].[V$All]',caption='合计',formatString='#,##0.00' " +
" select {{[customer].members,[customer].total}} on rows, " +
" non empty {{[material].factmembers,[material].total}*[Measures].members} on columns from fact ";
ss.setMdx(mdx);
return ss;
}
8.energyUse.xml
<?xml version="1.0" encoding="UTF-8" ?>
<Schema>
<Parameter name="material" type="Table" />
<Parameter name="customer" type="Table" />
<Parameter name="Fact" type="Table" />
<Dimension name="customer" caption="购货单位" table="customer" primaryKey="fid">
<Hierarchy virtualAllMemberCaption="合计">
<Level name="customer" column="fid" orderBy = "fid" parentColumn="fparentid">
<Property name="name" column="fname" />
</Level>
</Hierarchy>
</Dimension>
<Dimension name="material" caption="物料" table="material" primaryKey="fid">
<Hierarchy>
<Level name="material" column="fid">
<Property name="caption" column="fname1" />
</Level>
</Hierarchy>
</Dimension>
<Cube name="Fact" table="Fact">
<DimensionUsage name="customer" foreignKey="orgunitid" />
<DimensionUsage name="material" foreignKey="materialid" />
<Measure name="fqty" caption="本期" column="fqty" aggregator="sum" formatString="#,##0.00" />
<Measure name="qty" caption="累计" column="qty" aggregator="sum" formatString="#,##0.00" />
</Cube>
</Schema>