这里示範用Aras API 撰写一个Grid Event达成计算机功能的应用
如下图,Z = X * Y
设定
在X与Y的属性里设定Event ,事件在OnEditFinish
程式码
当属性被编辑结束时,执行下列逻辑//========================================var relId = gridApplet.getSelectedId();var xColIndex = gridApplet.getColumnIndex("x_D"); //取得x栏位var yColIndex = gridApplet.getColumnIndex("y_D"); //取得y栏位var zColIndex = gridApplet.getColumnIndex("z_D"); //取得z栏位var xValue = gridApplet.GetCellValue(relId,xColIndex);var yValue = gridApplet.GetCellValue(relId,yColIndex);var total = xValue * yValue;//=====修改前端画面值======gridApplet.setCellValue(relId, zColIndex , total );//=====修改后端暂存值======//读取本表单物件var tmpThisItem = typeof(parent.document.thisItem) == "object" ? parent.document.thisItem : parent.thisItem;//修改本表单物件被执行的relIdvar thisRel = tmpThisItem.getItemsByXPath("//Item[@id='" + relId + "']").getItemByIndex(0);thisRel.setProperty("z", total);
补充
为何需要修改后端暂存值?
在Aras每次开启物件画面后,其浏览器记忆体中的变数会记录物件资料,当按下存档时会将记忆体的物件更新至Aras。
当我们额外写JS把画面上的格子修改数字后,并无将记忆体位置做修改,所以还需要多做一个步骤将记忆体资料修改,若无修改后端记忆体资料,则存档时z值还是旧值