Report (enovia) 开发实践档案——PP Cost Book Report
一.開(kāi)發(fā)流程(完后總結(jié)的)
???? 1.點(diǎn)擊導(dǎo)出按鈕,先導(dǎo)出一張空表
???? 2.設(shè)置導(dǎo)出權(quán)限(不同的權(quán)限導(dǎo)出不同的數(shù)據(jù))
???? 3.取值
??
二.實(shí)踐之路
?? (下面代碼是部分片段,詳細(xì)請(qǐng)參考附件完整例子)
??? (1).點(diǎn)擊導(dǎo)出按鈕,先導(dǎo)出一張空表。
????????? 備注:(點(diǎn)擊導(dǎo)出按鈕,先觸動(dòng)Menu,在調(diào)用Command,在調(diào)用配置的JSP文件,通過(guò)JSP文件調(diào)用相對(duì)應(yīng)的JPO(JAVA文件))
????????? 1.在頁(yè)面增加一個(gè)導(dǎo)出按鈕
????????? (界面)
?????????
???????? (代碼)
???????? 1.SpinnerMenuData
???????? 2.SpinnerCommandData?
???????? 3.srmCommonExportPPReport
???????? 4.srmCommonExportPPReportProcess
???????? 5.srmExportPPCostBookReport_mxJPO
??????
??????? (2).設(shè)置導(dǎo)出權(quán)限(不同的權(quán)限導(dǎo)出不同的數(shù)據(jù))
??????? 說(shuō)明:(所有的數(shù)據(jù)都在數(shù)據(jù)庫(kù)里,例如.張三是經(jīng)理,李四是員工;兩人的權(quán)限是不同的,所以看到的數(shù)據(jù),及導(dǎo)出的數(shù)據(jù)就不一樣)見(jiàn)JPO.
??????? (3).取值
//從數(shù)據(jù)庫(kù)取得相對(duì)應(yīng)的數(shù)據(jù),并放在MapList里MapList PPmaplist=DomainObject.findObjects(context, "SRM Cost Book", "*", whereStr, StringList_SelectPP);????????? 取值分類
???????? 1.屬性取值
???????? 2.StringList取值(有多個(gè)值,需要控制格式)
StringList sl_ContractNo=PPobj.getInfoList(context, "to[SRM Contract Header Cost Book].from.name");if (sl_ContractNo.isEmpty() == false) {String ContractNo = "";if (sl_ContractNo.size() > 0) {for (int j = 0; j < sl_ContractNo.size(); j++) {String s_ContractNo = (String) sl_ContractNo.get(j);ContractNo = ContractNo + "\n"+ s_ContractNo;}}map.put("ContractNo", ContractNo);}???????? 3.方法取值(按需求來(lái)求的值)
//SPMpublic static String getSPM(Context context, DomainObject dobj)throws Exception{logger.debug("start to do getSPM().");//System.out.println("dobj=============="+dobj);String Gspm = "";String nameObjectId = "";StringList objectSelects = new StringList();objectSelects.add(DomainObject.SELECT_NAME);try {//System.out.println("dobj===="+dobj);String Onamev = dobj.getOwner(context).getName();//System.out.println("Onamev===="+Onamev);//Error: No person business object found with name ==yijia.chenif(Onamev.equals("yijia.chen")) return "";if(Onamev.equals("creator")) return "";nameObjectId = PersonUtil.getPersonObjectID(context,Onamev); DomainObject buyerObject = DomainObject.newInstance(context, nameObjectId); Map SPM = buyerObject.getRelatedObject(context, "SRM Direct Manager", true, objectSelects, null);//System.out.println("Map-----SPM==============="+SPM);Gspm = (String) SPM.get("name");//System.out.println("Gspm==============="+Gspm);} catch (Exception e) {e.printStackTrace();logger.error(e.getMessage(), e);throw e;}return Gspm;}????????????? 4.控制EXCEL格式(一個(gè)對(duì)應(yīng)多個(gè))?????????????? (代碼)
//Price PriceStringList sl_PricePrice = (StringList) PPMap.get("sl_PricePrice");StringList sl_EffectiveFromDate = (StringList) PPMap.get("sl_EffectiveFromDate");StringList sl_EffectiveToDate = (StringList) PPMap.get("sl_EffectiveToDate");int m =1;if(sl_PricePrice!=null&&sl_PricePrice.size()!=0) m = sl_PricePrice.size();//System.out.println("m===="+m);for(int j = 0; j < m; j++){//PricePriceif(sl_PricePrice!=null&&sl_PricePrice.size()!=0){String PricePrice = (String) sl_PricePrice.get(j);//System.out.println("PricePrice===="+PricePrice);PPMap.put("PricePrice", PricePrice);}//EffectiveFromDateif(sl_EffectiveFromDate!=null&&sl_EffectiveFromDate.size()!=0){String EffectiveFromDate2 = (String) sl_EffectiveFromDate.get(j);Date EffectiveFromDate1=sdf1.parse(EffectiveFromDate2);//System.out.println("EffectiveFromDate1==="+EffectiveFromDate1);String EffectiveFromDate=sdf1.format(EffectiveFromDate1);PPMap.put("EffectiveFromDate", EffectiveFromDate);}//EffectiveFromDateif(sl_EffectiveToDate!=null&&sl_EffectiveToDate.size()!=0){String EffectiveToDate2 = (String) sl_EffectiveToDate.get(j);Date EffectiveToDate1=sdf1.parse(EffectiveToDate2);String EffectiveToDate=sdf1.format(EffectiveToDate1);PPMap.put("EffectiveToDate", EffectiveToDate);}//Excel格式if(m>1){int n=0;for(n=0;n<34;n++){CellRangeAddress cellRangeAddress=new CellRangeAddress(row.getRowNum()+1,row.getRowNum()+m,n,n);sheet.addMergedRegion(cellRangeAddress);}for(n=36;n<40;n++){CellRangeAddress cellRangeAddress=new CellRangeAddress(row.getRowNum()+1,row.getRowNum()+m,n,n);sheet.addMergedRegion(cellRangeAddress);}for(n=41;n<57;n++){CellRangeAddress cellRangeAddress=new CellRangeAddress(row.getRowNum()+1,row.getRowNum()+m,n,n);sheet.addMergedRegion(cellRangeAddress);}}...}三.開(kāi)發(fā)完整案例
??????? PP-Cost Book-Report
總結(jié)
以上是生活随笔為你收集整理的Report (enovia) 开发实践档案——PP Cost Book Report的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Guacamole搭建教程
- 下一篇: 简单BP神经网络分类手写数字识别0-9