根据登录用户限制输入控制值

时间:2013-11-19 05:35:38

标签: jasper-reports jasperserver

我想根据登录用户限制报表中多选输入控件的值。 例如,如果管理员登录,他可以在多选列表中看到所有员工的列表。 如果员工登录,他将只在列表中看到他的名字。 最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

尝试添加一个新参数“LoggedInUser”,它将为您提供LoggedIn用户ID,然后您可以在查询的where子句中传递此参数

<parameter name="LoggedInUser" class="com.jaspersoft.jasperserver.api.metadata.user.domain.User"/>
<parameter name="FullUserName" class="java.lang.String">
    <defaultValueExpression><![CDATA[$P{LoggedInUser}.getFullName()]]></defaultValueExpression>
</parameter>

答案 1 :(得分:0)

很可能你需要做一些ID为你的用户名的递归sql

SELECT t1.id, 
       t1.parent_id, 
       t1.name,
       t2.name AS parent_name,
       t2.id AS parent_id
  FROM tbl t1
  LEFT JOIN tbl t2 ON t2.id = t1.parent_id 
 START WITH t1.id = $P{LoggedInUsername} 
CONNECT BY PRIOR t1.id = t1.parent_id