<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    blogjava's web log

    blogjava's web log
    ...

    SqlServer 2005 報表自動部署



    當我們需要把設計好的報表發布到Web服務器上時,如果用VS2005只需要 右擊報表工程,單擊Deploy就可輕松搞定,如果不用VS2005發布,該怎么辦?

    解決辦法有2種。
    1.引用 sqlserver2005 的web服務。根據他提供的方法發布報表
    2.用sqlserver2005 的rs.exe 命名發布。

    我這里介紹的是根據 rs.exe這個命令來自動發布報表的。腳本已經寫好,直接Copy 稍微的改動一下即可!

    1.現看看rs.exe參數 都代表什么
    ?
    RUN?--CMD
    C:\Documents?and?Settings\junmy>rs?/?
    Microsoft?(R)?Reporting?Services?RS
    版本?
    9.00.1399.00?x86
    根據指定的報表服務器執行腳本文件內容。
    RS?-i?輸入文件?-s?serverURL?
    [-u?用戶名]?[-p?密碼]
    ???
    [-l?超時]?[-b]?[-e?端點]?[-v?var=value]?[-t]

    ????????-i??輸入文件????要執行的腳本文件
    ????????-s??serverURL???執行腳本
    ????????????????????????所依據的?URL?(包括服務器和?vroot)。
    ????????-u??用戶名??????用于登錄到服務器中的用戶名。
    ????????-p??密碼????????用于登錄到服務器中的密碼。
    ????????-e??端點????????要與腳本一起使用的?Web?服務端點。
    ????????????????????????選項為:
    ????????????????????????Exec2005?-?ReportExecution2005?端點
    ????????????????????????Mgmt2005?-?ReportService2005?端點
    ????????????????????????Mgmt2000?-?(不推薦使用)?ReportService?端點
    ????????-l??超時????????連接到服務器之前
    ????????????????????????超時的秒數。默認值為?
    60?秒,0?表示
    ????????????????????????無限長的超時。
    ????????-b??????????????作為批進行運行,且如果命令失敗則回滾
    ????????-v??var
    =value???傳遞給腳本的變量和值
    ????????-t??跟蹤????????在錯誤消息中包含跟蹤信息

    C:\Documents?and?Settings\junmy>
    ?
    2.拷貝下面腳本保存deployReport.rss 相應路徑根據自己的情況改動.



    Dim?definition?As?[Byte]()?=?Nothing
    Dim?warnings?As?Warning()?=?Nothing
    '目錄名
    Dim?datasourceFolderName?As?String?=?"Data?Sources"
    Dim?datasourceFolderPath?As?String?=?"/"?+?datasourceFolderName
    '報表目錄名??所有發布的報表放在此目錄
    Dim?reportsFolderName?As?String?=?"testDeployReports"
    Dim?reportsFolderPath?As?String?=?"/"?+?reportsFolderName
    '設計好的報表?存放的路徑
    Dim?filePath?As?String?=?"D:\Project\Reports\"
    '鏈接字符串
    Dim?connectionString?As?String?=?"Data?Source=localhost;Initial?Catalog=DataBaseName;Connect?Timeout=120"


    ???

    Public?Sub?Main()
    ????rs.Credentials?
    =?System.Net.CredentialCache.DefaultCredentials
    ????
    '創建報表目錄
    ????CreateReportFolder(reportsFolderName)
    ????
    '創建DataSource?目錄
    ????CreateReportFolder(datasourceFolderName)
    ????
    '創建數據源
    ????CreateDataSource(datasourceFolderPath)
    ???
    ????
    '部署報表
    ????DeployRepors(filePath)
    End?Sub

    '創建目錄
    Public?Sub?CreateReportFolder(ByVal?reportFolder?As?String)

    ????
    Try
    ????????
    'Create?Reports?Folder
    ????????rs.CreateFolder(reportFolder,"/",Nothing)
    ???????
    ????????Console.WriteLine(
    "Parent?Folder?Created:{0}",reportFolder)
    ????
    Catch?e?As?Exception
    ????????Console.WriteLine(e.Message)
    ????
    End?Try

    End?Sub

    '部署報表
    Public?Sub?DeployRepors(ByVal?filePath?As?String)

    ????
    Dim?tempFileAry?As?String()
    ????
    Dim?reportFilePath?as?String
    ????tempFileAry?
    =?Directory.GetFiles(filepath)
    ????
    For?Each?reportFilePath?In?tempFileAry
    ????????
    Dim?fileName?As?String
    ????????fileName?
    =?reportFilePath.Substring(reportFilePath.LastIndexOf("\")?+?1)
    ????????
    Dim?fileSuffix?As?String
    ????????fileSuffix?
    =?fileName.Substring(fileName.LastIndexOf(".")?+?1)
    ????????
    Select?Case?fileSuffix
    ????????????
    Case?"rdl","png"
    ????????????????PublishReport(fileName,fileSuffix)
    ????????
    End?Select
    ????
    Next

    End?Sub
    '******************************************************************
    '
    *****???????????創建數據源???????????????????????????**************
    '
    *******************************************************************
    Public?Sub?CreateDataSource(ByVal?sourceFolder?As?String)

    ????
    Dim?name?As?String?=?"DetechtionCompany"
    ???
    'Define?the?data?source?definition.
    ????Dim?definition?As?New?DataSourceDefinition()
    ????
    Dim?dSource?As?New?DataSource()
    ???
    ????dsource.Item
    =definition
    ???
    ????definition.CredentialRetrieval?
    =?CredentialRetrievalEnum.Integrated
    ????definition.ConnectString?
    =connectionString
    ????definition.Enabled?
    =?True
    ????definition.EnabledSpecified?
    =?True
    ????definition.Extension?
    =?"SQL"
    ????definition.ImpersonateUser?
    =?False
    ????definition.ImpersonateUserSpecified?
    =?True
    ????
    'Use?the?default?prompt?string.
    ????definition.Prompt?=?Nothing
    ????definition.WindowsCredentials?
    =?true
    ???
    ????dsource.Name
    =datasourceFolderPath

    ????
    Try
    ???????
    ????????rs.CreateDataSource(name,?sourceFolder,?
    true,?definition,?Nothing)
    ????????????Console.WriteLine(
    "Created?DataSource:{0}",name)
    ????
    Catch?e?As?Exception
    ????????Console.WriteLine(e.Message)
    ????
    End?Try

    End?Sub


    '******************************************************
    '
    *******?發布報表?*********
    '
    *******************************************************

    Public?Sub?PublishReport(ByVal?reportName?As?String,ByVal?fileSuffix?As?String)
    ?????
    ????
    Try

    ????????
    Dim?stream?As?FileStream?=?File.OpenRead(filePath?+?reportName)
    ????????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
    ??????
    '**********************???parentPath
    ??????If(fileSuffix="rdl")?Then
    ????????warnings?
    =?rs.CreateReport(reportName,reportsFolderPath,?true,?definition,?Nothing)
    ?????????SetReportDataSourceRef(reportName)
    ????????
    ????????
    Else?If(fileSuffix="png")?Then
    ????????????????rs.CreateResource(reportName,reportsFolderPath,
    true,definition,"png",Nothing)?
    ??????
    End?If
    ????????
    If?Not?(warnings?Is?Nothing)?Then
    ????????????
    Dim?warning?As?Warning
    ????????????
    For?Each?warning?In?warnings
    ????????????????Console.WriteLine(warning.Message)
    ????????????
    Next?warning

    ????????
    Else
    ????????????Console.WriteLine(
    "Report:?{0}?published?successfully?with?no?warnings",?reportName)
    ????????
    End?If

    ????
    Catch?e?As?Exception
    ????????Console.WriteLine(e.Message)
    ????
    End?Try
    End?Sub

    '************************************************************************
    '
    *************?設置報表數據源??????**************************************
    '
    ************************************************************************
    Public?Sub?SetReportDataSourceRef(ByVal?reportName?As?String)
    Try
    ??????
    Dim?reference?As?DataSourceReference?=?New?DataSourceReference
    ??????
    Dim?ds?As?DataSource?=?New?DataSource
    ??????reference.Reference
    =datasourceFolderPath+"/DetechtionCompany"
    ???????
    Dim?dsArray?As?DataSource()=rs.GetItemDataSources(reportsFolderPath+"/"+reportName)
    ??????
    ??????ds
    =dsArray(0)
    ???????ds.Item?
    =?CType(reference,?DataSourceReference)
    ??????rs.SetItemDataSources(reportsFolderPath
    +"/"+reportName,dsArray)
    ?????
    Catch?_exception?As?Exception
    ?????Console.WriteLine(_exception)
    ?
    End?Try
    End?Sub



    3. 新建deploy.dat 批處理文件 運行上面腳本。用到剛剛說的 rs.exe命名 (相應參數上面已經給出)
    deploy.bat 內容
    rs?-i?deploy.rss?-s?http://192.168.0.88/ReportServer?-u?userName?-p?password

    ?雙擊運行deploy.bat 報表將自動發布到http://192.168.0.88/ReportServer 服務器上。。
    @author? junmy





    posted on 2006-11-27 13:24 record java and net 閱讀(1171) 評論(0)  編輯  收藏 所屬分類: dot net相關Database

    導航

    常用鏈接

    留言簿(44)

    新聞檔案

    2.動態語言

    3.工具箱

    9.文檔教程

    友情鏈接

    搜索

    最新評論

    主站蜘蛛池模板: 国产aⅴ无码专区亚洲av麻豆| 卡一卡二卡三在线入口免费| 高清在线亚洲精品国产二区| 中文有码亚洲制服av片| 日韩免费精品视频| 亚洲国产日韩综合久久精品| 99在线精品免费视频九九视| 亚洲精品国产免费| 免费大片黄在线观看yw| 亚洲日韩精品无码专区加勒比| 日韩中文字幕在线免费观看| 深夜福利在线免费观看| 亚洲第一黄色网址| 叮咚影视在线观看免费完整版| 亚洲国产成人精品不卡青青草原| 96免费精品视频在线观看| 亚洲人6666成人观看| 免费网站看v片在线香蕉| 无遮挡a级毛片免费看| 亚洲精品无码专区久久久| 99久久免费中文字幕精品| 日韩亚洲人成在线| 国产亚洲精品线观看动态图| 日本一卡精品视频免费| 亚洲人xxx日本人18| 免费人成在线观看播放国产| caoporn成人免费公开| 亚洲黄色在线观看视频| 国产男女猛烈无遮挡免费视频 | 99re免费在线视频| 亚洲色偷偷综合亚洲av78| 亚洲视频在线一区二区| 69视频在线观看免费| 日韩色视频一区二区三区亚洲| 亚洲线精品一区二区三区| 少妇高潮太爽了在线观看免费| 一本久久A久久免费精品不卡| 久久亚洲国产精品成人AV秋霞| 可以免费观看的一级毛片| 国产免费无码一区二区 | 亚洲精品乱码久久久久久V|