The database is SQL server 7.x
Both the report and the proc return 4896 records. But the report does not display all the records. The count though is correct.
Below is the procedure code....
CREATE PROC ASP_GetUsers
@applicationName varchar(12) = NULL
, @accessLevel float = -1
AS
/*--- Create a temp table to hold all of the permissions ---*/
CREATE TABLE #OSMPermission
(
ID INTEGER NOT NULL
, Name VARCHAR(50) NOT NULL
, Code INTEGER NOT NULL
)
/*--- Load all of the users that we are interested in into a temporary table ---*/
SELECT ID = usr.ID
, UserName = RTRIM(usr.Lastname) + ', ' + RTRIM(usr.Firstname)
, DomainLogin = usr.DomainLogin
, DeptName = hr.DeptName
INTO #KM_RW_Users
FROM OSMUserGrpXUserUsers grp_usr
JOIN OSMUser usr
ON grp_usr.UserID = usr.ID
AND usr.Active = 1
AND usr.DomainLogin IS NOT NULL
LEFT JOIN xRawHR411Feed hr
ON usr.HRGUID = hr.HRGUID
/*--- Load all of the permissions associated with ResearchWire ---*/
IF UPPER(ISNULL(NULLIF(@applicationName, ''), 'RW')) = 'RW'
BEGIN
INSERT #OSMPermission
(
ID
, Name
, Code
)
SELECT ID
, Name
, Code
FROM OSMPermission perms
WHERE ISNULL(perms.ExtraDouble, 0) = ISNULL(NULLIF(@accessLevel, -1), ISNULL(perms.ExtraDouble, 0))
AND perms.Code BETWEEN 70000 AND 79999
END
/*--- Load all of the permissions associated with KM ---*/
IF UPPER(ISNULL(NULLIF(@applicationName, ''), 'KM')) = 'KM'
BEGIN
INSERT #OSMPermission
(
ID
, Name
, Code
)
SELECT ID
, Name
, Code
FROM OSMPermission perms
WHERE ISNULL(perms.ExtraDouble, 0) = ISNULL(NULLIF(@accessLevel, -1), ISNULL(perms.ExtraDouble, 0))
AND perms.Code BETWEEN 50000 AND 59999
END
/*--- Retrieve all of the Users that have permissions granted to them individually ---*/
SELECT UserID = usr.ID
, UserName = usr.UserName
, Login = usr.DomainLogin
, DeptName = usr.DeptName
, PermissionID = perms.ID
, PermissionName = perms.Name
, UserGroupID = -1
, UserGroupName = 'Permission granted to individual'
FROM #OSMPermission perms
JOIN OSMPermXUserGranted perms_usr
ON perms.ID = perms_usr.PermissionID
JOIN #KM_RW_Users usr
ON perms_usr.UserID = usr.ID
LEFT JOIN OSMPermXUserRevoked perms_usr_rev
ON perms.ID = perms_usr_rev.PermissionID
AND usr.ID = perms_usr_rev.UserID
WHERE perms_usr_rev.PermissionID IS NULL
UNION
/*--- Retrieve all of the Users that have permissions granted to them via groups ---*/
SELECT UserID = usr.ID
, UserName = usr.UserName
, Login = usr.DomainLogin
, DeptName = usr.DeptName
, PermissionID = perms.ID
, PermissionName = perms.Name
, UserGroupID = grp.ID
, UserGroupName = grp.Name
FROM #OSMPermission perms
JOIN OSMPermXrGrpGranted perms_grp
ON perms.ID = perms_grp.PermissionID
JOIN OSMUserGroup grp
ON perms_grp.UserGroupID = grp.ID
JOIN OSMUserGrpXUserUsers grp_usr
ON grp.ID = grp_usr.UserGroupID
JOIN #KM_RW_Users usr
ON grp_usr.UserID = usr.ID
LEFT JOIN OSMPermXGroupRevoked perms_grp_rev
ON perms.ID = perms_grp_rev.PermissionID
AND grp.ID = perms_grp_rev.UserGroupID
WHERE perms_grp_rev.PermissionID IS NULL
ORDER BY UserName, UserID, PermissionName, PermissionID, UserGroupName, UserGroupID
RETURN 0
go
Thanks!
juntion123