我正在使用sap.ui.table来显示数据列。只有12行数据 - 数据从ajax调用加载到数据库。我希望在列的底部有一个总行。我找不到任何显示列总计的示例。
以下是XML视图中我的表格的一小部分。
<table:Table
id="CompRecs"
visibleRowCount="12"
visible="true"
rows="{
path:'/yearInfo/'
}"
navigationMode="Paginator">
<table:toolbar>
<Toolbar>
<Label id="recText" text="Comparing " ></Label>
<Input id="startYear" width="15%" value="{/startYear}"/>
<Label id="selText" text=" to "></Label>
<Input id="endYear" width="15%" value="{/endYear}"/>
<Button text="Compare Years" press="findRecs"/>
</Toolbar>
</table:toolbar>
<table:columns>
<table:Column >
<Label text="Month" />
<table:template>
<Text text="{path: 'monthECC',formatter: 'controllers.Formatter.month'}"></Text>
</table:template>
</table:Column>
<table:Column >
<Label text="Classified Products/Components" />
<table:template>
<Text text="{classProductsA} ({classProductsB})"></Text>
</table:template>
</table:Column>
<table:Column >
<Label text="Classified Business Partners" />
<table:template>
<Text text="{classPartnersA} ({classPartnersB})"></Text>
</table:template>
</table:Column>
</table:columns>
</table:Table>
我想要做的是在分类产品和合作伙伴等列的底部有一个总数....这些列显示两个值 - 一个用于当前年份,一个用于上一年度( 'classproductsA'=第1年,'classproductsB'=第2年)。
所以看起来应该类似于:
Month Classified Products Classified Partners
January 3 (5) 4 (7)
February 4 (3) 5 (1)
Totals: 7 (8) 9 (8)
我没有找到任何可以尝试的例子。
编辑:示例数据:
{"yearInfo":
[{"monthECC":"1","classProductsA":"17","classProductsB":"140","classPartnersA":"1161","classPartnersB":"1116"},
{"monthECC":"2","classProductsA":"37","classProductsB":"66","classPartnersA":"1389","classPartnersB":"1112"},
{"monthECC":"3","classProductsA":"60","classProductsB":"66","classPartnersA":"2111","classPartnersB":"1905"}]
显示3个月的数据以匹配上面的XML列。所以想要:
Month Classified Products Classified Partners
January 17 (140) 1161 (1116)
February 37 (66) 66 (1389)
March 60 (66) 2111 (1905)
Totals: 114 (272) 3338 (4410)
答案 0 :(得分:2)
你有没有尝试为桌子写一个页脚? UI5 Explored项目中表的breadcrumb示例具有此代码。您只需要编写页脚聚合。 现在要编写计数,你必须指定你需要的元素作为部分,然后放一个格式化程序来获得结果。 对于您的数据,要在标签中获取classProductsA总数。这是js中的代码。 (对于xml来说太糟糕了,但肯定会以同样的方式工作)
var totalLabel = new sap.m.Label({
'text':
{path:'/yearInfo',
formatter:function(fullArray){
var classProductsATotal = 0;
$.each(fullArray ,function(singleElement){
classProductsATotal = classProductsATotal+singleElement.classProductsA;
}); //end of $each.
return classProductsATotal;
}});
格式化程序是您必须查找的功能。
路径设置为/yearInfo
,这意味着它将完整数组作为格式化程序函数的输入。一旦它在那里,你总是可以循环来获得总数。