Report (enovia) 开发实践档案——PP Cost Book Report
一.開發流程(完后總結的)
???? 1.點擊導出按鈕,先導出一張空表
???? 2.設置導出權限(不同的權限導出不同的數據)
???? 3.取值
??
二.實踐之路
?? (下面代碼是部分片段,詳細請參考附件完整例子)
??? (1).點擊導出按鈕,先導出一張空表。
????????? 備注:(點擊導出按鈕,先觸動Menu,在調用Command,在調用配置的JSP文件,通過JSP文件調用相對應的JPO(JAVA文件))
????????? 1.在頁面增加一個導出按鈕
????????? (界面)
?????????
???????? (代碼)
???????? 1.SpinnerMenuData
???????? 2.SpinnerCommandData?
???????? 3.srmCommonExportPPReport
???????? 4.srmCommonExportPPReportProcess
???????? 5.srmExportPPCostBookReport_mxJPO
??????
??????? (2).設置導出權限(不同的權限導出不同的數據)
??????? 說明:(所有的數據都在數據庫里,例如.張三是經理,李四是員工;兩人的權限是不同的,所以看到的數據,及導出的數據就不一樣)見JPO.
??????? (3).取值
//從數據庫取得相對應的數據,并放在MapList里MapList PPmaplist=DomainObject.findObjects(context, "SRM Cost Book", "*", whereStr, StringList_SelectPP);????????? 取值分類
???????? 1.屬性取值
???????? 2.StringList取值(有多個值,需要控制格式)
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.方法取值(按需求來求的值)
//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格式(一個對應多個)?????????????? (代碼)
//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);}}...}三.開發完整案例
??????? PP-Cost Book-Report
總結
以上是生活随笔為你收集整理的Report (enovia) 开发实践档案——PP Cost Book Report的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Guacamole搭建教程
- 下一篇: 简单BP神经网络分类手写数字识别0-9