我使用JSONModel
创建了包含数据的表 var oModel = new sap.ui.model.json.JSONModel(query);
oTablePrio = sap.ui.getCore().getControl("idTablePrio2");
oTablePrio.setModel(oModel, "Prio2");
Everythink看起来和工作都很好。
现在我添加了新列(prio),我将更改值。更改后,我想在点击按钮保存后保存每一行(在SAP ztable中)。 我做了这样的事情
var oModel = new sap.ui.model.odata.v2.ODataModel(gServiceUrl);
oModel.setUseBatch(true);
for (var i = 0; i < data.length; i++) {
sEntry.Matnr = data[i].Matnr;
sEntry.Bbynr = data[i].Bbynr;
sEntry.Prio = data[i].Prio;
oModel.update("/WielosztSet('"+data[i].Bbynr+"')", sEntry, {
method: "PUT", function(){
alert('Data Updated Successfully');
location.reload(true);
},function(){
sap.m.MessageToast.show('Update failed',{duration:1000});
}});
}
现在只发送最后一行的数据。
我写道,我不能以这种方式更新多行,我需要批处理。
我找不到如何使用sap.ui.model.odata.v2.ODataModel
请给我一些建议。
答案 0 :(得分:0)
在调用oModel.update之前,将UseBatch分配为true:
$ awk -v outfile=out3 '
NR==FNR {
a[$0]
next
}
($0 in a==0) {
print $0 > outfile # file is only opened when there is a match
}' file1 file2
$ cat out3
john
让你的:
oModel.setUseBatch(true);
在放置submitChanges的最后。
for (var i = 0; i < data.length; i++) {
sEntry.Matnr = data[i].Matnr;
sEntry.Bbynr = data[i].Bbynr;
sEntry.Prio = data[i].Prio;
oModel.update("/WielosztSet('"+data[i].Bbynr+"')", sEntry, {
method: "PUT", function(){
alert('Data Updated Successfully');
location.reload(true);
},function(){
sap.m.MessageToast.show('Update failed',{duration:1000});
}});
}
问候。