关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 17457|回复: 4

[Online报表] 在页面把购买总结做个合计 想把数据显示成为国际通用格...

[复制链接]
发表于 2018-6-1 08:36:26 | 显示全部楼层 |阅读模式
在页面把购买总结做个合计 想把数据显示成为国际通用格式 如:61,100.00 这样 .但是显示在页面上显示的时候把逗号后面的都截掉了 只显示61

QQ图片20180531110013.png QQ图片20180531105935.png QQ图片20180531105913.png
发表于 2018-6-1 10:03:33 | 显示全部楼层
页面效果截图
 楼主| 发表于 2018-6-1 10:40:36 | 显示全部楼层
admin 发表于 2018-6-1 10:03
页面效果截图

不好意思 回复我不会发图片 ,不过页面效果图在上面有, 就是最下面那个, 合计那一行,有个61, 但是这后台输出的是61,100
发表于 2018-6-5 15:29:21 | 显示全部楼层
一、在src/main/java/org/jeecgframework/tag/core/easyui/TagUtil.java文件中加入以下代码用来处理json格式的数据


/**
         * 循环LIST对象拼接EASYUI格式的JSON数据Footers是json格式的数据
         * @param fields
         * @param total
         * @param list
         * @param dataStyle
         * @param page
         */
        private static String listtojsonByFootersJson(String[] fields, int total, List<?> list,String footers, String dataStyle, int pageSize) throws Exception {
                StringBuffer jsonTemp = new StringBuffer();
                if("jqgrid".equals(dataStyle)){
                        int totalPage = total % pageSize > 0 ? total / pageSize + 1 : total / pageSize;
                        if(totalPage == 0) totalPage = 1;
                        jsonTemp.append("{\"total\":" + totalPage );
                }else{
                        jsonTemp.append("{\"total\":" + total );
                }
                jsonTemp.append(",\"rows\":[");
                int i;
                String fieldName;
                if(list==null){
                        list = new ArrayList();
                }
                for (int j = 0; j < list.size(); ++j) {
                        jsonTemp.append("{\"state\":\"closed\",");
                        Object fieldValue = null;
                        for (i = 0; i < fields.length; ++i) {
                                fieldName = fields[i].toString();
                                if (list.get(j) instanceof Map)
                                        fieldValue = ((Map<?, ?>) list.get(j)).get(fieldName);
                                else {
                                        fieldValue = fieldNametoValues(fieldName, list.get(j));
                                }
                                jsonTemp.append("\"" + fieldName + "\"" + ":\"" + getStringValue(fieldValue).replace("\"", "\\\"") + "\"");
                                if (i != fields.length - 1) {
                                        jsonTemp.append(",");
                                }
                        }
                        if (j != list.size() - 1)
                                jsonTemp.append("},");
                        else {
                                jsonTemp.append("}");
                        }
                }
                jsonTemp.append("]");
                if (footers != null) {
                        jsonTemp.append(",");
                        jsonTemp.append("\"footer\":[");
                        JSONArray js=JSONArray.parseArray(footers);
                        for(int f=0;f<js.size();f++){
                                jsonTemp.append("{");
                                Map <String,Object>map=(Map) js.get(f);
                                for(String key:map.keySet()){
                                        if(StringUtil.isEmpty(map.get(key).toString())){
                                                jsonTemp.append("\"" + key + "\":\"" + getTotalValue(key, list) + "\",");
                                        }else{
                                                jsonTemp.append("\"" + key + "\":\"" + map.get(key).toString() + "\",");
                                        }
                                }
                                jsonTemp.append("},");
                        }
                        jsonTemp.append("]");
                }
                jsonTemp.append("}");
                return jsonTemp.toString();
        }
发表于 2018-6-5 15:55:53 | 显示全部楼层
二、跳转到418行,找到private static JSONObject getJson(DataGrid dg) {这个方法,把方法里边的内容替换掉
JSONObject jObject = null;
                try {
                        if(!StringUtil.isEmpty(dg.getFooter())){
                                if(dg.getFooter().startsWith("[")){
                                        jObject = JSONObject.parseObject(listtojsonByFootersJson(dg.getField().split(","), dg.getTotal(), dg.getResults(),dg.getFooter(),dg.getDataStyle(),dg.getRows()));
                                }else{
                                        jObject = JSONObject.parseObject(listtojson(dg.getField().split(","), dg.getTotal(), dg.getResults(),dg.getFooter().split(","),dg.getDataStyle(),dg.getRows()));
                                }
                        }else{
                                jObject = JSONObject.parseObject(listtojson(dg.getField().split(","), dg.getTotal(), dg.getResults(),null,dg.getDataStyle(),dg.getRows()));
                        }
                } catch (Exception e) {
                        e.printStackTrace();
                }
                return jObject;

三、使用方法(如果需要合计的字段值为空的话,那么他会自动合计当前页的数据)
dataGrid.setFooter("[{'salary':'6,1300.00','age':'','name':'合计'}]");
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表