下拉複選控制項串SQL與定期派送問題

您好:

如下圖,元暪用單選下拉,現在改用複選


也有設應,分隔用「','」請問,在SQL語法中

set @prd_grpno =''+'${prd_grpno}'+'';

 該如何設定?

因為直接

--and p.goal_prdno in ('${prd_grpno}')

也就是 沒有設定 set @prd_grpno ='${prd_grpno}';

可以過


但若設定了 set @prd_grpno =''+'${prd_grpno}'+'';

            and p.goal_prdno in ( @prd_grpno)                        

這樣卻不能過

Q1.請問若想在語法前面設定  set @prd_grpno ,該如何做?


Q2.另外,有辦法抓他實際串出來的語法嗎?



Q3.於下圖中

於該欄位因為原本用LIKE 所以% 就可過

但現在改IN ,這邊有辦法 下SQL語法填入嗎? 或使用報表內的下拉選單所有選項嗎?

不想寫死,且後續有新增選項,就無法自動找出資料

謝謝!


如下圖


FineReport taken 发布于 2020-7-29 20:20
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
廿旧Lv5见习互助
发布于2020-7-30 09:35

意思应该是想select * from 表 where 产品代码 in(复选框内容)这种形式的话,

可以在控件的编辑结束事件里使用JS修改将字符串改成('a','b','c')的数组然后将这个值给另一个控件赋值


//console.log(this.getValue());

//获取当前控件值

var value = this.getValue();

//处理的字符串

var p_value="";

if(value!=null && value!=''){

p_value += "(";

//console.log("p_value :"+p_value );

//拆分成数组

                        var  valueArr = value.split(",");

//console.log("valueArr:"+valueArr);

                        //遍历将["1","2","3"]=>'1',2','3',

for(var i=0;i<valueArr.length;i++){

p_value += "'" +valueArr[i]+"',";

// console.log("p_value:"+p_value);

}

                        //截掉末尾的“,”,括号闭合

p_value = p_value.substring(0,p_value.length-1)+")";

                        //修改当前控件值。此处根据需要获取一个隐藏的控件存储处理好的值传给sql

this.setValue(p_value);

//console.log("p_value:"+p_value);

}

//console.log("this.value:"+this.getValue())


  • taken taken(提问者) 您好: 謝謝您,我剛才測試,下拉選單選擇後,出來的值會有問題 第一次 this.value:(\'G2\',\'G3\') -->但 選擇面板,也出現 (\'G2\' \'G3\') 查詢錯誤 若 再點選一次 就會變成 this.value:(\'(\'(\'(\'G2\'\'\'\',\'\'\'\'G3\')\')\'\',\'\'G3\')\') 是否為SETVALUE 所致 該如何回傳給 參數? 要如何接? 另外,排程中的參數 這邊有辦法 下SQL語法填入嗎? 或使用報表內的下拉選單所有選項嗎? 謝謝!
    2020-07-30 10:02 
  • 廿旧 廿旧 回复 taken(提问者) 下拉复选框我是返回字符串,分隔符“,” 起始符和结束符为空。 这个原因是改变了原控件的值导致的。 解决办法:可以交给另一个不可见的控件比如TEST 保存处理过的值,将this.setValue() 进行修改,改成TEST.setValue(),获取控件的方法可参考文档getWidgetByName()。这样每次下拉修改仅改变test控件的值而不会对原始数据进行修改。sql查询时将test控件的值作为参数传入应该是能解决的。上面的代码只提供一个in查询问题的解决方案0.0
    2020-07-30 10:31 
  • taken taken(提问者) 回复 廿旧 您好: 另一個元件,可能再要測試,我先用舊的方式 我先新增一個 伺服器資料集 但我於排程中,用此伺服器資料集,當作查詢條件內容 但結果 卻錯誤 我只能 用字串 A1\',\'A2\',\'A3\',\'A4 來做 這有解嗎?
    2020-07-30 14:32 
  • 2关注人数
  • 518浏览人数
  • 最后回答于:2020-7-30 09:35
    请选择关闭问题的原因
    确定 取消
    返回顶部