如何将4个控件的值合并到一起判断是否为空?

我有两个textbox和两个date的控件,现在需要判断这4个都为空时,不查询数据。这里想把这4个控件合并到另外一个控件上,再判断校验这个控件是否为空,给出提示。这个如何实现?

FineReport 代新征 发布于 4 天前 (编辑于 4 天前
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
1
华莉星宸Lv7专家互助
发布于4 天前(编辑于 4 天前
	// 在查询 校验逻辑
	var value1 = this.options.form.getWidgetByName("控件1").getValue();
	var value2 = this.options.form.getWidgetByName("控件2").getValue();
	var value3 = this.options.form.getWidgetByName("控件3").getValue();
	var value4 = this.options.form.getWidgetByName("控件4").getValue();
	 
	if (!value1 && !value2 && !value3 && !value4) {
	    FR.Msg.alert("错误","至少需要填写一个字段!");
	    return false;
	}

最佳回答
1
runnerLv7资深互助
发布于4 天前

你直接在数据集里面判断

拼接四个参数,判断长度为0  1=2,查询为空

  • 代新征 代新征(提问者) 不行,我理解你的意思,但是需要在报表上给出提示!
    2025-08-12 15:33 
最佳回答
1
Z4u3z1Lv6专家互助
发布于4 天前

https://help.fanruan.com/finereport10.0/doc-view-4007.html 

查询按钮点击事件写JS

var a=_g().parameterEl.getWidgetByName("a").getValue();

var b=_g().parameterEl.getWidgetByName("b").getValue();

var c=_g().parameterEl.getWidgetByName("c").getValue();

var d=_g().parameterEl.getWidgetByName("d").getValue();

if(a.length==0&&b.length==0&&c.length==0&&d.length==0){

return false;

FR.Msg.alert("错误", "不能都为空!");

}

else{

return true;

}

  • huyuan huyuan 试了一下,你这个return false;要放到弹窗下面去,不然为空就直接结束了,弹不了窗口提示
    2025-08-12 16:43 
  • huyuan huyuan 这个能达到想要的效果,好评
    2025-08-12 16:45 
最佳回答
1
shirokoLv6资深互助
发布于4 天前

你这个思路就可以啊,新控件的公式将所有控件concat一起然后判断非空就行了

image.pngCONCATENATE($控件1,$控件2,$控件3,$控件4)

  • 4关注人数
  • 56浏览人数
  • 最后回答于:4 天前
    请选择关闭问题的原因
    确定 取消
    返回顶部