2011-10-24 16 views
8

Durante l'aggiornamento di una macchina, abbiamo perso il progetto Visual Studio utilizzato per creare report SSRS. Tuttavia, le origini dati e i report esistono ancora sul server. C'è un modo per ricreare il progetto VS usando quello che ha sul server SQL? C'è un modo per creare un nuovo progetto di Reporting Services e per importare le origini dati e i report esistenti al suo interno?È possibile importare report SSRS esistenti in Visual Studio?

Credo che i rapporti sono stati originariamente creati utilizzando VS 2005.

risposta

9

Non hai perso molto.

Le origini dati non sono molte: la stringa di connessione a un database e possibilmente le impostazioni per la memorizzazione nella cache e l'autenticazione. Questi dovrebbero essere facilmente ricreati.

Le definizioni del rapporto (file .rdl) possono essere scaricate per ogni tipo di rapporto e aggiunte a un nuovo progetto di Reporting Services. Dovranno essere puntati alle origini dati appena ricreate, ma poi dovrebbe andare bene.

Per scaricare i file di report, accedere a Gestione report di Reporting Services (sito Web.) Per un'istanza predefinita di SQL con opzioni di installazione predefinite, questo è http://servername/reports/ Se si dispone delle autorizzazioni di amministratore, è possibile sfogliare i report. Vai alle proprietà di un determinato rapporto e fai clic sul pulsante Modifica .... Questo scaricherà il file .rdl tramite il browser. (In SSRS 2008, il pulsante Modifica è stato modificato in "Download ...")

È necessario conoscere la versione di SSRS in esecuzione: le diverse versioni di Business Intelligence Developer Studio (BIDS, SSAS e Versione SSRS di Visual Studio) creare report per versioni specifiche di SSRS. I report possono essere aggiornati, ma non declassati o distribuiti su una versione precedente di SSRS.

+0

Grazie, questo è utile. Stiamo utilizzando Microsoft SQL Server Reporting Services versione 9.00.4053.00. Sto ancora cercando di scoprire come scaricare questi file .rdl però. Non uso Reporting Services da molti mesi e sto ancora cercando di ricordare come l'ho impostato più di un anno fa ... –

+0

@Jamie_F Grazie! Questo mi ha aiutato molto e sono stato in grado di ricostruire la soluzione. :-) –

+1

Ti preghiamo di considerare di spostare i dettagli del commento per scaricare/aggiungere i dati nella risposta. Questa era la parte più preziosa della risposta IMHO. – Glenn

-1

SSRS non consente di scaricare tutti i rapporti da una cartella di report in 1 go ...

Tuttavia ho trovato e ottimizzato un semplice pezzo di SQL ho trovato in rete che usiamo per grande effetto su il nostro sistema ...

This is it: -

/* 
People working on SSRS are well aware that “Report Manager” does not support downloading all the report files (.rdl files) at one go out-of-box. 
However take this script, alter the xxx parameters to your bits. Its works great. 
If you get a HOST Error - you need to set full permission to the SQL Server Group on your DOS Dir. 
on [Our_Prod_Server], this is: SQLServerMSSQLUser$NS226758$MSSQLSERVER 

NOTE: You will find a RETURN; statement below, comment it out once you have altered the parameters. 
*/ 

--Replace NULL with keywords of the ReportManager's Report Path, 
--if reports from any specific path are to be downloaded 
--select * from [ReportServer].[dbo].[Catalog] CL -- this gives you an idea of the Report Directories. 
DECLARE @FilterReportPath AS VARCHAR(500) = 'xxx' 

--Replace NULL with the keyword matching the Report File Name, 
--if any specific reports are to be downloaded 
DECLARE @FilterReportName AS VARCHAR(500) = '' 

--Replace this path with the Server Location where you want the 
--reports to be downloaded.. 
DECLARE @OutputPath AS VARCHAR(500) = 'C:\Users\[uuuuu]\Documents\Visual Studio 2012\Projects\Report Skeleton\[Report DIR Name]\' 

--Used to prepare the dynamic query 
DECLARE @TSQL AS NVARCHAR(MAX) 

RETURN; 

--Reset the OutputPath separator. 
SET @OutputPath = REPLACE(@OutputPath,'\','/') 

--Simple validation of OutputPath; this can be changed as per ones need. 
IF LTRIM(RTRIM(ISNULL(@OutputPath,''))) = '' 
BEGIN 
    SELECT 'Invalid Output Path' 
END 
ELSE 
BEGIN 
    --Prepare the query for download. 
    /* 
    Please note the following points - 
    1. The BCP command could be modified as per ones need. E.g. Providing UserName/Password, etc. 
    2. Please update the SSRS Report Database name. Currently, it is set to default - [ReportServer] 
    3. The BCP does not create missing Directories. So, additional logic could be implemented to handle that. 
    4. SSRS stores the XML items (Report RDL and Data Source definitions) using the UTF-8 encoding. 
     It just so happens that UTF-8 Unicode strings do not NEED to have a BOM and in fact ideally would not have one. 
     However, you will see some report items in your SSRS that begin with a specific sequence of bytes (0xEFBBBF). 
     That sequence is the UTF-8 Byte Order Mark. It’s character representation is the following three characters, “”. 
     While it is supported, it can cause problems with the conversion to XML, so it is removed. 
    */ 
    SET @TSQL = STUFF((SELECT 
         ';EXEC master..xp_cmdshell ''bcp " ' + 
         ' SELECT ' + 
         ' CONVERT(VARCHAR(MAX), ' + 
         '  CASE ' + 
         '   WHEN LEFT(C.Content,3) = 0xEFBBBF THEN STUFF(C.Content,1,3,'''''''') '+ 
         '   ELSE C.Content '+ 
         '  END) ' + 
         ' FROM ' + 
         ' [ReportServer].[dbo].[Catalog] CL ' + 
         ' CROSS APPLY (SELECT CONVERT(VARBINARY(MAX),CL.Content) Content) C ' + 
         ' WHERE ' + 
         ' CL.ItemID = ''''' + CONVERT(VARCHAR(MAX), CL.ItemID) + ''''' " queryout "' + @OutputPath + '' + CL.Name + '.rdl" ' + '-T -c -x''' 
        FROM 
         [ReportServer].[dbo].[Catalog] CL 
        WHERE 
         CL.[Type] = 2 --Report 
         AND '/' + CL.[Path] + '/' LIKE COALESCE('%/%' + @FilterReportPath + '%/%', '/' + CL.[Path] + '/') 
         AND CL.Name LIKE COALESCE('%' + @FilterReportName + '%', CL.Name) 
        FOR XML PATH('')), 1,1,'') 

    --SELECT @TSQL 

    --Execute the Dynamic Query 
    EXEC SP_EXECUTESQL @TSQL 
END 
Problemi correlati