|

楼主 |
发表于 2015-1-21 10:23:02
|
显示全部楼层
我的实现方法:
实现报表查询方法:
1、在BIZ中,对ksqlReport的Action的where字句设置带参数和and操作的筛选条件,例如:
ER_XSSQZK.fXSRY LIKE :a AND ER_XSSQZK.fXSSQBH LIKE :b AND ER_KHXX.fKHMC LIKE :c AND ER_KHXX.fYWQTR LIKE :d
2、在UI的w文件中创建data准备存放筛选参数,设置data的autonew=true;可选设置原report的autoload=false【reportData没有这个属性,由report实际读数据库】,以提高用户体验--否则数据量大的时候,等很久才有数据显示;
3、根据需要创建输入参数需要的界面组件,一般这样操作:首先在原layout下borderLayout_1下创建一个borderLayout-bottom(bottom),然后在这里再创建一个View,随后在这个view里创建需要的输入组件和trigger【简单的直接使用input】;
4、将输入组件与data各字段关联,创建trigger的点击事件,例如:
mainActivity.trigger1Click = function(event){
var report = justep.xbl('ds1'), data = justep.xbl('data1');
var a = b = c = d = '%';
if (data.getValue('xsryName') != '') a = data.getValue('xsryName');
if (data.getValue('xssqNumber') != '') b = data.getValue('xssqNumber');
if (data.getValue('khMC') != '') c = data.getValue('khMC');
if (data.getValue('khQTR') != '') d = data.getValue('khQTR');
report.setStringVar('a', a);report.setStringVar('b', b);report.setStringVar('c', c);report.setStringVar('d', d);
alert(a+b+c+d);
justep.xbl('gridReport').refresh();
};
这里最关键的是:
X5.2.7的Action接受参数能力非常弱,复杂参数都不行,只能处理类似:关系名=:A的方式!
故我这里使用where可接受的通配符,并结合Action的and来实现报表筛选操作!
结贴。 |
|