根据下拉列表中的值获取数据库中的值

在报表查询面板上放置了一个下拉控件,数据源是数据字典的类型,我想根据下拉控件中选择的值,使用SQL('连接','',1,1)函数去数据库中的值,然后填充到文本控件中。在下拉控件的编辑后事件中写了js语句,测试报错,各位大神给看一下吧。

var form = this.options.form;

var p1Widget = form.getWidgetByName("DataType");//下拉控件

var p2Widget = form.getWidgetByName("datef");//日期开始控件

var p3Widget = form.getWidgetByName("datet");//日期结束控件

var p4Widget = form.getWidgetByName("txt1");//文本控件

var p5Widget = form.getWidgetByName("txt2");//文本控件

var value = p1Widget.getValue();//获取下拉控件的值

var text = p1Widget.getText() //获取下拉控件的文本

if (text == "自定义") {//如果文本是自定义,显示日期控件

p2Widget.visible();

p3Widget.visible();

} else {//否则隐藏日期控件,使用sql函数取数,code的值是下拉控件的值

p2Widget.invisible();

p3Widget.invisible();

var rq = FR.remoteEvaluate('=SQL("FRDemo","select value1 from DATLOCKINFO where code='

'' + value + ''

'",1,1)');

p4Widget.setValue(rq);

alert(rq);

var rq1 = '${=SQL("FRDemo","select value2 from DATEBLOCKINFO where code='

'${DateType}'

'",1,1)}';

p5Widget.setValue(rq1);

alert(rq1);

}

FineReport jamin_FineRep 发布于 2021-5-8 11:02
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
1
snrtuemcLv8专家互助
发布于2021-5-8 11:26

image.png

最佳回答
2
axingLv6专家互助
发布于2021-5-8 11:05(编辑于 2021-5-8 11:09)

sql公式的那两句代码分别改为:

var rq = FR.remoteEvaluate('=SQL("FRDemo","select value1 from DATLOCKINFO where code=\'' + value + '\'",1,1)');

var rq1 = FR.remoteEvaluate('=SQL("FRDemo","select value2 from DATLOCKINFO where code=\'' + DateType + '\'",1,1)');

DateType在前面没有定义,加上定义

  • jamin_FineRep jamin_FineRep(提问者) 修改完之后提示js 中的getValue() 未定义。这个获取下拉控件值得js代码改怎么写?
    2021-05-08 11:09 
  • axing axing 回复 jamin_FineRep(提问者) 一般是没有获取到控件,模板上传一下看看
    2021-05-08 11:15 
  • jamin_FineRep jamin_FineRep(提问者) 回复 axing 找到原因了,那个是我的名称写错了。但是又报错:This formula is forbiddenSQL
    2021-05-08 11:21 
  • snrtuemc snrtuemc 回复 jamin_FineRep(提问者) 决策系统把脚本公式限制关闭
    2021-05-08 11:26 
  • axing axing 回复 jamin_FineRep(提问者) 你用移动端app吗?移动端 App 9.0 及之后的版本不再支持 FR.remoteEvaluate(formula)
    2021-05-08 11:26 
  • 3关注人数
  • 497浏览人数
  • 最后回答于:2021-5-8 11:26
    请选择关闭问题的原因
    确定 取消
    返回顶部