다중 선택 매개 변수가있는 SSRS 보고서의 경우 값 목록이 긴 매개 변수에 대해 '모두 선택'하면 보고서에서 javascript 오류가 발생합니다.

Mahesh kumar ronde

"오류 : Sys.WebForms.PageRequestManagerServerErrorException : 서버에서 요청을 처리하는 동안 알 수없는 오류가 발생했습니다. 서버에서 반환 된 상태 코드는 500 :"입니다. URL 길이가 2083자를 초과했기 때문이라고 생각합니다. 이 문제에 대한 해결책 중 일부는 reportserver 폴더와 ReportManager 폴더의 web.config 파일에 아래 태그를 추가하는 것이었지만 작동하지 않았습니다. 누군가 도와 주시겠습니까?

일->

루이

이 오류는 드롭 다운 메뉴에 너무 많은 값이 있고 URL이 언급 한 최대 길이를 초과 할 가능성이 높기 때문입니다. 이에 대한 해결 방법은 드롭 다운 자체에 "모두 선택"옵션을 만들고 저장 프로 시저가 나머지 작업을 수행하도록하는 것입니다.

쿼리를 사용하여 매개 변수에 사용 가능한 값을 채우는 경우 UNION을 수행하여 "모두 선택"옵션을 포함 할 수 있습니다.

이 솔루션에서는 SSRS가 여러 값을 쉼표로 구분 된 형식으로 SQL Server에 다시 보내므로 값을 분할하려면 사용자 정의 함수가 있어야합니다.

CREATE FUNCTION dbo.udf_Split
(    
    @RowData NVARCHAR(MAX),
    @Delimeter NVARCHAR(MAX)
)
RETURNS @RtnValue TABLE 
(
    ID INT IDENTITY(1,1),
    Data NVARCHAR(MAX)
) 
AS
BEGIN 
    DECLARE @Iterator INT
    SET @Iterator = 1

    DECLARE @FoundIndex INT
    SET @FoundIndex = CHARINDEX(@Delimeter,@RowData)

    WHILE (@FoundIndex>0)
    BEGIN
        INSERT INTO @RtnValue (data)
        SELECT 
            Data = LTRIM(RTRIM(SUBSTRING(@RowData, 1, @FoundIndex - 1)))

        SET @RowData = SUBSTRING(@RowData,
                @FoundIndex + DATALENGTH(@Delimeter) / 2,
                LEN(@RowData))

        SET @Iterator = @Iterator + 1
        SET @FoundIndex = CHARINDEX(@Delimeter, @RowData)
    END

    INSERT INTO @RtnValue (Data)
    SELECT Data = LTRIM(RTRIM(@RowData))

    RETURN
END
GO

매개 변수에 사용 가능한 값을 채우는 쿼리는 다음과 같습니다.

SELECT 'Select All' AS "FilterValues"

UNION

SELECT FilterValues
FROM tbl_AvailableValues

데이터를 얻는 절차는 다음과 같습니다.

CREATE PROCEDURE usp_GetData @FilterValues NVARCHAR(MAX)

AS

BEGIN

    IF @FilterValues = 'Select All'
    SELECT *
    FROM tbl_Data;

ELSE 

    SELECT *
    FROM tbl_Data
    WHERE tbl_Data.FilterColumn IN (SELECT DATA FROM udf_Split(@FilterValues,','));

END

GO

도움이 되었기를 바랍니다

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관