命令行部署Reporting services报表
来源:互联网 发布:c语言字符串比较函数 编辑:程序博客网 时间:2024/04/30 01:36
1. 在命令运行的目录下新建report目录, 把要发布的报表放到此目录下
2. 建PublishReport.rss文件, 代码如下
Const userID as String = "MTRCORP/ctsuat" Const dbServer as String = "hqsdbprd03" Const dbName as String = "CTSDB" Const parentFolder as String = "CTS.Report" Const roleName as String = "Browser" dim filePath as String dim cnt as Integer Dim definition As [Byte]() = Nothing Dim warnings As Warning() = Nothing Dim parentPath As String = "/" + parentFolder Public Sub Main() rs.Credentials = System.Net.CredentialCache.DefaultCredentials Dim name As StringfilePath = Environment.CurrentDirectory + "/report/"cnt = 0 CreateFolder() CreateDataSource() PublishFromFolder() CreateUser() End Sub '************************************************************ ' Create Parent Folder '************************************************************ Public Sub CreateFolder() dim alreadyExists as Boolean = FalseDim items As CatalogItem() = NothingDim condition As New SearchCondition()condition.Condition = ConditionEnum.Equalscondition.ConditionSpecified = Truecondition.Name = "Name"condition.Value = parentFolderDim conditions(0) As SearchConditionconditions(0) = conditionitems = rs.FindItems("/", BooleanOperatorEnum.And, conditions)If Not (items Is Nothing) ThenDim ci As CatalogItemFor Each ci In itemsif ci.Type=ItemTypeEnum.Folder thenalreadyExists=trueend ifNext ciEnd Ifif alreadyExists=False then Try rs.CreateFolder(parentFolder, "/", Nothing) Console.WriteLine("Parent folder created: {0}", parentFolder) Catch e As Exception Console.WriteLine(e.Message) End Tryend if End Sub '************************************************************ ' Create DataSource '************************************************************ Public Sub CreateDataSource() Dim name As String = dbName Dim parent As String = "/" + parentFolder 'Define the data source definition. Dim definition As New DataSourceDefinition definition.CredentialRetrieval = CredentialRetrievalEnum.Integrated definition.ConnectString = "data source=" & dbServer & ";initial catalog=" & dbNamedefinition.Enabled = Truedefinition.EnabledSpecified = Truedefinition.Extension = "SQL"definition.ImpersonateUser = Falsedefinition.ImpersonateUserSpecified = True'Use the default prompt string.definition.Prompt = Nothingdefinition.WindowsCredentials = False Try rs.CreateDataSource(name, parent, True, definition, Nothing) Console.WriteLine("Report data source created: {0}", name) Catch e As Exception Console.WriteLine(e.Message) End Try End Sub '************************************************************* ' Read Report File from Folder '************************************************************* Public Sub PublishFromFolder() Try ' Get files from specific path Dim ArrayName As String() Dim dirs As String() = Directory.GetFiles(filePath + "/", "*.rdl") Console.WriteLine("{0} reports will be deploy:", dirs.Length) Dim file As String Dim reportname as String For Each file In dirs ArrayName = file.Split("/")reportname = ArrayName(ArrayName.GetUpperBound(0))reportname = reportname.Replace(".rdl","") PublishReport(reportname) Next Console.WriteLine("{0} reports had be deploy!", cnt) Catch e As Exception Console.WriteLine("The process failed: {0}", e.ToString()) End Try End Sub '************************************************************* ' Delpoyment of Reports to Server '************************************************************* Public Sub PublishReport(ByVal reportName As String)Console.WriteLine("Deploy: {0}", reportName) Try Dim stream As FileStream = File.OpenRead(filePath + "/" + reportName + ".rdl") definition = New [Byte](stream.Length) {} stream.Read(definition, 0, CInt(stream.Length)) stream.Close() Catch e As IOException Console.WriteLine(e.Message) End Try Try warnings = rs.CreateReport(reportName, parentPath, True, definition, Nothing) If Not (warnings Is Nothing) Then Dim warning As Warning For Each warning In warnings Console.WriteLine(" warning:" + warning.Message) Next warning End Ifcnt = cnt + 1 Catch e As Exception Console.WriteLine(e.Message) End Try End Sub Public Sub CreateUser()dim pols_old() as Policydim pol as Policydim hasExists as Boolean = falsepols_old = rs.GetPolicies("/" + parentFolder,false)For Each pol In pols_oldif pol.GroupUserName=userID thenhasExists = trueend if Next pol if hasExists=false then dim r as new Roledim roles(0) as Roledim newPolicy as new Policyr.Name=roleNameroles(0) = rnewPolicy.GroupUserName=userIDnewPolicy.Roles=rolesDim cnt as Integercnt = pols_old.Lengthdim pols_new(cnt) as PolicyDim i As Integer For i = 0 To cnt - 1 pols_new(i) = pols_old(i) Next i pols_new(cnt) = newPolicyTryrs.SetPolicies("/" + parentFolder, pols_new)Console.WriteLine("Grant ""{1}"" role permission on ""{2}"" folder to ""{0}"" user!", userID, roleName, parentFolder)Catch e As Exception Console.WriteLine(e.Message) End Try end ifEnd Sub
3. 建cmd文件 CTS_Report_Migration.bat, 代码如下
@echo offrem ===== update the parameter BGN =====set REPORT_SERVER=hqsdbprd03rem ===== update the parameter END =====rs -i ./PublishReport.rss -s http://%REPORT_SERVER%/reportserver > report_deploy.log
4. 当然就是运行第三步中的文件罗
- 命令行部署Reporting services报表
- Reporting Services : 报表模型项目
- Reporting Services 中报表 乱码
- VS制作reporting services报表
- Reporting Services 报表URL 参数设置
- Reporting Services一个不错的报表工具
- Reporting Services: 服务器端报表(一)
- Reporting Services: 服务器端报表(一)
- 用MS SQL Reporting Services生成报表
- 一个简单的 Reporting Services 报表示例
- Reporting Services报表交互排序探
- Reporting Services 2: 参数化报表
- Reporting Services 2008 报表站点权限问题
- SSRS:Reporting Services报表制作技巧
- SSRS:Reporting Services报表制作技巧
- SSRS:Reporting Services报表制作技巧
- SSRS:Reporting Services报表制作技巧
- Reporting Services – 报表服务介绍
- VB.NET ColorPicker
- PLSQL 开发环境下载
- Linux 更新JDK 1.6 后如何让新版本生效
- ODBCAPI和数据库编程的一些东西
- 关于group by查询得到分组后每组的最小值的记录
- 命令行部署Reporting services报表
- 线下推广网站的7种方法
- struts1和struts2的区别
- 面试中出现频率较高的英语问题及精彩回答
- CREATE NEW TREE
- 老公我们一起好好努力吧!
- 夜 2008-6-8
- 国内SOA发展现况与面临的挑战
- LoadString、LoadIcon和LoadCursor函数