填报报表如何实现插入行的情况下汽车公里数计算

车辆用油、维修费用登记表.cpt

222.png
最近在做一个车辆管理报表。其中有一个需求是,当填报第一行的时候,行驶公里数=加油时公里表数-上月低存公里数。
如图 4=1-2
当点击添加行数后,行驶公里数=当前加油时公里表数-上次加油公里表数
如图5=3-1

尝试了好几种方法都没有很好的效果。望大神指点一下老弟!

FineReport wu11638705 发布于 2020-9-3 15:06 (编辑于 2020-9-3 15:12)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
ColdmanLv6高级互助
发布于2020-9-3 15:45(编辑于 2020-9-3 17:06)

2020-09-03_16-59-53.gif

var location = this.options.location;  //获取当前控件的位置
var arr = contentPane.getWidgetsByName("gl");
var a = contentPane.curLGP.getCellValue("D1");
var b = '';
var c = '';
if (arr[0] != undefined) {
	for (var i = 0; i < arr.length; i++) {
		var location = arr[i].options.location;
		var cr = FR.cellStr2ColumnRow(location);
		var col = cr.col; //列号
		var ro = cr.row; //行号
		b = contentPane.getCellValue(col, ro);
		c = contentPane.getCellValue(col, ro - 1);
		if (ro == 2) {
			contentPane.setCellValue("B3", null, b - a);
		} else {
			contentPane.setCellValue(col + 1, ro, b - c);
		}
	}
} else {
	b = contentPane.curLGP.getCellValue("A3");
	contentPane.setCellValue("B3", null, b - a);
}

在加油公里的文本控件添加编辑后事件

  • wu11638705 wu11638705(提问者) 这个方法可以,还有一个问题,比如我一共插入了三行。填报好了,然后第二行的加油公里要改一下数,那第三行的行驶公里如何自动再计算。
    2020-09-03 16:14 
  • Coldman Coldman 回复 wu11638705(提问者) 那就遍历控件来赋值, 参考这个文档把JS修改一下 https://help.finereport.com/doc-view-2100.html
    2020-09-03 16:18 
  • Coldman Coldman 回复 wu11638705(提问者) 重新写了个,你看看
    2020-09-03 17:06 
  • wu11638705 wu11638705(提问者) 回复 Coldman 谢谢你,根据你的公式改了一下就可以了
    2020-09-07 15:53 
最佳回答
0
孤陌Lv6资深互助
发布于2020-9-3 15:32

靠公式是实现不了的  只能说写JS获取上一行的值 然后赋值了

最佳回答
0
jongwangLv6中级互助
发布于2020-9-3 19:40

填报_变化公式.cpt

好像也可以用公式尝试下。只是后面如果有更复杂的逻辑,需要自己加上去

  • 4关注人数
  • 537浏览人数
  • 最后回答于:2020-9-3 19:40
    请选择关闭问题的原因
    确定 取消
    返回顶部