Hi every body,
I'm new at using Report Services and I don't understand what I am
supposed to do to access a report by URL.
For the moment, I'm still working on report samples and I try to
create an URL access to Employee Sales Summary. I've made a small web
page with this link:
<a href="http://links.10026.com/?link=http://localhost/Reports/Pages/Report.aspx?Itempath=/Sample
Reports/Employee Sales
Summary&rc:Parameters=false&rs:Command=Render&rs:format=HTML4.0&EmpId=20&ReportYear=2003&ReportMonth=12">lien
direct</a>
It accesses the page but asks me for the parameters as if they were
not in the url.
The real goal behind this is to access to the report using a
multiple-values parameter for the Employee ID. As it doesn't seem to
be possible from the basic interface of Report Sevices, I thought I
could make a form and then pass the list in the parameters and making
the "where" clause like this in the report:
where SalesPersonID IN (@.EmpID)You should use the report server URL not the Report Manager URL.
So try this:
http://localhost/reportsever?/Sample&rs:Command=Render
The full documentation on how to do this is available in Books online (also
on MSDN). Search for URL Access.
-Lukasz
This posting is provided "AS IS" with no warranties, and confers no rights.
"Jocelyn" <j_chaumette@.yahoo.fr> wrote in message
news:15fe105b.0407190102.cb43a71@.posting.google.com...
> Hi every body,
> I'm new at using Report Services and I don't understand what I am
> supposed to do to access a report by URL.
> For the moment, I'm still working on report samples and I try to
> create an URL access to Employee Sales Summary. I've made a small web
> page with this link:
> <a href="http://links.10026.com/?link=http://localhost/Reports/Pages/Report.aspx?Itempath=/Sample
> Reports/Employee Sales
> Summary&rc:Parameters=false&rs:Command=Render&rs:format=HTML4.0&EmpId=20&ReportYear=2003&ReportMonth=12">lien
> direct</a>
> It accesses the page but asks me for the parameters as if they were
> not in the url.
> The real goal behind this is to access to the report using a
> multiple-values parameter for the Employee ID. As it doesn't seem to
> be possible from the basic interface of Report Sevices, I thought I
> could make a form and then pass the list in the parameters and making
> the "where" clause like this in the report:
> where SalesPersonID IN (@.EmpID)|||Thanks a lot!
It did work :) .
But actually, it was only the first step of my tests and I have now a
new issue.
As I have explained earlier (I think I did...), I need a multi-value
field parameter. This is the only reason why I'm making this html
page.
For the moment, the single value field works but I can't make it with
a multi-value field. It seems that my query is simply not good.
SELECT FirstName, MiddleName, LastName, AddressID
FROM Employee
WHERE (EmployeeID IN (@.EmpId))
I also tried to test the syntax of the list in the parameter, using
this query:
SELECT FirstName, MiddleName, LastName, AddressID
FROM Employee
WHERE (EmployeeID IN (20,21))
and then I tried
SELECT FirstName, MiddleName, LastName, AddressID
FROM Employee
WHERE (EmployeeID IN ('20','21'))
The report appears empty (the value 20 and 21 are good and the report
parameter is an integer).
Any Idea of how I should do?|||Jocelyn,
You can't use a variable in an IN clause. You need to use a Function like
the one below and either JOIN to it or use a nested SELECT.
e.g.
SELECT FirstName, MiddleName, LastName, AddressID
FROM Employee
INNER JOIN dbo.fnIntList(@.EmpId) ON EmployeeID=Value
brian
---
CREATE FUNCTION dbo.fnIntList ( @.InputString varchar(2000) )
RETURNS @.IntList TABLE (Value int)
AS
BEGIN
DECLARE @.Temp int
DECLARE @.Delimiter varchar(1)
SET @.Delimiter = ','
-- remove any surrounding spaces
SET @.InputString = RTRIM(LTRIM(@.InputString ))
WHILE (CHARINDEX(@.Delimiter, @.InputString)) > 0
BEGIN
SET @.Temp = RTRIM(LTRIM(LEFT(@.InputString, CHARINDEX(@.Delimiter,
@.InputString)-1)))
IF @.Temp != ''
INSERT @.IntList Values(@.Temp)
SET @.InputString = RIGHT(@.InputString, LEN(@.InputString) -
CHARINDEX(@.Delimiter,@.InputString))
END
SET @.Temp = RTRIM(LTRIM(@.InputString))
IF @.Temp != ''
INSERT @.IntList Values(@.Temp)
RETURN
END
GO
----
"Jocelyn" <j_chaumette@.yahoo.fr> wrote in message
news:15fe105b.0407202353.225402c4@.posting.google.com...
> Thanks a lot!
> It did work :) .
> But actually, it was only the first step of my tests and I have now a
> new issue.
> As I have explained earlier (I think I did...), I need a multi-value
> field parameter. This is the only reason why I'm making this html
> page.
> For the moment, the single value field works but I can't make it with
> a multi-value field. It seems that my query is simply not good.
> SELECT FirstName, MiddleName, LastName, AddressID
> FROM Employee
> WHERE (EmployeeID IN (@.EmpId))
> I also tried to test the syntax of the list in the parameter, using
> this query:
> SELECT FirstName, MiddleName, LastName, AddressID
> FROM Employee
> WHERE (EmployeeID IN (20,21))
> and then I tried
> SELECT FirstName, MiddleName, LastName, AddressID
> FROM Employee
> WHERE (EmployeeID IN ('20','21'))
> The report appears empty (the value 20 and 21 are good and the report
> parameter is an integer).
> Any Idea of how I should do?
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment