筛选框之间互相关联

image.png

下面的单选框怎么和上面的日期联动

FineReport yzm287862 发布于 2023-12-18 18:41
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
用户S5182147Lv6中级互助
发布于2023-12-19 09:42

var thisValue = this.getValue() ;

// 把paraStDate改成自己的开始日期控件名称

var paraStDate = _g().parameterEl.getWidgetByName("paraStDate") ;

// 把paraEdDate改成自己的结束日期控件名称

var paraEdDate = _g().parameterEl.getWidgetByName("paraEdDate") ;

var StartDate = paraStDate.getValue() ;

var EndDate = paraEdDate.getValue() ;

var currentDate = new Date();

switch (thisValue) {

    case '近7天':

        var year = currentDate.getFullYear();  

        var month = currentDate.getMonth() + 1; // getMonth()返回的月份是从0开始的,所以需要+1  

        var date = currentDate.getDate();  

        var EndformattedDate = year + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date);  

        // 将日期减去7天

        currentDate.setDate(currentDate.getDate() - 6);

        var year = currentDate.getFullYear();  

        var month = currentDate.getMonth() + 1; // getMonth()返回的月份是从0开始的,所以需要+1  

        var date = currentDate.getDate();  

        var StartformattedDate = year + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date);  

        paraStDate.setValue(StartformattedDate) ;

        paraStDate.setText(StartformattedDate) ;

        paraEdDate.setValue(EndformattedDate) ;

        paraEdDate.setText(EndformattedDate) ;

    break ;

    case '当月':

        var year = currentDate.getFullYear();  

        var month = currentDate.getMonth() + 1; // getMonth()返回的月份是从0开始的,所以需要+1  

        var date = currentDate.getDate();  

        var EndformattedDate = year + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date);  

        var StartformattedDate = year + '-' + (month < 10 ? '0' + month : month) + '-01';  

        paraStDate.setValue(StartformattedDate) ;

        paraStDate.setText(StartformattedDate) ;

        paraEdDate.setValue(EndformattedDate) ;

        paraEdDate.setText(EndformattedDate) ;

    break ;

    case '当季':

        var year = currentDate.getFullYear();  

        var month = currentDate.getMonth() + 1; // getMonth()返回的月份是从0开始的,所以需要+1  

        var date = currentDate.getDate();  

        // 季度判断

        if(month >= 1 && month <= 3) {

            var q = 1 ;

            var q_month = 1 ;

        } else if (month >= 4 && month <= 6) {

            var q = 2 ;

            var q_month = 4 ;

        }

        else if (month >= 7 && month <= 9) {

            var q = 3 ;

            var q_month = 7 ;

        }

        else {

            var q = 4 ;

            var q_month = 10 ;

        }

        var EndformattedDate = year + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date);  

        var StartformattedDate = year + '-' + (q_month < 10 ? '0' + q_month : q_month) + '-01';  

        paraStDate.setValue(StartformattedDate) ;

        paraStDate.setText(StartformattedDate) ;

        paraEdDate.setValue(EndformattedDate) ;

        paraEdDate.setText(EndformattedDate) ;

    break ;

    case '当年':

        var year = currentDate.getFullYear();  

        var month = currentDate.getMonth() + 1; // getMonth()返回的月份是从0开始的,所以需要+1  

        var date = currentDate.getDate();  

        var EndformattedDate = year + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date);  

        var StartformattedDate = year + '-01-01';  

        paraStDate.setValue(StartformattedDate) ;

        paraStDate.setText(StartformattedDate) ;

        paraEdDate.setValue(EndformattedDate) ;

        paraEdDate.setText(EndformattedDate) ;

    break ;

    default:

        return false

}

最佳回答
0
坚定的小帆薯Lv7高级互助
发布于2023-12-18 18:44(编辑于 2023-12-18 18:52)

基本逻辑就是依据按钮的值去执行不同的公式,看你需求是动态变结束时间,还是在SQL中进行过滤。感觉用一个日期+案例即可的吧

有案例的,参考案例吧

动态切换年月日查询报表- FineReport帮助文档 - 全面的报表使用教程和学习资料  https://help.fanruan.com/finereport/doc-view-408.html?source=4#

查询某个日期前后指定天数的数据 - FineReport帮助文档 - 全面的报表使用教程和学习资料  https://help.fanruan.com/finereport/doc-view-421.html

  • 3关注人数
  • 213浏览人数
  • 最后回答于:2023-12-19 09:42
    请选择关闭问题的原因
    确定 取消
    返回顶部