天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 3146|回复: 0

[视图-数据&查询] 视图的记录按照登录用户或者查询条件显示【视图-sql过滤(不用用户显示不同记录)】

[复制链接]
bess 发表于 2013-2-20 18:06:54 | 显示全部楼层 |阅读模式
Q:在进入视图时候,如果所有的查询条件为空,那么就根据登录用户的等级返回结果集:1,当用户是管理员,那么就显示表单所有的记录;2,如果是一般用户,那么就只显示作者是当前登录用户的记录.如果视图的查询条件有一个不为空,那么就根据查询条件显示记录.

A:解决方案如下:
首先判断视图的查询条件是否全部为空,如果全部为空:那么就获取当前用户的名称,判断是管理员就返回查询表单全部数据的sql语句,否则就返回作者是自己的记录的sql语句.
如果视图的查询条件不为空,那么就返回根据查询条件查询记录的sql语句.

具体代码如下:
  1. var user =getWebUser();
  2. var sql ="";
  3. var sl1=getItemValueAsString("条件一");
  4. var sl2 = getItemValueAsString("条件二");
  5. if((sl1!=null && sl1 !="")  || (sl2!=null && sl2 !="")  )      //这里对所有的查询表单的字段进行非空校验
  6. {
  7.          //如果有一个查询条件不为空,那么就显示符合查询条件的记录数
  8.       if(user.getName() =="管理员")   //如果登录用户是管理员
  9.     {
  10.                 //返回查询表单所有符合查询条件的记录的sql
  11.                  sql ="select * from tlk_F1 where  item_a1='"+sl1+"' or  item_a2 ='"+sl2+"' ";
  12.        }
  13.        else  //如果当前登录用户是一般用户
  14.    {   
  15.                         // 返回查询表单所有  作者是当前登录用户 并且  符合查询条件的记录的sql
  16.                         sql ="select * from tlk_F1 where author ='"+user.getId()+"' and (  item_a1='"+sl1+"' or  item_a2 ='"+sl2+"') ";
  17.        }


  18. }
  19. else  //当所有查询条件为空
  20. {
  21.     if(user.getName() =="管理员")  //登录用户是管理员
  22.   {
  23.              //返回查询表单所有记录的数据
  24.          sql ="select * from tlk_F1";
  25.     }
  26.    else  //一般用户只显示自己创建的记录
  27.    {   
  28.                          sql = "select  *  from tlk_F1 where author ='"+user.getId()+"'";
  29.    }
  30.    
  31. }
  32. sql;
复制代码

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 05:48

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表