自定义JS提示,SQL查询怎么传入日期筛选器控件名称进行查询

自定义JS的提示为,想根据传入的时间范围【beginDateTime、endDateTime是日期筛选器控件名称】得到查询数据,但是提示出不来:

function(){ return this.seriesName+":"+this.value+"名称:"+FR.remoteEvaluate('=REPLACE(SQL("ds1","'+"select DEALER_NAME from table1 where CONVERT(DATE,YEAR + MONTH + '01') >= CONVERT(DATE,'${REPLACE(beginDateTime,'-','')}' + '01') AND CONVERT(DATE,YEAR + MONTH + '01') <= CONVERT(DATE,'${REPLACE(endDateTime,'-','')}' + '01') AND NAME1 = '"+this.category+"' AND NAME2 = '"+this.seriesName+"'"+'",1),",","")');}

去掉时间查询条件:CONVERT(DATE,YEAR + MONTH + '01') >= CONVERT(DATE,'${REPLACE(beginDateTime,'-','')}' + '01') AND CONVERT(DATE,YEAR + MONTH + '01') <= CONVERT(DATE,'${REPLACE(endDateTime,'-','')}' + '01') AND之后就可以正常提示,请教一下,怎么正确传入参数进行查询

FineReport FHYVIP 发布于 2023-10-31 11:08 (编辑于 2023-10-31 11:10)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-10-31 11:29

我记得没错的话,是不能这样用的,它不是数据集里面了。图表的自定义要这样获取参数!!

var a=_g().getWidgetByName("beginDateTime").getValue(); //获取参数beginDateTime的值

var bl = a.replace(/-/g, "");//把里面的-替换掉

再用bl这个值带入

  • FHYVIP FHYVIP(提问者) 这样bl是 拿到了beginDateTime的值,但是这个bl怎么放到select后面的查询语句呢,我直接放名称进去是查不出数据的
    2023-10-31 11:55 
  • CD20160914 CD20160914 回复 FHYVIP(提问者) 你要按格式拼起来。而且不是你那个写法。同时不建议写在一起,分开写吧,每一段分别得出结果。你先自己测试,中午了
    2023-10-31 12:00 
  • CD20160914 CD20160914 回复 FHYVIP(提问者) 因为不知道你录入的参数是什么格式,最终要拼成什么格式。像beginDateTime是什么样子的,最后你拼一个01,你想弄成什么样的不知道。
    2023-10-31 12:05 
  • FHYVIP FHYVIP(提问者) 回复 CD20160914 好的,可以了,谢谢!
    2023-10-31 13:34 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-10-31 11:12

function(){ return this.seriesName+":"+this.value+"名称:"+FR.remoteEvaluate('=REPLACE(SQL("ds1","'+"select DEALER_NAME from table1 where CONVERT(DATE,YEAR + MONTH + '01') >= CONVERT(DATE,'REPLACE($beginDateTime,'-','')' + '01') AND CONVERT(DATE,YEAR + MONTH + '01') <= CONVERT(DATE,'REPLACE($endDateTime,'-','')' + '01') AND NAME1 = '"+this.category+"' AND NAME2 = '"+this.seriesName+"'"+'",1),",","</br>")');} 试试

  • FHYVIP FHYVIP(提问者) 前半部分的提示系列名、值、名称,都显示,但是名称之后显示的数据是空,查询时间范围内是有数据的
    2023-10-31 11:25 
  • Z4u3z1 Z4u3z1 回复 FHYVIP(提问者) 开SqlServer profiler追踪一下预览操作时的SQL
    2023-10-31 11:27 
最佳回答
0
用户k6280494Lv6资深互助
发布于2023-10-31 11:13

function(){ return this.seriesName+":"+this.value+"名称:"+FR.remoteEvaluate('=REPLACE(SQL("ds1","'+"select DEALER_NAME from table1 where CONVERT(DATE,YEAR + MONTH + '01') >= CONVERT(DATE,'"+REPLACE(beginDateTime,'-','')+"' + '01') AND CONVERT(DATE,YEAR + MONTH + '01') <= CONVERT(DATE,'"+REPLACE(endDateTime,'-','')+"' + '01') AND NAME1 = '"+this.category+"' AND NAME2 = '"+this.seriesName+"'"+'",1),",","")');}

  • FHYVIP FHYVIP(提问者) 提示出不来
    2023-10-31 11:21 
  • 用户k6280494 用户k6280494 回复 FHYVIP(提问者) 你把sql,放到数据集,预览下,应该是时间格式的问题
    2023-10-31 11:23 
  • FHYVIP FHYVIP(提问者) 回复 用户k6280494 不行,按照上面的格式拉出来预览查询报错
    2023-10-31 11:29 
  • 3关注人数
  • 259浏览人数
  • 最后回答于:2023-10-31 11:29
    请选择关闭问题的原因
    确定 取消
    返回顶部