Hey all first time dealing with the wonderful world of SSRS. I am using Report builder in order to create my reports for my needs.

Upon creating a blank sheet I went ahead and created my data source:
https://i.stack.imgur.com/dg9W3.png

which works just fine and connects. So I go ahead and create a dataset:
https://i.stack.imgur.com/Hvcsc.png

Which again finds the stored procedure that I need and connects to it. Now under the Datasets folder it looks like this:
https://i.stack.imgur.com/nCoLh.png

Which is correct... but at the same time - not correct.

Now the Parameters folder looks like this:
https://i.stack.imgur.com/RUynj.png

Which again is correct but I seem to not be able to use that on my report page. Its seeing it as it needs ALL those parameters in order to pass to the query (which in this case it only needs 1, the user id).
https://i.stack.imgur.com/6AhtF.png

So i right-click inside the blank report page and select Insert -> Table and place a table on the page. When dragging just the val1 to the report page table and running it - this is the output I get:
https://i.stack.imgur.com/mGmXQ.png

It places all 1's as the "query output" when really that was the parameter input in order to query return information on that user id.

My stored procedure looks like this (cut down due to it being large):
Code:
USE [B2017]
GO
/****** Object:  StoredProcedure [dbo].[spFetchApproved]    Script Date: 10/26/2017 2:26:09 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[spFetchPending] (
    @val1 VARCHAR(100) = null,
    @val2 VARCHAR(100) = null,
    @val3 VARCHAR(100) = null,
    @val4 VARCHAR(100) = null,
    @val5 VARCHAR(100) = null
)
AS
BEGIN TRY
    SET NOCOUNT ON;
    DECLARE @version VARCHAR(30);
    SET @version = OBJECT_NAME(@@PROCID);
    /************************************/
    /*            The Query             */
    /*   1=text | 2=datetime | 3=else   */
    /************************************/
    EXEC [dbo].[_chkQ] 
        'SELECT 
            BL.number, 
            BL.line, 
            tOf.name                                        AS type,
            E.name                                          AS environment
            [more code here....]
         WHERE 
            LINK_userTblID = @val1 
         AND 
            stage = 2 
         GROUP BY 
            [more code here.....]',
        @version,
        @val1, 3
END TRY
BEGIN CATCH
    /************************************/
    /*      Get Error results back      */
    /************************************/
    SELECT 
        ERROR_NUMBER()      AS ErrorNumber,
        ERROR_SEVERITY()    AS ErrorSeverity,
        ERROR_STATE()       AS ErrorState,
        ERROR_PROCEDURE()   AS ErrorProcedure,
        ERROR_LINE()        AS ErrorLine,
        ERROR_MESSAGE()     AS ErrorMessage;
    /************************************/
END CATCH
And also the reference its going to [dbo].[_chkQ] (also trimmed down):
Code:
USE [B2017]
GO
/****** Object:  StoredProcedure [dbo].[_chkQ]    Script Date: 10/26/2017 2:57:20 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[_chkQ] (
    @ParameterSQL VARCHAR(MAX), 
    @ver VARCHAR(30),
    @val1 VARCHAR(MAX) = null,
        @val1Type int = null,
    @val2 VARCHAR(MAX) = null,
        @val2Type int = null,
    [more code here...]
)
AS  
    DECLARE @SQL NVARCHAR(MAX);
    DECLARE @IDENTITY INT;

    BEGIN
        IF (@val1 IS NOT NULL)
            BEGIN

                IF (@val1Type = 1)
                    SET @ParameterSQL = replace(@ParameterSQL, '@val1', '''' + @val1 + '''');
                ELSE IF (@val1Type = 2)
                    SET @ParameterSQL = replace(@ParameterSQL, '@val1', '''' + @val1 + '''');
                ELSE 
                    SET @ParameterSQL = replace(@ParameterSQL, '@val1', @val1);
            END
        IF (@val2 IS NOT NULL)
            [more code here...]
    END

    print @ParameterSQL

    IF CHARINDEX('INSERT ', @ParameterSQL) > 0
        BEGIN
            SET @SQL = @ParameterSQL;
            EXECUTE sp_executesql @SQL;
            SET @IDENTITY = (SELECT @@IDENTITY AS Returned);
        END
    ELSE IF CHARINDEX('DELETE ', @ParameterSQL) > 0
        [more code here...]

    PRINT @SQL;

    DECLARE @ExitSQL NVARCHAR(MAX);
    SET @ExitSQL = 
       'SELECT 
        CONCAT(
                OBJECT_NAME(@@PROCID), 
                '' '',
                LEFT(modify_date, 11), 
                '' ('', 
                DATEDIFF(day, LEFT(modify_date, 11), GETDATE()), 
                '' days ago)''
              ) AS CurrentVersion,
        CONCAT(' + CHAR(39) + 
                        REPLACE(
                            REPLACE(
                                REPLACE(
                                    REPLACE(
                                        REPLACE(@SQL, CHAR(13), ''),
                                    CHAR(10), ''),
                                '       ', ''),
                            '     ', ''),
                        '''', '''''') + 
                    CHAR(39) + 
        ', '''') AS theQuery 
      FROM 
        sys.objects
      WHERE 
        type = ''P''
      AND 
        name = ''' + @ver + '''';

     EXECUTE sp_executesql  @ExitSQL
So what I normally do in my ASP.net MVC page is just called the stored procedure and send it the value(s) that the SP need. However, it doesn't seem to have that option here for me to do that?

How can I build my report like I need (design wise) and also be able to call it from my ASP.net MVC page to populate it (which means sending a parameter which in this case, 1 as the user id, to the stored procedure to gather that query output for the report?)