以编程方式在服务器端更改报表的SSRS数据源今天,我们为每个客户部署相同的SSRS报表文件夹和数据源文件夹。这些文件夹之间的区别在于每个文件夹的名称和数据源的连接字符串。我们正在使用ReportServer2008R2。是否可以仅维护一个报表和数据源文件夹并在呈现报表之前以编程方式更改其连接字符串服务器端?如果不是,是否可以通过更改报告中的某些逻辑来实现?今天我们使用“共享数据源”选项。这就是我们在我们的环境中所做的——我们维护一组报告,这些报告可以部署在任何具有自己配置的客户端上。您有多种选择。由于您使用的是共享数据源,因此无需为每个报表定义数据源,因此更容易做到。1.使用联机丛书中的rs.exe实用程序和脚本文件rsbox该程序允许您创建可以与报表服务器Web服务交互的脚本文件(在VB.NET中)。您创建一个脚本文件(例如Deploy.rss)并使用各种参数调用rs.exe程序,包括您定义的任何自定义参数:rs.exe-iDeployReports.rss-shttp://server/ReportServer-vDatabaseInstance="SQL"-vDatabaseName="ReportDB"-vReportFolder="ClientReports"所以这将调用脚本DeployReports.rss,使用三个用户定义的参数连接到http://server/ReportServer,这些参数可用于创建数据源和报告文件夹。在scipt文件中你可以有这样的东西:PublicSubMain()rs.Credentials=System.Net.CredentialCache.DefaultCredentialsCreateFolder(reportFolder,"Reportfolder")CreateFolder(datasourceFolder,"Datasourcefolder")CreateDataSource()EndSub然后,可以进行以下Web服务调用:rs.CreateFolder(folderName,"/",Nothing)'定义数据源定义。DimdefinitionAsNewDataSourceDefinition()definition.CredentialRetrieval=CredentialRetrievalEnum.Integrateddefinition.ConnectString="datasource="+DatabaseInstance+";initialcatalog="+DatabaseNamedefinition.Enabled=Truedefinition.EnabledSpecified=Truedefinition.Extension="SQL复制代码"definition.ImpersonateUser=Falsedefinition.ImpersonateUserSpecified=True'使用默认的提示字符串。definition.Prompt=Nothingdefinition.WindowsCredentials=False尝试rs.CreateDataSource(datasource,datasourcePath,False,definition,Nothing)Console.WriteLine("Datasource{0}createdsuccessfully",datasource)CatcheAsExceptionConsole.WriteLine(e.Message)EndTry您没有指定您使用的是哪个版本的ReportingServices,所以我假设是2008。请注意,根据SQLServer版本2005/2008,多个端点可用端点在2008R2和above已弃用,但仍然可用。编写脚本时需要牢记一些事项。2.从ApplicationReportServerWebService调用SSRSWebService概述从上述脚本进行的相同调用也可以在任何其他应用程序中进行。因此,您只需要通过WSDL添加对报表服务器Web服务的引用,您就可以连接到远程服务并调用其方法来部署报表、数据源等。最终您将连接到报表服务器Web服务,它只是您需要考虑的一种使用媒介。使用脚本更容易运行,因为它只是从命令行运行程序,但是编写您自己的部署应用程序肯定会提供更大的灵活性。我建议让脚本运行以便您了解流程,然后根据需要将其迁移到自定义应用程序。祝你好运!您可以使用基于表达式的连接字符串来选择正确的数据库。您可以根据应用程序或UserId全局变量传入的参数来确定它。我相信您需要配置无人参与的执行帐户才能正常工作。注意:注意潜在的安全隐患。请注意,如果您将敏感数据(例如密码)传递给参数,则(a)它将通过网络传输,并且(b)将存储在执行日志表中以供报告服务使用。以上就是C#学习教程:在服务器端编程更改报表的SSRS数据源,分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文来自网络收集,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
