发现参数下拉框控件可以实时刷新其绑定的数据集查询,利用这一功能做了一个填报实时查询。
思路:
1、创建数据库查询ds1
select
姓名||','||年龄 as items --将所需的字段合并
from Salary
${if(len(fr_id)=0,'--','')}where id = ${fr_id}
2、单元格id控件增加一个编辑结束事件
var cell = this.getValue();//获取编辑后的id
if (cell.length > 0){
_g().parameterEl.getWidgetByName("comboBox0").reset(); //复位参数下拉框控件
_g().parameterEl.getWidgetByName("fr_id").setValue(cell);//将id赋值给参数栏绑定全局变量"fr_id"控件
}
3、给参数下拉框控件"comboBox0"增加一个编辑结束事件
var items = this.getValue().split(',');//将合成字段分割复原成单个字段
var fr_id = _g().parameterEl.getWidgetByName("fr_id").getValue();//获取全局变量"fr_id"
var w_id = _g().getWidgetByName("w_id");//获取单元格id控件
var cr = FR.cellStr2ColumnRow(w_id.options.location)//获取单元格id控件位置
if (w_id.getValue() == fr_id) {//只对id相同的行进行操作
contentPane.setCellValue("B"+(i+1+cr.row),null,items[0]);//赋值第1个字段
contentPane.setCellValue("C"+(i+1+cr.row),null,items[1]);//赋值第2个字段
}else{//处理扩展单元格id控件
var w_id = _g().getWidgetsByName("w_id");
for(i = 0; i < w_id.length; i++){填报查询.zip (14.65 K)
if (w_id[i].getValue() == fr_id) {
contentPane.setCellValue("B"+(i+1+cr.row),null,items[0]);
contentPane.setCellValue("C"+(i+1+cr.row),null,items[1]);
break;
}
}
}
说明:参数下拉框控件需要手动点击才能触发刷新,如果哪位大神有好的方法请告知。 |