Report (enovia) 开发实践档案——PP Cost Book Report
2015-08-24 16:56
369 查看
一.开发流程(完后总结的)
1.点击导出按钮,先导出一张空表
2.设置导出权限(不同的权限导出不同的数据)
3.取值
二.实践之路
(下面代码是部分片段,详细请参考附件完整例子)
(1).点击导出按钮,先导出一张空表。
备注:(点击导出按钮,先触动Menu,在调用Command,在调用配置的JSP文件,通过JSP文件调用相对应的JPO(J***A文件))
1.在页面增加一个导出按钮
(界面)
(代码)
1.SpinnerMenuData
2.SpinnerCommandData
3.srmCommonExportPPReport
4.srmCommonExportPPReportProcess
5.srmExportPPCostBookReport_mxJPO
(2).设置导出权限(不同的权限导出不同的数据)
说明:(所有的数据都在数据库里,例如.张三是经理,李四是员工;两人的权限是不同的,所以看到的数据,及导出的数据就不一样)见JPO.
(3).取值
取值分类
1.属性取值
2.StringList取值(有多个值,需要控制格式)
3.方法取值(按需求来求的值)
(代码)
三.开发完整案例
PP-Cost Book-Report
1.点击导出按钮,先导出一张空表
2.设置导出权限(不同的权限导出不同的数据)
3.取值
二.实践之路
(下面代码是部分片段,详细请参考附件完整例子)
(1).点击导出按钮,先导出一张空表。
备注:(点击导出按钮,先触动Menu,在调用Command,在调用配置的JSP文件,通过JSP文件调用相对应的JPO(J***A文件))
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.属性取值
private static final String SELECT_PP_PartNuber = "to[SRM Part Cost Book].from.name";
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.方法取值(按需求来求的值)
//SPM public 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.chen if(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 Price StringList 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++){ //PricePrice if(sl_PricePrice!=null&&sl_PricePrice.size()!=0){ String PricePrice = (String) sl_PricePrice.get(j); //System.out.println("PricePrice===="+PricePrice); PPMap.put("PricePrice", PricePrice); } //EffectiveFromDate if(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); } //EffectiveFromDate if(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
相关文章推荐
- POJ3210 a stack or a queue
- Java中的移位运算符
- LeetCode_reverse integer_007
- 使用Simple DNS plus 构建自己的DNS
- 字典树(Trie树、单词查找树、前缀树)
- oracle的sqlnet.ora,tnsnames.ora,listener.ora三个配置文件
- Opencv的Scalar类-颜色类
- 二叉树中的那些常见的面试题
- hdu 1808 Halloween treats 抽屉原理
- hdu 1808 Halloween treats 抽屉原理
- /bin/sh^M:bad interpreter:
- hdu 1808 Halloween treats 抽屉原理
- hdu 1808 Halloween treats 抽屉原理
- Introduction to Java Programming编程题7.11<硬币游戏:显示正反面>
- 五岳归来不看山
- 数据结构七:选择,冒泡,插入,希尔,快速排序实现
- Opencv的Rect类-矩形类
- Wireshark 数据分析(二)
- C++中 类 占 内存问题
- [leetcode-228]Summary Ranges(java)