Không phải, không sử dụng ="javascript:void(window.open(
.
Thứ nhất, nó phá vỡ PDF & báo cáo Excel,
và thứ hai, nó không hoạt động trong IE11 và có thể cũng < 11.
Tested nó, chỉ làm việc trong Chrome cho tôi.
Và thứ ba, đó là một mớ hỗn độn để đặt nó lại với nhau.
Có một giải pháp tốt hơn & xa dễ dàng hơn:
Thêm &rc:LinkTarget=_blank
để URL truy cập báo cáo của bạn, như:
https://your-domain.com/ReportServer/Pages/ReportViewer.aspx?%2fJPD%2fPO_Dashboard%2fJuvenile_Profile&rs:Command=Render&rc:LinkTarget=_blank
và nó sẽ mở ra trong một cửa sổ mới.
Edit:
Nếu bạn muốn làm cho trang hiển thị của riêng bạn:
Đây là cách bạn có được tất cả các báo cáo:
USE [ReportServer$MSSQL_2008_R2]
SELECT
[ItemID]
,[Path]
,[Name]
,[ParentID]
FROM [Catalog]
WHERE Type = 2
Và đây là cách bạn có thể hiển thị tất cả các thư mục/báo cáo ở cấp x
;WITH CTE AS
(
SELECT
[ItemID]
,[Path]
,[Name]
,[ParentID]
,0 AS lvl
,CAST([Name] AS nvarchar(MAX)) AS RecursivePath
FROM [Catalog]
WHERE [ParentID] IS NULL
UNION ALL
SELECT
[Catalog].[ItemID]
,[Catalog].[Path]
,[Catalog].[Name]
,[Catalog].[ParentID]
,cte.lvl +1 AS lvl
,CAST(cte.RecursivePath + '/' + [Catalog].[Name] AS nvarchar(MAX)) AS RecursivePath
FROM CTE
INNER JOIN [Catalog]
ON [Catalog].ParentID = CTE.ItemID
)
SELECT * FROM CTE
WHERE lvl = 1
ORDER BY lvl, Path
Nếu bạn chỉ muốn các thư mục:
WHERE Type = 1
Nếu bạn chỉ muốn các dữ liệu nguồn:
WHERE Type = 5
Mỗi điểm của Stefan Steiger về báo cáo PDF và Excel, bạn có thể dễ dàng đóng gói phần JavaScript của URL vào câu lệnh IIF để loại bỏ JavaScript nếu được xuất sang phiên bản PDF hoặc Excel bằng các trường RenderFormat tích hợp nếu bạn đang sử dụng SSRS 2008 R2 trở lên. Nếu bạn đang sử dụng năm 2008 hoặc trước đó, bạn có thể đạt được kết quả tương tự với tham số boolean. Nếu bạn có câu hỏi về cách thức, hãy trả lời nhận xét này. –