SSRS, how to let the user manually input the value in a table (not by the parameter method)

hi Experts,

The user wants to manually input the business contract No. up to 50 in table A. Table B will be called based on how many business contract no. was input in table A. For example, If the user input 5 business contract no. in table A,  then the table B will show the related data for those 5 business contract no.

We do not want to do it by parameter, since 50 is too much.

Thank you,
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Arifhusen AnsariBusiness Intelligence Developer and AnalystCommented:
In ssrs i think you have to use parameter if you want your user to provide input.

If  you think that 50 is too much to provide the separate parameters then you can provide the single text box parameter. Your user can manually provide the data in comma separated way.

You can use that string and split it in the form of table using custom split function. If you want this approach then just let me know, it will post the code for split function

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
tanj1035Author Commented:
hi Arif, Thanks for your reply. If I do the function split & parameter approach.
I have encounter the issues.  The stored procedure only returned the top 4 rows of data. If I input 5 contract strings or 50 contract strings, it only returned top 4 contract string data. Do you have any suggestions? Thank you.

The data type of contract strings is varchar.  They are displayed as
Contract String

Those are my code below

CREATE  FUNCTION [dbo].[Split]
	@List nvarchar(2000),
	@SplitOn nvarchar(5)
RETURNS @RtnValue table 
	Id int identity(1,1),
	Value nvarchar(100)

While (Charindex(@SplitOn,@List)>0)
Insert Into @RtnValue (value)
    Value = ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1))) 
Set @List = Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
Insert Into @RtnValue (Value)
    Select Value = ltrim(rtrim(@List))



Open in new window

create procedure [dbo].[sp_rept_TitleLoan_AuctionSalesSummaryByContract]
@Contract varchar(50)
Created by:            Joy Tan
Created on:            7/20/2016
Description:      For the report Auction Sales Summary By Contract





--declare @ReportDate datetime
--Set @ReportDate=DateAdd(d,-1,Convert(char(10),GETDATE(), 101))

SELECT StoreName,VendorName, LoanStoreID,ContractString,CustomerLastName + ', '+ CustomerFirstName as CustomerName,AuctionLetterExpDate,AuctionDate,LoanAmountFinanced,OPB,
      ISNULL(AutomobileBlackBookValue,0) AS BBV,AuctionSaleAmount,RepoFee,(AuctionExpense+AuctionMiscExpense) AS OtherExpenses,
      AuctionCheckAmount,(AuctionCheckAmount-RepoFee) AS GainLoss,AuctionDisposalDate,VPName,AMName

SELECT StoreName, LoanStoreID,ContractString,CustomerFirstName,CustomerLastName,AuctionLetterExpDate,AuctionDate,LoanAmountFinanced
,case when VendorName is null then 'Not Entered' else vendorname end  as VendorName,
            (SELECT SUM(TransactionPrincPaid) FROM tblReportingTransactions WHERE tblLoans.LoanID=tblReportingTransactions.LoanID AND TransactionDate>=tblLoans.AuctionDate AND TransactionTypeID IN (1,2,3,9,11)) AS OPB,
            tblVP.UserFirstName+' '+tblVP.UserLastName AS VPName,tblAM.UserFirstName+' '+tblAM.UserLastName AS AMName, AuctionDisposalDate
      FROM tblvendors tblvendors right join
          tblLoans tblloans on tblvendors. vendorid= tblloans.auctionvendorid INNER JOIN
            tblCustomers ON tblLoans.CustomerID=tblCustomers.CustomerID INNER JOIN
            tblAutomobiles ON tblLoans.AssetID=tblAutomobiles.AssetID INNER JOIN
            tblStores ON tblLoans.LoanStoreID=tblStores.StoreID INNER JOIN
            tblUsers tblVP ON tblStores.vpID=tblVP.UserID INNER JOIN
            tblUsers tblAM ON tblStores.amID=tblAM.UserID
            AND LoanStatusID=2
            AND  CONTRACTSTRING  IN (select value from [dbo].[Split] (@Contract, ','))
ORDER BY VPName,AMName, LoanStoreID



exec sp_rept_TitleLoan_AuctionSalesSummaryByContract

Open in new window

tanj1035Author Commented:
I have changed @Contract varchar(50) to @Contract varchar(max). It can return me 46 rows, but still not 50 rows.  Does (max) still have limitation?

Arifhusen AnsariBusiness Intelligence Developer and AnalystCommented:
You query might return the max 46 record only.

Try to run the query with out @Contract filter. So you come to know how number of rows are available.
tanj1035Author Commented:
What I changed

@Contract varchar(50) to @Contract nvarchar(4000). Now, it can return 5o rows. Thank you,  Arif,
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.