日期控件数组取值错误

image.pngimage.pngimage.png

var widgets = _g().getWidgetsByName("zhsj");

var wid2 = _g().getWidgetsByName("ljje");

//获取控件名称为demo的控件数组

//alert(widgets.length);

for (i = 0; i < widgets.length; i++) {

if (widgets[i].getValue().getTime() > max) {

max = widgets[i].getValue().getTime();

zhsj = widgets[i].getValue().toLocaleString();

}

}

alert(widgets[0].getValue()+":"+widgets[0].getValue().getTime()+";"+widgets[1].getValue()+":"+widgets[1].getValue().getTime()+";"+widgets[2].getValue()+":"+widgets[2].getValue().getTime();

//编辑控件之后,获取最大日期错误

FineReport 18080816943 发布于 2024-3-6 21:28 (编辑于 2024-3-6 21:35)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
18080816943Lv4见习互助
发布于2024-3-7 19:03(编辑于 2024-3-7 19:04)

image.png通过数据库语句读取了按时间排序的第一条时间,在填报成功事件里设置,回填到上一个报表var form = window.parent.contentPane;日期控件有问题,编辑后的值不正确

最佳回答
0
CovidLv3高级互助
发布于2024-3-7 08:48(编辑于 2024-3-7 08:50)

这个max还没定义啊

image.png

----------

https://help.fanruan.com/finereport/doc-view-1785.html   另外参考JS中调用FR公式,把日期改成时间戳来比较大小试试

最佳回答
0
snrtuemcLv8专家互助
发布于2024-3-7 08:51

这个你是日期显示英文了

可以单元格控件,设置返回字符串

image.png

最佳回答
0
CD20160914Lv8专家互助
发布于2024-3-7 09:00

不用循环比较直接获取你数据的最大日期即可

假如数据从第2行开始,第一行为标题,那么获取控件为mydate这一列的最大日期

var dates = [];

var widgets = _g().getWidgetsByName("mydate");

for (i = 0; i < widgets.length; i++) {

var bl=widgets[i].getValue();

if(bl.length>0){

var timestamp = new Date(bl).getTime(); 

dates.push(timestamp);

}

}

var maxIndex = dates.indexOf(Math.max(...dates));

var maxDate = dates[maxIndex];

//转换格式

const date = new Date(maxDate); // 根据时间戳创建Date对象

var Y = date.getFullYear() + "-";

  var M =

    (date.getMonth() + 1 < 10

      ? "0" + (date.getMonth() + 1)

      : date.getMonth() + 1) + "-";

  var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate())

const formattedDate = Y+M+D;

console.log('最大日期: ', formattedDate);

image.png

  • 2关注人数
  • 327浏览人数
  • 最后回答于:2024-3-7 19:04
    请选择关闭问题的原因
    确定 取消
    返回顶部