|
|
Q:在进入视图时候,如果所有的查询条件为空,那么就根据登录用户的等级返回结果集:1,当用户是管理员,那么就显示表单所有的记录;2,如果是一般用户,那么就只显示作者是当前登录用户的记录.如果视图的查询条件有一个不为空,那么就根据查询条件显示记录.
A:解决方案如下:
首先判断视图的查询条件是否全部为空,如果全部为空:那么就获取当前用户的名称,判断是管理员就返回查询表单全部数据的sql语句,否则就返回作者是自己的记录的sql语句.
如果视图的查询条件不为空,那么就返回根据查询条件查询记录的sql语句.
具体代码如下:- var user =getWebUser();
- var sql ="";
- var sl1=getItemValueAsString("条件一");
- var sl2 = getItemValueAsString("条件二");
- if((sl1!=null && sl1 !="") || (sl2!=null && sl2 !="") ) //这里对所有的查询表单的字段进行非空校验
- {
- //如果有一个查询条件不为空,那么就显示符合查询条件的记录数
- if(user.getName() =="管理员") //如果登录用户是管理员
- {
- //返回查询表单所有符合查询条件的记录的sql
- sql ="select * from tlk_F1 where item_a1='"+sl1+"' or item_a2 ='"+sl2+"' ";
- }
- else //如果当前登录用户是一般用户
- {
- // 返回查询表单所有 作者是当前登录用户 并且 符合查询条件的记录的sql
- sql ="select * from tlk_F1 where author ='"+user.getId()+"' and ( item_a1='"+sl1+"' or item_a2 ='"+sl2+"') ";
- }
- }
- else //当所有查询条件为空
- {
- if(user.getName() =="管理员") //登录用户是管理员
- {
- //返回查询表单所有记录的数据
- sql ="select * from tlk_F1";
- }
- else //一般用户只显示自己创建的记录
- {
- sql = "select * from tlk_F1 where author ='"+user.getId()+"'";
- }
-
- }
- sql;
复制代码 |
|