找回密码
 立即注册

QQ登录

只需一步,快速开始

johnly
初级会员   /  发表于:2018-6-15 13:36  /   查看:7540  /  回复:12
如下图平均值和合格率是套用了公式的,但是绑定数据后未生效
image.png584549254.png

然后,手动录入第三列数据,公式只计算第三列值
image.png406688842.png

求修复

12 个回复

倒序浏览
Helen
高级会员   /  发表于:2018-6-15 14:27:03
沙发
重现不了你的问题,请添加代码附件以便我们帮助你跟踪一下。
回复 使用道具 举报
johnly
初级会员   /  发表于:2018-6-15 15:11:25
板凳
$(document).ready(function(){
        importJson(ftlContent);
        loadBindingData();
})


function loadBindingData(){
    var tableName = getParameterByName("tableName");
    var id = getParameterByName("id");
    $.getJSON( SPREAD.CONFIG['bindDataUrl'] + "/" + tableName + "/" + id, null, function(jsonData) {
        var dataSource = new spreadNS.Bindings.CellBindingSource(jsonData);
        spread.sheets[0].setDataSource(dataSource);
        SPREAD.bindingData = true;
    } );
}
回复 使用道具 举报
Helen
高级会员   /  发表于:2018-6-19 10:41:32
地板
johnly 发表于 2018-6-15 15:11
$(document).ready(function(){
        importJson(ftlContent);
        loadBindingData();

我用最新版本无法重现您的问题,请问您使用的SpreadJS版本是?
回复 使用道具 举报
johnly
初级会员   /  发表于:2018-6-19 11:13:31
5#
本帖最后由 johnly 于 2018-6-19 11:16 编辑

在初始化的时候对绑定的单元格设置了格子类型
回复 使用道具 举报
johnly
初级会员   /  发表于:2018-6-19 11:14:37
6#
function importJson(spreadJson) {
    function updateActiveCells() {
        for (var i = 0; i < spread.getSheetCount(); i++) {
            var sheet = spread.getSheet(i);
            columnIndex = sheet.getActiveColumnIndex(),
                rowIndex = sheet.getActiveRowIndex();
            if (columnIndex !== undefined && rowIndex !== undefined) {
                spread.getSheet(i).setActiveCell(rowIndex, columnIndex);
            } else {
                spread.getSheet(i).setActiveCell(0, 0);
            }
        }
    }

    if (spreadJson.sheets) {
        spread.unbindAll();
        spread.fromJSON(spreadJson);
        attachSpreadEvents(true);
        updateActiveCells();
        spread.focus();
        // fbx.workbook(spread);
        onCellSelected();
        syncSpreadPropertyValues();
        syncSheetPropertyValues();
        initSpreadEx();
    } else {
        alert(getResource("messages.invalidImportFile"));
    }
}
function initSpreadEx() {
    function BindingPathCellType() {
        spreadNS.CellTypes.Text.call(this);
    }
    BindingPathCellType.prototype = new spreadNS.CellTypes.Text();
    BindingPathCellType.prototype.paint = function(ctx, value, x, y, w, h, style, context) {
        if (location_setting.show_binding && (value === null || value === undefined)) {
            var sheet = context.sheet,
                row = context.row,
                col = context.col;
            if (sheet && (row === 0 || !!row) && (col === 0 || !!col)) {
                var bindingPath = sheet.getBindingPath(context.row, context.col);
                if (bindingPath) {
                    value = "[" + bindingPath + "]";
                }
            }
        }
        spreadNS.CellTypes.Text.prototype.paint.apply(this, arguments);
    };
    var bindingPathCellType = new BindingPathCellType();
    var activespread = spread.getActiveSheet();
    var rowCount = activespread.getRowCount();
    var columnCount = activespread.getColumnCount();
    for(var i = 0;i<rowCount;i++) {
        for (var j = 0; j < columnCount; j++) {
            var bindingPath = activespread.getBindingPath(i, j);
            if (bindingPath) {

                if(SPREAD.bindingData == false) {
                    activespread.getCell(i, j).bindingPath(bindingPath).cellType(bindingPathCellType);
                }


            }
        };
    };
    $("#changeDataSource").click(function() {
        zTreeOnClick();
    });

    $("#initdata").click(function() {
        initData();

    });

    $("#removebind").click(function() {
        removebind();
    });
    initTree();


    var zTreeObj;
    var setting;
    var data;
    var zTreeObj;

    function initTree(){

        tempget(function (ordata) {
            setting = {
                view:{
                    selectedMulti: false
                },

                callback: {
                    onDblClick: zTreeOnClick,
                },
                data: {
                    simpleData: {
                        enable: true
                    },
                    key: {
                        title: "description"
                    }
                }

            };

            var treedata = [];
            var tempmaintable = []
            for (var i in ordata["tableData"]) {
                var isShow = ordata["tableData"]["isShow"] == "Y" ? true : false;
                if(isShow){
                    var temp = {"name"rdata["tableData"]["fieldName"],"type"rdata["tableData"]["type"],"description"rdata["tableData"]["content"],"showType"rdata["tableData"]["showType"],"canchoos":"true"};
                    tempmaintable.push(temp);
                }
            }
            treedata.push({"name":"tableData","type":"tableData","description":"tableData","showType":"tableData","children":tempmaintable,"canchoos":"flase"});
            tempmaintable = []
            for (var i in ordata["subTableDate"]) {
                var tempmain = {"name":i,"type":"table","description":"table","showType":"table","canchoos":"true"};
                var tempsub =[];
                for (var j in ordata["subTableDate"]) {
                    var isShow = ordata["subTableDate"][j]["isShow"] == "Y" ? true : false;
                    if(isShow){
                        var temp = {"name"rdata["subTableDate"][j]["fieldName"],"type"rdata["subTableDate"][j]["type"],"description"rdata["subTableDate"][j]["content"],"showType"rdata["subTableDate"][j]["showType"],"canchoos":"true"};
                        tempsub.push(temp);
                    }
                };

                tempmain["children"]=tempsub
                tempmaintable.push(tempmain);
            }
            treedata.push({"name":"subTableData","type":"subTableData","description":"subTableData","showType":"subTableData","children":tempmaintable,"canchoos":"flase"});


            zTreeObj = $.fn.zTree.init($("#treeDemo"), setting, treedata);
        });
        spread.resumePaint();

    };

    function initData() {
        var activespread = spread.getActiveSheet();
        var rowCount = activespread.getRowCount();
        var columnCount = activespread.getColumnCount();

        for(var i = 0;i<rowCount;i++) {
            for (var j = 0; j < columnCount; j++) {
                var bindingPath = activespread.getBindingPath(i, j);
                if (bindingPath) {

                    if(SPREAD.bindingData == true && bindingPath == "tableData.fenbu_fenxiangid" )
                    {
                        activespread.setValue(i, j, "IDDDSAASD");

                    }


                }
            };
        };
    };

    function zTreeOnClick() {
        var sheet = spread.getActiveSheet();
        var selectioncells = sheet.getSelections();
        var nodes = zTreeObj.getSelectedNodes();
        SetData(sheet,selectioncells,nodes,bindingPathCellType);
    };

    function removebind(){
        var sheet = spread.getActiveSheet();
        var selectioncells = sheet.getSelections();
        bindremove(sheet,selectioncells,bindingPathCellType);
    };
    var sheet = spread.getActiveSheet();
    var path = "";
    $("#bindingPath").text(path || "");
    sheet.bind(spreadNS.Events.SelectionChanged, function() {
        var activeCell = sheet.getSelections()[0];
        var path = sheet.getBindingPath(activeCell.row, activeCell.col);
        $("#bindingPath").text(path || "");
    });
    sheet.resumePaint();
};
回复 使用道具 举报
Brander.Zhai
超级版主   /  发表于:2018-6-19 11:32:09
7#
兄弟,你数据源里面的Number是不是都是字符串类型的。

比如你看上去像数字5,其实数据源里面存的 ”5“。
公式对于单元格数值类型是有要求的。


回复 使用道具 举报
johnly
初级会员   /  发表于:2018-6-19 11:42:04
8#
是字符串类型,但是输入的时候也没区分类型啊,绑定的时候也不应该区分啊。
回复 使用道具 举报
Brander.Zhai
超级版主   /  发表于:2018-6-19 11:47:34
9#
输入过程因为有自动格式化的功能,会将你输入的字符串类型数字,字符串类型布尔值,字符串类型日期全部自动parse为与之对应的数字,布尔值,日期并存入数据模块。而计算引擎是基于真实的数据模型运算的。

但是绑定和调用setValue API,并没有自动格式化的过程,毕竟,根据接口设计策略,若非用户主动,控件本身无法干预用户的输入数据。你也不想刚调用setValue(0,0,"5"), 然后getValue出来的就变成数字5吧。
回复 使用道具 举报
johnly
初级会员   /  发表于:2018-6-19 11:48:09
10#
我把单元格设置成number型也不行
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部