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