如何实现当下拉框数据为当月时,某些参数控件隐藏

目前表中存在三个有效控件:

  1. 下拉框单选控件,这是一个月份的下拉框控件

  2. 一个日期范围控件的起始时间,一个日期范围控件的结束时间

需求:

当使用下拉框单选控件选择当月数据时,日期范围控件隐藏,不显示

image.png

FineReport Henry.99 发布于 昨天 09:49
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
snrtuemcLv8专家互助
发布于昨天 09:51

参考

动态切换年月日查询报表 https://help.fanruan.com/finereport/doc-view-408.html

  • Henry.99 Henry.99(提问者) 呃是有一些共通性,但是需求没有这个复杂,我想这能否是写一段JS代码完成,不对SQL操作。其实只需要选择当月的时候隐藏了就好了
    2025-09-09 09:54 
  • snrtuemc snrtuemc 回复 Henry.99(提问者) 这个文档2.6 添加编辑结束事件 中就是隐藏控件js代码,可以参考的,不需要改sql
    2025-09-09 09:55 
  • Henry.99 Henry.99(提问者) 不太行,文档中是一个固定的值,我的需求是一个变化的值,也就是说我要根据下拉框选择是否是当月,来判断是否隐藏或显示。。JS用不了
    2025-09-09 10:03 
  • snrtuemc snrtuemc 回复 Henry.99(提问者) 你的month控件下拉列表什么值,有日期yyyy-MM-dd格式,有这个月份yyyy-MM格式,那就判断下长度,有规律的还是可以处理的,但是没规律是无解的
    2025-09-09 10:06 
最佳回答
0
ScyalcireLv7高级互助
发布于昨天 10:13(编辑于 昨天 11:21

在下拉框的编辑后JS里面判断当前值和服务器时间的月份是否一致就行,一致就让其他两个日期控件不可见

附件:

WorkBook1.rar

-----

同样的代码也要加在报表初始化代码里,当页面刚预览的时候,也要进行判断

cpt报表用这段JS

开始日期控件名称startDate

结束日期:endDate

// 获取当前年月并格式化为"YYYY-MM"格式
function getCurrentYearMonth() {
    var now = new Date();
    var year = now.getFullYear();
    var month = now.getMonth() + 1;
    month = month < 10 ? '0' + month : month;
    return year + '-' + month;
}

// 获取下拉框当前值
var selectedValue = this.getValue();

// 获取当前年月格式
var currentYearMonth = getCurrentYearMonth();

// 根据选择值设置控件可见性
if (selectedValue == currentYearMonth) {
    // 隐藏两个参数控件
    this.options.form.getWidgetByName("startDate").setVisible(false);
    this.options.form.getWidgetByName("endDate").setVisible(false);
} else {
    // 显示两个参数控件
    this.options.form.getWidgetByName("startDate").setVisible(true);
    this.options.form.getWidgetByName("endDate").setVisible(true);
}

最佳回答
0
frxb123Lv3见习互助
发布于昨天 11:15

其实不一定要这个MONTH的下拉框吧,在开始和结束日期那里,设置个默认值,开始日期设置为当月1号,结束日期为当期日期如今天,不就是可以满足你的需求了吗?用户也可以选择以往的日期。

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