JS调用接口获取数据并赋值单元格,看下我这个JS错在哪,怎么改?

通过获取SAP号和werk的列数据,调取接口,获取型号和仓库数据,并赋值到对应单元格,但现在只会赋值到扩展列下面的那个单元格,数据量多的时候可以看到这个单元格赋值了很多次,这要怎么改

image.png

var matnr = "";

var werk = "";

for (i = 0; i < len; i++) {

var matnr = _g().getCellValue(0, 5, i + 1);

//获取F2的扩展值

var werk = _g().getCellValue(0, 32, i + 1);

//获取AG2的扩展值

var wlzsj = {

            client: 800,

            function: "ZMM_TP_01_MMDATA_DISPLAY_ALL",

            import: {

                I_WERKS: werk,

                I_MATNR: matnr

            },

            importTables: []

    };

    $.ajax({

        url: "xxxx:18888/sap/ExSAPFunction",

        type: "POST",

        data: JSON.stringify(wlzsj),

        dataType: "json",

        contentType: "application/json",

        success: function (result) {

            if (result.code != '200') {

                FR.Msg.alert("警告","物料数据获取失败");

                return false;

            } else {

var data = result.data.exportTables;

var LGORT = data[0].LGORT;

var GROES = data[0].GROES;

_g().setCellValue(0, 15, i + 1,LGORT);

_g().setCellValue(0, 6, i + 1,GROES);

            }

        }

    });

}

image.png

FineReport 迎风布阵 发布于 2022-9-8 08:48 (编辑于 2022-9-8 08:57)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
迎风布阵Lv4见习互助
发布于2022-9-8 09:46

for(i=0;i<len;i++){

load(i);

}

function load(i){

var matnr = _g().getCellValue(5, i + 1);

//获取F2的扩展值

var werks = _g().getCellValue(32, i + 1);

//获取AG2的扩展值

var wlzsj = {

            client: 800,

            function: "ZMM_TP_01_MMDATA_DISPLAY_ALL",

            import: {

                I_WERKS: werks,

                I_MATNR: matnr

            },

            importTables: []

    };

    $.ajax({

        url: "xxx:18888/sap/ExSAPFunction",

        type: "POST",

        data: JSON.stringify(wlzsj),

        dataType: "json",

        contentType: "application/json",

        success: function (result) {

            console.log(result);

            if (result.code != '200') {

                FR.Msg.alert("警告","物料数据获取失败");

                return false;

            } else {

var data = result.data.exportTables;

var LGORT = data[0].LGORT;

var GROES = data[0].GROES;

_g().setCellValue(0, 15, i + 1,LGORT);

_g().setCellValue(0, 6, i + 1,GROES);

            }

        }

    });

}

最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-9-8 08:55

好高深的样子,这个len是不是没定义

image.png

最佳回答
0
snrtuemcLv8专家互助
发布于2022-9-8 08:57

你想每行每列赋值,那就下面语句放到for循环内

你现在在for外面,肯定只能赋值最后一行

image.png

  • 迎风布阵 迎风布阵(提问者) 问题是我这个就放在for循环里面啊
    2022-09-08 08:59 
  • snrtuemc snrtuemc 回复 迎风布阵(提问者) 额,那真看不出原因了
    2022-09-08 09:09 
  • 2关注人数
  • 458浏览人数
  • 最后回答于:2022-9-8 09:46
    请选择关闭问题的原因
    确定 取消
    返回顶部