【问题标题】:SAPUI5 Table total row at bottomSAPUI5 表格底部总行
【发布时间】:2015-04-09 15:16:01
【问题描述】:

我正在使用 sap.ui.table 来显示数据列。只有 12 行数据 - 数据从 ajax 调用加载到数据库。我想在列的底部有一个总行。我找不到任何显示列总数的示例。

这是我在 XML 视图中的表的小 sn-p。

        <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)

【问题讨论】:

    标签: xml sapui5


    【解决方案1】:

    您是否尝试为表格编写页脚? UI5 Explored 项目中表格的面包屑示例有此代码。您只需编写一个页脚聚合。 现在要编写 count ,您必须将所需的元素指定为部分,然后放入格式化程序以获取结果。 对于您的数据,获取标签中的 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,这意味着它将把完整的数组作为格式化函数的输入。一旦它在那里,你总是可以做一个循环来获得总数。

    【讨论】:

    • 我尝试查看页脚,但找不到知道如何布局或做什么的示例。我会尝试查看您提到的那个,看看是否有帮助。
    • 面包屑示例并没有真正的帮助,因为它只有一个按钮。我认为我知道的不够多,不知道如何编写聚合来获取总数和格式化程序。我想如果我能看到一个做我想做的事情的例子,我可以按照它来使它适用于我的桌子。
    • 请发布您的示例数据,以便我可以在格式化程序上向您展示用于计算总计的示例。
    • 谢谢。我会尝试您的建议....感谢您的帮助。我将不得不看看是否有一种简单的方法可以为每列执行此操作(我有大约 9 个需要总计)所以必须这样做 9 次会很痛苦:) 我昨天正在寻找是否有是在列级别进行求和的东西,但找不到任何东西 - 我希望你的解决方案能奏效。
    • 好的,所以我将您的代码添加到我的控制器中,现在有一个有点愚蠢的问题....如何让它显示在页脚中?表格页脚是否保持相同数量的列,还是我必须在页脚中创建一些列?对不起,对于这些问题,但由于我以前没有使用过页脚并且对 SAPUI5 有点陌生,所以我有点困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2016-11-12
    • 1970-01-01
    • 2012-08-25
    • 2015-02-28
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多