Ich habe einen SSRS-Bericht, der einen Parameter (Country_Name) akzeptiert.Generieren SSRS-Bericht an anderen Speicherort über den Parameter übergeben
Dies ist ein wöchentlicher Bericht und muss automatisch generiert werden, indem der SQL-Agent-Job ausgelöst wird. Daher habe ich ein datengesteuertes Abonnement für diesen Bericht erstellt und ein SSIS-Paket erstellt, um den Bericht vom SQL-Agentenjob zu generieren.
Nun ist das Problem: Da es sich um einen automatisierten Bericht handelt, gibt es keine Schnittstelle zum Übergeben des zu meldenden Parameters. Also habe ich eine Tabelle erstellt, die die Liste der zu übergebenden Parameter und den Pfad zum Platzieren des generierten Berichts enthält.
Tabelle werden zwei Spalten (COUNTRY_NAME & REPORT_PATH) und halten Sie Werte wie (Indien \ AB123C \ Indien) (China, \ ABC \ China) usw.
auf den Parameter Je bestanden Der Speicherort des Berichts ändert sich. Also habe ich in der datengesteuerten Subskriptionsabfrage eine Schleife verwendet, um den Parameter und den Pfad zu erhalten. Obwohl mehrere Parameter und Pfad für diesen jeweiligen Parameter von der Abfrage zurückgegeben werden, wird nur die erste Ergebnismenge ausgewählt und der Bericht nur für den ersten Parameter und seine angegebene Position generiert.
Ich kann die Lösung dafür nicht finden. Bitte finden Sie die folgende Abfrage, die ich für Ihre Referenz verwendet habe. Es wäre großartig, wenn ich dafür eine Lösung finden könnte.
DECLARE @MinCount INT = 1
DECLARE @Country VARCHAR(100)
DECLARE @Path VARCHAR(MAX)
DECLARE @RecordCount INT
DECLARE @CurrentDate VARCHAR(10)
DECLARE @CountryList Table (ID INT Identity(1,1),Country_Name Varchar(100),Report_path Varchar(max))
SET @RecordCount = (SELECT COUNT(*) FROM Country_List)
WHILE (@MinCOunt < = @RecordCount)
BEGIN
SET @Country = (Select Country_name from Country_List WHere ID = @MinCOunt)
SET @Path = (Select Report_Path from Country_List WHere ID = @MinCOunt)
SET @CurrentDate = (SELECT CONVERT(char(10), GetDate(),126) as currentSysDate)
Delete from @CountryList
insert into @CountryList (Country_Name,Report_path) Values (@Country,@Path)
select 'Country_Details ' +
@CurrentDate as filename
,'Excel' as RenderFormat
, (select Name from Master where
Reference_Name = 'USER_NAME'
) as sqlUserId
,(select Value from Master where
Reference_Name = 'PASSWORD'
) as sqlPwd , (Select Country_Name from @CountryList) AS Issue_Country,
(Select Report_path from @CountryList) AS filePath_cfonereports
SET @MinCOunt = @MinCOunt + 1
END
Es ist etwas unklar, basierend auf Ihrer Frage, was das eigentliche Problem ist. Der Code, den Sie angehängt haben, scheint nichts mit dem Problem zu tun zu haben. –
Der obige Code wird in datengesteuerten Abonnements verwendet, die ich für den Bericht erstellt habe. Basierend auf den Werten, die von der SELECT-Anweisung im obigen Code zurückgegeben werden, werden die Werte wie Dateiname, Pfad, RenderFormat, Berichtsserver-Anmeldeinformationen und -Parameter in der Subskription festgelegt, um den Bericht zu generieren. –
Ihre Frage ist noch unklar. Was meinst du mit "Ort des Berichts"? Was verwenden Sie, um Ihre Abonnements zu erstellen? –