У меня есть таблица «Пользователь», в которой каждый пользователь сопоставляется с данными, которые ему разрешено видеть.
Несколько будущих отчетов будут использовать эту таблицу User, и я хотел бы перейти к наилучшему подходу, чтобы использовать глобальную переменную User! UserID.
В предварительном отчете, который я настроил, используется хранимая процедура с параметром @myUser - в Sproc данные ВНУТРЕННО ПОДКЛЮЧЕНЫ к таблице User, а в предложении WHERE я ограничиваю данные с помощью @myUser следующим образом:
CREATE PROCEDURE [dbo].[pr_SSRS_Dly_Data]
@myUser VARCHAR(50)
AS
SELECT
x.[Date]
, x.Product
, x.Amount
FROM
WHReports.dbo.tb_Dly_Data x
INNER JOIN WHReports.dbo.tb_Users y
ON
x.CustomerKey = y.CustomerKey
WHERE 1 = CASE WHEN (@myUser = y.LoginName) THEN 1 ELSE 0 END
В отчете я использую этот Sproc в качестве набора данных, а затем создаю параметр @myUser - в разделе значений по умолчанию для параметра @myUser я использую выражение User! UserID. Также я делаю этот параметр скрытым.
Это лучший подход?