mendix项目中遇到问题整理
从数据库内查出的数据和展示数据有所区别,需要列转行
展示数据
通过代码转换,传入从数据库内拿到的12条list<map>
// BEGIN USER CODE Map<String, PerformanceYear_Item> map = new HashedMap<>(); java.util.List<IMendixObject> result = new ArrayList<>(); try { for (PerformanceYear_Item performanceyearitem : PerformanceYearItemlist) { map.put(performanceyearitem.getMonth().toString(), performanceyearitem); } System.err.println(map); IMendixObject item1 = new PerformanceYear_Item(getContext()).getMendixObject(); item1.setValue(getContext(), PerformanceYear_Item.MemberNames.Unit.name(), "配额单价(元每吨)"); IMendixObject item2 = new PerformanceYear_Item(getContext()).getMendixObject(); item2.setValue(getContext(), PerformanceYear_Item.MemberNames.Unit.name(), "配额(吨)"); IMendixObject item3 = new PerformanceYear_Item(getContext()).getMendixObject(); item3.setValue(getContext(), PerformanceYear_Item.MemberNames.Unit.name(), "CCER单价(元每吨)"); IMendixObject item4 = new PerformanceYear_Item(getContext()).getMendixObject(); item4.setValue(getContext(), PerformanceYear_Item.MemberNames.Unit.name(), "CCER(吨)"); for (int i = 1; i <= 12; i++) { String index = ""+ i; item1.setValue(getContext(), "Item" + i, map.get(index).getItem1()); item1.setValue(getContext(), "PerformancePlanID", map.get(index).getPerformancePlanID()); item2.setValue(getContext(), "Item" + i, map.get(index).getItem2()); item3.setValue(getContext(), "Item" + i, map.get(index).getItem3()); item4.setValue(getContext(), "Item" + i, map.get(index).getItem4()); } result.add(item1); result.add(item2); result.add(item3); result.add(item4); } catch (Exception e) { e.printStackTrace(); } System.err.println(result.size()); return result; // END USER CODE
在javaAction中可以通过此方法可以从数据库查询到需要的数据
一个表格内数据经过列转行操作之后展示,此时修改表格内的数据,并更新
1,创建两个非持久化实体类,一对多连线
2,这样可以通过performanceyear_data去获取到performanceyear_item的数据,再通过sql查询出未修改前的数据,更新提交即可
JavaAction中新建对象
IMendixObject name= Core.instantiate(context, 实体类名);
下一篇:
【汉诺塔游戏-C语言函数递归实现实现】