本帖最后由 lana 于 2015-9-24 16:24 编辑
视图列隐藏条件代码如下:
var xztid =getItemValueAsString("xztid");
var rtn=null;
var value=null;
if(xztid!=""&&xztid!=null){
var sql="SELECT ITEM_PAYROLL_ITEM FROM dbo.TLK_XZ_PAYROL_items WHERE parent ='"+xztid+"'";
println(sql);
var datas=queryByDSName("shgr_crm",sql)
if(datas!=null){
for(var iterator = datas.iterator();iterator.hasNext();)
{
var map1 = iterator.next();//取值
var name= map1.get("ITEM_PAYROLL_ITEM");
if(name.equals("_FWF_"))
{value=true;break;}else{value=false}
}
}
}
if(value){rtn=false}else{rtn=true;}
println(rtn);
rtn;
在数据库中查询出的结果中与当前列匹配,如果查询结果中存在"_FWF_" 则显示该列,否则隐藏该列。实际上数据库是存在"_FWF_",理论是应该输出“false”然后显示列的,结果是先输出了个false,有输出了个true;显示结果如图,发生错位。
在测试直接在隐藏条件中写
var value=false;
println(value);
value;
这样并不会导致输出“false” 后再输出“true”,也不会发生错位。 |