关于价格和金额的显示,需要权限控制,当权限对象F_BKPF_BUK,检查对应【公司代码】 和 ACTVT有'03’的权限,如果没有03的权限,对应行的价格和金额显示为空
关于价格和金额的显示,需要权限控制,当权限对象M_INVVAL,检查 字段 ACTVT 为03 和 字段DISPINVVAL 为1,若检查不通过,则 金额那些列隐藏
要有对应的事务代码 mb51/mb52/migo
即 权限对象 S_TCODE 检查字段 TCD 值里面又 mb51 mb52 migo
整理之后 SQL 如下
SELECT a.* FROM ( SELECT DISTINCT
agr_users.uname
FROM agr_1251
INNER JOIN agr_users ON agr_1251.agr_name = agr_users.agr_name AND agr_1251.MANDT = agr_users.MANDT
JOIN usrefus ON usrefus.bname = agr_users.uname AND usrefus.MANDT = agr_users.MANDT
WHERE agr_1251.agr_name LIKE 'Z%' AND agr_1251.deleted <> 'X' AND agr_users.MANDT = '800' and
agr_1251.OBJECT = 'F_BKPF_BUK' AND agr_1251.field = 'ACTVT' AND agr_1251.low IN ('03','*')
UNION ALL
SELECT DISTINCT
agr_users.uname
FROM agr_1251
INNER JOIN agr_users ON agr_1251.agr_name = agr_users.agr_name AND agr_1251.MANDT = agr_users.MANDT
JOIN usrefus ON usrefus.bname = agr_users.uname AND usrefus.MANDT = agr_users.MANDT
WHERE agr_1251.agr_name LIKE 'Z%' AND agr_1251.deleted <> 'X' AND agr_users.MANDT = '800' AND
agr_1251.OBJECT = 'M_INVVAL' AND agr_1251.field = 'ACTVT' AND agr_1251.low IN ('03','*')
UNION ALL
SELECT DISTINCT
agr_users.uname
FROM agr_1251
INNER JOIN agr_users ON agr_1251.agr_name = agr_users.agr_name AND agr_1251.MANDT = agr_users.MANDT
JOIN usrefus ON usrefus.bname = agr_users.uname AND usrefus.MANDT = agr_users.MANDT
WHERE agr_1251.agr_name LIKE 'Z%' AND agr_1251.deleted <> 'X' AND agr_users.MANDT = '800' AND
agr_1251.OBJECT = 'M_INVVAL' AND agr_1251.field = 'DISPINVVAL' AND agr_1251.low IN ('1','*')
UNION ALL
SELECT DISTINCT
agr_users.uname
FROM agr_1251
INNER JOIN agr_users ON agr_1251.agr_name = agr_users.agr_name AND agr_1251.MANDT = agr_users.MANDT
JOIN usrefus ON usrefus.bname = agr_users.uname AND usrefus.MANDT = agr_users.MANDT
WHERE agr_1251.agr_name LIKE 'Z%' AND agr_1251.deleted <> 'X' AND agr_users.MANDT = '800' AND
agr_1251.OBJECT = 'S_TCODE' AND agr_1251.field = 'TCD' AND agr_1251.low in ('MB51','MB52','MIGO')
) a GROUP BY a.uname HAVING count(*) = 4
ORDER BY a.uname
1196

被折叠的 条评论
为什么被折叠?



